我希望能够使用与脚本在同一目录中下载的文件编写多序列对齐。然而,在Biopython食谱中,显示这一点的唯一方法是写出字符串而不是加载文件。我希望能够做到后者。以下是生物蟒食谱第6.2章中如何进行多序列比对
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
from Bio.Align import MultipleSeqAlignment
align1 = MultipleSeqAlignment([
SeqRecord(Seq("ACTGCTAGCTAG", generic_dna), id="Alpha"),
SeqRecord(Seq("ACT-CTAGCTAG", generic_dna), id="Beta"),
SeqRecord(Seq("ACTGCTAGDTAG", generic_dna), id="Gamma"),
])
目标是利用这一点来从所有蛋白质序列中制造出一棵门树。
该示例使用三个SeqRecord对象,这些对象是使用提供的DNA字符串创建的。SeqIO.parse
使您能够读取例如fasta格式的文件,并返回SeqRecord对象以进行对齐。
例:
import os
from Bio import SeqIO
from Bio.Align import MultipleSeqAlignment
# files needs to be a list containing the filenames
# use e.g.
# files = [f for f in os.listdir() if 'fasta' in f]
records = []
for f in files:
for record in SeqIO.parse(f, format='fasta'):
records.append(record)
align1 = MultipleSeqAlignment(records)
或者,如果您已经有序列文件,则可以将这些文件连接成一个,然后在独立或在线模式下使用Clustal omega等工具。