maxkazman 8f0ac4a263 feat: Multiple GPU inference and LOCAL_MSA_DIRS env variable usage (#563)
* feat: support for multi-gpu inference and proper results gathering

* feat: utils for multi-gpu inference and multithreaded input parsing

* feat: use LOCAL_MSA_DIRS environment variable for msa dir override if available

* feat: automatically check shard depth and extension for msas during inference
2025-10-20 15:06:53 -07:00
2025-08-12 23:31:01 +01:00
2025-10-08 15:45:09 -07:00
2025-10-01 12:01:05 -07:00
2025-10-03 16:01:48 -07:00
2025-10-03 16:01:48 -07:00
2025-04-08 13:33:17 -07:00
2025-10-01 12:01:05 -07:00
2025-10-03 16:01:48 -07:00

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 . \
  && 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 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)

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 modelhub with -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 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>
Description
No description provided
Readme 195 MiB
Languages
Python 99.6%
Makefile 0.2%
Jupyter Notebook 0.1%