网页
综合
更新时间 2026-11-14 16:59:47
The Biopython Structural Bioinformatics FAQ · Biopython
自动蜘蛛
biopython.org
正文约 6000 字
Python Tools for Computational Molecular Biology
Bio.PDB is a Biopython module that focuses on working with crystal structures of biological macromolecules. This document gives a fairly complete overview of Bio.PDB.
Bio.PDB is automatically installed as part of Biopython. Biopython can be obtained from http://www.biopython.org. It runs on many platforms (Linux/Unix, windows, Mac,…).
Bio.PDB was used in the construction of DISEMBL, a web server that predicts disordered regions in proteins , and COLUMBA, a website that provides annotated protein structures (not longer available?). Bio.PDB has also been used to perform a large scale search for active sites similarities between protein structures in the PDB (see Proteins 51: 96–108, 2003), and to develop a new algorithm that identifies linear secondary structure elements (see BMC Bioinformatics 6: 202, 2005).
Judging from requests for features and information, Bio.PDB is also used by several LPCs (Large Pharmaceutical Companies :-).
Yes, and I’d appreciate it if you would refer to Bio.PDB in publications if you make use of it. The reference is:
Hamelryck, T., Manderick, B. (2003) PDB parser and structure class implemented in Python. Bioinformatics 19: 2308–2310
The article can be freely downloaded via the Bioinformatics journal website. I welcome e-mails telling me what you are using Bio.PDB for. Feature requests are welcome too.
Pretty well, actually. Bio.PDB has been extensively tested on nearly 5500 structures from the PDB - all structures seemed to be parsed correctly. More details can be found in the Bio.PDB Bioinformatics article. Bio.PDB has been used/is being used in many research projects as a reliable tool. In fact, I’m using Bio.PDB almost daily for research purposes and continue working on improving it and adding new features.
The PDBParser performance was tested on about 800 structures (each belonging to a unique SCOP superfamily). This takes about 20 minutes, or on average 1.5 seconds per structure. Parsing the structure of the large ribosomal subunit (1FKK), which contains about 64000 atoms, takes 10 seconds on a 1000 MHz PC. In short: it’s more than fast enough for many applications.
Bio.PDB might be exactly what you want, and then again it might not. If you are interested in data mining the PDB header, you might want to look elsewhere because there is only limited support for this. If you look for a powerful, complete data structure to access the atomic data Bio.PDB is probably for you.
Not directly, mostly since there are quite a few Python based/Python aware solutions already, that can potentially be used with Bio.PDB. My choice is Pymol, BTW (I’ve used this successfully with Bio.PDB, and there will probably be specific PyMol modules in Bio.PDB soon/some day). Python based/aware molecular graphics solutions include:
I’d be crazy to write another molecular graphics application (been there done that, actually :-).
You can however interactively view Biopython structural entities in a Jupyter notebook using nglview:
First, create a PDBParser object:
Then, create a structure object from a PDB file in the following way (the PDB file in this case is called 1FAT.pdb, PHA-L is a user defined name for the structure):
Similarly to the case the case of PDB files, first create an MMCIFParser object:
Then use this parser to create a structure object from the mmCIF file:
That’s not yet supported, but I’m definitely planning to support that in the future (it’s not a lot of work). Contact me if you need this, it might encourage me :-).
You got it. You can create a Python dictionary that maps all mmCIF tags in an mmCIF file to their values. If there are multiple values (like in the case of tag _atom_site.Cartn_y, which holds the y coordinates of all atoms), the tag is mapped to a list of values. The dictionary is created from the mmCIF file as follows:
Example: get the solvent content from an mmCIF file:
Example: get the list of the y coordinates of all atoms
Thanks to Christian Rother you can access some information from the PDB header. Note however that many PDB files contain headers with incomplete or erroneous information. Many of the errors have been fixed in the equivalent mmCIF files. Hence, if you are interested in the header information, it is a good idea to extract information from mmCIF files using the MMCIF2Dict tool described above, instead of parsing the PDB header.
Now that is clarified, let’s return to parsing the PDB header. The structure object has an attribute called header which is a python dictionary that maps header records to their values.
The available keys are name, head, deposition_date, release_date, structure_method, resolution, structure_reference (maps to a list of references), journal_reference, author and compound (maps to a dictionary with various information about the crystallized compound).
The dictionary can also be created without creating a Structure object, ie. directly from the PDB file:
Sure. Many PDB parsers assume that there is only one model, making them all but useless for NMR structures. The design of the Structure object makes it easy to handle PDB files with more than one model (see section The Structure Object).
This can be done using the PDBList object, using the retrieve_pdb_file method. The argument for this method is the PDB identifier of the structure.
The PDBList class can also be used as a command-line tool:
The downloaded file will be called pdb1fat.ent and stored in the current working directory. Note that the retrieve_pdb_file method also has an optional argument pdir that specifies a specific directory in which to store the downloaded PDB files.
The retrieve_pdb_file method also has some options for specifying the compression format used for the download, and the program used for local decompression (default .Z format and gunzip). In addition, the PDB ftp site can be specified upon creation of the PDBList object. By default, the ftp server of the Worldwide Protein Data Bank is used
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。