2016-04-14 76 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