Bio.SeqIO.PdbIO模块

Bio.SeqIO支持访问PDB和mmCIF文件中的序列。

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

从Structure对象返回SeqRecords。

序列解析器的基本函数,用于读取结构Bio.PDB解析器。

一旦来自Bio.PDB的解析器被用来将结构加载到Bio.PDB.Structure对象中,序列解析器解释残基序列的方式就没有什么不同了。希望从残基列表中解析序列的SeqIO模块可以使用此模块中的函数。

调用函数必须传递Bio.PDB.Strucre.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、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({})
Bio.SeqIO.PdbIO.PdbAtomIterator(source)

返回PDB文件中每个链的SeqRecord对象。

参数源是类似文件的对象或文件的路径。

序列派生自3D结构(ATOM记录),而不是PDB文件头中的SEQRES行。

无法识别的三个字母的氨基酸代码(例如HETATM条目中的“CSD”)在序列中被转换为“X”。

除了来自PDB标题的信息(对所有记录都相同)外,注释中还包含以下链特定信息:

record.annotations [“残留物”] =残渣ID字符串记录列表。注释 [“链”] =链ID(通常为A、B、.)record.annotations [“模特”] =型号ID(通常为零)

当结构中缺少氨基酸时,如残基编号所示,用‘X’字符填充序列以匹配缺失区域的大小,并且没有作为相应条目包括在列表记录中。注释 [“残留物”] 。

该函数使用Bio.PDB模块来完成大部分繁重的工作。注释信息可以改进,但是这个额外的解析应该在parse_pdb_header中完成,而不是这个模块。

这将通过Bio.SeqIO在内部调用,用于基于ATOM的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_polyseq条目,而不是3D结构的原子。

具体地说,将处理这些mmCIF记录:_pdbx_polyseq_schema和_struct_ref_seq。_pdbx_polyseq记录包含序列信息,_struct_ref_seq记录包含数据库交叉引用。

请参阅:http://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v40.dic/Categories/pdbx_poly_seq_scheme.html和http://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 [“残留物”] =残渣ID字符串记录列表。注释 [“链”] =链ID(通常为A、B、.)record.annotations [“模特”] =型号ID(通常为零)

当结构中缺少氨基酸时,如残基编号所示,用‘X’字符填充序列以匹配缺失区域的大小,并且没有作为相应条目包括在列表记录中。注释 [“残留物”] 。

该函数使用Bio.PDB模块来完成大部分繁重的工作。注释信息可以改进,但是这个额外的解析应该在parse_pdb_header中完成,而不是这个模块。

这将通过Bio.SeqIO在内部调用,用于基于ATOM的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