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

我希望能够使用我在与脚本相同的目录中下载的文件来编写多个序列比对。但是,在《 Biopython Cookbook》中,显示此问题的唯一方法是通过写出字符串而不是加载文件。我希望能够做到后者。这是在Chapter 6.2 of The biopython cookbook

中进行多序列比对的方法
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",id="Beta"),SeqRecord(Seq("actGCTAGDTAG",id="Gamma"),])

目标是使用它来从所有蛋白质序列中构建出门生树。

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

该示例使用三个SeqRecord对象,这些对象是使用提供的DNA字符串创建的。 SeqIO.parse使您可以读取文件,例如快速格式化并返回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之类的工具。

本文链接:https://www.f2er.com/3001994.html

大家都在问