SLAMSeq is a novel sequencing protocol to measure transcriptional output and transcript half-lifes.



pip install slamdunk

Run Slamdunk

slamdunk all -r <reference fasta> -b <bed file> -o <output directory> -5 12 -n 100
             -t <threads> -m -rl <maximum read length> --skip-sam files [files ...]

This runs slamdunk with its default parameters.

Parameter Description
-r The reference fasta file.
-b BED-file containing coordinates for 3’ UTRs.
-o The output directory where all output files of this dunk will be placed.
-t The number of threads to use for this dunk. NextGenMap runs multi-threaded, so it is recommended to use more threads than available samples (default: 1).
files Samplesheet (see Sample file format ) or a list of all sample BAM/FASTA(gz)/FASTQ(gz) files (wildcard * accepted).

Relevant results:

  • Folder count : Tab-separated tcount files containing the SLAMSeq statistics per UTR (see Tcount file format )
  • Folder filter : BAM-files with the final mapped reads for visualization and further processing

Check results

If you want to have a very quick sanity check whether your desired conversion rates have been achieved, use this alleyoop command to plot the UTR conversion rates in your sample:

alleyoop utrrates -o <output directory> -r <reference fasta> -t <threads>
                  -b <bed file> -l <maximum read length> bam [bam ...]
Parameter Description
-o The output directory where the plots will be placed.
-r The reference fasta file.
-t The number of threads to use. All tools run single-threaded, so it is recommended to use as many threads as available samples.
-b BED-file containing coordinates for 3’ UTRs.
-l Maximum read length in all samples.
bam BAM file(s) containing the final filtered reads from the filter folder (wildcard * accepted).


Slamdunk consists of 4 core modules to process SLAMSeq data:

  • map
    • Map reads to genome
  • filter
    • Filter alignments for low quality
  • snp
    • Call variants on data to filter false-positives
  • count
    • Quantify conversion rate per 3'UTR

T>C aware alignment

Using adapted scoring schemes for NextGenMap - a highly sensitive and fast read mapping program - we are able confidently map reads with any reasonable number of T>C conversions to the genome.

Multimapper reconciliation

We devised a reference guided approach to utilize multimapper information in 3'UTR regions of low complexity using efficient data structures.

Variant exclusion

Using Varscan2 we can separate true T>C conversions from false-positives caused by variants.

Conversion rate quantification

We devised a conversion counting method normalizing for T-content and coverage in individual 3'UTRs for unbiased comparison of transcripts.




slamdunk will fetch all dependencies automatically in its install phase. There is no need to have the requirements installed before installing slamdunk.

slamdunk depends on several python packages listed in the requirements.txt file.

In addition, slamdunk uses the following external software for its analysis:

Alleyoop / Splash

Both alleyoop and splash require R (v3.2.2). All R package dependencies are resolved automatically from CRAN during installation.


Slamdunk is hosted as Python package on the Python Package Index. You can install it with a single command using pip.

# Root
pip install slamdunk

# Local user
pip install --user slamdunk

For maximum convenience, you might also consider running slamdunk using our Docker image.


MultiQC is a popular tool to aggregate results from bioinformatics analyses across many samples into a single report.

We implemented a MultiQC module which was released with MultiQC v0.9 to support integration of Slamdunk QC plots and statistics into your MultiQC reports.

Currently we support integration of the summary, rates, utrrates, tcperreadpos and tcperutrpos modules.

You can download this report and / or the logs used to generate it, to try running MultiQC yourself.

Many thanks to Phil Ewels for his support!

Authors and Contributors

Slamdunk is developed by Tobias Neumann and Philipp Rescheneder.