许多生物信息学工具使用不同的输入文件格式,因此需要在序列文件格式之间进行相互转换。一个有用的选择是命令行工具 EMBOSS 的 seqret,但在这里我们将展示如何使用 Bio.SeqIO 来解决这个问题。
假设您有一个 GenBank 文件,您希望将其转换为 Fasta 文件。例如,让我们考虑文件 cor6_6.gb
(包含在 Biopython 单元测试的 GenBank 目录下)
from Bio import SeqIO
with open("cor6_6.gb", "rU") as input_handle:
with open("cor6_6.fasta", "w") as output_handle:
sequences = SeqIO.parse(input_handle, "genbank")
count = SeqIO.write(sequences, output_handle, "fasta")
print("Converted %i records" % count)
在这个例子中,GenBank 文件包含六个记录,开头是这样的
LOCUS ATCOR66M 513 bp mRNA PLN 02-MAR-1992
DEFINITION A.thaliana cor6.6 mRNA.
ACCESSION X55053
VERSION X55053.1 GI:16229
...
生成的 Fasta 文件也包含所有六个记录,如下所示
>X55053.1 A.thaliana cor6.6 mRNA.
AACAAAACACACATCAAAAACGATTTTACAAGAAAAAAATA...
...
请注意,所有 Fasta 文件只能存储标识符、描述和序列。
通过更改格式字符串,该代码可用于在任何受支持的文件格式之间进行转换。
您无需使用文件句柄 - 请参阅使用 stdin 和 stdout 管道的 Bio.SeqIO 的示例。
请参阅 Bio.SeqIO 页面。