From 1fd85be6e2515c9194740e1d2e6a2625be36f508 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Fri, 18 Apr 2025 13:41:47 -0400 Subject: [PATCH] Release minimap2-2.29 (r1283) --- NEWS.md | 26 ++++++++++++++++++++------ README.md | 16 +++++++--------- cookbook.md | 4 ++-- minimap.h | 2 +- misc/paftools.js | 2 +- python/mappy.pyx | 2 +- setup.py | 2 +- 7 files changed, 33 insertions(+), 21 deletions(-) diff --git a/NEWS.md b/NEWS.md index c3849e2..7ed0739 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,11 +1,11 @@ Release 2.29-r1283 (18 April 2025) ---------------------------------- -Notable changes: +Notable changes to minimap2: * New feature: added the `splice:sr` preset for short RNA-seq read alignment. Users may use `-j` to specify known gene annotation to improve spliced - alignment close to the ends of reads. Also added `--write-junc` and + alignment close to the ends of short reads. Also added `--write-junc` and `--pass1` for 2-pass short-read RNA-seq alignment. * Experimental feature: read splice scores from a file specified by `--spsc` @@ -14,10 +14,24 @@ Notable changes: * Change: adjusted the mapping quality calculation for spliced alignment. -This release produces identical genomic long-read alignment to v2.27. Short -genomic read alignment and the mapping quality of long RNA-seq read alignment -may slightly differ in very rare cases. Minimap2 now supports short/long -genomic/RNA-seq read alignment. + * Bugfixes: a) missing overlap alignment when base alignment is requested + (#969); b) incorrect summary information for long genomes (#1192); c) + missing parameter check for `--score-N` (#1226). + + * Improvement: a) warn about absent junction files (#1229); b) report an error + if a wrong preset prefixed with "splice" is specified (#589). + +Notable changes to mappy: + + * Improvement: allow passing read name (#1260) + + * Improvement: exposed score for ambiguous bases (#1240) + +Minimap2 now supports short/long genomic/RNA-seq read alignment along with +contig alignment and all-vs-all read overlapping. It produces identical genomic +long-read or contig alignment to v2.27. Short genomic read alignment and the +mapping quality of long RNA-seq read alignment may slightly differ in very rare +cases. (2.29: 18 April 2025, r1283) diff --git a/README.md b/README.md index 2017b07..e970efb 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ cd minimap2 && make ./minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam # noisy Nanopore direct RNA-seq ./minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam # PacBio Kinnex/Iso-seq (RNA-seq) ./minimap2 -ax splice --junc-bed=anno.bed12 ref.fa query.fa > aln.sam # use annotated junctions -./minimap2 -ax splice:sr ref.fa r1.fq r2.fq > aln.sam # short-read RNA-seq (r1236+; experimental) +./minimap2 -ax splice:sr ref.fa r1.fq r2.fq > aln.sam # short-read RNA-seq (v2.29+) ./minimap2 -ax splice:sr -j anno.bed12 ref.fa r1.fq r2.fq > aln.sam ./minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf # intra-species asm-to-asm alignment ./minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf # PacBio read overlap @@ -41,7 +41,7 @@ man ./minimap2.1 - [Map long mRNA/cDNA reads](#map-long-splice) - [Find overlaps between long reads](#long-overlap) - [Map short genomic reads](#short-genomic) - - [Map short RNA-seq reads (experimental & evolving)](#short-rna-seq) + - [Map short RNA-seq reads](#short-rna-seq) - [Full genome/assembly alignment](#full-genome) - [Advanced features](#advanced) - [Working with >65535 CIGAR operations](#long-cigar) @@ -77,8 +77,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.28/minimap2-2.28_x64-linux.tar.bz2 | tar -jxvf - -./minimap2-2.28_x64-linux/minimap2 +curl -L https://github.com/lh3/minimap2/releases/download/v2.29/minimap2-2.29_x64-linux.tar.bz2 | tar -jxvf - +./minimap2-2.29_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 @@ -235,7 +235,7 @@ be paired if they are adjacent in the input stream and have the same name (with the `/[0-9]` suffix trimmed if present). Single- and paired-end reads can be mixed. -#### Map short RNA-seq reads (experimental & evolving) +#### Map short RNA-seq reads ```sh minimap2 -ax splice:sr ref.fa reads-se.fq.gz > aln.sam # single-end @@ -245,10 +245,8 @@ minimap2 -ax splice:sr -j anno.bed ref.fa r1.fq r2.fq > aln.sam # use annotatio minimap2 -x splice:sr -j anno.bed --write-junc ref.fa r1.fq r2.fq > junc.bed minimap2 -ax splice:sr -j anno.bed --pass1=junc.bed ref.fa r1.fq r2.fq > aln.sam ``` -The new preset `splice:sr` was added between v2.28 and v2.29. It functions -similarly to `sr` except that it performs spliced alignment. Note that this -functionality is ***experiemental*** and evolving. It is better not to use it -for production. +The new preset `splice:sr` was added in v2.29. It functions similarly to `sr` +except that it performs spliced alignment. #### Full genome/assembly alignment diff --git a/cookbook.md b/cookbook.md index 945d923..5ae6bdc 100644 --- a/cookbook.md +++ b/cookbook.md @@ -31,8 +31,8 @@ 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.28/minimap2-2.28_x64-linux.tar.bz2 | tar jxf - -cp minimap2-2.28_x64-linux/{minimap2,k8,paftools.js} . # copy executables +curl -L https://github.com/lh3/minimap2/releases/download/v2.29/minimap2-2.29_x64-linux.tar.bz2 | tar jxf - +cp minimap2-2.29_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 - diff --git a/minimap.h b/minimap.h index 24ed903..449827b 100644 --- a/minimap.h +++ b/minimap.h @@ -5,7 +5,7 @@ #include #include -#define MM_VERSION "2.28-r1281-dirty" +#define MM_VERSION "2.29-r1283" #define MM_F_NO_DIAG (0x001LL) // no exact diagonal hit #define MM_F_NO_DUAL (0x002LL) // skip pairs where query name is lexicographically larger than target name diff --git a/misc/paftools.js b/misc/paftools.js index 79b3682..32f7212 100755 --- a/misc/paftools.js +++ b/misc/paftools.js @@ -1,6 +1,6 @@ #!/usr/bin/env k8 -var paftools_version = '2.28-r1230-dirty'; +var paftools_version = '2.29-r1283'; /***************************** ***** Library functions ***** diff --git a/python/mappy.pyx b/python/mappy.pyx index 41e30d2..8efd870 100644 --- a/python/mappy.pyx +++ b/python/mappy.pyx @@ -3,7 +3,7 @@ from libc.stdlib cimport free cimport cmappy import sys -__version__ = '2.28' +__version__ = '2.29' cmappy.mm_reset_timer() diff --git a/setup.py b/setup.py index f20deda..1cf978e 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ def readme(): setup( name = 'mappy', - version = '2.28', + version = '2.29', url = 'https://github.com/lh3/minimap2', description = 'Minimap2 python binding', long_description = readme(),