Skip to content

fpocket is a very fast open source protein pocket detection algorithm based on Voronoi tessellation. The platform is suited for the scientific community willing to develop new scoring functions and extract pocket descriptors on a large scale level. fpocket is distributed as free open source software. If you are interested in integrating fpocket …

License

Notifications You must be signed in to change notification settings

Discngine/fpocket

Repository files navigation

fpocket logo

Build Status Join the chat at https://gitter.im/fpocket/community

The fpocket suite of programs is a very fast open source protein pocket detection algorithm based on Voronoi tessellation. The platform is suited for the scientific community willing to develop new scoring functions and extract pocket descriptors on a large scale level.

Detailed documentation is available here: User Manual. The documentation below here is just a quick & rough overview.

Content

  • fpocket : the original pocket prediction on a single protein structure
  • mdpocket : extension of fpocket to analyse conformational ensembles of proteins (MD trajectories for instance)
  • dpocket : extract pocket descriptors
  • tpocket : test your pocket scoring function

What's new compared to fpocket 2.0 (old sourceforge repo)

fpocket:

  • fpocket now supports mmCIF as input and output format together with the classical PDB format
  • support was added to define / delete and handle protein chains or sets of them to enable characterization of protein protein binding epitopes
  • is now able to consider explicit pockets when you want to calculate properties for a known binding site
  • cli changed a bit
  • pocket flexibility using temperature factors is better considered (less very flexible pockets on very solvent exposed areas)
  • druggability score has been reoptimized vs original paper. Yields now slightly better results than the original implementation.
  • compiler bug on newer compilers fixed

mdpocket:

  • can now read Gromacs XTC, netcdf and dcd trajectories
  • can also read prmtop topologies
  • if topology provided, interaction energy grids can be calculated for transient pockets and channels (experimental)

Getting Started

Prerequisites (if you want to compile it)

The most recent versions (starting with fpocket 3.0) make use of the molfile plugin from VMD. This plugin is shipped with fpocket. However, now you need to install the netcdf library on your system. This is typically called netcdf-devel or so, depending on you linux distribution. fpocket needs to be compiled to run on your machine. For this you'll need the gnu c compiler (or another one).

install netcdf-devel on ubuntu type :

sudo apt-get install libnetcdf-dev

on a RHEL based distribution something like this should do:

sudo yum install netcdf-devel.x86_64

on OSX:

Install MacPorts https://www.macports.org/ for instance (needed for netcdf install)

sudo port install netcdf
export LIBRARY_PATH=/opt/local/lib

Docker Image

Using the official fpocket docker image

The following command will pull the latest fpocket docker image from the dockerhub.

docker pull fpocket/fpocket

Building the docker image

You can create a docker image with fpocket using the provided Dockerfile of the repo (obviously you'd need docker to do that):

docker build -t fpocket/fpocket .

Using the docker image

This will build fpocket into your local fpocket/fpocket image. You can then run fpocket/mdpocket etc using:

docker run -v `pwd`:/workdir fpocket/fpocket fpocket -f /workdir/yourfile.pdb

Here you mount your current directory with your input files into the preconfigured /workdir in the docker container and then run fpocket on a file in that mounted folder. Make sure that the folder is writeable to others if you run it through docker.

Installing

Download the sources from github via the website or using git clone and then build and deploy fpocket using the following commands.

Compiling on Linux

git clone https://github.com/Discngine/fpocket.git
cd fpocket
make 
sudo make install

Compiling on Mac

git clone https://github.com/Discngine/fpocket.git
cd fpocket
make ARCH=MACOSXX86_64
sudo make install

For M1 and M2, use the MACOSXARM64 architecture:

ARCH=MACOSXARM64 make

Using conda

There's also a conda package of fpocket available thanks to Simon Bray. You can install fpocket using conda with:

conda config --add channels conda-forge
conda install fpocket

Testing your installation

In order to test if the compilation went well you can compare results from fpocket sample files to reference results shipped with fpocket. The easiest way to do that is by using pytest. If you do not have pytest yet, you can install the required library using the conda environment file in the tests folder:

conda env create -f tests/environment.yml
conda activate fpocket_test

Once your conda environment activated you can run

pytest

If everything works fine you should get something like this output here:

fpocket_test) Mac-Pro:fpocket peter$ pytest 
============================================================= test session starts ==============================================================
platform darwin -- Python 3.7.7, pytest-5.4.2, py-1.8.1, pluggy-0.13.1
rootdir: /Users/peter/Documents/Work/fpocket_git/fpocket
collected 4 items                                                                                                                              

tests/test_fpocket.py ....                                                                                                               [100%]

============================================================== 4 passed in 40.92s ==============================================================

If something fails in there you'll have a rather verbose and red output ... trust me you'll notice and panic ;)

Running fpocket

You can run fpocket using the following command line as an example:

fpocket -f 1uyd.pdb

fpocket now also eats cif as input, so this would work as well. Make sure to use proper file extensions

fpocket -f 1uyd.cif

This will detect all pockets on the input pdb file, named 1uyd.pdb If you want to get all command line args for fpocket, simply type `fpocket``

Running mdpocket

To detect all pockets and create a pocket frequency grid on a sample input trajectory in an xtc format for instance you can run:

mdpocket --trajectory_file input.xtc --trajectory_format xtc -f topology.pdb

Detailed User Manual

You can access the detailed user manual here * User Manual

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

  • Peter Schmidtke - Initial work - pschmidtke
  • Vincent Le Guilloux - Initial work - leguilv
  • Mael Shorkar - Chain handling, MMCIF support - shorkarmael

License

This project is licensed under the MIT License - see the LICENSE file for details

About

fpocket is a very fast open source protein pocket detection algorithm based on Voronoi tessellation. The platform is suited for the scientific community willing to develop new scoring functions and extract pocket descriptors on a large scale level. fpocket is distributed as free open source software. If you are interested in integrating fpocket …

Resources

License

Stars

Watchers

Forks

Packages

No packages published