nom-pdb
PDB parser implemented in Rust using nom.
NOTE: This crate is still in early development. Use it at your own risk.
Features
- Parses structural information and a subset of important metadata.
- Primary structure
- Secondary structure (sheets and helices)
- Coordinates and bonding
- Able to deal with non-standard residues (not yet mature)
- JSON serialization powered by serde.
Example (Last Updated 2020-10-17)
cargo run --example read 1a8o
Notes
References
- http://www.wwpdb.org/documentation/file-format-content/format33/v3.3.html
- https://proteopedia.org/wiki/index.php/Non-Standard_Residues#cite_note-pdb22-0
Roadmap
Note: Priority is and is ought to be placed on parsing structural information instead of metadata, since the latter is more or less disordered free-text and usually not of particular interest to users (even in cases where they are, users can examine the PDB file directly).
Title Section
- Header
- Obslte
- Title
- Splt
- Caveat
- Compnd
- Source
- Keywds
- Expdta
- Nummdl
- Mdltyp
- Author
- Sprsde
- Revdat
- Jrnl
- Remarks
Primary Structure Section
Heterogen Section
Secondary Structure Section
Connectivity Annotation Section
Miscellaneous Features Section
Crystallographic and Coordinate Transformation Section
Coordinate Section
Connectivity Section
Bookkeeping Section
Sample PDB Files
The files in assets/
are retrieved from RSCB's FTP server using the method described in my blog post. Here are some features of the selected PDB files stored in this directory:
- 1a8o: a simple X-Ray structure
- 4f7i: Lots of sheets
- 7znf: solution NMR; lots of models
- 3l1p: complex with DNA