Пример #1
0
 def test_multiple_recombinations(self):
     ts = msprime.sim_ancestry(5,
                               sequence_length=10,
                               recombination_rate=10,
                               random_seed=1)
     found = False
     for _, e_out, _ in ts.edge_diffs():
         if len(e_out) > 4:
             found = True
             break
     assert found
     with pytest.raises(ValueError):
         tsinfer.insert_perfect_mutations(ts)
Пример #2
0
 def test_single_tree_perfect_mutations(self):
     ts = msprime.simulate(5, random_seed=234)
     ts = tsinfer.insert_perfect_mutations(ts)
     A = tsinfer.get_ancestral_haplotypes(ts)
     B = self.get_matrix(ts)
     self.assertTrue(np.array_equal(A, B))
     self.verify_single_tree(ts, A)
Пример #3
0
 def test_three_samples(self):
     for seed in range(10):
         ts = msprime.simulate(3,
                               recombination_rate=1,
                               random_seed=seed + 1,
                               model="smc_prime")
         ts = tsinfer.insert_perfect_mutations(ts)
         self.verify(ts)
Пример #4
0
 def test_many_trees_perfect_mutations(self):
     ts = get_smc_simulation(10, 100, 0.1, 1234)
     self.assertGreater(ts.num_trees, 1)
     ts = tsinfer.insert_perfect_mutations(ts)
     A = tsinfer.get_ancestral_haplotypes(ts)
     B = self.get_matrix(ts)
     self.assertTrue(np.array_equal(A, B))
     self.verify_haplotypes(ts, A)
Пример #5
0
 def test_twenty_samples(self):
     for seed in range(5):
         ts = msprime.simulate(10,
                               recombination_rate=0.1,
                               random_seed=seed + 500,
                               length=10,
                               model="smc_prime")
         ts = tsinfer.insert_perfect_mutations(ts, delta=1 / 8192)
         self.verify(ts)
Пример #6
0
 def test_multiple_recombinations(self):
     try:
         recomb_map = msprime.RecombinationMap.uniform_map(length=10,
                                                           rate=10,
                                                           discrete=True)
     except TypeError:
         # Fallback for older versions of msprime, which use num_loci
         recomb_map = msprime.RecombinationMap.uniform_map(length=10,
                                                           rate=10,
                                                           num_loci=10)
     ts = msprime.simulate(10, recombination_map=recomb_map, random_seed=1)
     found = False
     for _, e_out, _ in ts.edge_diffs():
         if len(e_out) > 4:
             found = True
             break
     assert found
     with pytest.raises(ValueError):
         tsinfer.insert_perfect_mutations(ts)
Пример #7
0
def run_viz(
    n,
    L,
    rate,
    seed,
    mutation_rate=0,
    engine="C",
    perfect_ancestors=True,
    perfect_mutations=True,
    path_compression=False,
    time_chunking=True,
    error_rate=0,
):
    recomb_map = msprime.RecombinationMap.uniform_map(length=L,
                                                      rate=rate,
                                                      num_loci=L)
    ts = msprime.simulate(
        n,
        recombination_map=recomb_map,
        random_seed=seed,
        model="smc_prime",
        mutation_rate=mutation_rate,
    )
    if perfect_mutations:
        ts = tsinfer.insert_perfect_mutations(ts, delta=1 / 512)
    else:
        ts = tsinfer.strip_singletons(
            tsinfer.insert_errors(ts, error_rate, seed))
    print("num_sites = ", ts.num_sites)

    with open("tmp__NOBACKUP__/edges.svg", "w") as f:
        f.write(draw_edges(ts))
    with open("tmp__NOBACKUP__/ancestors.svg", "w") as f:
        f.write(draw_ancestors(ts))
    visualise(
        ts,
        rate,
        0,
        engine=engine,
        box_size=26,
        perfect_ancestors=perfect_ancestors,
        path_compression=path_compression,
        time_chunking=time_chunking,
    )
Пример #8
0
 def test_single_tree(self):
     for seed in range(10):
         ts = msprime.simulate(10, random_seed=seed + 1)
         ts = tsinfer.insert_perfect_mutations(ts)
         self.verify(ts)
Пример #9
0
 def test_large_smc(self):
     ts = get_smc_simulation(50, L=1, recombination_rate=100, seed=1)
     ts = tsinfer.insert_perfect_mutations(ts)
     self.assertGreater(ts.num_trees, 100)
     self.verify_perfect_mutations(ts)
Пример #10
0
 def test_small_smc(self):
     for seed in range(1, 10):
         ts = get_smc_simulation(5, L=1, recombination_rate=10, seed=seed)
         ts = tsinfer.insert_perfect_mutations(ts)
         self.assertGreater(ts.num_trees, 1)
         self.verify_perfect_mutations(ts)
Пример #11
0
 def test_single_tree(self):
     ts = msprime.simulate(5, random_seed=234)
     ts = tsinfer.insert_perfect_mutations(ts)
     self.verify_perfect_mutations(ts)
Пример #12
0
 def test_large_smc_perfect_mutations(self):
     for seed in range(1, 10):
         ts = get_smc_simulation(10, 100, 0.1, seed)
         ts = tsinfer.insert_perfect_mutations(ts)
         self.assertGreater(ts.num_trees, 1)
         self.verify_many_trees_dense_mutations(ts)
Пример #13
0
 def test_small_smc_perfect_mutations(self):
     for seed in range(1, 10):
         ts = get_smc_simulation(5, 100, 0.02, seed)
         ts = tsinfer.insert_perfect_mutations(ts)
         assert ts.num_trees > 1
         self.verify_many_trees_dense_mutations(ts)