def test_root_midpt2(self): """ midpoint between nodes should behave correctly""" from qiime.make_phylogeny import root_midpt from cogent.core.tree import PhyloNode from qiime.parse import parse_newick tree = parse_newick('(a:1,((c:1,d:2.5)n3:1,b:1)n2:1)rt;') tmid = root_midpt(tree) self.assertEqual(tmid.getDistances(), tree.getDistances()) tipnames = tree.getTipNames() nontipnames = [t.Name for t in tree.nontips()] self.assertTrue(tmid.isRoot()) self.assertEqual(tmid.distance(tmid.getNodeMatchingName('d')), 2.75)
def test_root_midpt2(self): """ midpoint between nodes should behave correctly""" from qiime.make_phylogeny import root_midpt from cogent.core.tree import PhyloNode from qiime.parse import parse_newick tree = parse_newick('(a:1,((c:1,d:2.5)n3:1,b:1)n2:1)rt;') tmid = root_midpt(tree) self.assertEqual(tmid.getDistances(),tree.getDistances()) tipnames = tree.getTipNames() nontipnames = [t.Name for t in tree.nontips()] self.assertTrue(tmid.isRoot()) self.assertEqual(tmid.distance(tmid.getNodeMatchingName('d')), 2.75)
def test_root_midpt(self): """midpoint should be selected correctly when it is an internal node """ from qiime.make_phylogeny import root_midpt from cogent.core.tree import PhyloNode from qiime.parse import parse_newick tree = parse_newick('(a:1,((c:1,d:3)n3:1,b:1)n2:1)rt;') tmid = root_midpt(tree) self.assertEqual(tmid.getDistances(), tree.getDistances()) tipnames = tree.getTipNames() nontipnames = [t.Name for t in tree.nontips()] # for tipname in tipnames: # tmid_tip = tmid.getNodeMatchingName(tipname) # orig_tip = tree.getNodeMatchingName(tipname) # for nontipname in nontipnames: # tmid_dist=\ # tmid.getNodeMatchingName(nontipname).distance(tmid_tip) # orig_dist=\ # tree.getNodeMatchingName(nontipname).distance(orig_tip) # print nontipname, tipname, 'assert' # self.assertEqual(tmid_dist, orig_dist) self.assertTrue(tmid.isRoot()) self.assertEqual(tmid.distance(tmid.getNodeMatchingName('d')), 3)
def test_root_midpt(self): """midpoint should be selected correctly when it is an internal node """ from qiime.make_phylogeny import root_midpt from cogent.core.tree import PhyloNode from qiime.parse import parse_newick tree = parse_newick('(a:1,((c:1,d:3)n3:1,b:1)n2:1)rt;') tmid = root_midpt(tree) self.assertEqual(tmid.getDistances(),tree.getDistances()) tipnames = tree.getTipNames() nontipnames = [t.Name for t in tree.nontips()] # for tipname in tipnames: # tmid_tip = tmid.getNodeMatchingName(tipname) # orig_tip = tree.getNodeMatchingName(tipname) # for nontipname in nontipnames: # tmid_dist=\ # tmid.getNodeMatchingName(nontipname).distance(tmid_tip) # orig_dist=\ # tree.getNodeMatchingName(nontipname).distance(orig_tip) # print nontipname, tipname, 'assert' # self.assertEqual(tmid_dist, orig_dist) self.assertTrue(tmid.isRoot()) self.assertEqual(tmid.distance(\ tmid.getNodeMatchingName('d')), 3)