def test_distance_pair(self): """get distances dict""" calc = TN93Pair(DNA, alignment=self.alignment) calc.run(show_progress=False) dists = calc.get_pairwise_distances() dists = dists.to_dict() dist = 0.2554128119 expect = {("s1", "s2"): dist, ("s2", "s1"): dist} self.assertEqual(list(dists.keys()), list(expect.keys())) assert_allclose(list(dists.values()), list(expect.values()))
def test_tn93_from_matrix(self): """compute TN93 distances""" calc = TN93Pair(DNA, alignment=self.alignment) calc.run(show_progress=False) self.assertEqual(calc.lengths["s1", "s2"], 10) self.assertEqual(calc.proportions["s1", "s2"], 0.2) # value from OSX MEGA 5 assert_allclose(calc.dists["s1", "s2"], 0.2554128119) # value**2 from OSX MEGA 5 assert_allclose(calc.variances["s1", "s2"], 0.04444444445376601) # value from OSX MEGA 5 assert_allclose(calc.stderr["s1", "s2"], 0.2108185107) # same answer when using ambiguous alignment calc.run(self.ambig_alignment, show_progress=False) assert_allclose(calc.dists["s1", "s2"], 0.2554128119) # but different answer if subsequent alignment is different calc.run(self.diff_alignment, show_progress=False) self.assertTrue(calc.dists["s1", "s2"] != 0.2554128119)