PROPKA 3: Heuristic \(\text{p}K_\text{a}\) prediction¶
- Release
3.5.0+0.gfd7b155.dirty
- Date
Feb 14, 2023
PROPKA 3 predicts the \(\text{p}K_\text{a}\) values of ionizable groups in proteins [Sondergaard2011] and protein-ligand complexes based on the 3D structure [Olsson2011].
This package installs the propka3 command and
the propka
Python package.
License and source code¶
PROPKA 3 is released under the GNU Lesser General Public License v2.1 (see the files LICENSE in the repository for details).
Source code is available in the public GitHub repository https://github.com/jensengroup/propka.
Getting help¶
Please report bugs and feature requests for PROPKA through the Issue Tracker.
Contributing¶
PROPKA welcomes new contributions. To contribute code, submit a pull request against the master branch in the propka repository.
Citation¶
If you use PROPKA 3 in published work please cite [Sondergaard2011] and [Olsson2011].
Indices and tables¶
Installation¶
PROPKA 3 requires Python 3.8 or higher. Additional requirements are
specified in the requirements.txt
file and automatically satisfied
when installing with pip.
pip
-based installation¶
The easiest way to install a release of PROPKA 3 is from the PyPI archive with the command
pip install --upgrade propka
This installation will install the propka
Python module and the
propka3 executable script. As always, a virtual environment (e.g., via
virtualenv) is recommended when installing packages.
Source-based installation¶
The source code can be installed by cloning the repository or unpacking from a source code archive and running
pip install .
in the source directory.
For the purposes of testing or development, you may prefer to install PROPKA as an editable module via pip by running
pip install -e .
in the source directory.
Quickstart Guide¶
PROPKA can be used either via the installed script propka3 or as a Python module. When using the propka3 command, use
propka3 FILENAME
As a module (propka
), also provide the input filename
python -m propka FILENAME
In both cases, additional options may be added, as described in more detail for the propka3 command.
Predicting protein residue \(\text{p}K_\text{a}\) values¶
Most users run PROPKA by invoking the propka3 program with a PDB file as its argument; e.g., for PDB 1HPX (HIV-1 protease complexed with the inhibitor KNI-272)
propka3 1hpx.pdb
In this example, \(\text{p}K_\text{a}\) values of titratable protein residues and titratable groups of the inhibitor KNI are calculated.
The output looks similar to the following (many lines omitted as
“…”). It is also contained in the output file 1hpx.pka
that
is automatically written:
propka3.2 2020-06-19
...
...
Found NAR group: 1530- N1 900-KNI (B) [ 7.907 1.459 5.427] N
Found O3 group: 1531- O1 900-KNI (B) [ 5.235 3.791 9.082] O
Found O2 group: 1532- O3 900-KNI (B) [ 3.327 4.297 11.852] O
Found NAM group: 1533- N2 900-KNI (B) [ 3.955 2.384 10.893] N
Found O2 group: 1539- O6 900-KNI (B) [ 3.758 -0.629 12.111] O
Found NAM group: 1541- N3 900-KNI (B) [ 4.496 0.982 13.492] N
Found O2 group: 1542- O4 900-KNI (B) [ 6.324 -1.234 17.045] O
Found OH group: 1548- O2 900-KNI (B) [ 4.949 0.934 16.427] O
Found O2 group: 1559- O5 900-KNI (B) [ 6.746 -3.574 14.588] O
Found NAM group: 1560- N5 900-KNI (B) [ 7.637 -4.575 16.403] N
-------------------------------------------------------------------------------------------------------
Calculating pKas for Conformation container 1A with 1878 atoms and 480 groups
-------------------------------------------------------------------------------------------------------
--------- ----- ------ --------------------- -------------- -------------- --------------
DESOLVATION EFFECTS SIDECHAIN BACKBONE COULOMBIC
RESIDUE pKa BURIED REGULAR RE HYDROGEN BOND HYDROGEN BOND INTERACTION
--------- ----- ------ --------- --------- -------------- -------------- --------------
ASP 25 A 5.07* 100 % 4.30 617 0.19 0 -0.85 KNI O4 B -0.63 GLY 27 A 0.07 ASP 29 A
ASP 25 A -0.85 KNI O2 B -0.09 ALA 28 A 0.00 XXX 0 X
ASP 25 A -0.84 ASP 25 B -0.04 GLY 27 B 0.00 XXX 0 X
ASP 29 A 3.11 50 % 1.20 420 0.13 0 -0.68 ARG 87 A 0.00 XXX 0 X -0.04 LYS 45 A
ASP 29 A -0.28 ARG 8 B 0.00 XXX 0 X -0.47 ARG 87 A
ASP 29 A 0.00 XXX 0 X 0.00 XXX 0 X -0.54 ARG 8 B
ASP 30 A 4.62 59 % 1.30 446 0.00 0 -0.11 LYS 45 A 0.00 XXX 0 X -0.07 ARG 87 A
ASP 30 A 0.00 XXX 0 X 0.00 XXX 0 X -0.01 ARG 8 B
ASP 30 A 0.00 XXX 0 X 0.00 XXX 0 X 0.29 ASP 29 A
ASP 30 A 0.00 XXX 0 X 0.00 XXX 0 X -0.57 LYS 45 A
ASP 60 A 2.55 0 % 0.41 249 0.00 0 -0.40 THR 74 A 0.00 XXX 0 X -0.02 LYS 45 A
ASP 60 A -0.85 LYS 43 A 0.00 XXX 0 X -0.38 LYS 43 A
...
...
...
ARG 87 B 12.28 45 % -1.40 407 0.00 0 0.77 ASP 29 B 0.00 XXX 0 X 0.10 ASP 30 B
ARG 87 B 0.00 XXX 0 X 0.00 XXX 0 X -0.19 ARG 8 A
ARG 87 B 0.00 XXX 0 X 0.00 XXX 0 X 0.50 ASP 29 B
N+ 1 B 8.96 0 % -0.39 235 0.00 0 0.85 C- 99 A 0.00 XXX 0 X 0.07 CYS 67 B
N+ 1 B 0.00 XXX 0 X 0.00 XXX 0 X 0.04 CYS 95 B
N+ 1 B 0.00 XXX 0 X 0.00 XXX 0 X 0.38 C- 99 A
KNI N1 B 4.60 0 % -0.36 273 0.00 0 0.00 XXX 0 X 0.00 XXX 0 X -0.03 ARG 8 A
Coupled residues (marked *) were detected.Please rerun PropKa with the --display-coupled-residues
or -d option for detailed information.
--------------------------------------------------------------------------------------------------------
SUMMARY OF THIS PREDICTION
Group pKa model-pKa ligand atom-type
ASP 25 A 5.07 3.80
ASP 29 A 3.11 3.80
ASP 30 A 4.62 3.80
ASP 60 A 2.55 3.80
ASP 25 B 9.28 3.80
ASP 29 B 1.78 3.80
ASP 30 B 4.91 3.80
ASP 60 B 2.13 3.80
GLU 21 A 4.78 4.50
GLU 34 A 3.93 4.50
GLU 35 A 3.65 4.50
GLU 65 A 3.89 4.50
GLU 21 B 4.73 4.50
GLU 34 B 3.36 4.50
GLU 35 B 4.07 4.50
GLU 65 B 3.70 4.50
C- 99 A 2.08 3.20
C- 99 B 2.11 3.20
HIS 69 A 6.98 6.50
HIS 69 B 7.11 6.50
CYS 67 A 9.41 9.00
CYS 95 A 11.68 9.00
CYS 67 B 9.82 9.00
CYS 95 B 11.61 9.00
TYR 59 A 9.67 10.00
TYR 59 B 9.54 10.00
LYS 14 A 10.43 10.50
LYS 20 A 10.32 10.50
LYS 43 A 11.41 10.50
LYS 45 A 10.54 10.50
LYS 55 A 10.42 10.50
LYS 70 A 10.92 10.50
LYS 14 B 10.55 10.50
LYS 20 B 11.01 10.50
LYS 43 B 11.43 10.50
LYS 45 B 10.47 10.50
LYS 55 B 10.41 10.50
LYS 70 B 11.07 10.50
ARG 8 A 13.96 12.50
ARG 41 A 12.41 12.50
ARG 57 A 14.40 12.50
ARG 87 A 12.35 12.50
ARG 8 B 12.76 12.50
ARG 41 B 12.42 12.50
ARG 57 B 13.73 12.50
ARG 87 B 12.28 12.50
N+ 1 A 8.96 8.00
N+ 1 B 8.96 8.00
KNI N1 B 4.60 5.00 NAR
Writing 1hpx.pka
Some of the important contents:
The section Calculating pKas for Conformation container 1A with 1878 atoms and 480 groups lists details on the calculations for all ionizable residues. It indicates the considerations that went into a \(\text{p}K_\text{a}\) estimate such as hydrogen bonds and Coulomb interactions. It also indicates if there is potentially coupling between residues.
Values with “XXX” placeholders are not calculated (but appear to maintain the formatting).
The section SUMMARY OF THIS PREDICTION lists the predicted \(\text{p}K_\text{a}\) for each residue together with the model \(\text{p}K_\text{a}\) (the “default” value).
Ligand values are labeled with the residue name of the ligand, in this case “KNI”.
Getting help¶
A brief list of available options can be obtained by running PROPKA
with no options. A longer list of options and descriptions is
available using the propka3 --help
option:
propka3 --help
propka3 command¶
PROPKA predicts the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure. The propka3 command has the following options:
propka3 [-h] [-f FILENAMES] [-r REFERENCE] [-c CHAINS] [-i TITRATE_ONLY] [-t THERMOPHILES] [-a ALIGNMENT] [-m MUTATIONS]
[-v VERSION_LABEL] [-p PARAMETERS] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-o PH] [-w WINDOW WINDOW WINDOW]
[-g GRID GRID GRID] [--mutator MUTATOR] [--mutator-option MUTATOR_OPTIONS] [-d] [-l] [-k] [-q] [--protonate-all]
input_pdb
- input_pdb¶
read data from file <input_pdb>
- -h, --help¶
show this help message and exit
- -f FILENAMES, --file FILENAMES¶
read data from <filename>, i.e. <filename> is added to arguments (default: [])
- -r REFERENCE, --reference REFERENCE¶
setting which reference to use for stability calculations [neutral/low-pH] (default: neutral)
- -c CHAINS, --chain CHAINS¶
creating the protein with only a specified chain. Specify ” ” for chains without ID [all] (default: None)
- -i TITRATE_ONLY, --titrate_only TITRATE_ONLY¶
Treat only the specified residues as titratable. Value should be a comma-separated list of “chain:resnum” values; for example:
-i "A:10,A:11"
(default: None)
- -t THERMOPHILES, --thermophile THERMOPHILES¶
defining a thermophile filename; usually used in ‘alignment-mutations’ (default: None)
- -a ALIGNMENT, --alignment ALIGNMENT¶
alignment file connecting <filename> and <thermophile> [<thermophile>.pir] (default: None)
- -m MUTATIONS, --mutation MUTATIONS¶
specifying mutation labels which is used to modify <filename> according to, e.g. N25R/N181D (default: None)
- --version¶
show program’s version number and exit
- -p PARAMETERS, --parameters PARAMETERS¶
set the parameter file (default: <installation_directory>/propka/propka/propka.cfg)
- --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}¶
logging level verbosity (default: INFO)
- -o PH, --pH PH¶
setting pH-value used in e.g. stability calculations (default: 7.0)
- -w WINDOW WINDOW WINDOW, --window WINDOW WINDOW WINDOW¶
setting the pH-window to show e.g. stability profiles (default: (0.0, 14.0, 1.0))
- -g GRID GRID GRID, --grid GRID GRID GRID¶
setting the pH-grid to calculate e.g. stability related properties (default: (0.0, 14.0, 0.1))
- --mutator MUTATOR¶
setting approach for mutating <filename> [alignment/scwrl/jackal] (default: None)
- --mutator-option MUTATOR_OPTIONS¶
setting property for mutator [e.g. type=”side-chain”] (default: None)
- -d, --display-coupled-residues¶
Displays alternative pKa values due to coupling of titratable groups (default: False)
- -l, --reuse-ligand-mol2-files¶
Reuses the ligand mol2 files allowing the user to alter ligand bond orders (default: False)
- -k, --keep-protons¶
Keep protons in input file (default: False)
- -q, --quiet¶
suppress non-warning messages (default: None)
- --protonate-all¶
Protonate all atoms (will not influence pKa calculation) (default: False)
API Reference¶
The propka3 command provides a command-line interface to
PROPKA 3’s functionality. It is built on classes and functions in the
propka
module. The API of propka
is documented here for
developers who might want to directly use the PROPKA 3 code.
Note
The API is still changing and there is currently no guarantee that it will remain stable between minor releases.
Data structures¶
Atom |
|
Bonds |
|
Data structures for groups |
|
Molecular data structures |
|
PDB molecular container |
I/O¶
Input handling |
|
Set-up of a PROPKA calculation |
|
Output |
|
Configuration file parameters |
|
Hybrid36 PDB-like file format |
|
Ligand pKa values from Marvin |
|
Script functionality |
|
Version-based configuration |
Structure processing¶
Protonate a structure |
|
Hydrogens |
|
Ligand atom typing |
Calculations¶
Calculations |
|
Coupling between groups |
|
Determinant |
|
Working with Determinants |
|
Energy calculations |
|
Working with Determinants |
|
Vector calculations |
Changelog¶
3.5.0 (2023-02-13)¶
Changes¶
Fixes¶
v3.4.0 (2020-12-19)¶
Changes¶
Fixes¶
Fixed bug that raised exception when missing amide nitrogen or oxygen. (#17)
propka --version
now shows the program version and exits. Previously this option took a version argument to specify the sub-version of propka. However, this was non-functional at least since 2012. (#89)Fix pI reporting in last line of
.pka
file. (https://github.com/jensengroup/propka/pull/91)Report correct version in
.pka
file header. (https://github.com/jensengroup/propka/pull/92)Fix handling of multi-model PDB without MODEL 1 entry. (https://github.com/jensengroup/propka/issues/96)
Fixed bug and sped up algorithm for identifying bonds via bounding boxes. (#97, #110)
Fixed bug in
propka --display-coupled-residues
that crashed the program. (#105)
v3.3.0 (2020-07-18)¶
Additions¶
Add Sphinx documentation on readthedocs.io (#69, #76, #79)
Changes¶
Updated
read_molecule_file()
to accept file-like objects. (#83)Use versioneer for version management. (#87)
Add code coverage to continuous integration pipeline. (#62, #71, #76)
Fixes¶
v3.2.0 (2020-06-19)¶
Additions¶
Changes¶
v3.1.0¶
Archaeologists wanted to help us document the history of the code in versions 3.1.0 and earlier.
References¶
- Sondergaard2011
C. R. Søndergaard, M. H. M. Olsson, M. Rostkowski, and J. H. Jensen. Improved treatment of ligands and coupling effects in empirical calculation and rationalization of pKa values. Journal of Chemical Theory and Computation, 7(7):2284–2295, 2011. doi: 10.1021/ct200133y
- Olsson2011
M. H. M. Olsson, C. R. Søndergaard, M. Rostkowski, and J. H. Jensen. PROPKA3: Consistent treat- ment of internal and surface residues in empirical pKa predictions. Journal of Chemical Theory and Computation, 7(2):525–537, 2011. doi: 10.1021/ct100578z