BioPython,如何将.fasta转换为.clustal对齐的.aln?

2 投票
1 回答
3582 浏览
提问于 2025-04-18 07:40

我有一个.fasta文件,我想把它转换成.aln格式,这样就可以用alignIO.read命令来对齐了。或者我想给我的fasta文件加上“Clustal头”,因为当我用这个fasta文件时,它提示说不是一个已知的clustal头。请问“ClustalwCommandline”的返回值是应该做到这一点吗?因为在教程里说要把它的返回值赋给cline,然后只打印cline,我不太确定该怎么处理这个cline。

补充一下:我还需要输出一个.dnd文件,但我也不知道该怎么做。

1 个回答

6

你不需要手动转换任何东西,比如如果你按照下面的代码来做:

>>> 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() 会运行上面构建的命令,并把输出和错误信息分别返回给 stdoutstderr 变量。如果你打印 stdoutstderr,你会发现 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

希望这对你有帮助,祝好!

撰写回答