An open API service indexing awesome lists of open source software.

https://github.com/will-rowe/groot

A resistome profiler for Graphing Resistance Out Of meTagenomes
https://github.com/will-rowe/groot

alignment antibiotic-resistance lsh metagenomics minhash resistome

Last synced: 6 months ago
JSON representation

A resistome profiler for Graphing Resistance Out Of meTagenomes

Awesome Lists containing this project

README

          


groot-logo


Graphing Resistance Out Of meTagenomes




travis
Documentation Status
reportcard
License
DOI
bioconda
bioconda
bioconda

---

## Overview

`GROOT` is a tool to type **Antibiotic Resistance Genes** (**ARGs**) in metagenomic samples (a.k.a. **Resistome Profiling**). It combines variation graph representation of gene sets with an LSH indexing scheme to allow for fast classification of metagenomic reads. Subsequent hierarchical local alignment of classified reads against graph traversals facilitates accurate reconstruction of full-length gene sequences using a simple scoring scheme.

`GROOT` will output an ARG alignment file (in BAM format) that contains the graph traversals possible for each query read; the alignment file is then used by `GROOT` to generate a resistome profile.

Since version 0.4, `GROOT` will also output the variation graphs which had reads align. These graphs are in [GFA format](https://github.com/GFA-spec/GFA-spec), allowing you to visualise graph alignments using [Bandage](https://github.com/rrwick/Bandage) and determine which variants of a given ARG type are dominant in your metagenomes. Read the [documentation](http://groot-documentation.readthedocs.io/en/latest/?badge=latest) for more info.

Since version 1.0.0, `GROOT` has had a partial re-write (merging features and changes from my [baby groot](https://github.com/will-rowe/baby-groot) project). It now uses the excellent [LSH Ensemble library](https://github.com/ekzhu/lshensemble) as the LSH index, enabling containment search for read seeding. I've also improved my dev know-how and `GROOT` is now more efficient. However, these changes have meant that I've needed to change some of the CLI, so please read the docs.

## Installation

Check out the [releases](https://github.com/will-rowe/groot/releases) to download a binary. Alternatively, install using Bioconda or compile the software from source.

### Bioconda

```
conda install -c bioconda groot
```

### Brew

```
brew install brewsci/bio/groot
```

### Source

`GROOT` is written in Go (v1.14) - to compile from source you will first need the [Go tool chain](https://golang.org/doc/install). Once you have it, try something like this to compile:

```bash
# Clone this repository
git clone https://github.com/will-rowe/groot.git

# Go into the repository and get the package dependencies
cd groot
go get -d -t -v ./...

# Run the unit tests
go test -v ./...

# Compile the program
go build ./

# Call the program
./groot --help
```

## Quick Start

`GROOT` is called by typing **groot**, followed by the subcommand you wish to run. There are three main subcommands: **index**, **align** and **report**. This quick start will show you how to get things running but it is recommended to follow the [documentation](http://groot-documentation.readthedocs.io/en/latest/?badge=latest).

```bash
# Get a pre-clustered ARG database
groot get -d arg-annot

# Create graphs and index
groot index -m arg-annot.90 -i grootIndex -w 100

# Align reads and report
groot align -i grootIndex -f reads.fq | groot report
```

> note: it's recommended to index the graph using a window size ~= your maximum expected read length, so for 100bp reads, use `-w 100`

## Further Information & Citing

Please [readthedocs](http://groot-documentation.readthedocs.io/en/latest/?badge=latest) for more extensive documentation and a [tutorial](https://groot-documentation.readthedocs.io/en/latest/tutorial.html).

`GROOT` has now been published in Bioinformatics:

> [Rowe WPM, Winn MD. Indexed variation graphs for efficient and accurate resistome profiling. Bioinformatics. 2018. doi: bty387](https://doi.org/10.1093/bioinformatics/bty387)