如何使用fasta文件而不是biopython中的蛋白质序列字符串创建多个序列比对



我希望能够使用与脚本在同一目录中下载的文件编写多序列对齐。然而,在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等工具。

相关内容

  • 没有找到相关文章

最新更新