> ## Documentation Index
> Fetch the complete documentation index at: https://proto.evodesign.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# RoseTTAFold3 (RF3)

> RoseTTAFold3 (RF3) is an all-atom biomolecular structure prediction model from the [Institute for Protein Design](https://www.ipd.uw.edu/) at the University of Washington, distributed as part of the [RosettaCommons Foundry](https://github.com/RosettaCommons/foundry) framework. It predicts the joint 3D structure of complexes that combine proteins, DNA, RNA, and small-molecule ligands, with first-class support for chirality. This toolkit runs RF3 structure prediction from sequences, SMILES, and CCD codes, with optional ColabFold multiple-sequence alignments.

<div class="page-hero"><img class="page-hero-banner" src="https://proto-bio.github.io/proto-assets/images/tool/rf3/hero.png" alt="RoseTTAFold3 (RF3)" /><div class="tool-org-badges page-hero-badges"><a href="/docs/tools/organizations/institute-for-protein-design" class="tool-org-badge" style={{background: "#4b2e83"}} title="Institute for Protein Design"><img src="https://mintcdn.com/bio-pro/_UGa2jUMKeVPCbLk/assets/images/cached/6c4da2f317fc.png?fit=max&auto=format&n=_UGa2jUMKeVPCbLk&q=85&s=e0eec78648cb6cc4938f40ab18608b31" alt="" class="tool-org-badge-logo" width="200" height="200" data-path="assets/images/cached/6c4da2f317fc.png" /> IPD</a></div></div>

<Note>
  **License:** RoseTTAFold3 (RF3) is open source and free for academic and commercial use under a BSD-3-Clause license and may require explicit attribution when utilized. Please refer to [the license](https://github.com/RosettaCommons/foundry/blob/production/LICENSE.md) for full terms.
</Note>

<p class="entity-disclaimer">Proto is not affiliated with Institute for Protein Design. This toolkit is open source and builds on the implementation produced by this organization. Product names, logos, and trademarks are the property of their respective owners.</p>

<hr class="entity-rule" />

<input type="radio" name="tab-rf3" id="none-rf3" class="tab-radio-input" />

<input type="radio" name="tab-rf3" id="github-rf3" class="tab-radio-input" defaultChecked />

<input type="radio" name="tab-rf3" id="preprint-rf3" class="tab-radio-input" />

<input type="radio" name="tab-rf3" id="cite-rf3" class="tab-radio-input" />

<input type="radio" name="tab-rf3" id="source-rf3" class="tab-radio-input" />

<input type="radio" name="tab-rf3" id="notebook-rf3" class="tab-radio-input" />

<input type="radio" name="tab-rf3" id="proto-rf3" class="tab-radio-input" />

<div class="tool-tab-bar">
  <span class="tool-tab-wrap"><label for="github-rf3" class="tool-tab tab-open badge-github"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> GitHub</label><label for="none-rf3" class="tool-tab tab-close badge-github"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> GitHub</label></span> <span class="tool-tab-wrap"><label for="preprint-rf3" class="tool-tab tab-open badge-preprint"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" /><polyline points="14 2 14 8 20 8" /><line x1="16" y1="13" x2="8" y2="13" /><line x1="16" y1="17" x2="8" y2="17" /><polyline points="10 9 9 9 8 9" /></svg> Preprint</label><label for="none-rf3" class="tool-tab tab-close badge-preprint"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" /><polyline points="14 2 14 8 20 8" /><line x1="16" y1="13" x2="8" y2="13" /><line x1="16" y1="17" x2="8" y2="17" /><polyline points="10 9 9 9 8 9" /></svg> Preprint</label></span> <span class="tool-tab-wrap"><label for="cite-rf3" class="tool-tab tab-open badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label><label for="none-rf3" class="tool-tab tab-close badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label></span> <span class="tool-tab-wrap"><label for="source-rf3" class="tool-tab tab-open badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Tool Source</label><label for="none-rf3" class="tool-tab tab-close badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Tool Source</label></span> <span class="tool-tab-wrap"><label for="notebook-rf3" class="tool-tab tab-open badge-notebook"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg> Open as Notebook</label><label for="none-rf3" class="tool-tab tab-close badge-notebook"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg> Open as Notebook</label></span> <span class="tool-tab-wrap"><label for="proto-rf3" class="tool-tab tab-open badge-proto"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" /></svg> Open on Proto</label><label for="none-rf3" class="tool-tab tab-close badge-proto"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" /></svg> Open on Proto</label></span>
</div>

<a href="https://github.com/RosettaCommons/foundry" target="_blank" class="tab-panel github-panel" data-tab="github-rf3">
  <div class="gh-card-wrap">
    <img src="https://opengraph.githubassets.com/1/RosettaCommons/foundry" class="gh-card-img img-fallback" alt="RosettaCommons/foundry" />

    <div class="gh-card-fallback">
      <div class="gh-fallback-org"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> RosettaCommons/foundry</div>
    </div>
  </div>

  <span class="panel-goto-btn gh-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> View repo</span></span>
</a>

<a href="https://doi.org/10.1101/2025.08.14.670328" target="_blank" class="tab-panel preprint-panel" data-tab="preprint-rf3">
  <div class="paper-info">
    <div class="paper-title">Accelerating Biomolecular Modeling with AtomWorks and RF3</div>
    <div class="paper-meta">Nathaniel Corley, Simon Mathis, ... Frank DiMaio</div>
    <div class="paper-meta paper-venue">bioRxiv (2025)</div>
  </div>

  <span class="panel-goto-btn preprint-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" /><polyline points="14 2 14 8 20 8" /><line x1="16" y1="13" x2="8" y2="13" /><line x1="16" y1="17" x2="8" y2="17" /><polyline points="10 9 9 9 8 9" /></svg> Read preprint</span></span>
</a>

<div class="tab-panel cite-panel" data-tab="cite-rf3">
  <div class="cite-code-wrap">
    ```bibtex theme={null}
    @article{corley2025rf3,
      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 McHugh, Lilian and Nagle, Arnav and Favor, Andrew and Kshirsagar, Meghana and Sturmfels, Pascal and Li, Yanjing and Butcher, Jasper and Qiang, Bo and Schaaf, Lars L. and Mitra, Raktim and Campbell, Katelyn and Zhang, Odin and Weissman, Roni and Humphreys, Ian R. and Cong, Qian and Funk, Jonathan and Sonthalia, Shreyash and Liò, Pietro and Baker, David and DiMaio, Frank},
      journal={bioRxiv},
      year={2025},
      doi={10.1101/2025.08.14.670328},
      publisher={Cold Spring Harbor Laboratory},
      url={https://www.biorxiv.org/content/10.1101/2025.08.14.670328v2}
    }
    ```
  </div>

  <span class="panel-goto-btn cite-copy-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Copy citation</span></span>
</div>

<a href="https://github.com/evo-design/proto-tools/tree/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/rf3" target="_blank" class="tab-panel source-panel" data-tab="source-rf3">
  <div class="source-info">
    <img src="https://github.com/evo-design.png?size=40" class="source-avatar" width="36" height="36" />

    <span class="source-path">evo-design/proto-tools<span class="source-subpath">/proto\_tools/tools/structure\_prediction/rf3</span></span>
  </div>

  <span class="panel-goto-btn source-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> View source</span></span>
</a>

<a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/rf3/examples/example.ipynb" target="_blank" class="tab-panel notebook-panel" data-tab="notebook-rf3">
  <div class="notebook-info">
    <span class="notebook-icon">
      <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
        <path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" />

        <path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />
      </svg>
    </span>

    <span class="notebook-label">Open Notebook</span>
  </div>

  <span class="panel-goto-btn notebook-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg> Open notebook</span></span>
</a>

<div class="tab-panel proto-panel" data-tab="proto-rf3">
  <div class="proto-info">
    <div class="proto-cloud">
      <svg class="proto-cloud-bg" viewBox="0 0 640 512" xmlns="http://www.w3.org/2000/svg">
        <path d="M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z" />
      </svg>

      <img noZoom src="https://mintcdn.com/bio-pro/KVh0EKV-IKblvXR8/assets/logo/evo-logo-light.svg?fit=max&auto=format&n=KVh0EKV-IKblvXR8&q=85&s=0cb66034ba45618505501aee6ea5f5c1" class="proto-panel-logo block dark:hidden" alt="Proto" width="198" height="151" data-path="assets/logo/evo-logo-light.svg" />

      <img noZoom src="https://mintcdn.com/bio-pro/KVh0EKV-IKblvXR8/assets/logo/evo-logo-dark.svg?fit=max&auto=format&n=KVh0EKV-IKblvXR8&q=85&s=2c9e23a14635e60384a434e220788f54" class="proto-panel-logo hidden dark:block" alt="Proto" width="198" height="151" data-path="assets/logo/evo-logo-dark.svg" />
    </div>
  </div>

  <div class="proto-actions">
    <a href="https://proto.evodesign.org/tools/rf3-prediction" target="_blank" class="proto-action-btn"><span>RoseTTAFold3 Structure Prediction</span><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7" /><polyline points="7 7 17 7 17 17" /></svg></a>
  </div>
</div>

<div class="entity-contributors"><span class="entity-contributors-label">Toolkit contributors</span><span class="entity-contributors-people"><a class="entity-contributor" href="https://github.com/bviggiano" target="_blank" rel="noopener" title="bviggiano: 12 commits"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/21143637?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">bviggiano</span></a><a class="entity-contributor" href="https://github.com/dguo8412" target="_blank" rel="noopener" title="dguo8412: 3 commits"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/46211285?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">dguo8412</span></a><a class="entity-contributor" href="https://github.com/brianhie" target="_blank" rel="noopener" title="brianhie: 1 commit"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/6365340?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">brianhie</span></a></span></div>

| Function               | Description                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ---------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `run_rf3_prediction()` | All-atom structure prediction with explicit chirality (RoseTTAFold3) (GPU) | <a href="#api-run-rf3-prediction" class="func-table-btn func-api-btn"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" /></svg> Docs</a> <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/rf3/rf3_prediction.py#L292" target="_blank" class="func-table-btn func-source-btn"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a> |

## Background

RoseTTAFold3 ([Corley et al., 2025](https://doi.org/10.1101/2025.08.14.670328)) predicts the joint 3D structure of a biomolecular assembly from the sequences and chemical components it contains. It is the latest entry in the RoseTTAFold lineage from the Baker and DiMaio labs at the Institute for Protein Design, and like AlphaFold3 and Boltz-2 it folds proteins, nucleic acids, and small-molecule ligands within a single model. The preprint reports that an improved treatment of chirality narrows the performance gap between RF3 and the closed-source AlphaFold3 on biomolecular benchmarks.

Architecturally RF3 builds on the new [AtomWorks](https://github.com/RosettaCommons/atomworks) data framework introduced alongside it in the preprint, and uses an AlphaFold3 style trunk together with a diffusion module that samples several candidate structures per complex from random noise. The best sample is selected by a composite ranking score that combines interface pTM, overall pTM, and a clash penalty. Alongside the predicted coordinates, RF3 reports per-residue and overall pLDDT, per-chain confidence, predicted aligned error (PAE) and predicted distance error (PDE), chain-pair PAE and PDE matrices for multi-chain inputs, and a boolean flag for steric clashes.

The reference implementation is open-sourced as part of the [RosettaCommons/foundry](https://github.com/RosettaCommons/foundry) monorepo under the BSD-3-Clause license, with model weights served openly from the IPD file server. It was developed at the [Institute for Protein Design](https://www.ipd.uw.edu/) (UW).

## Tools

<a name="api-run-rf3-prediction" />

<div class="tool-section-card tool-section-card--predict">
  ### RoseTTAFold3 Prediction (`rf3-prediction`)

  Predicts the 3D structure of a biomolecular complex. Each input complex can combine protein, DNA, RNA, and ligand chains. The assembly is folded by RF3 and returned as a predicted `Structure` per complex with confidence metrics, including average pLDDT, pTM, interface pTM for multi-chain inputs, per-chain pTM, an overall and chain-pair PAE and PDE in angstroms, a composite ranking score, and a steric-clash flag.

  #### API Reference

  <div class="api-model-section api-input-section">
    <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/rf3/rf3_prediction.py#L33" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a>

    <Accordion title="Input: RF3Input">
      <ParamField path="complexes" type="List[Complex]" required>
        List of complexes to predict structures for. Inherited from `StructurePredictionInput`. Each complex can contain multiple chains of proteins, DNA, RNA, and/or ligands.

        <Expandable title="Complex">
          <ParamField path="chains" type="List[Chain | Fragment]" required>
            Chains in the complex, in input order.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="msas" type="array">
        Pre-computed MSAs, one entry per complex. Each entry is a `ComplexMSAs` (per-chain MSAs keyed by chain index); `paired=True` marks rows taxonomy-aligned across chains. Populated by preprocess() or supplied directly. Default: None.
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-config-section">
    <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/rf3/rf3_prediction.py#L188" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a>

    <Accordion title="Config: RF3Config">
      <ParamField path="n_recycles" type="integer" default="10">
        Iterative refinement passes through the network. Higher = more accurate but slower. Default 10 (upstream default).
      </ParamField>

      <ParamField path="diffusion_batch_size" type="integer" default="5">
        Independent diffusion samples drawn per complex; the best by `ranking_score` is returned. Default 5.
      </ParamField>

      <ParamField path="num_steps" type="integer" default="50">
        Denoising steps in the diffusion process. Default 50.
      </ParamField>

      <ParamField path="cyclic_chains" type="List[string]">
        Chain IDs (e.g. `["A"]`) to mark as cyclic. Default `[]`.
      </ParamField>

      <ParamField path="verbose" type="integer" default="0">
        Verbosity level (0=quiet, 1=info, 2=debug, 3=raw subprocess stderr). Inherited from `BaseConfig`. Default `0`.
      </ParamField>

      <ParamField path="device" type="string" default="cuda">
        `"cuda"` or `"cpu"`. Inherited. Default `"cuda"`.
      </ParamField>

      <ParamField path="timeout" type="integer" default="1800">
        Maximum execution time in seconds. RF3 is heavier than Boltz2; the default is set accordingly. Default 1800.
      </ParamField>

      <ParamField path="seed" type="integer">
        Inherited. Default `None`.
      </ParamField>

      <ParamField path="include_pae_matrix" type="boolean" default="False">
        Inherited. **Must remain False** for RF3 (no per-token PAE matrix is emitted).
      </ParamField>

      <ParamField path="use_msa" type="boolean" default="True">
        Generate MSAs for protein chains via MMseqs2 homology search. Supplied MSAs are always used and override `use_msa=False`. Inherited from `MSAStructurePredictionConfig`. Default True.
      </ParamField>

      <ParamField path="msa_search_config" type="Mmseqs2HomologySearchConfig">
        Inherited. Default `None`.
      </ParamField>

      <ParamField path="pair_heterocomplex_msas" type="boolean" default="True">
        Use taxonomy-paired MSA generation for heterocomplex protein chains. Inherited. Default `True`.
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-output-section">
    <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/rf3/rf3_prediction.py#L178" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a>

    <Accordion title="Output: RF3Output">
      <ResponseField name="structures" type="List[Structure]" required>
        Predicted structures, each carrying a :class:`RF3Metrics` instance on `.metrics`.

        <Expandable title="Structure">
          <ResponseField name="structure" type="string" required>
            Raw structure content in PDB or CIF format.
          </ResponseField>

          <ResponseField name="structure_format" type="string">
            Format of the content string (auto-detected if omitted).
          </ResponseField>

          <ResponseField name="b_factor_type" type="BFactorType">
            What the B-factor column represents.
          </ResponseField>

          <ResponseField name="source" type="string">
            Optional source identifier (filepath or tool name).
          </ResponseField>

          <ResponseField name="metrics" type="Metrics">
            Associated metrics (e.g., pLDDT, pTM scores, per-chain lists, pairwise matrices). None values are stripped at construction.
          </ResponseField>
        </Expandable>
      </ResponseField>

      **Metrics** (one set per `structures` item)

      | Metric               | Type                | Range       | Availability                                |
      | -------------------- | ------------------- | ----------- | ------------------------------------------- |
      | `avg_plddt`          | float               | 0.0 to 1.0  | always                                      |
      | `ptm`                | float               | 0.0 to 1.0  | always                                      |
      | `iptm`               | float               | 0.0 to 1.0  | multi-chain input only                      |
      | `avg_pae`            | float               | 0.0 to 32.0 | always                                      |
      | `pde`                | float               | 0.0 to 32.0 | always                                      |
      | `ranking_score`      | float               | unbounded   | always                                      |
      | `chain_ptm`          | list\[float]        | 0.0 to 1.0  | always                                      |
      | `chain_pair_pae`     | list\[list\[float]] | 0.0 to 32.0 | always (empty list for single-chain inputs) |
      | `chain_pair_pae_min` | list\[list\[float]] | 0.0 to 32.0 | always (empty list for single-chain inputs) |
      | `chain_pair_pde`     | list\[list\[float]] | 0.0 to 32.0 | always (empty list for single-chain inputs) |
      | `chain_pair_pde_min` | list\[list\[float]] | 0.0 to 32.0 | always (empty list for single-chain inputs) |
      | `has_clash`          | bool                | unbounded   | always                                      |
    </Accordion>
  </div>

  #### Applications

  This tool predicts the structure of multi-component assemblies such as protein-DNA and protein-RNA complexes or protein-ligand binding poses. Within this toolkit it is also the model whose architecture has explicit chirality representations built in, which is relevant when modelling chiral small molecules, D-amino-acid residues, or peptides where stereochemistry matters. For multi-chain inputs the reported chain-pair PAE and PDE matrices together with interface pTM estimate how confidently the components are placed relative to each other, useful for ranking or filtering predicted interfaces.

  #### Usage Tips

  * **`use_msa` defaults to `True`.** A ColabFold search generates an MSA for each protein chain. Set it `False` for single-sequence prediction, or attach precomputed MSAs to the input.
  * **Diffusion samples are ranked by `ranking_score`.** `diffusion_batch_size` (default `5`) independent samples are drawn per complex. The best by `ranking_score = 0.8*iptm + 0.2*ptm - 100*has_clash` is returned, with `num_steps` (default `50`) controlling the denoising step count.
  * **`n_recycles` (default `10`) trades accuracy for time.** More recycling iterations refine the prediction at higher runtime. Leave the upstream default of `10` unless you have a specific reason to lower it.
  * **Cyclic chains.** Mark chains as cyclic (head-to-tail) with `cyclic_chains=["A", ...]`.
  * **No template or conformer conditioning.** RF3 can condition on input coordinates (templates, holo ligand conformers), but this wrapper accepts only sequences, SMILES, and CCD codes — no coordinate input — so those upstream options are not exposed.
  * **No per-token PAE matrix.** Unlike Boltz-2 and AlphaFold3, RF3 emits only chain-pair PAE aggregates (`avg_pae`, `chain_pair_pae`, `chain_pair_pae_min`) and a separate `pde` (predicted distance error). The inherited `include_pae_matrix` toggle is rejected by `RF3Config`.
  * **Multi-modal inputs.** Protein, DNA, RNA, and ligand entities are supported.
</div>

## Toolkit Notes

These apply to every RF3 tool in this toolkit (`rf3-prediction`).

* **Requires a GPU.** RF3 runs through a PyTorch backend and needs an NVIDIA GPU. CPU execution is not practical.
* **Open weights.** The RF3 checkpoint is downloaded automatically from the IPD file server during environment setup and lands in the proto-tools weights cache. No request form or token is required.
* **Predictions are stochastic.** Structures come from a diffusion process, so repeated runs vary unless sampling is seeded. The wrapper advances the seed per complex within a batch so duplicate inputs in one call still diversify.

<Tip>
  **Example notebook:** See the [full working example](https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/rf3/examples/example.ipynb) for a copy-paste-ready walkthrough.
</Tip>

## Infrastructure Guides

The following guides cover how to run tools efficiently and at scale.

<CardGroup cols={2}>
  <Card title="Tool Persistence" icon="repeat" href="/docs/tools/guides/tool-persistence">Keep a tool's model warm across calls instead of reloading it every invocation.</Card>
  <Card title="Device Management" icon="cpu" href="/docs/tools/guides/device-management">How GPUs are allocated to tools and how to target specific devices.</Card>
  <Card title="Parallel Execution" icon="layers" href="/docs/tools/guides/parallel-execution">Fan a batch of inputs out across multiple GPUs.</Card>
</CardGroup>
