Invoking PDB2PQR¶
Note
Please register before using PDB2PQR!
Most users will use PDB2PQR through the web server (after registering, of course). However, it is also possible to install local versions of PDB2PQR and run these through the command line. This version of the software offers an expanded range of options and can also be customized with user extensions.
Todo
Make sure user extensions are adequately documented.
The command line PDB2PQR is invoked as
$ python pdb2pqr.py [options] --ff={forcefield} {path} {output-path}
This module takes a PDB file as input and performs optimizations before yielding a new PQR-style file in {output-path}.
If {path} is a PDB ID it will automatically be retrieved from the online PDB archive.
Options¶
Todo
Replace this section with automagically generated documentation ala https://sphinx-argparse.readthedocs.io/en/stable/
Mandatory options¶
One of the options must be used for all PDB2PQR runs:
--ff=FIELD_NAMEThe forcefield to use - currently amber, charmm, parse, tyl06, peoepb and swanson are supported.
--userff=USER_FIELD_FILEA user-created forcefield file. Requires
--usernamesand overrides--ff.--cleanDo no optimization, atom addition, or parameter assignment, just return the original PDB file in aligned format. Overrides
--ffand--userffoptions.
Titration state calculation options¶
--ph-calc-method=PH_METHODMethod used to calculate ph values. If a pH calculation method is selected, pKa values will be calculated and titratable residues potentially modified after comparison with the pH value supplied by
--with_phfor each titratable residuePROPKAUse PROPKA to calculate pKa values. PROPKA options include:
--propka-reference=PROPKA_REFERENCESetting which reference values to use for stability calculations. See PROPKA 3.0 documentation for details.
--propka-verbosePrint extra-verbose PROPKA information to
stdout.
PDB2PKAUse PDB2PKA to calculate pKa values. Requires the use of the PARSE force field. Large proteins can take a very long time to run using this method. PDB2PKA options include:
--pdb2pka-out=PDB2PKA_OUTOutput directory for PDB2PKA results. Defaults to
pdb2pka_output.--pdb2pka-resumeResume run from state saved in output directory.
--pdie=PDB2PKA_PDIEProtein dielectric constant. Defaults to 8.
--sdie=PDB2PKA_SDIESolvent dielectric constant. Defaults to 80.
--pairene=PDB2PKA_PAIRENECutoff energy in (kT) for calculating interaction energies. Default: 1.0.
--with-ph=PHpH values to use when applying the results of the selected pKa calculation method to assign titration states. Defaults to 7.0.
Todo
Make sure that PDB2PQR force fields are referenced and described.
General options¶
--apbs-inputCreate a template APBS input file based on the generated PQR file. Also create a Python pickle for using these parameters in other programs.
--assign-onlyOnly assign charges and radii - do not add atoms, debump, or optimize.
--chainKeep the PDB chain ID in the output PQR file.
--drop-waterDrop waters before processing protein. Currently recognized and deleted are the following water types:
HOH,WAT--ffout=FIELD_NAMEInstead of using the standard canonical naming scheme for residue and atom names, use the names from the given forcefield. Currently amber, charmm, parse, tyl06, peoepb and swanson are supported.
-hor--helpPrint help message and exit.
--ligand=PATHCalculate the parameters for the ligand in mol2 format at the given path. PDB2PKA must be compiled.
--neutralnMake the N-terminus of this protein neutral (default charge state is determined by pH and pKa). Requires PARSE force field.
--neutralcMake the C-terminus of this protein neutral (default is charged). Requires PARSE force field.
--nodebumpDo not perform the debumping operation to remove steric clashes. See debumping for more information.
--nooptsDo not perform hydrogen bond optimization. See hbondopt for more information.
--typemapCreate a map of atom types in the molecule.
--usernames=USER_NAME_FILEThe user created names file to use. Required if using
--userff.-vor--verbosePrint additional information to stdout.
--versionShow program’s version number and exit
--whitespaceInsert whitespaces between atom name and residue name, between x and y, and between y and z.
--include_headerInclude pdb header in pqr file.
Warning
The resulting PQR file will not with APBS versions prior to 1.5.
Extension options¶
These options refer to extension modules distributed with PDB2PQR.
--chiPrint the per-residue sidechain chi angles to
output-path.chi--contactPrint a list of contacts to
output-path.con--hbondPrint a list of hydrogen bonds to
output-path.hbond. Additional options for this extension include:--whatifChange hbond output to WHAT-IF format.
--angle_cutoff=ANGLE_CUTOFFAngle cutoff to use when creating hbond data (default 30.0 deg)
--distance_cutoff=DISTANCE_CUTOFFDistance cutoff to use when creating hbond data (default 0.34 nm)
--old_distance_methodUse distance from donor hydrogen to acceptor to calculate distance used with
--distance_cutoff.
--ramaPrint the per-residue phi and psi angles to
output-path.ramafor Ramachandran plots. Options for this extension include:--phi_onlyOnly include phi angles in output. Rename output file
output-path.phi--psi_onlyOnly include psi angles in output. Rename output file
output-path.psi
--resinteror--newresinterPrint interaction energy between each residue pair in the protein to
output-path.resinteroroutput-path.newresinterAdditional options for this extension include:--residue_combinationsRemap residues to different titration states and rerun
--resinter, appending the output. Consider only the minimum number of whole protein titration combinations needed to test each possible pairing of residue titration states. Normally used with--noopt. If a protein titration state combination results in a pair of residue being re-tested in the same individual titration states, a warning will be generated if the re-tested result is different. This warning should not be possible if used with--noopt.--all_residue_combinationsRemap residues to ALL possible titration state combinations and rerun resinter appending output. Results with
--nooptshould be the same as--residue_combinations. Runs considerably slower than--residue_combinationsand generates the same type of warnings. Use without--nooptto discover how hydrogen optimization affects residue interaction energies via the warnings in the output.
--saltPrint a list of salt bridges to
output-path.salt--summaryPrint protein summary information to
output-path.summary
Method descriptions¶
Debumping¶
Unless otherwise instructed with --nodebump, PDB2PQR will attempt to remove steric clashes (debump) between residues.
To determine if a residue needs to be debumped, PDB2PQR compares its atoms to all nearby atoms. With the exception of donor/acceptor pairs and CYS residue SS bonded pairs, a residue needs to be debumped if any of its atoms are within cutoff distance of any other atoms. The cutoff is 1.0 angstrom for hydrogen/hydrogen collisions, 1.5 angstrom for hydrogen/heavy collisions, and 2.0 angstrom otherwise.
Considering the atoms that are conflicted, PDB2PQR changes selected dihedral angle configurations in increments of 5.0 degrees, looking for positions where the residue does not conflict with other atoms. If modifying a dihedral angle does not result in a debumped configuration then the dihedral angle is reset and the next one is tried. If 10 angles are tried without success the algorithm reports failure.
Warning
It should be noted that this is not an optimal solution. This method is not guaranteed to find a solution if it exists and will accept the first completely debumped state found, not the optimal state.
Additionally, PDB2PQR does not consider water atoms when looking for conflicts.
Hydrogen bond optimization¶
Unless otherwise indicated with --noopts, PDB2PQR will attempt to add hydrogens in a way that optimizes hydrogen bonding.
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:
Flipping the side chains of HIS (including user defined HIS states), ASN, and GLN residues;
Rotating the sidechain hydrogen on SER, THR, TYR, and CYS (if available);
Determining the best placement for the sidechain hydrogen on neutral HIS, protonated GLU, and protonated ASP;
Optimizing all water hydrogens.
Titration states¶
PDB2PQR has the ability to recognize certain protonation states and keep them fixed during optimization. To use this feature manually rename the residue name in the PDB file as follows:
- Neutral ASP
ASH
- Negative CYS:
CYM
- Neutral GLU:
GLH
- Neutral HIS:
HIE or HSE (epsilon-protonated); HID or HSD (delta-protonated)
- Positive HIS:
HIP or HSP
- Neutral LYS
LYN
- Negative TYR
TYM
PDB2PQR is unable to assign charges and radii when they are not available in the forcefield - thus this warning message will occur for most ligands unless a MOL2 file is provided for the ligand with the --ligand option.
Occasionally this message will occur in error for a standard amino acid residue where an atom or residue may be misnamed.
However, some of the protonation states derived from the PROPKA results are not supported in the requested forcefield and thus PDB2PQR is unable to get charges and radii for that state.
PDB2PQR currently supports the following states as derived from PROPKA:
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 1 |
Yes |
Yes |
Negative CYS |
Yes 1 |
No |
Yes |
Neutral GLU |
Yes 1 |
Yes |
Yes |
Neutral HIS |
Yes |
Yes |
Yes |
Neutral LYS |
Yes 1 |
No |
Yes |
Negative TYR |
No |
No |
Yes |