PROPKA 3: Heuristic \(\text{p}K_\text{a}\) prediction

Release

3.4.0+0.g68007f0.dirty

Date

Dec 19, 2020

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.6 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

Atom

bonds

Bonds

group

Data structures for groups

conformation_container

Molecular data structures

molecular_container

PDB molecular container

I/O

input

Input handling

lib

Set-up of a PROPKA calculation

output

Output

parameters

Configuration file parameters

hybrid36

Hybrid36 PDB-like file format

ligand_pka_values

Ligand pKa values from Marvin

run

Script functionality

version

Version-based configuration

Structure processing

protonate

Protonate a structure

hydrogens

Hydrogens

ligand

Ligand atom typing

Calculations

calculations

Calculations

coupled_groups

Coupling between groups

determinant

Determinant

determinants

Working with Determinants

energy

Energy calculations

iterative

Working with Determinants

vector_algebra

Vector calculations

Changelog

v3.4.0

Changes
  • Removed PROPKA input support and argument --generate-propka-input (#99)

  • Add Python 3.9 support to continuous integration. (#101)

  • Removed logging abstraction from code to facilitate debugging and reduce code bloat. (#108)

Fixes

v3.3.0

Additions
Changes
Fixes
  • Bundle required JSON files with package. (#48)

  • Fixed KeyError bug in read_parameter_file(). (#65)

  • Update links to web server. (#80)

  • Fixed PDB reading for PROPKA “single” runs. (#82)

v3.2.0

Additions
  • Significantly expanded testing framework. (#30, #36, #37)

Changes
  • Improved ability to use PROPKA as a module in other Python scripts. (#8)

  • Improved output via logging. (#11, #12)

  • Replaced data/parameter pickle file with human-readable JSON. (#29)

  • Significant delinting and formatting standardization against PEP8. (#33, #40)

  • Improved package documentation. (#41, #61)

  • Significant package refactoring. (#46, #47, #59)

  • Simplify module import structure. (#49, #61)

  • Improved tempfile handling. (#61)

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