Skip to content
NGLess: NGS with less work
Haskell Python Makefile Shell HTML Dockerfile Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis TST Compile all dependencies with -O0 for speed Mar 1, 2019
Execs RFCT Code cleanup Aug 19, 2019
Html DOC Update URLs to point to ngless-toolkit Sep 4, 2018
Modules MNT Bump om-rgc version to 0.9 to match ng-meta-marine profiler May 29, 2019
NGLess ENH Add discard_singles function Sep 10, 2019
Tests-Src ENH Add `sense` argument to count() Aug 18, 2019
build-scripts ENH Version internal resources independently of ngless' version May 10, 2019
docs ENH Add discard_singles function Sep 10, 2019
examples DOC Running motus HOWTO Aug 7, 2016
test_samples TST Mocat test-case now uses multichunk bzip2 file Jul 31, 2019
tests ENH Add discard_singles function Sep 10, 2019
.gitignore MIN Ignore stack.yaml.lock file Aug 19, 2019
.gitlab-ci.yml BLD Add ghc-wsl builds to gitlab Mar 15, 2019
.travis.yml TST Compile all dependencies with -O0 for speed Mar 1, 2019
AUTHORS BLD Convert build system to use hpack Sep 25, 2017 RLS Version 1.0 Apr 24, 2019
COPYING MIN Update copyright information Jun 14, 2017
ChangeLog ENH Add discard_singles function Sep 10, 2019
Dockerfile DOC Update URLs to point to ngless-toolkit Sep 4, 2018
Makefile BLD Add minimap2 to external-deps Apr 24, 2019
NGLess-logo-128x64.png DOC Add logo to README Dec 9, 2018
NGLess-logo.png DOC Add logo to README Dec 9, 2018
NGLess-logo.svg DOC Add SVG version of NGLess logo Jan 24, 2019
Setup.hs Start using cabal instead of Makefile Mar 29, 2014
package.yaml RLS Version 1.0 Apr 24, 2019 BEN Benchmark pasteCounts Mar 20, 2018 MIN Update citation Jun 14, 2019
stack.yaml BLD Update to LTS-14.1 Aug 17, 2019

NGLess: NGS Processing with Less Work

NGLess logo 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

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, Microbiome (2019)

NGLess cartoon


ngless "1.0"
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 docker hub:

docker run -v $PWD:/workdir -w /workdir -it nglesstoolkit/ngless:1.0.0 ngless --version

Adapt the mount flags (-v) as needed.


You can get a statically linked version of NGless 1.0.0 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
chmod +x ngless-1.0.0-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


The simplest way to get an environment will all the dependencies is to use conda:

conda create -n ngless
source activate ngless
conda config --add channels conda-forge
conda install stack cairo bzip2 gmp zlib perl wget xz pkg-config make

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

The following sequence of commands should download and build the software

git clone
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


You can’t perform that action at this time.