#bio #tools #bioinformatics

app rust-bio-tools

A set of fast and robust command line utilities for bioinformatics tasks based on Rust-Bio

78 releases (35 breaking)

new 0.38.2 Jan 14, 2022
0.38.0 Dec 28, 2021
0.31.0 Nov 16, 2021
0.24.1 Jul 16, 2021
0.2.4 Mar 6, 2018

#27 in Science

Download history 85/week @ 2021-09-28 8/week @ 2021-10-05 82/week @ 2021-10-12 30/week @ 2021-10-19 2/week @ 2021-10-26 33/week @ 2021-11-02 74/week @ 2021-11-09 25/week @ 2021-11-16 6/week @ 2021-11-23 100/week @ 2021-11-30 102/week @ 2021-12-07 80/week @ 2021-12-14 2/week @ 2021-12-21 43/week @ 2021-12-28 97/week @ 2022-01-04 24/week @ 2022-01-11

172 downloads per month

Custom license and GPL-3.0+


Rust 7K SLoC // 0.0% comments Tera 867 SLoC // 0.0% comments JavaScript 329 SLoC // 0.1% comments

Gitpod Ready-to-Code Bioconda downloads Bioconda version install with bioconda Licence GitHub Workflow Status


A set of ultra fast and robust command line utilities for bioinformatics tasks based on Rust-Bio. Rust-Bio-Tools provides a command rbt, which currently supports the following operations:

  • a linear time implementation for fuzzy matching of two vcf/bcf files (rbt vcf-match)
  • a vcf/bcf to txt converter, that flexibly allows to select tags and properly handles multiallelic sites (rbt vcf-to-txt)
  • a linear time round-robin FASTQ splitter that splits a given FASTQ files into a given number of chunks (rbt fastq-split)
  • a linear time extraction of depth information from BAMs at given loci (rbt bam-depth)
  • a utility to quickly filter records from a FASTQ file (rbt fastq-filter)
  • a tool to merge BAM or FASTQ reads using marked duplicates respectively unique molecular identifiers (UMIs) (rbt collapse-reads-to-fragments bam|fastq)
  • a tool to generate interactive HTML based reports that offer multiple plots visualizing the provided genomics data in VCF and BAM format (rbt vcf-report)
  • a tool to generate an interactive HTML based report from a csv file including visualizations (rbt csv-report)
  • a tool for splitting VCF/BCF files into N equal chunks, including BND support (rbt vcf-split)
  • a tool to generate visualizations for a specific region of one or multiple BAM files with a given reference contained in a single HTML file (rbt plot-bam)

Further functionality is added as it is needed by the authors. Check out the Contributing section if you want contribute anything yourself. For a list of changes, take a look at the CHANGELOG.



Rust-Bio-Tools depends rgsl which needs GSL to be installed:

  • Ubuntu: sudo apt-get install libgsl-dev
  • Arch: sudo pacman -S gsl
  • OSX: brew install gsl


Rust-Bio-Tools is available via Bioconda. With Bioconda set up, installation is as easy as

conda install rust-bio-tools


If the Rust compiler and associated Cargo are installed, Rust-Bio-Tools may be installed via

cargo install rust-bio-tools


Download the source code and within the root directory of source run

cargo install

Usage and Documentation

Rust-Bio-Tools installs a command line utility rbt. Issue

rbt --help

for a summary of all options and tools.


Any contributions are highly welcome. If you plan to contribute we suggest installing pre-commit hooks. To do so:

  1. Install pre-commit as explained here
  2. Run pre-commit install in the rust-bio-tools base directory

This should format, check and lint your code when committing.



~1.5M SLoC