Skip to content

transfix/F2Dock

 
 

Repository files navigation

F2Dock

CI/CD

Fast Fourier protein–protein docking with multi-term scoring.

F2Dock predicts how two proteins bind by exhaustively sampling rigid-body orientations on an FFT grid and ranking poses with a combined electrostatic, van der Waals, shape complementarity, and solvation score. A companion tool, GB-Rerank, rescores the top poses using a Generalized Born solvation model for improved accuracy.

Developed at the Computational Visualization Center, Oden Institute for Computational Engineering and Sciences, The University of Texas at Austin.

Features

  • FFT-accelerated exhaustive rotational/translational search
  • Multi-term scoring: electrostatics, van der Waals, desolvation, shape complementarity
  • Generalized Born reranking (GB-Rerank)
  • Hydrogen-bond and residue-contact post-filters
  • Dynamic Packing Grid (PG) for fast spatial range queries
  • Cross-platform: Linux, macOS, Windows

Quick start

Prerequisites

Dependency Notes
C++20 compiler GCC 13+, Clang 16+, or MSVC 19.4+
CMake 3.16+
FFTW 3 libfftw3-dev (apt), fftw (brew), or via vcpkg
pthreads Built-in on Linux/macOS; PThreads4W via vcpkg on Windows

Build

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel

Executables are placed in build/bin/.

Run

F2Dock parameterFile
F2Dock -score parameterFile
GB-Rerank parameterFile

Usage example

F2Dock reads a plain-text parameter file that lists the input molecules and scoring options. Four example parameter files and their associated test data are included in tests/.

Run docking on the 1ACB enzyme–inhibitor complex from the repository root:

build/bin/F2Dock tests/1ACB.inp

The parameter file tests/1ACB.inp looks like:

staticMolecule   tests/1ACB_R_U_1.7.f2d
movingMolecule   tests/1ACB_L_U.f2d
staticMoleculePQR  tests/1ACB_R_U.pqr
movingMoleculePQR  tests/1ACB_L_U.pqr
staticMoleculeQUAD tests/1ACB_R_U.quad
movingMoleculeQUAD tests/1ACB_L_U.quad
rmsdAtoms        tests/1ACB_rmsd_backbone_unbound_10.0.txt
outFile          tests/1ACB_out.txt

rotFile          deg15.mtx
numRot           100000
effGridFile      fftw-rank.txt

complexType      E
numSolutions     20000
rerank           true
numRerank        2000
breakDownScores  true
numThreads       4

Key parameters

Parameter Description
staticMolecule / movingMolecule F2D structure files for receptor and ligand
staticMoleculePQR / movingMoleculePQR PQR charge/radius files
staticMoleculeQUAD / movingMoleculeQUAD Surface quadrature point files
rotFile Euler angle rotation set (e.g. deg15.mtx)
numRot Number of rotations to sample
effGridFile Machine-specific FFT grid sizes for best performance
complexType A (antibody–antigen), E (enzyme–inhibitor), G (other), U (auto-detect)
numSolutions Max docking poses to output
rerank / numRerank Enable GB-Rerank rescoring and number of top poses to rescore
outFile Output file for ranked docking poses
numThreads Number of CPU threads

All file paths are relative to the current working directory. See doc/params/ for the full parameter reference.

Windows

vcpkg install fftw3:x64-windows pthreads:x64-windows
cmake -B build -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake
cmake --build build --config Release

Testing

cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel
cd build && ctest --output-on-failure

89 unit tests cover the spatial index, scoring components, file parsers, and math utilities.

Formatting

F2Dock CI enforces clang-format on changed lines.

Use this before pushing:

git fetch origin
git clang-format <base>

For example, if your PR targets master:

git clang-format origin/master

Install

cmake --install build --prefix /usr/local

Installs executables to bin/ and data files (rotation matrices) to share/F2Dock/data/.

Releases

Pre-built binaries for Linux, macOS, and Windows are published on the Releases page whenever a version tag is pushed.

Project layout

src/
  f2dock/         Main docking driver
  fast-GB/        Fast Generalized Born solvation
  fast-LJ/        Lennard-Jones van der Waals
  fast-hydro/     Hydrophobicity scoring
  fast-PQ/        Skin surface / shape complementarity
  fast-clash/     Steric clash filter
  fast-resCont/   Residue contact filter
  PG-range/       Dynamic Packing Grid spatial index
  fft-utils/      FFT grid construction and correlation
  GB-rerank/      GB-Rerank standalone rescoring tool
  hbondFilter/    Hydrogen-bond post-filter
  math/           Pairing heap, spherical harmonics
  libmol/         Molecule I/O (PDB/PQR/F2D)
  utils/          Parameter parsing, timers
inc/              Headers (mirrors src/ structure)
tests/unit/       Google Test suite
doc/              Parameter and dependency documentation

References

  • Bajaj, C., Chowdhury, R., and Rasheed, M. A Dynamic Data Structure for Flexible Molecular Maintenance and Informatics. Bioinformatics, 27(1):55–62, 2011.
  • Chowdhury, R., Rasheed, M., Keidel, D., Moussalem, M., Olson, A., Sanner, M., and Bajaj, C. Protein-Protein Docking with F2Dock 2.0 and GB-Rerank. PLoS ONE, 8(3):e51397, 2013.

License

GNU Lesser General Public License v2.1

Contact

Computational Visualization Center Oden Institute for Computational Engineering and Sciences The University of Texas at Austin

About

F2Dock molecular dynamics application

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 87.1%
  • CMake 8.8%
  • C 3.8%
  • Other 0.3%