0

我希望能够使用与我的脚本在同一目录中下载的文件编写多个序列比对。然而,在 Biopython Cookbook 中,唯一的显示方式是写出字符串而不是加载文件。我希望能够做到后者。以下是The biopython cookbook的第 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"),
         ])

目标是使用它来从所有蛋白质序列中制作门树。

4

1 回答 1

0

该示例使用了三个使用提供的 DNA 字符串创建的 SeqRecord 对象。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之类的工具。

于 2019-11-30T18:30:01.253 回答