SkillAgentSearch skills...

Shabam

A python tool to plot BAM or CRAM sequence reads.

Install / Use

/learn @dlrice/Shabam
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

shabam

A python tool to plot BAM or CRAM sequence reads.

Installation

install cairo if not already installed:

# macOS via conda, or via homebrew (choose one, then set the library path)
conda install cairo; CAIRO=`conda info --root`/pkgs/cairo-1.14.8-0/lib
brew install cairo; CAIRO=`brew --prefix cairo`
export DYLD_LIBRARY_PATH=${CAIRO}

Install shabam:

pip install git+git://github.com/dlrice/shabam.git --user

The dream

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

Reality

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
  • seqplot returns PNG data if you don't include an output filename

Command line version

./bin/shabam.py \
  --seqfiles example.bam \
  --chrom 2 \
  --start 30243 \
  --end 30321 \
  --fastafile 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)

Credit

Initial cigar parsing code lifted with permission from pybamview.

View on GitHub
GitHub Stars6
CategoryDevelopment
Updated4y ago
Forks3

Languages

Python

Security Score

70/100

Audited on Jul 13, 2021

No findings