在 GitHub 上編輯此頁面

SeqIO - 開發者提示

此頁面旨在為任何有興趣了解或擴展 Biopython 新序列輸入/輸出介面的開發人員或程式設計人員提供幫助,SeqIO

讀取新的檔案格式

注意:詳細資訊仍可能變更

若要新增讀取新檔案格式的支援,您必須實作一個迭代器,該迭代器應接受檔案控制代碼並傳回 SeqRecord 物件。您可以使用以下方式執行此操作:

您可以接受其他可選引數。但是,必須只有一個必要引數(輸入檔案控制代碼)。

您將 SeqRecordidnamedescription 作為哪些內容,將取決於檔案格式。理想情況下,您會使用 id 的存取編號。此 ID 對於每個記錄也應是唯一的(除非檔案中的記錄本身不明確)。

當在記錄的註解字典中儲存任何註解時,請遵循 GenBank 剖析器所制定的事實標準...我應該嘗試更詳細地記錄這一點。

如果提供的檔案似乎無效,請引發 ValueError 例外。

最後,必須將新格式新增至 Bio/SeqIO/__init__.py 中的相關對應字典,以便 Bio.SeqIO.parse()Bio.SeqIO.read() 函式可以識別它。

寫入新的檔案格式

注意:詳細資訊仍可能變更

若要新增寫入新檔案格式的支援,您應該撰寫 Bio.SeqIO.Interfaces 中其中一個寫入器物件的子類別。

然後,必須將新格式新增至 Bio/SeqIO/__init__.py 中的相關對應字典,以便 Bio.SeqIO.write() 函式可以識別您的程式碼。

如果提供的記錄無法寫入此檔案格式,請引發 ValueError 例外。在適當的情況下,請使用以下措詞

raise ValueError("Must have at least one sequence")
raise ValueError("Sequences must all be the same length")
raise ValueError("Duplicate record identifier: %s" % ...)
...

待辦事項 - 在 Bio.SeqIO 本身中定義標準例外?

其他可能的格式

Biopython 中已存在以下檔案格式的剖析器,如果適合,可以將其整合到 SeqIOAlignIOSearchIO 中。

KEGG 格式

Bio.KEGG 可以剖析 KEGG 格式 的檔案嗎?

MEME 格式

Bio.MEME 有此檔案格式的剖析器,乍看之下,可以將其視為比對格式。

http://meme-suite.org/

BLAST 結果

來自 BLAST 套件的成對比對可以使用 Bio.AlignIO 轉換為成對的 Alignment 物件。這有用嗎?錯誤 2560 上的範例程式碼