/* * nvbio * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the NVIDIA CORPORATION nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /// \page nvlighter_page nvLighter /// ///\htmlonly /// ///\endhtmlonly /// ///\par ///\n /// nvLighter is a GPU-accelerated re-engineering of /// Lighter, a very low memory footprint error corrector, implementing /// the algorithms described in: \n \n /// Lighter: fast and memory-efficient sequencing error correction without counting \n /// Li Song, Liliana Florea and Ben Langmead \n /// Genome Biology, 2014, 15:509 ///\par /// nvLighter can use both multiple CPU threads as well as multiple GPUs to concurrently /// correct large sets of reads. /// In practice, the error correction algorithm is so fast it can be easily bottlenecked by I/O: /// hence, we recommend using nvLighter on an SSD-equipped system in order to appreciate /// maximum acceleration. /// /// \section nvLighterUsage Usage /// ///\par /// At the moment, the command line options of nvLighter differ from those of Lighter, /// as nvLighter is designed to handle a single input file at the time. /// Moreover, nvLighter supports many file formats for both input and output, among which /// plain .txt files (with one read per row), FASTA, and FASTQ. /// Additionally, as slow gzip compression can quickly become a bottleneck, nvLighter supports /// LZ4 compression on any of the above formats. /// ///\verbatim /// ./nvLighter --help /// /// nvLighter - Copyright 2015, NVIDIA Corporation /// usage: /// nvLighter [options] input_file output_file /// options: /// -v int (0-6) [5] # verbosity level /// -zlib string [1R] # e.g. "1", ..., "9", "1R" /// -t int [auto] # number of CPU threads /// -d int [0] # add the specified GPU device /// -k k-mer genome-size alpha # error correction parameters /// -K k-mer genome-size # error correction parameters /// -maxcor # maximum correction factor /// -newQual # new quality score value /// -no-cpu # disable CPU usage /// -no-gpu # disable GPU usage ///\endverbatim ///\par /// For example: /// ///\verbatim /// nvLighter -t 20 -d 0 -d 1 -k 31 3500000000 0.2 NA12878.fq.gz NA12878.corrected.fq.lz4 ///\endverbatim ///\par /// will use 20 CPU threads and GPU 0 and 1 to correct a 35x coverage human dataset and output the result to an LZ4-compressed FASTQ file; /// whereas the command: /// ///\verbatim /// nvLighter -no-cpu -d 0 -k 31 3500000000 0.2 NA12878.fq.gz NA12878.corrected.txt.lz4 ///\endverbatim ///\par /// will use only GPU 0 to correct the same 35x coverage human reads and output the result to an LZ4-compressed .txt file. ///\par /// As described in the original paper, the alpha parameter should be generally set as 7.0/C, where C is the coverage of the genome. /// If alpha is not specified, it will be computed with an additional streaming pass through the input reads. /// /// /// \section nvLighterArchitecture Architecture /// /// nvLighter's class hierarchy is documented in the \ref nvLighterModule "nvLighter module". ///