Skip to main content

Easy sequence alignment plots

Project description


A python tool to plot BAM or CRAM sequence reads.


install cairo if not already installed:

# macOS via conda, or via homebrew (choose one, then set the library path)
conda install cairo pkgconfig
brew install cairo pkg-config

Install shabam:

pip install shabam

The dream

from shabam import seqplot
seqplot('example.bam', chrom='1', start=30243, end=30321,
    fastafile='reference.fasta', out='plot.svg')


Plotting options

  • shade reads by strand with by_strand=True
  • plot multiple sequence files together with a list of paths e.g. ['child.bam', 'mom.bam', 'dad.bam']
  • export PDF, PNG, SVG or PS formatted plots with matching filename extensions

Command line version

shabam \
  --seqfiles tests/data/example.bam \
  --chrom 1 \
  --start 30243 \
  --end 30321 \
  --fastafile tests/data/reference.fasta \
  --out plot.svg

Further improvements to the dream

  • Use consensus sequence when we don't provide a reference sequence
  • Allow custom colors
  • Compute proportion of variants at any site
  • Plot read depth
  • At positions with proportion of variants > threshold, reflect proportion with base colors
  • Option to scale plotted base size, currently at 10 pixels per base
  • Optionally shade plots deepVariant style:
    • red channel: nucleotide
    • blue channel: read strand
    • green channel: base quality
    • alpha: base supports ref or alt
  • Flatten vertical plotting in high depth sequence data
  • Down-sample reads for extremely high depth sequence data (>1000X)


Initial cigar parsing code lifted with permission from pybamview.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shabam-1.0.0.tar.gz (10.1 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page