2016-04-14 19 views
0

phyloxmlファイルのチップラベルを編集しようとしています。そのため、4桁の数字しか表示されません。例えば、私が現在phyloxmlファイルに名前を付けているのは、左のIDです。私が欲しいのは、右のIDです:Phyloxml:ファイル内で検索して置換する

ACOM042150-PA ACOM 
AQUA008971-PA AQUA 
AGAP002137-PA AGAP 
AARA006802-PA AARA 

私は、これまでの方法を置き換える使用して、私がしたい文字を摘み取ることができているコード:

tree = Phylo.read("GSCGT000003.xml", "phyloxml") 
for i, clade in enumerate(tree.find_clades(name=True)): 
    print clade.name.replace(clade.name, clade.name[0:4]) 

これは端末に必要な名前を印刷しますしかし、私はファイル内で置き換えたり、変更を加えて新しいファイルに書き込む方法が不明です。 Phylo.writeを使用して新しいファイルに書き込むことはできますが、変更を加えてファイルを書き込めないようです。何かご意見は?ありがとう。

答えて

0

あなたは、各クレードの名前を変更し、新しいファイルにツリーを保存する必要があります。

tree = Phylo.read("GSCGT000003.xml", "phyloxml") 

for clade in tree.find_clades(name=True): 
    # This changes the clade name to only the first four chars 
    clade.name = clade.name[:4] 

# At this point all clade names has been changed in-place 
Phylo.write(tree, "GSCGT000003_modified.xml", "phyloxml") 
+0

これは完璧に動作します。ありがとう! – spiral01