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

儲存與節點相關的樹狀結構相關資料(例如,分支或 OTU)。

__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)

傳回從節點向下延伸的所有 OTU 的列表。

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_branchlength(self, root=None, node=None)

set_subtree(node)

以巢狀集合的形式回傳子樹。

集合 = set_subtree(self, node)

is_identical(tree2)

比較兩棵樹 tree 和 tree2 是否相同。

結果 = is_identical(self, tree2)

is_compatible(tree2, threshold, strict=True)

比較分支支持度大於閾值 (threshold) 的分支是否相容。

結果 = is_compatible(self, tree2, threshold)

common_ancestor(node1, node2)

回傳連接兩個節點的共同祖先節點。

節點 ID = common_ancestor(self, node1, node2)

distance(node1, node2)

計算並回傳兩個節點之間的所有分支長度總和。

距離 = distance(self, node1, node2)

is_monophyletic(taxon_list)

如果 taxon_list 是單系群,則回傳共同祖先的節點 ID,否則回傳 -1。

結果 = 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)

使用參考群體外群定義樹的根節點。

merge_with_support(bstrees=None, constree=None, threshold=0.5, outgroup=None)

將分支支持度 (來自共識樹或自舉樹列表) 與系統發生樹合併。

tree=merge_bootstrap(phylo, bs_tree=<樹狀結構列表>) 或 tree=merge_bootstrap(phylo, consree=具有分支支持度的共識樹)

Bio.Nexus.Trees.consensus(trees, threshold=0.5, outgroup=None)

計算來自樹狀結構列表,所有相對頻率 >= 閾值之分支的多數規則共識樹。