Haskell Python Makefile HTML Shell CSS Other
Clone or download


NGLess: NGS Processing with Less Work

Ngless is a domain-specific language for NGS (next-generation sequencing data) processing.

Build Status MIT licensed Install with Bioconda Install with Bioconda Citation for NGLess Join the chat at https://gitter.im/luispedro/ngless

For questions and discussions, please use the ngless mailing list.

If you are using NGLess, please cite:

NG-meta-profiler: fast processing of metagenomes using NGLess, a domain-specific language by Luis Pedro Coelho, Renato Alves, Paulo Monteiro, Jaime Huerta-Cepas, Ana Teresa Freitas, Peer Bork bioRxiv 367755; doi: https://doi.org/10.1101/367755

NGLess cartoon


ngless "0.9"
input = fastq(['ctrl1.fq','ctrl2.fq','stim1.fq','stim2.fq'])
input = preprocess(input) using |read|:
    read = read[5:]
    read = substrim(read, min_quality=26)
    if len(read) < 31:

mapped = map(input,
write(count(mapped, features=['gene']),


See the install documentation for more information.


The recommended way to install NGLess is through bioconda:

conda install -c bioconda ngless 


Alternatively, a docker container with NGLess is available at biocontainers:

docker run -v $PWD:/workdir -w /workdir -it quay.io/biocontainers/ngless:0.8.0--py35_0 ngless --version

Adapt the mount flags (-v) as needed.


You can get a statically linked version of NGless 0.8.1 or a nighly build of the latest development code. This should work across a wide range of Linux versions (please report any issues you encounter):

curl -O http://ngless.embl.de/releases/ngless-0.8.1-Linux64
chmod +x ngless-0.8.1-Linux64

This download bundles bwa, samtools and megahit (also statically linked).

If you want to try one of ngless' builtin modules (motus, specI, ...) you can download the full nighly build zip file which includes them.

From Source

Installing/compiling from source is also possible. Clone http://github.com/ngless-toolkit/ngless


stack is highly recommended. Install it and running make should (1) download all dependencies with the correct versions and (2) build ngless. It will perform this task in its own sandbox so it will not interfere with any other work.

You should also have gcc installed (or another C-compiler).

The following sequence of commands should download and build the software

git clone https://github.com/ngless-toolkit/ngless
cd ngless

To install, you can use the following command (replace <PREFIX> with the directory where you wish to install, default is /usr/local):

make install prefix=<PREFIX>

More information