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