mirror of https://github.com/CGAL/cgal
99 lines
3.3 KiB
Plaintext
99 lines
3.3 KiB
Plaintext
/*!
|
|
\mainpage A simple C++ PDB reader
|
|
|
|
\section i Introduction
|
|
|
|
This is a simple C++ PDB reader along with a couple of
|
|
programs which use it to manipulate pdb files (applying a
|
|
rigid transform or splitting/merging). The are aimed at
|
|
people interested in proteins and RNA from a geometric
|
|
viewpoint as
|
|
they allow easy access to the geometry and bond structure in
|
|
addition of the biological information. The library has two
|
|
modes for reading/writing a pdb file. The simplest one,
|
|
through the Chain class just reads and writes a single
|
|
protein from/to a pdb file (which must have only one chain,
|
|
but can have multiple models). The second, through the PDB
|
|
class can handle pdb files with multiple models and herogens
|
|
(although these are just passed through and not currently
|
|
interpreted).
|
|
|
|
Once a PDB is read, atom coordinates can be extracted,
|
|
proteins can be aligned, and cRMS and dRMS can be computed, among
|
|
other things.
|
|
|
|
The library is now tightly integrated with CGAL (http://www.cgal.org) and shipped as part of that library.
|
|
|
|
\section struct Structure
|
|
|
|
Once a PDB file is read a PDB object is created. It
|
|
contains a number of Model objects corresponding to
|
|
each of the models in the PDB file. Each of these contains
|
|
several Chain objects once for each chain in the
|
|
Model.
|
|
|
|
\section progs Utility Programs
|
|
|
|
The library includes several utilities
|
|
|
|
- pdb_split which can split pdb files into separate models or
|
|
chains.
|
|
|
|
- pdb_tree which prints information about a PDB.
|
|
|
|
The programs use boost::program_options in order to handle
|
|
more complicated command line argument. The boost library can
|
|
be found at http://www.boost.org
|
|
(and there are packages for most linux distributions).
|
|
|
|
\section ex Examples
|
|
|
|
Examples for how to use the Chain and PDB
|
|
classes for reading and writing PDB files are detailed with
|
|
the respective classes. In addition, a program for splitting
|
|
one pdb containing several models into seperate pdb files is
|
|
included in the examples section.
|
|
|
|
|
|
\section bugs Bugs/Issues
|
|
|
|
- Heterogens are not interpreted. They will be passed through
|
|
with each model just fine, but no data is extracted.
|
|
|
|
- Heterogens which are stored using ATOM records instead of
|
|
HETATM records cause errors.
|
|
|
|
\section Download
|
|
|
|
As me for the code drussel@salilab.org.
|
|
|
|
\section Changes
|
|
- 2.0 A rewrite which tied it in with CGAL and made it more iterator based. Many examples and demos were removed as they have not yet been updated. Most of the core functionality is much more cleanly accessible.
|
|
|
|
- 1.0.4 Added structal like refinement of alignment of two
|
|
different proteins.
|
|
|
|
- 1.0.3 Better handling of gaps in residue sequences and a
|
|
tool to strip sidechains from a pdb file.
|
|
|
|
- 1.0.2 Mostly just cleaned up the code. A bug fix with cRMS.
|
|
|
|
- 1.0.1 Added arguments to control printing of error messages
|
|
when reading pdb files.
|
|
|
|
- 1.0 added support for computing cRMS and dRMS to
|
|
pdb_align. Some bug fixes.
|
|
|
|
- 0.9.7 added alignment and cRMS/dRMS code.
|
|
|
|
- 0.9.6 adds many consistency check allowing it to better
|
|
handle differences in atom naming schemes.
|
|
|
|
\section thanks Thanks
|
|
|
|
Thanks to Nikola for an earlier PDB reader from which I took the bond and atom data.
|
|
The work was funded by a NSF graduate fellowship.
|
|
|
|
|
|
*/
|