Rachel Clune 73865046c5 Creating the external foundry documentation structure and first round of documentation for RFD3 (#143)
* Starting to put together the foundry and RFD3 external documentation

Set up the foundation for Sphinx to be able to build the external docs, first draft of a ppi_design_tutorial has been completed.

* Add RFdiffusion3 documentation and update toctree

Added initial documentation for RFdiffusion3 under models/rfd3/docs/index.rst and linked it in the main docs toctree. Updated toctree maxdepth for better navigation and added a symlink for the rfd3 model documentation.

* Update and expand RFdiffusion3 documentation

Added introductory and reference documentation files, improved the index structure with general information and examples, and enhanced the PPI design tutorial with additional notes, figures, and clarifications. Also fixed a typo in a PDB filename.

* Update RFD3 documentation and tutorial content

Expanded the Sphinx static path to include RFD3 assets and made minor formatting and clarity improvements in the main and RFD3-specific documentation. The PPI design tutorial was revised for clarity, improved step-by-step instructions, and better separation of setup and execution steps.

* Update RFD3 documentation and tutorials

Added source_suffix to Sphinx conf.py for Markdown support. Updated index.rst to include new documentation sections. Expanded intro_inference_calculations.md with detailed instructions on inference input formats, job configuration, and output files. Improved input.md formatting for appendices and FAQs. Revised ppi_design_tutorial.md for clarity, added details on settings, and expanded explanations for hotspots and batch inference.

* Update RFD3 docs: clarify input specs and file formats

Expanded and clarified the documentation for RFdiffusion3 input specifications, including more detailed explanations of the 'contig' string, input file types, and example YAML/JSON formats. Improved the intro to inference calculations to better explain the structure and usage of settings files, and updated descriptions for job configuration and output files. Added a placeholder for configuration options documentation.

* Update RFdiffusion3 input documentation and examples

Expanded and clarified the documentation for RFdiffusion3 input specification, including detailed explanations of CLI arguments, InputSpecification fields, the InputSelection mini-language, contig string formatting, and advanced options such as partial diffusion and CIF parser arguments. Added more examples, debugging recommendations, and an updated FAQ. Also updated the output file naming explanation for clarity. Removed the obsolete configuration_options.md file.

Note that images are still not being rendered correctly in many of the md files. Fix will be in future commit.

* PPI tutorial and RFD3 docs update

Created output files for PPI tutorial and listed their locations. Made edits to files to add labels to sections to remove sphinx warnings.

* Delete docs/source/conf.py~

This is an auto-save file from emacs - it does not need to be in the repo.

* Delete docs/source/index.rst~

This is an auto-saved copy of index.rst,  it does not need to be in the repo

* Adding missing images and fixing docs symlink

* Fix grammatical error in RFdiffusion3 documentation

Fixed typo, clarified enzyme design language.

* Fix typos and enhance clarity in inference docs

Corrected typos and improved clarity in the documentation regarding inference settings and file formats.
2026-01-02 11:21:10 -08:00
2025-12-04 21:36:56 -08:00
2025-12-04 19:25:17 -08:00
2025-04-08 13:33:17 -07:00
2025-12-13 07:59:02 +00:00

Protein design with Foundry

Foundry provides tooling and infrastructure for using and training all classes of models for protein design, including design (RFD3), inverse folding (ProteinMPNN) and protein folding (RF3).

All models within Foundry rely on AtomWorks - a unified framework for manipulating and processing biomolecular structures - for both training and inference.

Note

We have a slack now! Join for updates and to get your questions answered here.

Getting Started

Quickstart guide

Installation

pip install "rc-foundry[all]"

Downloading weights Models can be downloaded to a target folder with:

foundry install base-models --checkpoint-dir <path/to/ckpt/dir>

where checkpoint-dir will be ~/.foundry/checkpoints by default. Foundry always searches ~/.foundry/checkpoints plus any colon-separated entries in $FOUNDRY_CHECKPOINT_DIRS during inference or subsequent commands to find checkpoints. base-models installs the latest RFD3, RF3 and MPNN variants - you can also download all of the models supported (including multiple checkpoints of RF3) with all, or by listing the models sequentially (e.g. foundry install rfd3 rf3 ...). To list the registry of available checkpoints:

foundry list-available

To check what you already have downloaded (searches ~/.foundry/checkpoints plus $FOUNDRY_CHECKPOINT_DIRS if set):

foundry list-installed

See examples/all.ipynb for how to run each model and design proteins end-to-end in a notebook.

Google Colab

For an interactive Google Colab notebook walking through a basic design pipeline with RFD3, MPNN, and RF3, please see the IPD Design Pipeline Tutorial.

RFdiffusion3 (RFD3)

RFdiffusion3 is an all-atom generative model capable of designing protein structures under complex constraints.

RFdiffusion3 generation trajectory.

See models/rfd3/README.md for complete documentation.

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

See models/rf3/README.md for complete documentation.

ProteinMPNN

ProteinMPNN and LigandMPNN are lightweight inverse-folding models which can be use to design diverse sequences for backbones under constrained conditions.

See models/mpnn/README.md for complete documentation.


Development

Code Organization

Strict dependency flow: foundryatomworks

  • atomworks: Structure I/O, preprocessing, featurization
  • foundry: Model architectures, training, inference endpoints
  • models/<model>: Released models.

For Core Developers (Multiple Packages)

Install both foundry and models in editable mode for development:

uv pip install -e '.[all,dev]'

This approach allows you to:

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

Note

Running tests is not currently supported, test files may be missing.

Adding New Models

To add a new model:

  1. Create models/<model_name>/ directory with its own pyproject.toml
  2. Add foundry 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.

Citation

If you use this repository code or data in your work, please cite the relavant work as below:

@article{corley2025accelerating,
  title={Accelerating biomolecular modeling with atomworks and rf3},
  author={Corley, Nathaniel and Mathis, Simon and Krishna, Rohith and Bauer, Magnus S and Thompson, Tuscan R and Ahern, Woody and Kazman, Maxwell W and Brent, Rafael I and Didi, Kieran and Kubaney, Andrew and others},
  journal={bioRxiv},
  year={2025}
}

@article {butcher2025_rfdiffusion3,
    author = {Butcher, Jasper and Krishna, Rohith and Mitra, Raktim and Brent, Rafael Isaac and Li, Yanjing and Corley, Nathaniel and Kim, Paul T and Funk, Jonathan and Mathis, Simon Valentin and Salike, Saman and Muraishi, Aiko and Eisenach, Helen and Thompson, Tuscan Rock and Chen, Jie and Politanska, Yuliya and Sehgal, Enisha and Coventry, Brian and Zhang, Odin and Qiang, Bo and Didi, Kieran and Kazman, Maxwell and DiMaio, Frank and Baker, David},
    title = {De novo Design of All-atom Biomolecular Interactions with RFdiffusion3},
    elocation-id = {2025.09.18.676967},
    year = {2025},
    doi = {10.1101/2025.09.18.676967},
    publisher = {Cold Spring Harbor Laboratory},
    URL = {https://www.biorxiv.org/content/early/2025/11/19/2025.09.18.676967},
    eprint = {https://www.biorxiv.org/content/early/2025/11/19/2025.09.18.676967.full.pdf},
    journal = {bioRxiv}
}

@article{dauparas2022robust,
  title={Robust deep learning--based protein sequence design using ProteinMPNN},
  author={Dauparas, Justas and Anishchenko, Ivan and Bennett, Nathaniel and Bai, Hua and Ragotte, Robert J and Milles, Lukas F and Wicky, Basile IM and Courbet, Alexis and de Haas, Rob J and Bethel, Neville and others},
  journal={Science},
  volume={378},
  number={6615},
  pages={49--56},
  year={2022},
  publisher={American Association for the Advancement of Science}
}

@article{dauparas2025atomic,
  title={Atomic context-conditioned protein sequence design using LigandMPNN},
  author={Dauparas, Justas and Lee, Gyu Rie and Pecoraro, Robert and An, Linna and Anishchenko, Ivan and Glasscock, Cameron and Baker, David},
  journal={Nature Methods},
  pages={1--7},
  year={2025},
  publisher={Nature Publishing Group US New York}
}

Acknowledgments

We thank Rachel Clune and Hope Woods from the RosettaCommons for their collaboration on the codebase, documentation, tutorials and examples.

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