P2rank
P2Rank: Protein-ligand binding site prediction from protein structure based on machine learning.
Install / Use
/learn @rdk/P2rankREADME
<a href="https://github.com/rdk/p2rank/releases" title="go to the release page"><img src="https://img.shields.io/badge/release-2.5.1-green.svg"></img></a>
Description
P2Rank is a stand-alone command-line program for fast and accurate prediction of ligand-binding sites from protein structures. It achieves high prediction success rates without relying on external software for computation of complex features or on a database of known protein-ligand templates.
✨ What's new?
- Version 2.5 brings speed optimizations (~2x faster prediction), ChimeraX visualizations, and improvements to rescoring (
fpocket-rescorecommand). - Version 2.4.2 adds support for BinaryCIF (
.bcif) input and rescoring of fpocket predictions in.cifformat. - Version 2.4 adds support for mmCIF (
.cif) input and contains a special profile for predictions on AlphaFold models and NMR/cryo-EM structures.
Requirements
- Runtime: Java 17 or later (tested up to Java 25)
- Visualization (optional): PyMOL or ChimeraX
Runs on Linux, macOS, and Windows.
On Windows, run from Git Bash to avoid command-line formatting issues.
Setup
P2Rank requires no installation. Binary packages are available as GitHub Releases.
- Download: https://github.com/rdk/p2rank/releases
- Source code: https://github.com/rdk/p2rank
- Datasets: https://github.com/rdk/p2rank-datasets
Usage
<pre> <b>prank</b> predict -f test_data/1fbl.pdb # predict pockets on a single pdb file </pre>See more usage examples below...
Algorithm
P2Rank makes predictions by scoring and clustering points on the protein's solvent accessible surface. Ligandability score of individual points is determined by a machine learning model trained on a dataset of known protein-ligand complexes. For more details, see the slides and publications.
Presentation slides introducing the original version of the algorithm: Slides (pdf)
Publications
If you use P2Rank, please cite relevant papers: <a href="/misc/citations.md" title="go to the BibTex citations" target="_blank"><img align="right" src="https://img.shields.io/badge/BibTeX-eee"></img></a>
- Software article about P2Rank pocket prediction tool
Krivak R, Hoksza D. P2Rank: machine learning based tool for rapid and accurate prediction of ligand binding sites from protein structure. Journal of Cheminformatics. 2018 Aug. - Latest web-server article about updates in P2Rank and prankweb.cz
Polak L, Skoda P, Riedlova K, Krivak R, Novotny M, Hoksza D. PrankWeb 4: a modular web server for protein–ligand binding site prediction and downstream analysis. Nucleic Acids Research, 2025 May.- Web-server article about updates in prankweb.cz
Jakubec D, Skoda P, Krivak R, Novotny M, Hoksza D. PrankWeb 3: accelerated ligand-binding site predictions for experimental and modelled protein structures. Nucleic Acids Research, Volume 50, Issue W1, 5 July 2022, Pages W593–W597 - Web-server article introducing the web interface at prankweb.cz
Jendele L, Krivak R, Skoda P, Novotny M, Hoksza D. PrankWeb: a web server for ligand binding site prediction and visualization. Nucleic Acids Research, Volume 47, Issue W1, 02 July 2019, Pages W345-W349
- Web-server article about updates in prankweb.cz
- Conference paper introducing P2Rank prediction algorithm
Krivak R, Hoksza D. P2RANK: Knowledge-Based Ligand Binding Site Prediction Using Aggregated Local Features. International Conference on Algorithms for Computational Biology 2015 Aug 4 (pp. 41-52). Springer - Research article about PRANK rescoring algorithm (now included in P2Rank)
Krivak R, Hoksza D. Improving protein-ligand binding site prediction accuracy by classification of inner pocket points using local features. Journal of Cheminformatics. 2015 Dec.
👨💻 Usage Examples
Following commands can be executed in the installation directory.
Help and version
prank help # print help for main commands and parameters
prank -v # print version and some system info
Predict ligand binding sites (P2Rank algorithm)
prank predict test.ds # run on dataset containing a list of pdb/cif files
prank predict -f test_data/1fbl.pdb # run on a single pdb file
prank predict -f test_data/1fbl.cif # run on a single mmCIF file
prank predict -f test_data/1fbl.bcif # run on a single BinaryCIF file
prank predict -f test_data/1fbl.pdb.gz # run on a single gzipped pdb file (other formats can be compressed too)
prank predict -f test_data/1fbl.cif.zst # run on a single cif file compressed with Zstandard
prank predict -threads 8 test.ds # specify num. of working threads for parallel dataset processing
prank predict -o output_here test.ds # explicitly specify output directory
prank predict -c alphafold test.ds # use alphafold config and model (config/alphafold.groovy)
# this profile is recommended for AlphaFold models, NMR and cryo-EM
# structures since it doesn't depend on b-factor as a feature
Prediction output
For each structure file {protein_file} in the dataset, P2Rank generates several output files:
{protein_file}_predictions.csv: lists predicted pockets in order of score, including each pocket's score, center coordinates, adjacent residues, adjacent protein surface atoms, and a calibrated probability of being a ligand-binding site.{protein_file}_residues.csv: lists all residues from the input protein along with their scores, mapping to predicted pockets, and a calibrated probability of being a ligand-binding residue.- PyMol and ChimeraX visualizations:
.pmland.cxcscripts invisualizations/directory with additional files indata/.- Optional settings:
- Use
-visualizations 0to disable visualization generation. - Use
-vis_renderers 'pymol,chimerax'to toggle specific renderers on/off. - Use
-vis_copy_proteins 0to prevent copying protein structures to the visualizations directory (faster, but visualizations won't be portable).
- Use
- Optional settings:
- SAS points data: coordinates and ligandability scores for solvent-accessible surface (SAS) points are saved in
visualizations/data/{protein_file}_points.pdb.gz. Here:- Residue sequence number (position 23-26) represents the pocket rank (0 indicates no pocket).
- B-factor column contains predicted ligandability score.
Configuration
You can override the default parameter values in a custom config file:
prank predict -c config/example.groovy test.ds
prank predict -c example test.ds # same effect, config/ is default location and .groovy implicit extension
It is also possible to override parameters on the command line using their full name after - (not --).
prank predict -visualizations 0 -threads 8 test.ds # turn off visualizations and set the number of threads
prank predict -c example.groovy -visualizations 0 -threads 8 test.ds # overrides defaults as well as values from example.groovy
P2Rank has many configurable parameters.
To see the list of standard parameters look into config/default.groovy and other example config files in this directory.
To see the complete commented list of all (including undocumented)
parameters see Params.groovy in the source code.
Rescoring (PRANK algorithm)
In addition to predicting new ligand binding sites, P2Rank is also able to rescore pockets predicted by other methods (Fpocket, Pocketeer, ConCavity, SiteHound, MetaPocket2, LISE, DeepSite, and PUResNetV2.0 are supported at the moment). See rescoring documentation for details.
Rescoring output:
{protein_file}_rescored.csv: list of pockets sorted by the new score{protein_file}_predictions.csv: same as withprank predict(since 2.5)- Note: probability column is calibrated for rescoring fpocket predictions
- visualizations
prank rescore fpocket.ds
prank rescore fpocket.ds -o output_here # explicitly specify output directory
prank rescore fpocket.ds -c rescore_2024 # use new experimental rescoring model (recommended for alphafold models)
For rescoring, the dataset file needs to have a specific 2-column format. See examples in test_data/: fpocket.ds, concavity.ds, puresnet.ds.
New experimental rescoring model -c rescore_2024 shows promising results but hasn't been fully evaluated yet. It is recommended for AlphaFold models, NMR and cryo-EM structures since it doesn't depend on b-factor as a feature.
Run fpocket and rescore in one command
You can use fpocket-rescore command to run [Fpocket](https://github.com
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
isf-agent
a repo for an agent that helps researchers apply for isf funding
