Skip to content
covtobed | Convert the coverage track from a BAM file into a BED file
C++ Shell TeX Dockerfile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


License install with bioconda Bioconda installs TravisCI Build Status Docker build Singularity Zenodo Record status

a tool to generate BED coverage tracks from BAM files

Reads one (or more) alignment files (sorted BAM) and prints a BED with the coverage. It will join consecutive bases with the same coverage, and can be used to only print a BED file with the regions having a specific coverage range.

📖 Read more in the wiki

covtobed example


📖 The complete documentation is available in the GitHub wiki.


Usage: covtobed [options] [BAM]...

Computes coverage from alignments

  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --physical-coverage   compute physical coverage (needs paired alignments in input)
  -q MINQ, --min-mapq=MINQ
                        skip alignments whose mapping quality is less than MINQ
                        (default: 0)
  -m MINCOV, --min-cov=MINCOV
                        print BED feature only if the coverage is bigger than
                        (or equal to) MINCOV (default: 0)
  -x MAXCOV, --max-cov=MAXCOV
                        print BED feature only if the coverage is lower than
                        MAXCOV (default: 100000)
  -l MINLEN, --min-len=MINLEN
                        print BED feature only if its length is bigger (or equal
                        to) than MINLELN (default: 1)
  -d, --discard-invalid-alignments
                        skip duplicates, failed QC, and non primary alignment,
                        minq>0 (or user-defined if higher) (default: 0)
  --output-strands      output coverage and stats separately for each strand
  --format=CHOICE       output format



covtobed -m 0 -x 5 test/demo.bam


NC_001416.1     0       2       0
NC_001416.1     2       6       1
NC_001416.1     6       7       2
NC_001416.1     7       12      3
NC_001416.1     12      18      4
NC_001416.1     169     170     4
NC_001416.1     201     206     4

See the full example output from different tools 📂 here


  • To install with Miniconda:
conda install -c bioconda covtobed
  • Both covtobed, and the legacy program coverage are available as a single Docker container available from Docker Hub Docker build :
sudo docker pull andreatelatin/covtobed
sudo docker run --rm -ti andreatelatin/covtobed coverage -h
  • Download Singularity image by singularity pull docker://andreatelatin/covtobed, then:
singularity exec covtobed.simg coverage -h


covtobed is generally faster than bedtools. More details are in the benchmark page.

Requirements and compiling

This tool requires libbamtools and zlib.

To manually compile:

c++ -std=c++11 *.cpp -I/path/to/bamtools/ -L${HOME}/path/to/lib/ -lbamtools -o covtobed

Issues, Limitations and how to contribute

  • This program will read the coverage from sorted BAM files. The CRAM format is not supported at the moment.
  • If you find a problem feel free to raise an issue, we will try to address it as soon as possible
  • Contributions are welcome via PR.


This tools uses libbamtools by Derek Barnett, Erik Garrison, Gabor Marth and Michael Stromberg, and cpp-optparse by Johannes Weißl. Both tools and this program are released with MIT license.


Giovanni Birolo (@gbirolo), University of Turin, and Andrea Telatin (@telatin), Quadram Institute Bioscience.

This program was finalized with a Flexible Talent Mobility Award funded by BBSRC through the Quadram Institute.


If you use this tool, why not citing the paper?

Birolo et al., (2020). covtobed: a simple and fast tool to extract coverage tracks from BAM files. Journal of Open Source Software, 5(47), 2119,

BibTeX citation:

  doi = {10.21105/joss.02119},
  url = {},
  year = {2020},
  publisher = {The Open Journal},
  volume = {5},
  number = {47},
  pages = {2119},
  author = {Giovanni Birolo and Andrea Telatin},
  title = {covtobed: a simple and fast tool to extract coverage tracks from BAM files},
  journal = {Journal of Open Source Software}
You can’t perform that action at this time.