BioPython,如何将.fasta转换为.clustal对齐的.aln?
我有一个.fasta文件,我想把它转换成.aln格式,这样就可以用alignIO.read命令来对齐了。或者我想给我的fasta文件加上“Clustal头”,因为当我用这个fasta文件时,它提示说不是一个已知的clustal头。请问“ClustalwCommandline”的返回值是应该做到这一点吗?因为在教程里说要把它的返回值赋给cline,然后只打印cline,我不太确定该怎么处理这个cline。
补充一下:我还需要输出一个.dnd文件,但我也不知道该怎么做。
1 个回答
你不需要手动转换任何东西,比如如果你按照下面的代码来做:
>>> from Bio.Align.Applications import ClustalwCommandline
在导入了 ClustalwCommandline
之后,你可以指定你的对齐文件的名字,cline
是下面这行代码中正在构建的一个命令:
>>> cline = ClustalwCommandline("clustalw", infile="opuntia1.fasta", outfile="opuntia1.aln")
>>> print cline
clustalw -infile=opuntia1.fasta -outfile=opuntia1.aln
现在,当你写下下面这行代码时,cline() 会运行上面构建的命令,并把输出和错误信息分别返回给 stdout
和 stderr
变量。如果你打印 stdout
和 stderr
,你会发现 stdout 打印的是与对齐相关的内容,而因为上面的命令没有错误,所以如果你打印 stderr
,它什么也不会显示。与此同时,名为 opuntia1.aln
的输出文件现在包含了对齐结果。去打开那个 aln 文件,你应该能看到对齐的内容。
>>> stdout, stderr = cline()
>>>
>>> print stdout
CLUSTAL 2.1 Multiple Sequence Alignments
Sequence format is Pearson
Sequence 1: CDS 1574 bp
Sequence 2: EST 723 bp
Start of Pairwise alignments
Aligning...
Sequences (1:2) Aligned. Score: 9
Guide tree file created: [opuntia1.dnd]
There are 1 groups
Start of Multiple Alignment
Aligning...
Group 1: Delayed
Alignment Score 490
CLUSTAL-Alignment file created [opuntia1.aln]
>>> print stderr
对于 .dnd 文件,你不需要指定输出文件,运行代码后默认会从 fasta 文件生成一个 dnd 文件。这里有一句直接引用:
默认情况下,ClustalW 会生成一个对齐文件和一个引导树文件,文件名是基于输入的 FASTA 文件,这里是 opuntia.aln 和 opuntia.dnd,但你可以覆盖这个设置或明确指定
来源: http://biopython.org/DIST/docs/tutorial/Tutorial.html#sec89
希望这对你有帮助,祝好!