本文整理汇总了Python中cogent.parse.tree.DndParser.getNodeMatchingName方法的典型用法代码示例。如果您正苦于以下问题:Python DndParser.getNodeMatchingName方法的具体用法?Python DndParser.getNodeMatchingName怎么用?Python DndParser.getNodeMatchingName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cogent.parse.tree.DndParser
的用法示例。
在下文中一共展示了DndParser.getNodeMatchingName方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_make_distance_based_exclusion_fn
# 需要导入模块: from cogent.parse.tree import DndParser [as 别名]
# 或者: from cogent.parse.tree.DndParser import getNodeMatchingName [as 别名]
def test_make_distance_based_exclusion_fn(self):
"""make_distance_based_exclusion_fn should return a working function"""
exclude_similar_strains = make_distance_based_exclusion_fn(0.03)
# Test that new function is documented
exp_doc = "Exclude neighbors of tip within 0.030000 branch length units"
self.assertEqual(exp_doc, exclude_similar_strains.__doc__)
# Test that the function works
test_tree = self.SimpleTree.deepcopy()
# print test_tree.getNewick(with_distances=True)
tip = test_tree.getNodeMatchingName("C")
obs = exclude_similar_strains(tip, test_tree).getNewick(with_distances=True)
exp = "(A:0.02,B:0.01)root;"
self.assertEqual(obs, exp)
# Test on a tree where a single node will remain
test_tree = DndParser("((A:0.02,B:0.01)E:0.05,(C:0.06,D:0.01)F:0.05)root;")
# print test_tree.getNewick(with_distances=True)
tip = test_tree.getNodeMatchingName("D")
obs = exclude_similar_strains(tip, test_tree).getNewick(with_distances=True)
exp = "((A:0.02,B:0.01)E:0.05,C:0.11)root;"
self.assertEqual(obs, exp)
# Test that we raise if distance is too large
test_tree = self.SimpleTree.deepcopy()
test_fn = make_distance_based_exclusion_fn(300.0)
tip = test_tree.getNodeMatchingName("C")
self.assertRaises(ValueError, test_fn, tip, test_tree)
示例2: test_get_nearest_named_ancestor
# 需要导入模块: from cogent.parse.tree import DndParser [as 别名]
# 或者: from cogent.parse.tree.DndParser import getNodeMatchingName [as 别名]
def test_get_nearest_named_ancestor(self):
"""correctly get the nearest named ancestor"""
t = DndParser("(((s1,s2)g1,s3))root;")
t2 = DndParser("(((s1,s2)g1,s3));")
exp_t = t
exp_t2 = None
obs_t = get_nearest_named_ancestor(t.getNodeMatchingName('s3'))
obs_t2 = get_nearest_named_ancestor(t2.getNodeMatchingName('s3'))
self.assertEqual(obs_t, exp_t)
self.assertEqual(obs_t2, exp_t2)
示例3: test_unifrac_make_subtree
# 需要导入模块: from cogent.parse.tree import DndParser [as 别名]
# 或者: from cogent.parse.tree.DndParser import getNodeMatchingName [as 别名]
def test_unifrac_make_subtree(self):
"""unifrac result should not depend on make_subtree
environment M contains only tips not in tree, tip j, k is in no envs
one clade is missing entirely
values were calculated by hand
we also test that we still have a valid tree at the end
"""
t1 = DndParser('((a:1,b:2):4,((c:3, (j:1,k:2)mt:17),(d:1,e:1):2):3)',\
UniFracTreeNode) # note c,j is len 0 node
# /-------- /-a
# ---------| \-b
# | /-------- /-c
# \--------| \mt------ /-j
# | \-k
# \-------- /-d
# \-e
#
env_str = """
a A 1
a C 2
b A 1
b B 1
c B 1
d B 3
e C 1
m M 88"""
env_counts = count_envs(env_str.splitlines())
self.assertFloatEqual(fast_unifrac(t1,env_counts,make_subtree=False)['distance_matrix'], \
(array(
[[0,10/16, 8/13],
[10/16,0,8/17],
[8/13,8/17,0]]),['A','B','C']))
self.assertFloatEqual(fast_unifrac(t1,env_counts,make_subtree=True)['distance_matrix'], \
(array(
[[0,10/16, 8/13],
[10/16,0,8/17],
[8/13,8/17,0]]),['A','B','C']))
# changing tree topology relative to c,j tips shouldn't change anything
t2 = DndParser('((a:1,b:2):4,((c:2, (j:1,k:2)mt:17):1,(d:1,e:1):2):3)', \
UniFracTreeNode)
self.assertFloatEqual(fast_unifrac(t2,env_counts,make_subtree=False)['distance_matrix'], \
(array(
[[0,10/16, 8/13],
[10/16,0,8/17],
[8/13,8/17,0]]),['A','B','C']))
self.assertFloatEqual(fast_unifrac(t2,env_counts,make_subtree=True)['distance_matrix'], \
(array(
[[0,10/16, 8/13],
[10/16,0,8/17],
[8/13,8/17,0]]),['A','B','C']))
# ensure we haven't meaningfully changed the tree
# by passing it to unifrac
t3 = DndParser('((a:1,b:2):4,((c:3, (j:1,k:2)mt:17),(d:1,e:1):2):3)',\
UniFracTreeNode) # note c,j is len 0 node
t1_tips = [tip.Name for tip in t1.tips()]
t1_tips.sort()
t3_tips = [tip.Name for tip in t3.tips()]
t3_tips.sort()
self.assertEqual(t1_tips, t3_tips)
tipj3 = t3.getNodeMatchingName('j')
tipb3 = t3.getNodeMatchingName('b')
tipj1 = t1.getNodeMatchingName('j')
tipb1 = t1.getNodeMatchingName('b')
self.assertFloatEqual(tipj1.distance(tipb1), tipj3.distance(tipb3))
示例4: TestPredictTraits
# 需要导入模块: from cogent.parse.tree import DndParser [as 别名]
# 或者: from cogent.parse.tree.DndParser import getNodeMatchingName [as 别名]
class TestPredictTraits(TestCase):
"""Tests of predict_traits.py"""
def setUp(self):
self.SimpleTree = \
DndParser("((A:0.02,B:0.01)E:0.05,(C:0.01,D:0.01)F:0.05)root;")
#Set up a tree with obvious differences in the rate of gene content
#evolution to test confidence interval estimation
#Features:
# --trait 1 is has ~ 10 fold higher confidence intervals than trait 0.
# Trait 2 is 10 fold higher than trait 1
# -- of predicted nodes B and D, D has a ~10 fold longer branch
self.SimpleUnequalVarianceTree =\
DndParser("((A:0.01,B:0.01)E:0.05,(C:0.01,D:0.10)F:0.05)root;")
traits = {"A":[1.0,1.0,1.0],"C":[1.0,1.0,1.0],"E":[1.0,1.0,1.0],"F":[1.0,1.0,1.0]}
self.SimpleUnequalVarianceTree = assign_traits_to_tree(traits,\
self.SimpleUnequalVarianceTree,trait_label="Reconstruction")
self.SimpleUnequalVarianceTree.getNodeMatchingName('E').upper_bound = [2.0,20.0,200.0]
self.SimpleUnequalVarianceTree.getNodeMatchingName('E').lower_bound = [-1.0,-19.0,-199.0]
self.SimpleUnequalVarianceTree.getNodeMatchingName('F').upper_bound = [2.0,20.0,200.0]
self.SimpleUnequalVarianceTree.getNodeMatchingName('F').lower_bound = [-1.0,-19.0,-199.0]
#Set up a tree with a three-way polytomy
self.SimplePolytomyTree = \
DndParser("((A:0.02,B:0.01,B_prime:0.03)E:0.05,(C:0.01,D:0.01)F:0.05)root;")
self.SimpleTreeTraits =\
{"A":[1.0,1.0],"E":[1.0,1.0],"F":[0.0,1.0],"D":[0.0,0.0]}
self.PartialReconstructionTree =\
DndParser("((((B:0.01,C:0.01)I3:0.01,A:0.01)I2:0.01,D:0.01)I1:0.01)root;")
self.CloseToI3Tree =\
DndParser("((((B:0.01,C:0.95)I3:0.01,A:0.01)I2:0.95,D:0.05)I1:0.95)root;")
self.CloseToI1Tree =\
DndParser("((((B:0.95,C:0.95)I3:0.95,A:0.01)I2:0.02,D:0.05)I1:0.05)root;")
self.BetweenI3AndI1Tree=\
DndParser("((((B:0.01,C:0.1)I3:0.02,A:0.01)I2:0.02,D:0.05)I1:0.02)root;")
self.PartialReconstructionTraits =\
{"B":[1.0,1.0],"C":[1.0,1.0],"I3":[1.0,1.0],"I1":[0.0,1.0],"D":[0.0,1.0]}
self.GeneCountTraits =\
{"B":[1.0,1.0],"C":[1.0,2.0],"I3":[1.0,1.0],"I1":[0.0,3.0],"D":[0.0,5.0]}
#create a tmp trait file
self.in_trait1_fp = get_tmp_filename(prefix='Predict_Traits_Tests',suffix='.tsv')
self.in_trait1_file=open(self.in_trait1_fp,'w')
self.in_trait1_file.write(in_trait1)
self.in_trait1_file.close()
#create another tmp trait file (with columns in different order)
self.in_trait2_fp = get_tmp_filename(prefix='Predict_Traits_Tests',suffix='.tsv')
self.in_trait2_file=open(self.in_trait2_fp,'w')
self.in_trait2_file.write(in_trait2)
self.in_trait2_file.close()
#create a tmp trait file with a incorrect trait name
self.in_bad_trait_fp = get_tmp_filename(prefix='Predict_Traits_Tests',suffix='.tsv')
self.in_bad_trait_file=open(self.in_bad_trait_fp,'w')
self.in_bad_trait_file.write(in_bad_trait)
self.in_bad_trait_file.close()
self.files_to_remove = [self.in_trait1_fp,self.in_trait2_fp,self.in_bad_trait_fp]
def tearDown(self):
remove_files(self.files_to_remove)
def test_nearest_neighbor_prediction(self):
"""nearest_neighbor_prediction predicts nearest neighbor's traits"""
traits = self.SimpleTreeTraits
tree = self.SimpleTree
result_tree = assign_traits_to_tree(traits,tree,trait_label="Reconstruction")
#Test with default options
results = predict_nearest_neighbor(tree, nodes_to_predict =["B","C"])
self.assertEqual(results["B"],array([1.0,1.0]))
self.assertEqual(results["C"],array([0.0,0.0]))
#Test allowing ancestral NNs
results = predict_nearest_neighbor(tree, nodes_to_predict =["B","C"],\
tips_only = False)
self.assertEqual(results["C"],array([0.0,1.0]))
#Test allowing self to be NN AND Ancestral NNs
results = predict_nearest_neighbor(tree, nodes_to_predict =["A","B","C","D"],\
tips_only = False,use_self_in_prediction=True)
self.assertEqual(results["A"],array([1.0,1.0]))
self.assertEqual(results["B"],array([1.0,1.0]))
self.assertEqual(results["C"],array([0.0,1.0]))
self.assertEqual(results["D"],array([0.0,0.0]))
#.........这里部分代码省略.........