此頁面旨在為任何有興趣了解或擴展 Biopython 新序列輸入/輸出介面的開發人員或程式設計人員提供幫助,SeqIO
。
注意:詳細資訊仍可能變更
若要新增讀取新檔案格式的支援,您必須實作一個迭代器,該迭代器應接受檔案控制代碼並傳回 SeqRecord
物件。您可以使用以下方式執行此操作:
Bio.SeqIO.Interfaces
的迭代器類別yield
關鍵字;適用於簡單的格式)SeqRecord
的清單,然後使用 iter()
函式將其轉換為迭代器。您可以接受其他可選引數。但是,必須只有一個必要引數(輸入檔案控制代碼)。
您將 SeqRecord
的 id
、name
和 description
作為哪些內容,將取決於檔案格式。理想情況下,您會使用 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 中已存在以下檔案格式的剖析器,如果適合,可以將其整合到 SeqIO
、AlignIO
或 SearchIO
中。
Bio.KEGG
可以剖析 KEGG 格式 的檔案嗎?
Bio.MEME
有此檔案格式的剖析器,乍看之下,可以將其視為比對格式。
來自 BLAST 套件的成對比對可以使用 Bio.AlignIO
轉換為成對的 Alignment 物件。這有用嗎?錯誤 2560 上的範例程式碼