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)

从树列表中计算所有相对频率>=阈值的支系的多数规则一致树。