Add ability to predict then run a set of metrics
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.
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 . \
&& uv pip install -e ./models/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.
Development
Package Structure
ModelForge uses a multi-package architecture:
modelhub: Core package containing shared utilities, training infrastructure, and base classesmodels/rf3/: RF3 model package with model-specific code and dependenciesmodels/<future>/: Additional models can be added as separate packages
Installation Options
For Users (Single Model)
To use a model, you must first install modelhub in editable mode, then install the specific model:
# Install modelhub first (required)
uv pip install -e .
# Then install RF3
uv pip install -e ./models/rf3
# Future: Install other models
# uv pip install -e ./models/other_model
Important
You must install
modelhubwith-e(editable mode) first, before installing any model packages. This ensures both packages are installed in editable mode for proper development workflow.
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
modelhubshared 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:
- Create
models/<model_name>/directory with its ownpyproject.toml - Add
modelhubas a dependency - Implement model-specific code in
models/<model_name>/src/ - Users can install with:
uv pip install -e ./models/<model_name>
