Skip to main content

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.


Illumina/SpliceAI2
Illumina/SpliceAI2
View repo
illumina-ai/SpliceAI2
illumina-ai/SpliceAI2
View model
illumina.com
Visit website
Read preprint
Copy citation
evo-design/proto-tools/proto_tools/tools/rna_splicing/spliceai2
View source
Open Notebook
Open notebook
Toolkit contributors
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 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.

Background

Pre-mRNA splicing removes introns and joins exons at donor (5’) and acceptor (3’) splice sites, and 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) 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) 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 (Illumina) - accessible overview of the three prediction levels, the training data, and benchmark results against SpliceAI, Pangolin, and AlphaGenome.
  • SpliceAI2 repository (Illumina) - source, the reference variant-scoring CLI, output column definitions, and the transcript-decoding recipe this wrapper mirrors.
  • SpliceAI2 manuscript (Jaganathan et al., 2026) - architecture, training setup, and variant-effect benchmarks.

Tools

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

Source
List[SpliceAI2Variant]
required
Variants to score. A single variant is auto-wrapped into a list.
Source
integer
default:"0"
Verbosity level (0=quiet, 1=info, 2=debug, 3=raw subprocess stderr). True is coerced to 1 and False to 0.
string
default:"cuda"
Device to run the model on (default cuda).
integer
default:"3600"
Maximum execution time in seconds. None waits indefinitely.
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.
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.
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
Source
List[SpliceAI2VariantResult]
required
Per-variant predictions, 1:1 with the input variants and in the same order.
Metrics (one set per results item)

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.

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

Source
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.
Source
integer
default:"3"
Number of highest-scoring transcripts to decode per sequence.
integer
default:"0"
Verbosity level (0=quiet, 1=info, 2=debug, 3=raw subprocess stderr). True is coerced to 1 and False to 0.
string
default:"cuda"
Device to run the model on (default cuda).
integer
default:"3600"
Maximum execution time in seconds. None waits indefinitely.
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.
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
Source
List[SpliceAI2Prediction]
required
One entry per input sequence, in input order.

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.

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 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) are not part of this toolkit.
Example notebook: See the full working example for a copy-paste-ready walkthrough.

Infrastructure Guides

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

Tool Persistence

Keep a tool’s model warm across calls instead of reloading it every invocation.

Device Management

How GPUs are allocated to tools and how to target specific devices.

Parallel Execution

Fan a batch of inputs out across multiple GPUs.