A CLI tool optimized to find, characterize, and visualize drug-like RNA-ligand binding pockets in RNA structures (static or dynamic).
fpocketR is an RNA-specific wrapper for fpocket 4.0
Documentation: fpocketR ReadTheDocs
- System Requirements -- Installation
- Quick Start
- Demonstration Workflows
- Usage
- Copyright
- Acknowledgements
- Supported platforms: Linux (x86_64), MacOS (Intel/x86_64)
- Not supported: ARM-based MacOS (M1/M2) and native Windows
- Experimental: fpocketR may work on ARM MacOS with fpocket 4.2.1+. WARNING: We had observed that newer version of fpocket (>4.0.3) led to changes in predicted pockets which we have not validated.
- Windows users: Use WSL2 (Windows Subsystem for Linux) to run fpocketR. Follow the install instructions using the WSL2 linux terminal.
fpocketR is now available on Bioconda!
-
Install Conda
If you don’t have conda, follow the official installation guide. -
Add the Bioconda channel (if not already added):
conda config --add channels defaults conda config --add channels bioconda conda config --add channels conda-forge
-
Create and activate a new environment with fpocketR:
conda create -n fpocketR fpocketr conda activate fpocketR
This will install all required dependencies, including
fpocketandfpocketR.
If you prefer to install via PyPI, you can use Conda to set up the environment and then install fpocketR with pip:
-
Create and activate a new environment with fpocket and Python 3.11
conda create -n fpocketR -c conda-forge fpocket=4.0.3 python=3.11 pymol-open-source=2.5 conda activate fpocketR
-
Install fpocketR and dependencies from PyPI
pip install fpocketr
Note: The
fpocketbinary is installed via conda, not pip.
After installing, you can verify your setup by running the test suite:
-
Make sure you have installed the testing tools:
pip install 'fpocketR[test]' -
Find the fpocketR install location:
python -c "import fpocketR; print(fpocketR.__file__)" -
Run
pytestin the fpocketR source directory:pytest /path/to/fpocketR/ # or, if you are in the source directory: pytest
If all tests pass, your installation is working correctly.
Notes:
- For Windows users, use WSL (Windows Subsystem for Linux) for best compatibility. Guide to installing WSL and Ubuntu
- For MacOS users: fpocketR is not compatible with arm-based M1/M2 processors (only Intel/x86).
Run fpocketR from the command line to analyze RNA structures and visualize ligand binding pockets.
Activate your environment after installing fpocketR and its dependencies:
conda activate fpocketRTip: For a full list of options, run:
python -m fpocketR --helpAnalyze a local PDB file or fetch by PDB ID using the -pdb argument:
python -m fpocketR -pdb 3e5c.pdb
# or
python -m fpocketR -pdb 3e5cExample output:
| Tertiary structure | Pocket characteristics |
|---|---|
![]() |
Pocket color legend:
Add a secondary structure diagram using the -ss argument:
python -m fpocketR -pdb 2l1v.pdb -ss 2l1v.nsdExample output:
| Tertiary structure | Secondary structure | Pocket characteristics |
|---|---|---|
![]() |
![]() |
Analyze all NMR or Cryo-EM states using the --state 0 argument:
python -m fpocketR -pdb 2l1v.pdb -ss 2l1v.nsd --state 0Example output:
| Tertiary structure (pocket density) |
Secondary structure (pocket density) |
Pocket summary (all states) |
|---|---|---|
![]() |
![]() |
![]() |
Align ligand-bound (holo) and ligand-free (apo) structures for direct comparison using the --alignligand argument:
python -m fpocketR -pdb 8f4o_apo.pdb --alignligand 2gdi_holo.pdb --knownnt 19,20,42,43Example output:
| Apo structure and pocket | Apo and holo structures aligned |
|---|---|
![]() |
![]() |
Customize analysis with optional arguments:
- Select RNA chain:
-c (--chain) - Select ligand:
-l (--ligand) - Set raytracing resolution (lower = faster):
-dpi (--dpi) - Specify output path:
-o (--out)
python -m fpocketR -pdb 2gdi_holo.pdb --chain Y --ligand TPP --dpi 10 --out ./TPP_RSExample output:
- Output files and figures add to custom directory:
./TPP_RS/2gdi_holo_clean_out/.
| Tertiary structure (low resolution) |
|---|
![]() |
For advanced usage and batch processing, see the example workflows in the /fpocketR/demo folder:
- Batch submission using Bash scripts
- Batch submission using Snakemake
- Multistate analysis on modeled RNA structures from CASP
Each demo includes step-by-step instructions and sample files to help you automate fpocketR analyses for large datasets or complex workflows.
Full list of arguments for fpocketR.
| Option / Argument | Type | Description |
|---|---|---|
| Input options | ||
-pdb, --pdb (Required) |
str | Path to a .pdb file, .cif file, or 4 character PDB identification code. |
-ss, --ss |
str | Path to an .ss or other secondary structure file for generating secondary structure figures. |
| fpocket parameter options | ||
-m |
float | Minimum radius for an a-sphere (Default: 3.0). |
-M |
float | Maximum radius for an a-sphere (Default: 5.70). |
-i |
int | Minimum number of a-spheres per pocket (Default: 42). |
-D |
float | A-sphere clustering distance for forming pockets (Default: 1.65). |
-A |
int | Number of electronegative atoms required to define a polar a-sphere (Default: 3). |
-p |
float | Maximum ratio of apolar a-spheres in a pocket (Default: 0.0). |
| Output options | ||
-o, --out |
str | Path to the output parent directory (Default: "./fpocketR_out"). |
-n, --name |
str | Output filename prefix and output subdirectory name (Default: "{PDB}_clean_out"). |
-y, --yes |
bool | Answers yes to user prompts for overwriting files (Default: False). |
| Analysis settings | ||
-s, --state |
int | Specify the NMR states/model to analyze. 0 for all (Default: None). |
-c, --chain |
str | Specify a chain from the input .pdb file (Default: <first_rna_chain>). |
-l, --ligand |
str | PDB ligand identification code (2-3 characters). |
-lc, --ligandchain |
str | Chain containing ligand from the input .pdb file (Default: <--chain input>). |
-nt, --knownnt |
list[int] | List residue IDs of nucleotides in known pocket (e.g. 1,2,3) (Default: None). |
-off, --offset |
int | Offset between starting nucleotide of RNA sequence and starting nucleotide of PDB structure (automatic). |
-qf, --qualityfilter |
float | Minimum fpocket score for pocket (Default: 0.0). |
| Figure settings | ||
-dpi, --dpi |
int | Figure resolution in dpi (Default: 300). |
-z, --zoom |
float | Zoom buffer (Å) for creating 3D figures (Default: 5.0). |
-cp, --connectpocket |
bool | Visually connects pockets in 2D figures (Default: False). |
-al, --alignligand |
str | bool | Align structure with pocket prediction (target structure) to an RNA structure with a ligand (mobile structure). If str: path to a .pdb file, .cif file, or 4 character PDB identification of the mobile structure.If bool: input PDB file is used as the mobile structure. |
python -m fpocketR --helpIf you use fpocketR in your research, please cite:
-
S.D. Veenbaas, J.T. Koehn, P.S. Irving, N.N. Lama, & K.M. Weeks, Ligand-binding pockets in RNA and where to find them, Proc. Natl. Acad. Sci. U.S.A. 122 (17) e2422346122, https://doi.org/10.1073/pnas.2422346122 (2025).
-
Veenbaas, S. D., Felder, S., & Weeks, K. M. fpocketR: A platform for identification and analysis of ligand-binding pockets in RNA. BioRxiv, 2025.03.25.645323, https://doi.org/10.1101/2025.03.25.645323 (2025).
Copyright (c) 2025, Seth Veenbaas
Special thanks to psirving for helpful feedback and contributions.
Project based on the Computational Molecular Science Python Cookiecutter version 1.11.










