BioPython,如何从.fasta转换为.aln进行clustal对齐?

BioPython,如何从.fasta转换为.aln进行clustal对齐?,python,bioinformatics,biopython,fasta,clustal,Python,Bioinformatics,Biopython,Fasta,Clustal,我有一个.fasta文件,我希望将其转换为.aln,以便它可以与alignIO.read命令对齐,或者以某种方式给我的fasta文件“Clustal Headers”,因为当我使用fasta文件时,它只输出它不是已知的Clustal头,“ClustalwCommandline”返回应该这样做,因为在教程中,它说要将其返回值指定给cline,只需打印cline,不确定如何处理cline 编辑:-我还应该输出一个.dnd文件,但不确定如何进行您不需要手动转换任何内容,例如,如果您遵循以下代码: &g

我有一个.fasta文件,我希望将其转换为.aln,以便它可以与alignIO.read命令对齐,或者以某种方式给我的fasta文件“Clustal Headers”,因为当我使用fasta文件时,它只输出它不是已知的Clustal头,“ClustalwCommandline”返回应该这样做,因为在教程中,它说要将其返回值指定给cline,只需打印cline,不确定如何处理cline


编辑:-我还应该输出一个.dnd文件,但不确定如何进行

您不需要手动转换任何内容,例如,如果您遵循以下代码:

>>> 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文件,您不需要指定outfile,运行代码后的默认文件将从fasta文件创建一个dnd文件。以下是直接引述:

默认情况下,ClustalW将根据输入的FASTA文件(在本例中为opuntia.aln和opuntia.dnd)生成名为的路线和导向树文件,但您可以覆盖该文件或使其显式化

资料来源:


希望有帮助,干杯

在我进入stdout,stderr=cline()行后,它会打印一个错误“Bio.Application.ApplicationError:Command'clustalw-infle=biostarlaw.fasta-outfile=biostarlaw.aln'返回非零退出状态127,/bin/sh:1:clustalw:notfound',我忘记安装了吗?您没有安装clustalw,因此无法运行该命令。它认为clustalw是当前目录中的一个shell脚本,这是完全错误的!安装clustalw并重试。它应该很好用!