Skip to content

leafcutter-ds

A Python re-implementation of the leafcutter differential splicing algorithm.

Leafcutter logo{ width="50%" }

What does leafcutter do?

Annotation-free quantification of RNA splicing.

Leafcutter quantifies RNA splicing variation using short-read RNA-seq data. The core idea is to leverage spliced reads (reads that span an intron) to quantify (differential) intron usage across samples. The advantages of this approach include:

  • Easy detection of novel introns
  • Modeling of more complex splicing events than exonic PSI
  • Avoiding the challenge of isoform abundance estimation
  • Simple, computationally efficient algorithms scaling to 100s or even 1000s of samples

Original method by Yang I. Li1, David A. Knowles1, Jack Humphrey, Alvaro N. Barbeira, Scott P. Dickinson, Hae Kyung Im, Jonathan K. Pritchard.

1 Equal contribution

See the bioRxiv preprint and Nature Genetics publication for details.

Python re-implementation by Scott I. Adamson and David A. Knowles.

Why another implementation?

The original leafcutter uses RStan, which has historically been difficult to install for many users. This Python/Pyro implementation overcomes that dependency. It is also compatible with the new leafcutter2 implementation, which annotates unproductive splicing events based on leafcutter clusters (see the Nature Genetics publication).

Quick start

pip install leafcutter

Or install from source:

git clone https://github.com/leafcutter2/leafcutter-ds.git
cd leafcutter-ds
pip install -e .

The installation provides five command-line tools:

  • leafcutter-cluster — cluster introns from junction files
  • leafcutter-ds — differential splicing analysis
  • leafcutter-bayes — Bayesian differential splicing
  • leafcutter-gtf-to-exons — Exon table preparation from gtf file for use with leafcutter-ds
  • leafcutter-prepare-phenotype — Splicing phenotype table for downstream sQTL calling tools.

Community

If you have usage questions, join the Google group, or creating an issue on the github.