> ## 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.

# SpliceAI2

> [SpliceAI2](https://github.com/Illumina/SpliceAI2) is Illumina's successor to [SpliceAI](https://github.com/Illumina/SpliceAI): a deep learning model that predicts, from DNA sequence alone, how often each splice site is used, which donor/acceptor pairs are joined into junctions, and which full-length transcripts result. This toolkit wraps two tools: `spliceai2-score` for variant splice-effect scoring against a reference genome and `spliceai2-predict` for per-position splice usage, junction, and transcript prediction on any sequence.

<div class="page-hero"><img class="page-hero-banner" src="https://proto-bio.github.io/proto-assets/images/tool/spliceai2/hero.png" alt="SpliceAI2" /><div class="tool-org-badges page-hero-badges"><a href="/docs/tools/organizations/illumina" class="tool-org-badge tool-org-badge-light" style={{background: "#FF9E1B"}} title="Illumina"><img src="https://avatars.githubusercontent.com/u/11462464?s=200&v=4" alt="" class="tool-org-badge-logo" /> Illumina</a></div></div>

<p class="entity-disclaimer">Proto is not affiliated with Illumina. 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-spliceai2" id="none-spliceai2" class="tab-radio-input" />

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

<input type="radio" name="tab-spliceai2" id="hf-spliceai2" class="tab-radio-input" />

<input type="radio" name="tab-spliceai2" id="website-spliceai2" class="tab-radio-input" />

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

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

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

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

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

<div class="tool-tab-bar">
  <span class="tool-tab-wrap"><label for="github-spliceai2" 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-spliceai2" 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="hf-spliceai2" class="tool-tab tab-open badge-hf"><img src="https://huggingface.co/front/assets/huggingface_logo-noborder.svg" width="16" height="16" class="hf-logo" /> HuggingFace</label><label for="none-spliceai2" class="tool-tab tab-close badge-hf"><img src="https://huggingface.co/front/assets/huggingface_logo-noborder.svg" width="16" height="16" class="hf-logo" /> HuggingFace</label></span> <span class="tool-tab-wrap"><label for="website-spliceai2" class="tool-tab tab-open badge-website"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" /><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" /></svg> Website</label><label for="none-spliceai2" class="tool-tab tab-close badge-website"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" /><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" /></svg> Website</label></span> <span class="tool-tab-wrap"><label for="preprint-spliceai2" 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-spliceai2" 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-spliceai2" 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-spliceai2" 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-spliceai2" 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-spliceai2" 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-spliceai2" 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-spliceai2" 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-spliceai2" 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-spliceai2" 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/Illumina/SpliceAI2" target="_blank" class="tab-panel github-panel" data-tab="github-spliceai2">
  <div class="gh-card-wrap">
    <img src="https://opengraph.githubassets.com/1/Illumina/SpliceAI2" class="gh-card-img img-fallback" alt="Illumina/SpliceAI2" />

    <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> Illumina/SpliceAI2</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://huggingface.co/illumina-ai/SpliceAI2" target="_blank" class="tab-panel hf-panel" data-tab="hf-spliceai2">
  <div class="hf-card-wrap">
    <img src="https://cdn-thumbnails.huggingface.co/social-thumbnails/models/illumina-ai/SpliceAI2.png" class="hf-card-img img-fallback" alt="illumina-ai/SpliceAI2" />

    <div class="hf-card-fallback">
      <div class="hf-fallback-org"><img src="https://huggingface.co/front/assets/huggingface_logo-noborder.svg" width="16" height="16" class="hf-logo" /> illumina-ai/SpliceAI2</div>
    </div>
  </div>

  <span class="panel-goto-btn hf-goto-btn"><span><img src="https://huggingface.co/front/assets/huggingface_logo-noborder.svg" width="16" height="16" class="hf-logo" /> View model</span></span>
</a>

<a href="https://www.illumina.com/science/genomics-research/articles/introducing-spliceai2--the-next-generation-of-splicing-and-trans.html" target="_blank" class="tab-panel website-panel" data-tab="website-spliceai2">
  <div class="website-info">
    <img src="https://www.google.com/s2/favicons?domain=illumina.com&sz=32" class="website-favicon" width="24" height="24" />

    <span class="website-url">illumina.com</span>
  </div>

  <span class="panel-goto-btn website-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"><circle cx="12" cy="12" r="10" /><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" /></svg> Visit website</span></span>
</a>

<a href="https://assets.illumina.com/content/dam/illumina-marketing/images/genomics-research/articles/spliceai2/SpliceAI2.pdf" target="_blank" class="tab-panel preprint-panel" data-tab="preprint-spliceai2">
  <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-spliceai2">
  <div class="cite-code-wrap">
    ```bibtex theme={null}
    @unpublished{jaganathan_2026_spliceai2,
      title={A unified framework for quantitative splicing and transcript prediction},
      author={Jaganathan, Kishore and Chen, Jianbin and Liu, Xin and Zhang, Yan and Kim, Yujin and Banerjee, Abhimanyu and Fiziev, Petko P. and Wilcox, Naomi and Taskiran, Ibrahim I. and Cai, Yichao and Wigdor, Emilie M. and Chew, Guo-Liang and Png, Grace and McRae, Jeremy F. and Reddy, Aniketh Janardhan and Chao, Kuan-Hao and Mehio, Rami and Sanders, Stephan J. and Farh, Kyle Kai-How},
      note={Unpublished manuscript},
      year={2026},
      url={https://assets.illumina.com/content/dam/illumina-marketing/images/genomics-research/articles/spliceai2/SpliceAI2.pdf}
    }
    ```
  </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/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2" target="_blank" class="tab-panel source-panel" data-tab="source-spliceai2">
  <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/rna\_splicing/spliceai2</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/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/examples/example.ipynb" target="_blank" class="tab-panel notebook-panel" data-tab="notebook-spliceai2">
  <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-spliceai2">
  <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/spliceai2-predict" target="_blank" class="proto-action-btn"><span>SpliceAI2 Splice and Transcript 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>
    <a href="https://proto.evodesign.org/tools/spliceai2-score" target="_blank" class="proto-action-btn"><span>SpliceAI2 Variant Scoring</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: 1 commit"><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></span></div>

| Function | Description | |
| - | - | - |
| `run_spliceai2_predict()` | Predict splice site and junction usage and decode transcripts from DNA with SpliceAI2 (GPU) | <a href="#api-run-spliceai2-predict" 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/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_predict.py#L211" 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> |
| `run_spliceai2_score()` | Score variants for changes in splice site and junction usage with SpliceAI2 (GPU) | <a href="#api-run-spliceai2-score" 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/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_score.py#L360" 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> |

<Note>
  **License:** SpliceAI2 is licensed under Custom (SpliceAI2 Model Terms of Use) and has restrictions around commercial use and may require explicit attribution when utilized. Model weights are gated and require accepting the provider's terms and authenticating with a HuggingFace token. Please refer to [the license](https://github.com/Illumina/SpliceAI2/blob/main/LICENSE) for full terms.

  SpliceAI2 (code, weights, and precomputed scores) may only be used for non-commercial purposes by, or on behalf of, non-commercial organizations such as universities, academic research institutions, and government entities. Hosting, managed services, redistribution, and third-party access are prohibited, and any publication using its output must cite the SpliceAI2 manuscript. For commercial licensing, contact Illumina at [AI\_licensing@illumina.com](mailto:AI_licensing@illumina.com).
</Note>

## Background

[Pre-mRNA splicing](https://en.wikipedia.org/wiki/RNA_splicing) removes introns and joins exons at donor (5') and acceptor (3') splice sites, and [alternative splicing](https://en.wikipedia.org/wiki/Alternative_splicing) lets one gene produce many transcript isoforms. Variants that create, weaken, or destroy splice sites are a major cause of genetic disease, often deep in introns where exome sequencing does not look. Illumina's original SpliceAI ([Jaganathan et al., 2019](https://doi.org/10.1016/j.cell.2018.12.015)) became a standard tool for finding these variants, but it answers one question per position: is it a splice site? It does not say how strongly a site is used, which sites are joined, or what transcript results.

SpliceAI2 ([Jaganathan et al., 2026](https://assets.illumina.com/content/dam/illumina-marketing/images/genomics-research/articles/spliceai2/SpliceAI2.pdf)) is Illumina's successor, built to answer those questions quantitatively. From about 200 kb of genomic sequence it predicts the **usage** of each splice site, the usage of each **splice junction** (the intron joining a donor to an acceptor), and the complete **transcripts** these imply. Its training set is more than 100 times larger than SpliceAI's: 314,745 RNA-seq samples across human and nine other mammals (more than 46 million observed junctions after filtering), together with 330 ENCODE long-read samples that show which full transcripts cells actually make. A species channel tells the single network which genome it is reading.

Internally, a stack of dilated convolutional blocks reads the sequence at progressively wider scales to predict donor and acceptor usage across the central 65,536 bp. The 1,024 strongest candidate sites are then paired to predict junction usage, and these site and junction scores form a splice graph whose highest-scoring paths are the predicted transcripts. The model has about 13 million parameters, and the release averages two trained checkpoints.

To score a variant, SpliceAI2 compares predictions for the reference and alternate alleles and reports the ten largest gains and losses in donor, acceptor, and junction usage, plus a single `summary_score` in \[0, 1]. In Illumina's benchmarks it outperformed SpliceAI, Pangolin, and AlphaGenome, most clearly on cryptic splice variants deep in introns (auPRC 0.77 versus 0.66 for SpliceAI on GTEx). Eight of its output fields map one-to-one onto SpliceAI's delta scores and positions (`DS_DG`, `DS_DL`, `DS_AG`, `DS_AL`, `DP_*`), so existing SpliceAI pipelines translate directly.

This toolkit runs the released multispecies ensemble; the tissue-specific and disease-state models described in the manuscript are not publicly released.

### Learning Resources

* [Introducing SpliceAI2](https://www.illumina.com/science/genomics-research/articles/introducing-spliceai2--the-next-generation-of-splicing-and-trans.html) (Illumina) - accessible overview of the three prediction levels, the training data, and benchmark results against SpliceAI, Pangolin, and AlphaGenome.
* [SpliceAI2 repository](https://github.com/Illumina/SpliceAI2) (Illumina) - source, the reference variant-scoring CLI, output column definitions, and the transcript-decoding recipe this wrapper mirrors.
* [SpliceAI2 manuscript](https://assets.illumina.com/content/dam/illumina-marketing/images/genomics-research/articles/spliceai2/SpliceAI2.pdf) (Jaganathan et al., 2026) - architecture, training setup, and variant-effect benchmarks.

## Tools

<a name="api-run-spliceai2-score" />

<div class="tool-section-card tool-section-card--score">
  ### SpliceAI2 Variant Scoring (`spliceai2-score`)

  Scores genetic variants (chromosome, 1-based position, ref, alt, gene strand) for splice-altering effects, returning the ten strongest donor, acceptor, and junction gains and losses per variant and a headline `summary_score`. Reads each variant's sequence context from a reference genome.

  #### API Reference

  <div class="api-model-section api-input-section">
    <a href="https://github.com/evo-design/proto-tools/blob/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_score.py#L85" 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: SpliceAI2ScoreInput">
      <ParamField path="variants" type="List[SpliceAI2Variant]" required>
        Variants to score. A single variant is auto-wrapped into a list.

        <Expandable title="SpliceAI2Variant">
          <ParamField path="strand" type="enum" required>
            Strand of the gene the variant is scored against. Score both strands when it is unknown.

            Available options: `+`, `-`
          </ParamField>

          <ParamField path="chromosome" type="string" required>
            Chromosome name, e.g. `'1'` or `'chr1'`. A `chr` prefix is added or dropped to match the reference FASTA's naming.
          </ParamField>

          <ParamField path="position" type="integer" required>
            Variant position, 1-based (VCF convention).
          </ParamField>

          <ParamField path="ref" type="string" required>
            Reference allele, e.g. `'A'` or `'AC'` (DNA bases A/C/G/T/N).
          </ParamField>

          <ParamField path="alt" type="string" required>
            Alternate allele, e.g. `'G'` or `'GTT'` (DNA bases A/C/G/T/N).
          </ParamField>
        </Expandable>
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-config-section">
    <a href="https://github.com/evo-design/proto-tools/blob/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_score.py#L295" 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: SpliceAI2ScoreConfig">
      <ParamField path="verbose" type="integer" default="0">
        Verbosity level (0=quiet, 1=info, 2=debug, 3=raw subprocess stderr). `True` is coerced to `1` and `False` to `0`.
      </ParamField>

      <ParamField path="device" type="string" default="cuda">
        Device to run the model on (default `cuda`).
      </ParamField>

      <ParamField path="timeout" type="integer" default="3600">
        Maximum execution time in seconds. `None` waits indefinitely.
      </ParamField>

      <ParamField path="seed" type="integer">
        Random seed. When set, tools run reproducibly up to small GPU float noise (see `BaseToolOutput.approx_equal`), and the seed participates in cache keys. When None, cacheable seed-sensitive tools skip cache until seeded.
      </ParamField>

      <ParamField path="reference_fasta" type="string | string">
        The reference genome the sequence around each variant is read from. Either a provisioned assembly name (`'grch38'`/`'grch37'`, or `'hg38'`/`'hg19'`), downloaded on first use, or a path to a FASTA on this machine. Required at call time; `None` raises a `MissingAssetError`.
      </ParamField>

      <ParamField path="assembly" type="enum" default="GRCh38">
        Species assembly whose channel conditions the model. `GRCh38` (human) for human sequence, including GRCh37 coordinates.

        Available options: `GRCh38`, `NHGRI_mPanTro3-v2.0`, `Panubis1.0`, `T2T-MFA8v1.1`, `Mmul_10`, `ARS-UCD2.0`, `ARS-UI_Ramb_v3.0`, `Sscrofa11.1`, `GRCm38`, `GRCr8`
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-output-section">
    <a href="https://github.com/evo-design/proto-tools/blob/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_score.py#L252" 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: SpliceAI2ScoreOutput">
      <ResponseField name="results" type="List[SpliceAI2VariantResult]" required>
        Per-variant predictions, 1:1 with the input variants and in the same order.

        <Expandable title="SpliceAI2VariantResult">
          <ResponseField name="chromosome" type="string" required>
            Variant chromosome.
          </ResponseField>

          <ResponseField name="position" type="integer" required>
            Variant position (1-based).
          </ResponseField>

          <ResponseField name="ref" type="string" required>
            Reference allele.
          </ResponseField>

          <ResponseField name="alt" type="string" required>
            Alternate allele.
          </ResponseField>

          <ResponseField name="strand" type="enum" required>
            Gene strand the variant was scored against.
          </ResponseField>

          <ResponseField name="donor_gain" type="List[SpliceAI2SiteChange]" required>
            Ten strongest new or strengthened donors.
          </ResponseField>

          <ResponseField name="donor_loss" type="List[SpliceAI2SiteChange]" required>
            Ten strongest lost or weakened donors.
          </ResponseField>

          <ResponseField name="acceptor_gain" type="List[SpliceAI2SiteChange]" required>
            Ten strongest new or strengthened acceptors.
          </ResponseField>

          <ResponseField name="acceptor_loss" type="List[SpliceAI2SiteChange]" required>
            Ten strongest lost or weakened acceptors.
          </ResponseField>

          <ResponseField name="junction_gain" type="List[SpliceAI2JunctionChange]" required>
            Ten strongest new or strengthened junctions.
          </ResponseField>

          <ResponseField name="junction_loss" type="List[SpliceAI2JunctionChange]" required>
            Ten strongest lost or weakened junctions.
          </ResponseField>

          <ResponseField name="metrics" type="SpliceAI2ScoreMetrics" required>
            Per-variant summary score.
          </ResponseField>
        </Expandable>
      </ResponseField>

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

      | Metric | Type | Range | Availability |
      | - | - | - | - |
      | `summary_score` | float | 0.0 to 1.0 | always |
    </Accordion>
  </div>

  #### Applications

  Use this to triage candidate variants from a sequencing study for splicing impact, including deep-intronic variants that create new splice sites, or to rank variants of uncertain significance where a coding effect is absent. The TSV export uses the column layout of the upstream `.spliceai2` output, so existing downstream scripts can read it.

  #### Usage Tips

  * **`strand` is required for every variant.** It is the strand of the gene the variant is scored against. When it is unknown, score the variant on both strands as two separate entries and aggregate the predictions (as the upstream README recommends).
  * **Filter on `summary_score` with the upstream thresholds.** 0.1 for high recall, 0.25 to balance precision and recall, 0.5 for high precision (the SpliceAI equivalents are 0.2 / 0.5 / 0.8). The summary score is the maximum of the strongest donor gain, donor loss, acceptor gain, and acceptor loss delta scores; junction effects are reported but excluded from it.
  * **`reference_fasta` is required.** Pass `'grch38'` (or `'grch37'`; `'hg38'`/`'hg19'` also work), which is downloaded on first use, or a path to a local FASTA. A `chr` prefix on `chromosome` is added or dropped to match the FASTA (`'chr1'` and `'1'` both work), and `ref` must match the genome at `position`.
  * **Keep `assembly='GRCh38'` for any human variant, including GRCh37 coordinates.** `assembly` selects the species channel the model is conditioned on, not the coordinate system; set it to another training assembly only for non-human sequence.
  * **The scoring geometry is fixed.** Each allele is scored in a 196,608 bp window centered on the variant, changes are reported within ±32,768 bp, both alleles share 1,024 candidate splice sites, and predictions average the two-model ensemble. These are the values the model was trained and evaluated with, so they are not configurable. Positions beyond a chromosome end are padded with all-zero (unknown) input.

  <a name="api-run-spliceai2-predict" />
</div>

<div class="tool-section-card tool-section-card--predict">
  ### SpliceAI2 Splice and Transcript Prediction (`spliceai2-predict`)

  Predicts per-position donor and acceptor usage along one or more sense-strand DNA sequences, the junctions between candidate splice sites, and the highest-scoring decoded transcripts. No reference genome is needed.

  #### API Reference

  <div class="api-model-section api-input-section">
    <a href="https://github.com/evo-design/proto-tools/blob/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_predict.py#L28" 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: SpliceAI2PredictInput">
      <ParamField path="sequences" type="List[string]" required>
        Sense-strand DNA sequence(s) to predict on. A single string is auto-wrapped into a list. Any length is accepted: the model's 65,536 bp of context per side is padded with unknown bases, so predictions cover every input position.
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-config-section">
    <a href="https://github.com/evo-design/proto-tools/blob/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_predict.py#L168" 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: SpliceAI2PredictConfig">
      <ParamField path="num_transcripts" type="integer" default="3">
        Number of highest-scoring transcripts to decode per sequence.
      </ParamField>

      <ParamField path="verbose" type="integer" default="0">
        Verbosity level (0=quiet, 1=info, 2=debug, 3=raw subprocess stderr). `True` is coerced to `1` and `False` to `0`.
      </ParamField>

      <ParamField path="device" type="string" default="cuda">
        Device to run the model on (default `cuda`).
      </ParamField>

      <ParamField path="timeout" type="integer" default="3600">
        Maximum execution time in seconds. `None` waits indefinitely.
      </ParamField>

      <ParamField path="seed" type="integer">
        Random seed. When set, tools run reproducibly up to small GPU float noise (see `BaseToolOutput.approx_equal`), and the seed participates in cache keys. When None, cacheable seed-sensitive tools skip cache until seeded.
      </ParamField>

      <ParamField path="assembly" type="enum" default="GRCh38">
        Species assembly whose channel conditions the model. `GRCh38` (human) for human sequence.

        Available options: `GRCh38`, `NHGRI_mPanTro3-v2.0`, `Panubis1.0`, `T2T-MFA8v1.1`, `Mmul_10`, `ARS-UCD2.0`, `ARS-UI_Ramb_v3.0`, `Sscrofa11.1`, `GRCm38`, `GRCr8`
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-output-section">
    <a href="https://github.com/evo-design/proto-tools/blob/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/spliceai2_predict.py#L126" 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: SpliceAI2PredictOutput">
      <ResponseField name="results" type="List[SpliceAI2Prediction]" required>
        One entry per input sequence, in input order.

        <Expandable title="SpliceAI2Prediction">
          <ResponseField name="donor_probabilities" type="List[number]" required>
            Per-position splice donor usage (0-1), scored at the first base of each intron.
          </ResponseField>

          <ResponseField name="acceptor_probabilities" type="List[number]" required>
            Per-position splice acceptor usage (0-1), scored at the last base of each intron.
          </ResponseField>

          <ResponseField name="junctions" type="List[SpliceAI2Junction]" required>
            Junctions with usage >= 0.01 between candidate splice sites, ordered by donor then acceptor.
          </ResponseField>

          <ResponseField name="transcripts" type="List[SpliceAI2Transcript]" required>
            Highest-scoring transcripts, best first. Empty when fewer than two candidate splice sites are found.
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Accordion>
  </div>

  #### Applications

  Use this to map the splice-usage landscape of a gene or locus, to see which junctions and isoforms a sequence is predicted to produce, or to compare reference and edited versions of a sequence (predict each separately and diff the outputs). It also suits designed constructs, minigenes, and saturation scans where no genome coordinates exist.

  #### Usage Tips

  * **Embed short constructs in genomic context where possible.** Every input is padded with 65,536 bp of unknown (all-zero) context per side, so predictions cover every input position at any length. Isolated short sequences fall outside what the model was evaluated on (it always saw real flanking genome), so prefer including the surrounding genomic sequence and reading predictions over the region of interest.
  * **Coordinates are 1-based and intron-anchored.** Donor usage is scored at the intron's first base and acceptor usage at its last base; each junction's `donor` and `acceptor` are those intron boundary positions. Transcript `exons` are 1-based inclusive intervals.
  * **Transcript ends are not predicted.** The first and last exon of every decoded transcript extend to the start and end of the input sequence, because SpliceAI2 does not model transcription start or end sites. `num_transcripts` (default 3) sets how many top-scoring paths are decoded; duplicates are dropped, so fewer may be returned, and none are returned when fewer than two candidate sites clear 0.01 usage.
  * **Junctions are reported at usage >= 0.01** between candidate sites (positions whose donor or acceptor usage exceeds 0.01), ordered by donor then acceptor.
  * **`N` bases are encoded as `A`, matching upstream.** Ambiguous bases are read as adenine rather than as missing sequence, so avoid `N` runs in regions you care about; only the padding outside the input is all-zero.
  * **Use `assembly='GRCh38'` for any human sequence.** It selects the species channel the model is conditioned on; choose another training assembly only for non-human sequence.
  * **GPU memory grows with input length.** Peak memory is about 5 GiB plus 4 GiB per 100 kb of input (measured on an H100: 13 GiB at 190 kb, 44 GiB at 1 Mb, 63 GiB at 1.5 Mb), so inputs longer than about 1.8 Mb do not fit on an 80 GB GPU, and smaller GPUs reach their limit proportionally sooner. For a long locus, predict overlapping windows that each keep genomic flanking sequence.
</div>

## Toolkit Notes

These apply to both SpliceAI2 tools in this toolkit (`spliceai2-score`, `spliceai2-predict`).

* **CUDA GPU required.** SpliceAI2 runs only on GPU (default `device="cuda"`). As upstream does, `spliceai2-score` runs under 16-bit mixed precision and `spliceai2-predict` in full precision.
* **Gated weights.** The two ensemble checkpoints are gated on HuggingFace. Accept the terms at [illumina-ai/SpliceAI2](https://huggingface.co/illumina-ai/SpliceAI2) and set `HF_TOKEN` (or run `hf auth login`); the standalone environment then downloads both checkpoints automatically.
* **Run it yourself.** The license prohibits hosting and third-party access, so run SpliceAI2 locally on your own GPU, or deploy it on your own Modal account and use `device='modal'`.
* **Scope of the release.** This toolkit runs the released multispecies ensemble. Illumina's tissue-specific fine-tuned models are not publicly released, and the precomputed genome-wide scores (HuggingFace dataset [illumina-ai/SpliceAI2-data](https://huggingface.co/datasets/illumina-ai/SpliceAI2-data)) are not part of this toolkit.

<Tip>
  **Example notebook:** See the [full working example](https://github.com/evo-design/proto-tools/blob/ec77fd1714f2a91bcb02be54b43ec53d4cb36c4a/proto_tools/tools/rna_splicing/spliceai2/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>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.