Background information on PDB2PQR, including citation information, financial support, and availability, can be found at the PDB2PQR homepage (http://pdb2pqr.sourceforge.net/).
PDB2PQR was written by a consortium of researchers, including (in alphabetical order):
A number of authors have also provided extensions to PDB2PQR, authorship for these extensions are given in the individual source files in the "extensions" directory.
As the bulk of the PDB2PQR code is written in Python, the PDB2PQR code itself is architecture and compiler independent. PDB2PQR has been tested using Python versions 2.2 through 2.5 and Numeric version 24.2 - problems may occur with other versions. Users who simply want to use the PDB2PQR without PROPKA or ligand parameterization support and PROPKA can type
$ ./configure --disable-propka --disable-pdb2pka
$ make
$ make install
or skip the configure/make process altogether.
The PROPKA code is written in Fortran. To use PROPKA with PDB2PQR, a three step installation is necessary, making use of available C and Fortran compilers:
$ ./configure
$ make
$ make install
This should compile the PROPKA wrappers necessary to interface with PDB2PQR.
If the compilation fails please check the FAQ section of this user guide, or if all else fails, send a bug report.
The ligand parameterization code (PDB2PKA) is written in C++ and Python. This portion of the code also requires the Python Numeric or NumPy package. Note that PDB2PQR has only been extensively tested against Numeric. Unlike earlier versions, PDB2PKA is enabled by default in this version. To use PDB2PKA with PDB2PQR, a three step installation is necessary, making use of available C and Fortran compilers:
$ ./configure
$ make
$ make install
This should compile the PDB2PKA wrappers necessary to interface with PDB2PQR. Note that this will also compile PROPKA support; this can be explicitly disabled by
$ ./configure --enable-pdb2pka --disable-propka
$ make
$ make install
If the compilation fails please check the FAQ section of this user guide, or if all else fails, send a bug report.
All the necessary files for web server installation are available with the PDB2PQR software; however, we would appreciate if users contact us before installing a publicly-accessible version of the web server so we can ensure that you are informed of PBD2PQR updates, etc.
Note: these instructions are intended for systems administrators with the ability to change the behavior of their web server software and/or install software in privileged locations.
To set up a server, simply run
$ ./configure
$ make
$ make install
By default, the server is installed in /var/www/html/pdb2pqr
and the default URL is http://fully_qualified_domain_name/pdb2pqr
. If the user does not have root permission, then the server is installed in ${HOME}/pdb2pqr
.
Configure options include
--prefix
Installation directory (e.g.,/var/www/html/pdb2pqr
)
--with-url
URL for the server (e.g.,http://somedomain/pdb2pqr
)
--disable-propka
Disable PROPKA
--disable-pdb2pka
Disable PDB2PKA
--with-python
Path to Python (e.g.,/usr/local/bin/python2.5
)
--with-opal
enable Opal service integration pointing to the remote clusters available at NBCR; optionally specify a URL for an alternate remote Opal service.
--with-apbs
enable the APBS web interface. Must be pointing to a local APBS binary.
--with-apbs-opal
enable Opal service integration for the APBS web interface pointing to the remote clusters available at NBCR; optionally specify a URL for an alternate remote Opal service. Requires simultaneous use of the--with-apbs
flag, which must be pointing to a version of APBS greater than 1.0.0 (or the current SVN revision).
--prefix
and --with-url
point to the same directory. Specifications --prefix=/var/www/html/pdb2pqr-test --with-url=http://somedomain/pdb2pqr-test
is recommened. On the other hand, specifications like --prefix=/var/www/html/mypdb2pqr --with-url=http://somedomain/pdb2pqr-test
is not recommened because mypdb2pqr
and pdb2pqr-test
are different names.
chmod +x /var/www/html/pdb2pqr/pdb2pqr.cgi
). Additionally, you may need to change the configuration of your webserver to enable CGI execution. For the Apache webserver, this involves editing httpd.conf
to add ExecCGI to the option list for your server. In some installations, this may be as simple as adding a line like Options Indexes FollowSymLinks ExecCGI
in the <Directory "/var/www/html"> section of the Apache configuration file. If you modify this file, you will need to restart the web server.
The NBCR development team has provided code that allows PDB2PQR to be run on remote clusters through the Opal web services toolkit. This allows users to host a PDB2PQR server (e.g., for a class) without worrying about the load on their local computers.
This section discusses the use of PDB2PQR from the command line. Many command line options are also available through the web servers. Interested users should also visit the PDB2PQR examples page which provides a tutorial on the usage of PDB2PQR for a variety of tasks.
Starting PDB2PQR from the web server is rather straightforward - simply click the desired options, specify or upload a PDB file, and submit the job. The command line version of PDB2PQR is similar:
$ python pdb2pqr.py [options] --ff={forcefield} {path} {output-path}
The required arguments are as follows:
<forcefield>
AMBER
(AMBER99, Wang J, et al, 2000), CHARMM
(CHARMM27, MacKerell AD Jr, et al, 1998), PARSE
(PARSE, Sitkoff D, et al, 1994), TYL06
(Tan C, et al, 2006), PEOEPB
(PEOEPB, Czodrowski P, et al, 2006), and SWANSON
(SWANSON, Swanson JMJ, et al, 2007) are supported.
<path>
<output-path>
Optional command-line arguments are:
--nodebump
--noopt
--chain
--assign-only
--clean
--ffout=<name>
--with-ph=<ph>
--ligand=<mol2 file>
--apbs-input
--whitespace
--typemap
--neutraln
--neutralc
--verbose (-v)
--help (-h)
Additional optional command-line arguments from the extensions directory are:
--chi
{output-path}.chi
--phi
{output-path}.phi
--psi
{output-path}.psi
--rama
{output-path}.rama
for Ramachandran plots
--hbond
{output-path}.hbond
--salt
{output-path}.salt
The overall workflow for the PDB2PQR service is outlined here (PNG image). The following sections provide more detail about specific aspects of the PDB2PQR algorithms.
The debumping algorithm ensures that any new heavy or hydrogen atoms are not rebuilt within the Van der Waals radii of existing atoms. If this does occur, the sidechain of the residue in question will be rotated about an available χ angle until the steric conflict is resolved.
The number of residues that need to be debumped depends on the nature of the system and if hydrogen optimization will be performed. If hydrogens are the only atoms missing any potential conflicts are usually due to hydrogen bonds, and if optimization is enabled these conflicts are usually resolved during that step. In the case where a large number of heavy sidechain atoms are missing there could be additional debumping necessary - as the sidechain is rebuilt the initial χ angle may not be the optimal one, and thus a steric conflict may occur.
The hydrogen bonding network optimization seeks, as the name suggests, to optimize the hydrogen bonding network of the protein. Currently this entails manipulating the following residues:
Protein residue titration states are assigned using pKa values determined by PROPKA. For more details, please visit the PROPKA homepage.
The calculation of ligand charges necessitates detailed information on molecular structure and protonation states due to the large variation in the covalent structures of small-molecule protein ligands. The current version of PDB2PQR therefore requires the ligand structure, protonation state, and formal charge to be specified by the user in the popular MOL2 file format (link to PDF). Ligand structures in MOL2 format are readily available from popular molecular modeling software and free web services such as PRODRG. Future versions of PDB2PQR will include a pdb2mol2 parser and automatic assignment of default ligand protonation states from a small-molecule pKa database.
The calculation of ligand charges in PDB2PQR is based on the partial equalization of orbital electronegativities (PEOE) procedure developed by Gasteiger and Marsili (Gasteiger, 1980). In the PEOE procedure, orbital electronegativities χ are linked to partial atomic charges q by a polynomial expansion (χ= a + b q + c q2 + d q3). The coefficients a, b, c, and d were optimized by Gasteiger and Marsili using gas phase data on ionization potentials and electron affinities. We utilize a PEOE algorithm, which has been optimized by Czodrowski et al. to obtain better agreement between theoretical and experimental solvation energies for a set of small molecules including the polar amino acids.
The following is a list of known limitations with the current version of PDB2PQR. Many of these limitations will be removed/fixed in future releases of the software:
dat/AMBER.DAT
) directly and add your parameters. After the parameter addition, save the force field data file (dat/AMBER.DAT
) with your changes. You should also update the corresponding .names file (dat/AMBER.names
) if your added residue or atom naming scheme is different from the canonical naming scheme of PDB2PQR.
myff.DAT
). If your atom naming scheme of the forcefield is different from the canonical naming scheme of PDB2PQR, then you will also need to provide a names files (myff.names
). It is recommended to build your own forcefield data file and names file based on existing .DAT
and .names
file formats. For more information on the xml format used in .names
files, please refer to the xml section in the programmer's guide.
$ python pdb2pqr.py [options] --ff=myff {path} {output-path}
--chain
option.
--ffout
flag. Note that for patch-based forcefields a single residue might have different residue names. Additionally, some forcefield residue names might have 4 letters instead of the standard 3 letters, yielding columns that merge together - if you are using the resulting PQR file for APBS, this will more than likely cause errors.
--ligand
option. Occasionally this message will occur in error for a standard amino acid residue where an atom or residue may be misnamed.
Protonation State | AMBER Support | CHARMM Support | PARSE Support |
---|---|---|---|
Neutral N-Terminus | No | No | Yes |
Neutral C-Terminus | No | No | Yes |
Neutral ARG | No | No | No |
Neutral ASP | Yes* | Yes | Yes |
Negative CYS | Yes* | No | Yes |
Neutral GLU | Yes* | Yes | Yes |
Neutral HIS | Yes | Yes | Yes |
Neutral LYS | Yes* | No | Yes |
Negative TYR | No | No | Yes |
Before sending a bug report, you may want to check the pdb2pqr-users mailing list archives or the existing PDB2PQR SourceForge Bug List to make sure your question has not already been addressed. Otherwise please post all bug reports, support requests, or feature requests to the appropriate PDB2PQR SourceForge Tracker.
For additional support you may contact the pdb2pqr-users mailing list.