Esempio n. 1
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)
Esempio n. 2
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)
Esempio n. 3
0
 def test_many_trees(self):
     ts = msprime.simulate(
         8, recombination_rate=10, mutation_rate=10, random_seed=234)
     self.assertGreater(ts.num_trees, 1)
     self.assertGreater(ts.num_sites, 1)
     A = tsinfer.get_ancestral_haplotypes(ts)
     B = self.get_matrix(ts)
     self.assertTrue(np.array_equal(A, B))
     self.verify_haplotypes(ts, A)
Esempio n. 4
0
 def verify_single_tree_dense_mutations(self, ts):
     A = tsinfer.get_ancestral_haplotypes(ts)
     A = A[ts.num_samples:][::-1]
     n, m = A.shape
     ancestors, start, end, focal_sites = tsinfer.get_ancestor_descriptors(A)
     self.assertTrue(np.array_equal(A, ancestors[-n:]))
     self.assertEqual(start, [0 for _ in range(ancestors.shape[0])])
     self.assertTrue(end, [m for _ in range(ancestors.shape[0])])
     for j in range(1, ancestors.shape[0]):
         self.assertGreaterEqual(len(focal_sites[j]), 0)
         for site in focal_sites[j]:
             self.assertEqual(ancestors[j, site], 1)
Esempio n. 5
0
 def verify_single_tree_dense_mutations(self, ts):
     A = tsinfer.get_ancestral_haplotypes(ts)
     A = A[ts.num_samples:][::-1]
     n, m = A.shape
     ancestors, start, end, focal_sites = tsinfer.get_ancestor_descriptors(
         A)
     assert np.array_equal(A, ancestors[-n:])
     assert start == [0 for _ in range(ancestors.shape[0])]
     assert end, [m for _ in range(ancestors.shape[0])]
     for j in range(1, ancestors.shape[0]):
         assert len(focal_sites[j]) >= 0
         for site in focal_sites[j]:
             assert ancestors[j, site] == 1
Esempio n. 6
0
    def verify_many_trees_dense_mutations(self, ts):
        A = tsinfer.get_ancestral_haplotypes(ts)
        A = A[ts.num_samples:][::-1]
        tsinfer.get_ancestor_descriptors(A)

        ancestors, start, end, focal_sites = tsinfer.get_ancestor_descriptors(A)
        n, m = ancestors.shape
        self.assertEqual(m, ts.num_sites)
        self.assertTrue(np.all(ancestors[0, :] == 0))
        for a, s, e, focal in zip(ancestors[1:], start[1:], end[1:], focal_sites[1:]):
            self.assertTrue(0 <= s < e <= m)
            self.assertTrue(np.all(a[:s] == tskit.MISSING_DATA))
            self.assertTrue(np.all(a[e:] == tskit.MISSING_DATA))
            self.assertTrue(np.all(a[s:e] != tskit.MISSING_DATA))
            for site in focal:
                self.assertEqual(a[site], 1)
Esempio n. 7
0
 def test_single_tree(self):
     ts = msprime.simulate(5, mutation_rate=10, random_seed=234)
     A = tsinfer.get_ancestral_haplotypes(ts)
     B = self.get_matrix(ts)
     assert np.array_equal(A, B)
     self.verify_single_tree(ts, A)