在 GitHub 上編輯此頁面

使用 Bio.SeqIO 模組轉換序列檔案。

問題

許多生物資訊工具會使用不同的輸入檔案格式,因此常常需要轉換序列檔案格式。一個有用的選項是指令列工具 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 檔案只能儲存識別符、描述和序列。

透過更改格式字串,該程式碼可用於在任何支援的檔案格式之間進行轉換。

您不必使用檔案控制代碼 - 請參閱這個使用 使用 Bio.SeqIO 從 stdin 和 stdout 管道讀取的範例。

運作方式

請參閱 Bio.SeqIO 頁面。