Skip to content
ByteDance-SeedPublic

About

FELIS: Free Energy of Ligand-protein InteractionS

Resources

Stars

7 stars

Watchers

1 watching

Forks

Repository files navigation

👋 Hi, everyone!
We are ByteDance Seed team.

You can get to know us better through the following channels👇

seed logo

Felis

Felis (Free Energy of Ligand-protein InteractionS) is a source-available toolkit for automated and scalable protein-ligand absolute binding free energy (ABFE) calculations. It is designed for high-throughput structure-based drug discovery and supports a practical ABFE workflow without the scaffold constraints of RBFE methods.

Getting started

Prerequisites

  • Python version >= 3.11, < 3.13
  • CUDA Toolkit >= 12.2
  • OpenMM >= 8.5, < 8.6
  • CMake, a C++ compiler, SWIG, and NVIDIA nvcc

Release compatibility

Component Version
FELIS 0.2.0
PerturbNonbondedPlugin 0.1.0
RelocationMCPlugin 0.1.0
OpenMM >= 8.5, < 8.6
CUDA Toolkit >= 12.2

The native plugins use OpenMM CUDA implementation APIs, so the OpenMM minor version is intentionally constrained. This release was validated with OpenMM 8.5 and CUDA Toolkit 12.2 on NVIDIA L20 GPUs.

Dependencies

OpenMM

You can install OpenMM using conda:

conda install -c conda-forge "openmm=8.5" "cuda-version=12.2"

Custom OpenMM plugins

Build the plugins from the repository root after activating the Python environment that contains OpenMM. PerturbNonbondedPlugin must be compiled and installed first:

./submodule/perturb-nonbonded-force/install.sh \
  --python "$(command -v python)" \
  --openmm-dir "$CONDA_PREFIX" \
  --prefix "$CONDA_PREFIX" \
  --build-dir "$PWD/build/perturb-nonbonded" \
  --cuda-tests on

The installer configures CMake, compiles the Reference and CUDA kernels and Python wrapper, runs ctest, installs into the selected OpenMM environment, and runs a Python loading test. Verify the installed module explicitly:

python -m PerturbNonbondedPlugin.testPluginInstallation

RelocationMCPlugin is required only when rmc_enable: true. It links against the installed PerturbNonbondedPlugin, so compile and install it second:

./submodule/openmm-relocationmc-plugin/install.sh \
  --python "$(command -v python)" \
  --openmm-dir "$CONDA_PREFIX" \
  --perturb-prefix "$CONDA_PREFIX" \
  --prefix "$CONDA_PREFIX" \
  --build-dir "$PWD/build/relocationmc" \
  --cuda-tests on

Verify the second plugin:

python -m RelocationMCPlugin.testPluginInstallation

Both builds require CUDA and write native libraries into $CONDA_PREFIX/lib/plugins. Their installers fail early if nvcc, OpenMMCUDA, or the required PerturbNonbonded headers and libraries are unavailable. In a driverless build image, replace --cuda-tests on with --cuda-tests auto; CUDA compilation remains mandatory. Run either installer with --help for all build and installation options.

Gromacs

You can easily install Gromacs using the apt package manager on Debian/Ubuntu-based systems:

sudo apt update
sudo apt install gromacs

Once the installation is complete, verify that your Gromacs version is 2022.5 or higher:

gmx --version

ProLIF

FELIS requires a patched ProLIF 2.0.3 installation. ProLIF is intentionally not installed as a Python package dependency, so install it from source before installing FELIS:

git clone https://github.com/chemosim-lab/ProLIF.git
cd ProLIF
git checkout v2.0.3
git apply ../submodule/prolif.patch
pip install .
cd ..

Installation

After installing the dependencies and required native plugin, install FELIS:

pip install .

Quick Start Example

We provide an example ABFE calculation in the examples/abfe/ directory. This example requires 8 GPUs to run.

cd examples/abfe/
bash run.sh

The script prepares input files from pl_bfe_dataset and runs the full ABFE workflow. The example configuration includes a documented RelocationMC section with rmc_enable: false. Enable it only after installing RelocationMCPlugin; the setting applies only to the protein/sysB leg.

License

  • FELIS-owned code and documentation are licensed under the Creative Commons Attribution-NonCommercial 4.0 International License, except where a file or directory states otherwise.
  • submodule/openmm-relocationmc-plugin/ is licensed under CC BY-NC 4.0.
  • submodule/perturb-nonbonded-force/ is licensed under the GNU Lesser General Public License v3.0 or later. Portions adapted from OpenMM 8.5.0 NonbondedForce retain their embedded MIT or LGPL notices.
  • pl_bfe_dataset/ and its subdirectories retain their own license files. In particular, the dataset root is CC BY 4.0, while some included collections use Apache-2.0 or MIT terms.
  • Third-party portions retain the copyright and license notices included in their source files and in THIRD_PARTY_NOTICES.

Citation

If you find Felis useful for your research and applications, feel free to give us a star ⭐ or cite us using:

@misc{liu2026developmentlargescalebenchmarksproteinligand,
      title={Development and large-scale benchmarks of a protein-ligand absolute binding free energy toolkit}, 
      author={Yu Liu and Ailun Wang and Yu Xia and Zhi Wang and Wen Yan},
      year={2026},
      eprint={2603.22274},
      archivePrefix={arXiv},
      primaryClass={physics.comp-ph},
      url={https://arxiv.org/abs/2603.22274}, 
}

Founded in 2023, ByteDance Seed Team is dedicated to crafting the industry's most advanced AI foundation models. The team aspires to become a world-class research team and make significant contributions to the advancement of science and society.

About

FELIS: Free Energy of Ligand-protein InteractionS

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages