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.
- 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
| 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 |
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallelExecutables are placed in build/bin/.
F2Dock parameterFile
F2Dock -score parameterFile
GB-Rerank parameterFile
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.inpThe 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
| 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.
vcpkg install fftw3:x64-windows pthreads:x64-windows
cmake -B build -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake
cmake --build build --config Releasecmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel
cd build && ctest --output-on-failure89 unit tests cover the spatial index, scoring components, file parsers, and math utilities.
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/mastercmake --install build --prefix /usr/localInstalls executables to bin/ and data files (rotation matrices) to share/F2Dock/data/.
Pre-built binaries for Linux, macOS, and Windows are published on the Releases page whenever a version tag is pushed.
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
- 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.
GNU Lesser General Public License v2.1
Computational Visualization Center Oden Institute for Computational Engineering and Sciences The University of Texas at Austin