2016-09-15 13 views
0

リスト上で.get_topologyを使用してフィロツリーを作成しましたが、科学的な名前を追加してノードにランク付けすることはできません。具体的にETE3:.get_topologyによって作成されたツリー上の異なる属性を取得する方法

from ete3 import NCBITaxa, Tree, TreeStyle, NodeStyle 

    Ltax = [561863, 333367, 518636, 1262999, 657322, 550540, 44012, 748224, 518636, 1309411] 
    ncbi = NCBITaxa() 
    t = ncbi.get_topology(Ltax, intermediate_nodes=False) 

私は

tax2names, tax2lineages, tax2rank = t.annotate_ncbi_taxa() 
    ncbi.annotate_tree(t, taxid_attr='name', tax2name=tax2names, tax2track=tax2lineages, tax2rank=tax2rank) 

を使用してみました。しかし、それは空の辞書を返します。私は、ノードが対応する属性の下にランク、sci名、税IDを持つようにしたい。私は間違って何をしていますか?

おかげで、 アラシュ

答えて

0

OK、私は試行錯誤によって答えを考え出しました。

Ltax = [561863, 333367, 518636, 1262999, 657322, 550540, 44012, 748224, 518636, 1309411] 
ncbi = NCBITaxa() 
t = ncbi.get_topology(Ltax, intermediate_nodes=False) 
ncbi.annotate_tree(t, taxid_attr='name') 

ete3輸入NCBITaxa、ツリー

からこれがツリーに注釈を付けますと、あなたはノードを介して横断することにより注釈を確認することができます。

for node in t.iter_descendants("postorder"): 

    #print(node.name) 
    #print(node.species) 
    #print(node.named_lineage) 
    #print(node.lineage) 
    #print(node.sci_name) 
    print(node.rank) 
関連する問題