Open-Source Neural Networks for Biomolecular Tasks

ModelForge is a repository of open-source models for common biomolecular tasks, including structure prediction, fixed-backbone sequence design ("inverse folding"), and de novo protein design.

All models within ModelForge share a common training harness and integrate with AtomWorks our generalized computational framework for biomolecular modeling.

For more information, please see our preprint, Accelerating Biomolecular Modeling with AtomWorks and RF3.

Warning

We fixed an inference bug on 8/29 that arose during codebase migration and impacted predictions from JSON and from mmCIF/PDB; the issue is now resolved but for the purposes of model benchmarking predictions should be re-run.

Important

We are currently finalizing some cleanup work within our repositories. Please expect the APIs (e.g., function and class names, inputs and outputs) to stabilize within the next two weeks. Thank you for your patience!

Note

Training code coming very soon, with documentation on how to fine-tune on new datasets!

RosettaFold3 (RF3)

RF3 is a structure prediction neural network that narrows the gap between closed-source AF-3 and open-source alternatives.

Protein-DNA complex prediction

Tip

Complete inference instructions for RF3 are provided here.

RF3 Quick Start - Installation & Usage

Follow these steps to set up ModelForge and run a test prediction with RF3.


1. Install the source repository and the RF3 model using uv

git clone https://github.com/RosettaCommons/modelforge.git \
  && cd modelforge \
  && uv python install 3.12 \
  && uv venv --python 3.12 \
  && source .venv/bin/activate \
  && uv pip install -e ".[rf3]"

2. Download model weights for RF3

wget http://files.ipd.uw.edu/pub/rf3/rf3_latest.pt

3. Run a test prediction

rf3 fold models/rf3/tests/data/5vht_from_json.json

Details on the exact formatting of the json files are available here.

Note

IPD Users: If you're running within the IPD environment, please see IPD_USAGE.md for instructions on using the shebang system, apptainer containers, and SLURM job submission for training, inference, and validation.

Development

Package Structure

ModelForge uses a multi-package architecture:

  • modelhub: Core package containing shared utilities, training infrastructure, and base classes
  • models/rf3/: RF3 model package with model-specific code and dependencies
  • models/<future>/: Additional models can be added as separate packages

Installation Options

For Users (Single Model)

Use pip install modelforge[<model>] semantics (or uv pip install -e ".[<model>]" when developing locally) to pull in model-specific dependencies and the associated CLI in one step:

# Install modelforge with RF3 ready to go
uv pip install -e ".[rf3]"

# Install only the core utilities (no models)
uv pip install -e .

# Future models follow the same pattern
# uv pip install -e ".[other_model]"

For Core Developers (Multiple Packages)

Install both modelhub and models in editable mode for development:

# Install modelhub and RF3 in editable mode
uv pip install -e . -e ./models/rf3

# Or install only modelhub (no models)
uv pip install -e .

This approach allows you to:

  • Modify modelhub shared utilities and see changes immediately
  • Work on specific models without installing all models
  • Add new models as independent packages in models/

Adding New Models

To add a new model:

  1. Create models/<model_name>/ directory with its own pyproject.toml
  2. Add modelhub as a dependency
  3. Implement model-specific code in models/<model_name>/src/
  4. Users can install with: uv pip install -e ./models/<model_name>

Pre-commit Formatting

We ship a .pre-commit-config.yaml that runs make format (via ruff format) before each commit. Enable it once per clone:

pip install pre-commit  # if not already installed
pre-commit install

After installation the hook automatically formats the repo whenever you git commit. Use pre-commit run --all-files to apply it manually.

Description
No description provided
Readme 195 MiB
Languages
Python 99.6%
Makefile 0.2%
Jupyter Notebook 0.1%