Bio.Nexus.Trees 模块
处理系统发育树的 Tree 类。
提供了一组方法来读取和写入 newick 格式的树描述,获取有关树的信息(分类单元集的单系性、树之间的一致性、共同祖先等),以及操作树(重新生根树、分割终端节点)。
- exception Bio.Nexus.Trees.TreeError
基类:
Exception
提供 Tree 异常管理机制。
- class Bio.Nexus.Trees.NodeData(taxon=None, branchlength=0.0, support=None, comment=None)
基类:
object
存储与节点(例如分支或 OTUs)相关的树相关数据。
- __init__(taxon=None, branchlength=0.0, support=None, comment=None)
初始化类。
- class Bio.Nexus.Trees.Tree(tree=None, weight=1.0, rooted=False, name='', data=NodeData, values_are_support=False, max_support=1.0)
基类:
Chain
使用带有单个前驱(=祖先)和多个后继(=子分支)的节点链来表示树。
- __init__(tree=None, weight=1.0, rooted=False, name='', data=NodeData, values_are_support=False, max_support=1.0)
Ntree(self,tree).
- node(node_id)
返回 node_id 的实例。
node = node(self,node_id)
- split(parent_id=None, n=2, branchlength=1.0)
物种形成:生成节点的 n 个(默认两个)后代。
[new ids] = split(self,parent_id=None,n=2,branchlength=1.0)
- search_taxon(taxon)
返回 self.data.taxon 中第一个匹配的分类单元。不限于终端节点。
node_id = search_taxon(self,taxon)
- prune(taxon)
从树中修剪一个终端分类单元。
id_of_previous_node = prune(self,taxon) 如果分类单元来自一个二分叉,连接节点将被折叠,其分支长度将加到剩余的终端节点。这可能不再是一个有意义的值。
- get_taxa(node_id=None)
返回从节点向下所有 OTUs 的列表。
nodes = get_taxa(self,node_id=None)
- get_terminals()
返回所有终端节点的列表。
- is_terminal(node)
如果节点是终端节点,则返回 True。
- is_internal(node)
如果节点是内部节点,则返回 True。
- is_preterminal(node)
如果节点的所有后继都是终端节点,则返回 True。
- count_terminals(node=None)
计算连接到节点的终端节点数量。
- collapse_genera(space_equals_underscore=True)
折叠属于相同属的所有子树。
(即在它们的分类单元名称中共享相同的第一个词。)
- sum_branchlength(root=None, node=None)
将从根节点(默认 self.root)到节点的分支长度加起来。
sum = sum_branchlength(self,root=None,node=None)
- set_subtree(node)
将子树作为一组嵌套集返回。
sets = set_subtree(self,node)
- is_identical(tree2)
比较树和 tree2 以确定是否相同。
result = is_identical(self,tree2)
- is_compatible(tree2, threshold, strict=True)
比较支持度大于阈值的支系以确定兼容性。
result = is_compatible(self,tree2,threshold)
- common_ancestor(node1, node2)
返回连接两个节点的共同祖先。
node_id = common_ancestor(self,node1,node2)
- distance(node1, node2)
添加并返回两个节点之间支系长度的总和。
dist = distance(self,node1,node2)
- is_monophyletic(taxon_list)
如果taxon_list是单系的,则返回共同祖先的node_id,否则返回-1。
result = is_monophyletic(self,taxon_list)
- is_bifurcating(node=None)
如果节点下游的树严格二叉分,则返回True。
- branchlength2support()
将存储在data.branchlength中的值移动到data.support,并将branchlength设置为0.0。
当支持度存储为支系长度时(例如paup),并且因此被读入为支系长度时,这是必要的。
- convert_absolute_support(nrep)
将绝对支持度(分支计数)转换为相对频率。
一些软件(例如PHYLIP consense)只计算分支出现的频率,而不是计算相对频率。
- has_support(node=None)
如果任何节点的data.support != None,则返回True。
- randomize(ntax=None, taxon_list=None, branchlength=1.0, branchlength_sd=None, bifurcate=True)
生成一个具有ntax个分类单元或来自taxlabels的分类单元的随机树。
new_tree = randomize(self,ntax=None,taxon_list=None,branchlength=1.0,branchlength_sd=None,bifurcate=True) 默认情况下,树是二叉分叉的。(多叉分叉尚未支持)。
- display()
所有节点的快速简陋列表。
- to_string(support_as_branchlengths=False, branchlengths_only=False, plain=True, plain_newick=False, ladderize=None, ignore_comments=True)
返回一条paup兼容的树行。
- __str__()
to_string()的简短版本,给出普通树。
- unroot()
定义一个无根树结构,使用有根树的数据。
- root_with_outgroup(outgroup=None)
使用参考组outgroup定义树的根。
- merge_with_support(bstrees=None, constree=None, threshold=0.5, outgroup=None)
将分支支持度(来自一致树或自举树列表)与系统树合并。
tree=merge_bootstrap(phylo,bs_tree=<list_of_trees>) 或 tree=merge_bootstrap(phylo,consree=包含分支支持度的一致树)
- Bio.Nexus.Trees.consensus(trees, threshold=0.5, outgroup=None)
从树列表中计算所有相对频率>=阈值的支系的多数规则一致树。