nvLighter.dox 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. * nvbio
  3. * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions are met:
  7. * * Redistributions of source code must retain the above copyright
  8. * notice, this list of conditions and the following disclaimer.
  9. * * Redistributions in binary form must reproduce the above copyright
  10. * notice, this list of conditions and the following disclaimer in the
  11. * documentation and/or other materials provided with the distribution.
  12. * * Neither the name of the NVIDIA CORPORATION nor the
  13. * names of its contributors may be used to endorse or promote products
  14. * derived from this software without specific prior written permission.
  15. *
  16. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  17. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  18. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  19. * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
  20. * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  21. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  22. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  23. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  24. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  25. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  26. */
  27. /// \page nvlighter_page nvLighter
  28. ///
  29. ///\htmlonly
  30. /// <img src="nvidia_cubes.png" style="position:relative; bottom:-10px; border:0px;"/>
  31. ///\endhtmlonly
  32. ///
  33. ///\par
  34. ///\n
  35. /// <a href="https://github.com/NVlabs/nvbio/tree/master/nvLighter">nvLighter</a> is a GPU-accelerated re-engineering of
  36. /// <a href="https://github.com/mourisl/Lighter">Lighter</a>, a very low memory footprint error corrector, implementing
  37. /// the algorithms described in: \n \n
  38. /// <a href="http://genomebiology.com/2014/15/11/509">Lighter: fast and memory-efficient sequencing error correction without counting</a> \n
  39. /// Li Song, Liliana Florea and Ben Langmead \n
  40. /// <i>Genome Biology</i>, 2014, 15:509
  41. ///\par
  42. /// nvLighter can use both multiple CPU threads as well as multiple GPUs to concurrently
  43. /// correct large sets of reads.
  44. /// In practice, the error correction algorithm is so fast it can be easily bottlenecked by I/O:
  45. /// hence, we recommend using nvLighter on an SSD-equipped system in order to appreciate
  46. /// maximum acceleration.
  47. ///
  48. /// \section nvLighterUsage Usage
  49. ///
  50. ///\par
  51. /// At the moment, the command line options of nvLighter differ from those of Lighter,
  52. /// as nvLighter is designed to handle a single input file at the time.
  53. /// Moreover, nvLighter supports many file formats for both input and output, among which
  54. /// plain .txt files (with one read per row), FASTA, and FASTQ.
  55. /// Additionally, as <i>slow gzip compression</i> can quickly become a bottleneck, nvLighter supports
  56. /// LZ4 compression on any of the above formats.
  57. ///
  58. ///\verbatim
  59. /// ./nvLighter --help
  60. ///
  61. /// nvLighter - Copyright 2015, NVIDIA Corporation
  62. /// usage:
  63. /// nvLighter [options] input_file output_file
  64. /// options:
  65. /// -v int (0-6) [5] # verbosity level
  66. /// -zlib string [1R] # e.g. "1", ..., "9", "1R"
  67. /// -t int [auto] # number of CPU threads
  68. /// -d int [0] # add the specified GPU device
  69. /// -k k-mer genome-size alpha # error correction parameters
  70. /// -K k-mer genome-size # error correction parameters
  71. /// -maxcor # maximum correction factor
  72. /// -newQual # new quality score value
  73. /// -no-cpu # disable CPU usage
  74. /// -no-gpu # disable GPU usage
  75. ///\endverbatim
  76. ///\par
  77. /// For example:
  78. ///
  79. ///\verbatim
  80. /// nvLighter -t 20 -d 0 -d 1 -k 31 3500000000 0.2 NA12878.fq.gz NA12878.corrected.fq.lz4
  81. ///\endverbatim
  82. ///\par
  83. /// 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;
  84. /// whereas the command:
  85. ///
  86. ///\verbatim
  87. /// nvLighter -no-cpu -d 0 -k 31 3500000000 0.2 NA12878.fq.gz NA12878.corrected.txt.lz4
  88. ///\endverbatim
  89. ///\par
  90. /// will use only GPU 0 to correct the same 35x coverage human reads and output the result to an LZ4-compressed .txt file.
  91. ///\par
  92. /// As described in the original paper, the <i>alpha</i> parameter should be generally set as 7.0/C, where C is the coverage of the genome.
  93. /// If alpha is not specified, it will be computed with an additional streaming pass through the input reads.
  94. ///
  95. ///
  96. /// \section nvLighterArchitecture Architecture
  97. ///
  98. /// nvLighter's class hierarchy is documented in the \ref nvLighterModule "nvLighter module".
  99. ///