WARNING! FinishM is very alpha software and not ready for prime time. There are many unfinished parts of it, and many bugs. Please use with care, and don't judge the authors too harshly.
FinishM attempts to improve draft genomes by considering the computational problem to be about finishing, not assembly in the traditional sense.
A finishing approach to assembly
Metagenome and isolate assemblers generate contigs from reads, but still leave valuable information on the table. FinishM exploits this information to improve/finish a draft genome without any further laboratory-based work.
In even a moderately successful assembly, resultant contigs constitute the vast majority of the genome being sequenced, but this fact is ignored by assemblers. Unlike a traditional assembler FinishM does not attempt to directly extend contigs, but instead focuses on connecting already assembled contigs.
FinishM has several modes:
- Attempt to improve a genome. See
finishm roundup. This mode fulfills both the
- Determine which contig ends are connected in the assembly graph. See
- FinishM 'gapfills' (replaces N characters) using a graph-theoretic approach that appears to outperform current gapfilling programs. See
- Sometimes a human is better able to interpret an assembly graph than a machine. FinishM creates human interpretable graph visualisations that let humans solve assembly problems. See
- Some other experimental de-novo (non-finishing) metagenome assembly techniques are implemented in
First, you'll need Ruby (FinishM is tested on 2.1). Then to install:
gem install finishm
FinishM also has some external dependencies:
- clustalo (for
- GraphViz (for the
After installation, a listing of the modes and their usage:
To hack on finishm:
git clone https://github.com/wwood/finishm.git cd finishm bundle install git submodule update --init cd ext/src git checkout -b finishm origin/finishm #possibly this step is not required for newer versions of git make MAXKMERLENGTH=255 finishm velveth velvetg cp obj/shared/libfinishm.so.1.0 ../../lib/external/ cd ../.. ./bin/finishm -h
A manuscript describing the tools described here is currently in preparation. However, FinishM reuses code from velvet, clustalo and BioRuby, so these tools may be worth citing.
Copyright (c) 2012-2015 Ben J. Woodcroft. See LICENSE.txt for further details.