私は Biopython を使用していくつかのアミノ酸配列を Clustal-Omega と整列させ、生成されたツリーをインポートしています。
from Bio.Align.Applications import ClustalOmegaCommandline
from Bio import AlignIO
from Bio import Phylo
clustalomega_cline = ClustalOmegaCommandline('/path/to/clustalo', infile=in_file, \
outfile=out_file, log = log_file, guidetree_out = guidetree_file, verbose=True, \
auto=True, force=True)
clustalomega_cline()
align = AlignIO.read(out_file, "fasta")
tree = Phylo.read(guidetree_file, "newick")
Phylo.draw(tree)
print [record.id for record in align if record.id not in \
[terminal.name for terminal in tree.get_terminals()]]
>['CTX-M-3', 'CTX-M-4', 'CTX-M-5', 'CTX-M-11', 'CTX-M-15', 'CTX-M-133']
print [terminal.name for terminal in tree.get_terminals() if \
terminal.name == None]
>[None, None, None, None, None, None]
したがって、インポートされたツリーには、None という名前のリーフ/ターミナルがいくつかあり、同等の数の名前付きリーフがありません。
ツリーのファイル (clustalo によってフォーマットされたもの) を調べてみたところ、名前が変更されている遺伝子の後に常に -0 があることに気付きました。
,
(
(
CTX-M-4:-0
,
CTX-M-5:-0
):0.00171644
,
CTX-M-76:0.00171644
):0.00432852
-0 は何を意味し、これを修正してすべての端末に名前を付けるにはどうすればよいですか?
補足として、fasta ファイルに DNA シーケンスを入力してアラインし、そのツリーをインポートすると、問題が発生していないようです。