Bio.SeqIO.PdbIO 模組

Bio.SeqIO 支援存取 PDB 和 mmCIF 檔案中的序列。

Bio.SeqIO.PdbIO.AtomIterator(pdb_id, structure)

從 Structure 物件回傳 SeqRecord。

讀取 Bio.PDB 解析器的結構之序列解析器的基礎函數。

一旦使用 Bio.PDB 的解析器將結構載入 Bio.PDB.Structure.Structure 物件後,序列解析器如何解讀殘基序列就沒有差異。此模組中的函數可供希望從殘基列表解析序列的 SeqIO 模組使用。

呼叫函數必須傳遞 Bio.PDB.Structure.Structure 物件。

詳細資訊請參閱 Bio.SeqIO.PdbIO.PdbAtomIterator 和 Bio.SeqIO.PdbIO.CifAtomIterator。

class Bio.SeqIO.PdbIO.PdbSeqresIterator(source)

基礎:SequenceIterator

PDB 檔案的解析器。

__init__(source)

為 PDB 檔案中的每個鏈回傳 SeqRecord 物件。

引數
  • source - 以文字模式開啟的輸入串流,或是檔案的路徑

這些序列衍生自 PDB 檔案標頭中的 SEQRES 行,而非 3D 結構的原子。

具體而言,會處理這些 PDB 記錄:DBREF、DBREF1、DBREF2、SEQADV、SEQRES、MODRES

請參閱:http://www.wwpdb.org/documentation/format23/sect3.html

這會透過 Bio.SeqIO 在內部呼叫,以進行基於 SEQRES 的 PDB 檔案格式解譯

>>> from Bio import SeqIO
>>> for record in SeqIO.parse("PDB/1A8O.pdb", "pdb-seqres"):
...     print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...     print(record.dbxrefs)
...
Record id 1A8O:A, chain A
['UNP:P12497', 'UNP:POL_HV1N5']

等效地,

>>> with open("PDB/1A8O.pdb") as handle:
...     for record in PdbSeqresIterator(handle):
...         print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...         print(record.dbxrefs)
...
Record id 1A8O:A, chain A
['UNP:P12497', 'UNP:POL_HV1N5']

請注意,鏈會記錄在註解字典中,而任何 PDB DBREF 行都會記錄在資料庫交叉參照列表中。

parse(handle)

開始解析檔案,並回傳 SeqRecord 產生器。

iterate(handle)

逐一查看 PDB 檔案中的記錄。

__abstractmethods__ = frozenset({})
__parameters__ = ()
Bio.SeqIO.PdbIO.PdbAtomIterator(source)

為 PDB 檔案中的每個鏈回傳 SeqRecord 物件。

引數來源為類檔案物件或檔案的路徑。

這些序列衍生自 3D 結構(ATOM 記錄),而非 PDB 檔案標頭中的 SEQRES 行。

來自 HETATM 條目的未辨識三字母胺基酸代碼(例如「CSD」)會在序列中轉換為「X」。

除了來自 PDB 標頭的資訊(所有記錄都相同)外,以下鏈特定資訊會放置在註解中

record.annotations[“residues”] = 殘基 ID 字串的清單 record.annotations[“chain”] = 鏈 ID(通常為 A、B 等) record.annotations[“model”] = 模型 ID(通常為零)

如果結構中缺少胺基酸(如殘基編號所示),則序列會填入「X」字元以符合遺失區域的大小,而 None 會作為清單 record.annotations[“residues”] 中對應的項目。

此函數使用 Bio.PDB 模組來完成大部分的繁重工作。註解資訊可以改進,但此額外解析應在 parse_pdb_header 中完成,而非此模組中完成。

這會透過 Bio.SeqIO 在內部呼叫,以進行基於原子的 PDB 檔案格式解譯

>>> from Bio import SeqIO
>>> for record in SeqIO.parse("PDB/1A8O.pdb", "pdb-atom"):
...     print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...
Record id 1A8O:A, chain A

等效地,

>>> with open("PDB/1A8O.pdb") as handle:
...     for record in PdbAtomIterator(handle):
...         print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...
Record id 1A8O:A, chain A
Bio.SeqIO.PdbIO.CifSeqresIterator(source)

為 mmCIF 檔案中的每個鏈回傳 SeqRecord 物件。

引數來源為類檔案物件或檔案的路徑。

這些序列衍生自 mmCIF 檔案中的 _entity_poly_seq 條目,而非 3D 結構的原子。

具體而言,會處理這些 mmCIF 記錄:_pdbx_poly_seq_scheme 和 _struct_ref_seq。_pdbx_poly_seq 記錄包含序列資訊,而 _struct_ref_seq 記錄包含資料庫交叉參照。

請參閱:http://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v40.dic/Categories/pdbx_poly_seq_scheme.htmlhttp://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/struct_ref_seq.html

這會透過 Bio.SeqIO 在內部呼叫,以進行基於序列的 mmCIF 檔案格式解譯

>>> from Bio import SeqIO
>>> for record in SeqIO.parse("PDB/1A8O.cif", "cif-seqres"):
...     print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...     print(record.dbxrefs)
...
Record id 1A8O:A, chain A
['UNP:P12497', 'UNP:POL_HV1N5']

等效地,

>>> with open("PDB/1A8O.cif") as handle:
...     for record in CifSeqresIterator(handle):
...         print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...         print(record.dbxrefs)
...
Record id 1A8O:A, chain A
['UNP:P12497', 'UNP:POL_HV1N5']

請注意,鏈會記錄在註解字典中,而任何 mmCIF _struct_ref_seq 條目都會記錄在資料庫交叉參照列表中。

Bio.SeqIO.PdbIO.CifAtomIterator(source)

為 mmCIF 檔案中的每個鏈回傳 SeqRecord 物件。

引數來源為類檔案物件或檔案的路徑。

這些序列衍生自 mmCIF 檔案中的 3D 結構(_atom_site.* 欄位)。

來自 HETATM 條目的未辨識三字母胺基酸代碼(例如「CSD」)會在序列中轉換為「X」。

除了來自 PDB 標頭的資訊(所有記錄都相同)外,以下鏈特定資訊會放置在註解中

record.annotations[“residues”] = 殘基 ID 字串的清單 record.annotations[“chain”] = 鏈 ID(通常為 A、B 等) record.annotations[“model”] = 模型 ID(通常為零)

如果結構中缺少胺基酸(如殘基編號所示),則序列會填入「X」字元以符合遺失區域的大小,而 None 會作為清單 record.annotations[“residues”] 中對應的項目。

此函數使用 Bio.PDB 模組來完成大部分的繁重工作。註解資訊可以改進,但此額外解析應在 parse_pdb_header 中完成,而非此模組中完成。

這會透過 Bio.SeqIO 在內部呼叫,以進行基於原子的 PDB 檔案格式解譯

>>> from Bio import SeqIO
>>> for record in SeqIO.parse("PDB/1A8O.cif", "cif-atom"):
...     print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...
Record id 1A8O:A, chain A

等效地,

>>> with open("PDB/1A8O.cif") as handle:
...     for record in CifAtomIterator(handle):
...         print("Record id %s, chain %s" % (record.id, record.annotations["chain"]))
...
Record id 1A8O:A, chain A