Splice Divergent Interval Co-Exclusion (Splice DICE) is a tool for detecting and quantifying splicing events by mutually exclusive junctions. This tool is currently in development and user discretion is advised.
- Dependencies
- Installation
- Usage
- Manifest Format
- BED Manifest (used by
quant) - BAM Manifest (used by
intron_coverage)
- BED Manifest (used by
- Examples
- Contributing
- License
- Python 3.8+
- numpy==1.24.4
- pysam==0.23.3
- pandas==2.0.3
Use git to clone the package and install with the package manager pip.
$ git clone https://github.com/BrooksLabUCSC/splicedice.git
$ cd splicedice/
$ pip install --user .
If you are working on developing SpliceDICE it will likely be useful to install it in editable mode.
$ pip install --user -e .
SpliceDICE uses splice junction counts derived from aligned RNA sequencing reads to calculate a Percent-Spliced (PS) value for each junction.
Suggested tool for generating junction counts:
- intronProspector
Processes junction count files (BED6 files) to calculate a Percent-Spliced (PS) value for every splice junction in every sample in the manifest. Requires a BED manifest.
BED input format (per sample file):
- Tab-delimited BED6 with columns: chrom, start, end, name, score, strand.
- Genomic coordinates must use 0-based, half-open BED convention (UCSC standard).
- score is used as the junction read count.
- strand must be + or -.
Input parameters:
-m, --manifest(required): BED manifest file with sample names and bed file paths.-o, --output_prefix(required): prefix used for all generated output files.
$ splicedice quant -m bed_manifest.tsv -o output_prefix
{output_prefix}_allPS.tsv: tab-separated table of PS values, where each column is a sample and each row is a splice junction.{output_prefix}_allClusters.tsv: tab-separated table of mutually exclusive junction clusters.{output_prefix}_inclusionCounts.tsv: raw junction read counts per sample.{output_prefix}_junctions.bed: BED file of all junctions observed across samples.
The percent-spliced value does not quantify intron retention. Two subprograms together produce an IR value table in the same format as the PS table.
Measures coverage across previously identified splice junctions for each sample, producing a per-sample coverage file. Requires a BAM manifest.
Input parameters:
-b, --bamManifest(required): BAM manifest file with sample names and BAM file paths.-j, --junctionFile(required): junction BED file output fromsplicedice quant.-n, --numThreads(optional): number of BAM-parsing threads (default: 1).-o, --outputDir(required): directory for per-sample intron coverage output files.
$ splicedice intron_coverage \
-b bam_manifest.tsv \
-j output_prefix_junctions.bed \
-n 4 \
-o coverage_output_dir
Takes per-sample coverage values from intron_coverage and calculates the IR value for each junction in each sample, outputting the final IR table.
Input parameters:
-i, --inclusionCounts(required):{output_prefix}_inclusionCounts.tsvfromsplicedice quant.-c, --clusters(required):{output_prefix}_allClusters.tsvfromsplicedice quant.-d, --coverageDirectory(required): directory of per-sample coverage files fromsplicedice intron_coverage.-o, --outputPrefix(required): prefix for output files.-a, --annotation(required unless-j): GTF file with gene annotation.-j, --allJunctions(optional): output IR values for all junctions; default is annotated junctions only.-n, --numThreads(optional): number of parallel workers (default: 1).-r, --makeRSDtable(optional): also write a table of relative standard deviations in coverage.-t, --RSDthreshold(optional): RSD cutoff for junction inclusion (default: 1.0).-s, --singleJunctionCalculation(optional): calculate IR using individual junction counts rather than the full cluster count.
$ splicedice ir_table \
-i output_prefix_inclusionCounts.tsv \
-c output_prefix_allClusters.tsv \
-d coverage_output_dir \
-n 4 \
-o project_output_prefix
Manifests are tab-delimited files with one sample per line. The first column is the sample identifier, the second is the absolute path to the relevant file, and the third is an optional metadata label (e.g. condition) for your own reference — it is not used by SpliceDICE.
Used by splicedice quant. The second column is the path to the BED6 junction file for that sample.
SRR12801019 /path/to/intron_beds/SRR12801019.bed control
SRR12801020 /path/to/intron_beds/SRR12801020.bed SUGP1_kd
SRR12801023 /path/to/intron_beds/SRR12801023.bed control
SRR12801024 /path/to/intron_beds/SRR12801024.bed SUGP1_kd
SRR12801027 /path/to/intron_beds/SRR12801027.bed control
SRR12801028 /path/to/intron_beds/SRR12801028.bed SUGP1_kd
Used by splicedice intron_coverage. The second column is the path to the BAM file for that sample.
SRR12801019 /path/to/bams/SRR12801019.bam control
SRR12801020 /path/to/bams/SRR12801020.bam SUGP1_kd
SRR12801023 /path/to/bams/SRR12801023.bam control
SRR12801024 /path/to/bams/SRR12801024.bam SUGP1_kd
SRR12801027 /path/to/bams/SRR12801027.bam control
SRR12801028 /path/to/bams/SRR12801028.bam SUGP1_kd
Generates percent-spliced and intron retention values from RNA-seq data from SRP286876, comparing HEK293T cells transfected with control siRNA to those transfected with siSUGP1 (three biological replicates per condition; SRR12801019/20/23/24/27/28). The walkthrough is available in examples/SUGP1_walkthrough/SUGP1_walkthrough_2026.06.23_11.24.14.md.
Percent-spliced and intron retention values were computed for 495 TCGA lung adenocarcinoma (LUAD) samples with disk-constrained, batched BAM downloads from the GDC. Output tables for this run are archived on Zenodo: https://doi.org/10.5281/zenodo.21143192. The process is documented in examples/TCGA_LUAD/2026-06-18_tcga_luad_ps_ir_compute.md.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please include tests as appropriate.
BSD-3




