Sidra Younas
2018-12-17 13:16:35 UTC
我一直在使用biopython 1.72來顯示我的系統進化樹文件。
-
使用函數
'Phylo.draw(pars_tree,branch_labels = lambda c:c.branch_length )'
同時在樹上顯示分支長度,樹將分支長度顯示為包括小數點後的所有數字。雖然我希望將數字截斷到兩位小數位。以下是一種python方法,它最多可以截斷“所需的數字”
個小數位。 0):乘數= 10 **小數點返回int(n *乘數)/ multipliertruncate(12.567,2)#使用函數12.56#輸出我可以將biopython這樣的方法用於分支長度嗎? -
'Phylo.draw'
函數將打開一個非常狹窄的窗口,如果樹文件較大,則所有分支都將重疊,並且很難讀取所寫內容。有誰知道更好的顯示方法嗎? ol>
下面是示例代碼,我一直在使用:
from Bio import Phylofrom Bio。 Phylo.TreeConstruction導入*從Bio導入AlignIOaln = AlignIO.read(open('example.phy'),'phylip')calculator = DistanceCalculator()dm = Calculator.get_distance(aln)構造函數= DistanceTreeConstructor()njtree =構造函數.nj (dm)starting_tree = njtreescorer = ParsimonyScorer()searcher = NNITreeSearcher(scorer)constructor = ParsimonyTreeConstructor(searcher,starting_tree)pars_tree = Constructor.build_tree(aln)Phylo.draw(pars_tree,branch_labels = lambda c:c.branch_length >
我有一個msa文件作為輸入,它給出了一棵樹,看起來像:
_______ Human _______ | | | _______黑猩猩________ | | | _______狗
_______ | | _______ | | | | _______牛_______ || | | | | _______________________大象_______ | | | | | _______________________________鼠標| | _______ | | _______________________________________鴨嘴獸| | | | _______________________________________ Anole_lizard | | _______ | ______ | | _______________________________雞肉| | | _______ | | | | _______________________________ Zebra_finch | | | | _______________________________________________________非洲爪蟾_ | | _______________________________________________________斑馬魚| ______ | | | _______________________________________________________府谷| | ______________________________________________________________ Amphioxus
如果您不願意使用python可視化樹,則[FigTree](http://tree.bio.ed.ac.uk/software/figtree/)提供了一個很好的選擇。
好吧,這就是阻礙我的原因。我正在使用python。
您能否提供輸入樹的示例?我會解析樹文件本身,截斷值,編寫新樹,然後繪製它,而不是在繪製時嘗試這樣做,來解決這個問題。 BioPython的樹處理方法不是IMO的強項,因此,對於這種情況,我可能會使用ETE3或Dendropy-這些工具可能包括用於截斷節點/分支值的選項。
我已經為此編輯了我的問題。