Skip to main content

A python module for flexible Poisson-Boltzmann based pKa calculations with proton tautomerism

Project description

PyPI version PyPI - Downloads

pKAI

A fast and interpretable deep learning approach to accurate electrostatics-driven pKa prediction

@article{pkai,
author = {Reis, Pedro B. P. S. and Bertolini, Marco and Montanari, Floriane and Machuqueiro, Miguel and Clevert, Djork-Arné},
title = {pKAI: A fast and interpretable deep learning approach to accurate electrostatics-driven pKa prediction},
note = {in preparation}
}

Installation & Basic Usage

We recommend installing pKAI on a conda enviroment. The pKAI+ model will be downloaded on the first execution and saved for subsequent runs.

python3 -m pip install pKAI

pKAI <pdbfile>

It can also be used as python function,

from pKAI.pKAI import pKAI

pks = pKAI(pdb)

where each element of the returned list is a tuple of size 4. (chain, resnumb, resname, pk)

pKAI+ vs pKAI models

pKAI+ (default model) aims to predict experimental pKa values from a single conformation. To do such, the interactions characterized in the input structure are given less weight and, as a consequence, the predictions are closer to the pKa values of the residues in water. This effect is comparable to an increase in the dielectric constant of the protein in Poisson-Boltzmann models. In these models, the dielectric constant tries to capture, among others, electronic polarization and side-chain reorganization. When including conformational sampling explicitly, one should use a lower value for the dielectric constant of the protein. Likewise, one should use pKAI -- instead of pKAI+ -- as in this model there is no penalization of the interactions' impact on the predicted pKa values.

tl;dr version

  • use pKAI+ for pKa predictions arising from a single structure
  • use pKAI for pKa predictions arising from multiple conformations

Change the model to be used in the calculation by evoking the model argument:

pKAI <pdbfile> --model pKAI

Benchmark

Performed on 736 experimental values taken from the PKAD database1.

Method RMSE MAE Quantile 0.9 Error < 0.5 (%)
Null2 1.09 0.72 1.51 52.3
PROPKA3 1.11 0.73 1.58 51.1
PypKa4 1.07 0.71 1.48 52.6
pKAI 1.15 0.75 1.66 49.3
pKAI+ 0.98 0.64 1.37 55.0

[1] Pahari, Swagata et al. "PKAD: a database of experimentally measured pKa values of ionizable groups in proteins." doi:10.1093/database/baz024

[2] Thurlkill, Richard L et al. “pK values of the ionizable groups of proteins.” doi:10.1110/ps.051840806

[3] Olsson, Mats H M et al. “PROPKA3: Consistent Treatment of Internal and Surface Residues in Empirical pKa Predictions.” doi:10.1021/ct100578z

[4] Reis, Pedro B P S et al. “PypKa: A Flexible Python Module for Poisson-Boltzmann-Based pKa Calculations.” doi:10.1021/acs.jcim.0c00718

License

This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree.

Contacts

Please submit a github issue to report bugs and to request new features. Alternatively, you may email the developer directly.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pKAI-1.2.0.tar.gz (27.3 MB view hashes)

Uploaded Source

Built Distribution

pKAI-1.2.0-py3-none-any.whl (27.3 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page