From 0517972d028909161d6e143a235cd6302351550b Mon Sep 17 00:00:00 2001 From: Heng Li Date: Thu, 21 Jun 2018 00:04:08 -0400 Subject: [PATCH] Release minimap2-2.11 (r797) --- NEWS.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 4 ++-- cookbook.md | 12 +++++------ main.c | 2 +- minimap.h | 15 +++++++------ minimap2.1 | 6 +++++- python/mappy.pyx | 2 +- setup.py | 2 +- 8 files changed, 80 insertions(+), 18 deletions(-) diff --git a/NEWS.md b/NEWS.md index d6bb920..69cb313 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,58 @@ +Release 2.11-r797 (20 June 2018) +-------------------------------- + +Changes to minimap2: + + * Improved alignment accuracy in low-complexity regions for SV calling. Thank + @armintoepfer for multiple offline examples. + + * Added option --eqx to encode sequence match/mismatch with the =/X CIGAR + operators (#156, #157 and #175). + + * When compiled with VC++, minimap2 generated wrong alignments due to a + comparison between a signed integer and an unsigned integer (#184). Also + fixed warnings reported by "clang -Wextra". + + * Fixed incorrect anchor filtering due to a missing 64- to 32-bit cast. + + * Fixed incorrect mapping quality for inversions (#148). + + * Fixed incorrect alignment involving ambiguous bases (#155). + + * Fixed incorrect presets: option `-r 2000` is intended to be used with + ava-ont, not ava-pb. The bug was introduced in 2.10. + + * Fixed a bug when --for-only/--rev-only is used together with --sr or + --heap-sort=yes (#166). + + * Fixed option -Y that was not working in the previous releases. + + * Added option --lj-min-ratio to fine control the alignment of long gaps + found by the "long-join" heuristic (#128). + + * Exposed `mm_idx_is_idx`, `mm_idx_load` and `mm_idx_dump` C APIs (#177). + Also fixed a bug when indexing without reference names (this feature is not + exposed to the command line). + +Changes to mappy: + + * Added `__version__` (#165). + + * Exposed the maximum fragment length parameter to mappy (#174). + +Changes to paftools: + + * Don't crash when there is no "cg" tag (#153). + + * Fixed wrong coverage report by "paftools.js call" (#145). + +This version may produce slightly different base-level alignment. The overall +alignment statistics should remain similar. + +(2.11: 20 June 2018, r797) + + + Release 2.10-r761 (27 March 2018) --------------------------------- diff --git a/README.md b/README.md index 8ce319d..7512210 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ Detailed evaluations are available from the [minimap2 paper][doi] or the Minimap2 is optimized for x86-64 CPUs. You can acquire precompiled binaries from the [release page][release] with: ```sh -curl -L https://github.com/lh3/minimap2/releases/download/v2.10/minimap2-2.10_x64-linux.tar.bz2 | tar -jxvf - -./minimap2-2.10_x64-linux/minimap2 +curl -L https://github.com/lh3/minimap2/releases/download/v2.11/minimap2-2.11_x64-linux.tar.bz2 | tar -jxvf - +./minimap2-2.11_x64-linux/minimap2 ``` If you want to compile from the source, you need to have a C compiler, GNU make and zlib development files installed. Then type `make` in the source code diff --git a/cookbook.md b/cookbook.md index 05990bc..a3d288e 100644 --- a/cookbook.md +++ b/cookbook.md @@ -24,18 +24,18 @@ This cookbook walks you through a variety of applications of minimap2 and its companion script `paftools.js`. All data here are freely available from the -minimap2 release page at version tag [v2.10][v2.10]. Some examples only work -with v2.10 or later. +minimap2 release page at version tag [v2.11][v2.11]. Some examples only work +with v2.11 or later. To acquire the data used in this cookbook and to install minimap2 and paftools, please follow the command lines below: ```sh # install minimap2 executables -curl -L https://github.com/lh3/minimap2/releases/download/v2.10/minimap2-2.10_x64-linux.tar.bz2 | tar jxf - -cp minimap2-2.10_x64-linux/{minimap2,k8,paftools.js} . # copy executables +curl -L https://github.com/lh3/minimap2/releases/download/v2.11/minimap2-2.11_x64-linux.tar.bz2 | tar jxf - +cp minimap2-2.11_x64-linux/{minimap2,k8,paftools.js} . # copy executables export PATH="$PATH:"`pwd` # put the current directory on PATH # download example datasets -curl -L https://github.com/lh3/minimap2/releases/download/v2.10/cookbook-data.tgz | tar zxf - +curl -L https://github.com/lh3/minimap2/releases/download/v2.11/cookbook-data.tgz | tar zxf - ``` ## Mapping Genomic Reads @@ -240,4 +240,4 @@ with `-x ava-pb` (99% vs 93% with `-x ava-ont`). [pbsim]: https://github.com/pfaucon/PBSIM-PacBio-Simulator [mason2]: https://github.com/seqan/seqan/tree/master/apps/mason2 [paf]: https://github.com/lh3/miniasm/blob/master/PAF.md -[v2.10]: https://github.com/lh3/minimap2/releases/tag/v2.10 +[v2.11]: https://github.com/lh3/minimap2/releases/tag/v2.11 diff --git a/main.c b/main.c index 5ac8ffb..1b25541 100644 --- a/main.c +++ b/main.c @@ -10,7 +10,7 @@ #include "getopt.h" #endif -#define MM_VERSION "2.10-r796-dirty" +#define MM_VERSION "2.11-r797" #ifdef __linux__ #include diff --git a/minimap.h b/minimap.h index 092d9b6..3590173 100644 --- a/minimap.h +++ b/minimap.h @@ -222,24 +222,27 @@ int mm_idx_reader_eof(const mm_idx_reader_t *r); /** * Check whether the file contains a minimap2 index * - * @param fn index file name - * @return 1 if file can be opened and is a minimap2 index; 0 otherwise + * @param fn file name + * + * @return the file size if fn is an index file; 0 if fn is not. */ int64_t mm_idx_is_idx(const char *fn); /** - * Load an index + * Load a part of an index * - * Unlike mm_idx_reader_read this function specifically loads an existing - * index. + * Given a uni-part index, this function loads the entire index into memory. + * Given a multi-part index, it loads one part only and places the file pointer + * at the end of that part. * * @param fp pointer to FILE object + * * @return minimap2 index read from fp */ mm_idx_t *mm_idx_load(FILE *fp); /** - * Save an index + * Append an index (or one part of a full index) to file * * @param fp pointer to FILE object * @param mi minimap2 index diff --git a/minimap2.1 b/minimap2.1 index 29777d7..0d240d1 100644 --- a/minimap2.1 +++ b/minimap2.1 @@ -1,4 +1,4 @@ -.TH minimap2 1 "30 April 2018" "minimap2-2.10-dirty (r770)" "Bioinformatics tools" +.TH minimap2 1 "20 June 2018" "minimap2-2.11 (r797)" "Bioinformatics tools" .SH NAME .PP minimap2 - mapping and alignment between collections of DNA sequences @@ -239,6 +239,10 @@ Disable the long gap patching heuristic. When this option is applied, the maximum alignment gap is mostly controlled by .BR -r . .TP +.B --lj-min-ratio \ FLOAT +Fraction of query sequence length required to bridge a long gap [0.5]. A +smaller value helps to recover longer gaps, at the cost of more false gaps. +.TP .B --splice Enable the splice alignment mode. .TP diff --git a/python/mappy.pyx b/python/mappy.pyx index e504463..4ad0b8f 100644 --- a/python/mappy.pyx +++ b/python/mappy.pyx @@ -3,7 +3,7 @@ from libc.stdlib cimport free cimport cmappy import sys -__version__ = '2.10' +__version__ = '2.11' cmappy.mm_reset_timer() diff --git a/setup.py b/setup.py index aaba928..259c1ae 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ def readme(): setup( name = 'mappy', - version = '2.10', + version = '2.11', url = 'https://github.com/lh3/minimap2', description = 'Minimap2 python binding', long_description = readme(),