def test_sim_wright_fisher_generations3(self): # Uses the bespoke DTWF forward-time simulator. number_of_gens = 10 tables = wf.wf_sim(10, number_of_gens, deep_history=False, seed=37) tables.sort() ts = tables.tree_sequence() verify_equal_ibd(ts)
def test_wright_fisher_simplified_multiple_roots(self): tables = wf.wf_sim( 31, 10, seed=1, deep_history=False, initial_generation_samples=False, num_loci=5) tables.sort() ts = tables.tree_sequence() samples = ts.samples() self.verify(ts, [samples[:10], samples[10:]])
def test_wright_fisher_unsimplified(self): tables = wf.wf_sim( 20, 15, seed=1, deep_history=True, initial_generation_samples=False, num_loci=20) tables.sort() ts = tables.tree_sequence() samples = ts.samples() self.verify(ts, [samples[:10], samples[10:]])
def test_wright_fisher_unsimplified_all_sample_sets(self): tables = wf.wf_sim( 4, 5, seed=1, deep_history=True, initial_generation_samples=False, num_loci=10) tables.sort() ts = tables.tree_sequence() for S in set_partitions(list(ts.samples())): self.verify(ts, S)
def test_wright_fisher_simplified(self): tables = wf.wf_sim( 9, 10, seed=1, deep_history=True, initial_generation_samples=False, num_loci=5) tables.sort() ts = tables.tree_sequence().simplify() ts = msprime.mutate(ts, rate=0.01, random_seed=1234) self.assertGreater(ts.num_sites, 0) self.verify(ts)
def test_wright_fisher_initial_generation(self): tables = wf.wf_sim( 6, 5, seed=3, deep_history=True, initial_generation_samples=True, num_loci=2) tables.sort() tables.simplify() ts = msprime.mutate(tables.tree_sequence(), rate=0.08, random_seed=2) self.assertGreater(ts.num_sites, 0) self.verify(ts)
def test_wright_fisher_examples(self, N, T): tables = wf.wf_sim(N, T, deep_history=False, seed=42) tables.sort() # NB this is essential! We get spurious breakpoints otherwise tables.edges.squash() tables.sort() ts = tables.tree_sequence() ibd0 = ibd_segments(ts) ibd1 = naive_ibd_all_pairs(ts) assert_ibd_equal(ibd0, ibd1)
def test_wright_fisher_initial_generation_no_deep_history(self): tables = wf.wf_sim( 20, 15, seed=2, deep_history=False, initial_generation_samples=True, num_loci=20) tables.sort() tables.simplify() ts = tables.tree_sequence() samples = ts.samples() founders = [u for u in samples if ts.node(u).time > 0] samples = [u for u in samples if ts.node(u).time == 0] self.verify(ts, [founders[:10], founders[10:]], samples)
def test_wright_fisher_unsimplified_multiple_roots(self): tables = wf.wf_sim(8, 15, seed=1, deep_history=False, initial_generation_samples=False, num_loci=20) tables.sort() ts = msprime.mutate(tables.tree_sequence(), rate=0.006, random_seed=2) self.assertGreater(ts.num_sites, 0) ts = tsutil.insert_individuals(ts, ploidy=2) self.verify(ts)
def test_wright_fisher_initial_generation(self): tables = wf.wf_sim(6, 5, seed=3, deep_history=True, initial_generation_samples=True, num_loci=2) tables.sort() tables.simplify() ts = msprime.mutate(tables.tree_sequence(), rate=0.08, random_seed=2) assert ts.num_sites > 0 ts = tsutil.insert_individuals(ts, ploidy=3) self.verify(ts)
def test_forward_time_wright_fisher_simplified(self): tables = wf.wf_sim( 30, 10, seed=1, deep_history=False, initial_generation_samples=False, num_loci=5, ) tables.sort() ts = tables.tree_sequence() samples = ts.samples() self.verify_topologies(ts, sample_sets=[samples[:10], samples[10:]])
def test_forward_time_wright_fisher_unsimplified_all_sample_sets(self): tables = wf.wf_sim( 4, 5, seed=1, deep_history=False, initial_generation_samples=False, num_loci=10, ) tables.sort() ts = tables.tree_sequence() for S in test_stats.set_partitions(list(ts.samples())): self.verify_topologies(ts, sample_sets=S)
def test_wright_fisher_unsimplified(self): tables = wf.wf_sim( 4, 5, seed=1, deep_history=True, initial_generation_samples=False, num_loci=10, ) tables.sort() ts = msprime.mutate(tables.tree_sequence(), rate=0.05, random_seed=234) assert ts.num_sites > 0 ts = tsutil.insert_individuals(ts, ploidy=4) self.verify(ts)
def test_wright_fisher_initial_generation_no_deep_history(self): tables = wf.wf_sim(20, 15, seed=2, deep_history=False, initial_generation_samples=True, num_loci=20) tables.sort() tables.simplify() ts = tables.tree_sequence() samples = ts.samples() founders = [u for u in samples if ts.node(u).time > 0] samples = [u for u in samples if ts.node(u).time == 0] A = self.verify(ts, [founders[:10], founders[10:]], samples) # Because the founders are all isolated, the stat must be zero. self.assertTrue(np.all(A == 0))