HBDesigner is an algorithm that designs highly-connected hydrogen bonding networks that fit the requested design constraints onto an input protein backbone.
HBDesigner can be installed using mamba, uv, or Pixi.
# first, clone the repo
git clone https://github.com/Kuhlman-Lab/HBDesigner.git
cd HBDesigner/
To create a virtual environment with mamba for use on a GPU or CPU, respectively:
# for running on a GPU
mamba env create -f env_gpu.yaml
pip install .
# for running on a CPU
mamba env create -f env_cpu.yaml
pip install .
To create a virtual environment with uv for use on a GPU or CPU respectively:
uv venv --python 3.10
source .venv/bin/activate
# for running on a GPU
uv pip install -e ".[gpu]"
# for running on a GPU with cuda 12.4
uv pip install -e ".[gpu-cu124]"
# for running on a CPU
uv pip install -e ".[cpu]"
To create a virtual environment with Pixi for use on a GPU or CPU respectively:
# for running on a GPU
pixi install
# if installing with pixi on a GPU with CUDA 12.4 and include -e gpu-cu124 in pixi run command
pixi install -e gpu-cu124
# to install with pixi to run on a CPU instead use and include -e cpu in pixi run command
pixi install -e cpu
The Pixi installation is much faster than mamba, but requires slightly more awkward syntax when running HBDesigner. See examples/monomer/run_with_pixi for an example.
A detailed guide for running HBDesigner on your protein(s) of interest can be found at examples/README.md, along with many example runscripts for common design scenarios.
The preprocessed HBDesigner training dataset can be obtained here (TBD). For developers interested in replicating or extending this work, we provide details on preprocessing, training, and validation at hbdesigner/scripts/README.md.
The HBDesigner source code and model weights are provided under an MIT license (see LICENSE file). However, HBDesigner uses PyRosetta for minimization and scoring. PyRosetta requires a paid license for commercial use but is free for academic use. See the PyRosetta docs for details.
If you find HBDesigner useful for your own work, please use the following citation:
TBD