[med-svn] [Git][med-team/bowtie2][master] 8 commits: routine-update: New upstream version

Michael R. Crusoe (@crusoe) gitlab at salsa.debian.org
Tue Sep 12 12:19:27 BST 2023



Michael R. Crusoe pushed to branch master at Debian Med / bowtie2


Commits:
71fa2306 by Michael R. Crusoe at 2023-08-25T14:21:58+02:00
routine-update: New upstream version

- - - - -
412d3f3e by Michael R. Crusoe at 2023-08-25T14:21:59+02:00
New upstream version 2.5.1
- - - - -
8132aaea by Michael R. Crusoe at 2023-08-25T14:22:17+02:00
Update upstream source from tag 'upstream/2.5.1'

Update to upstream version '2.5.1'
with Debian dir e486355fcba02db89d8a4b07a813d9b753e9b142
- - - - -
3477ad58 by Michael R. Crusoe at 2023-08-25T14:39:11+02:00
refresh patches.

- - - - -
d6fb4ceb by Michael R. Crusoe at 2023-09-12T12:12:12+02:00
d/patches: update my email address, add some Forwarded hints

- - - - -
64960ebf by Michael R. Crusoe at 2023-09-12T12:22:33+02:00
tests: remove need to build debug versions.

- - - - -
252811ec by Michael R. Crusoe at 2023-09-12T13:00:55+02:00
d/tests: run built-in tests as well.

- - - - -
d2e29bfa by Michael R. Crusoe at 2023-09-12T13:16:13+02:00
routine-update: Ready to upload to unstable

- - - - -


24 changed files:

- AUTHORS
- BOWTIE2_VERSION
- MANUAL
- Makefile
- NEWS
- README.md
- bowtie2
- bt2_search.cpp
- debian/changelog
- debian/control
- debian/patches/correct_64bit_test
- debian/patches/do-not-rebuild-during-test.patch
- debian/patches/no_sanity
- debian/patches/reproducible.patch
- debian/patches/simde
- debian/patches/skip_test_requiring_non-free_libmath-random-perl.patch
- debian/patches/use-source-date-epoch-in-Makefile.patch
- debian/rules
- debian/tests/control
- debian/tests/run-unit-test
- doc/website/recent_news.ssi
- doc/website/rhsidebar.ssi
- pat.cpp
- pat.h


Changes:

=====================================
AUTHORS
=====================================
@@ -19,10 +19,6 @@ The file ls.h includes an implementation of the Larsson-Sadakane suffix sorting
 algorithm.  The implementation is by N. Jesper Larsson and was adapted somewhat
 for use in Bowtie 2.
 
-TinyThreads is a portable thread implementation with a fairly compatible subset 
-of C++11 thread management classes written by Marcus Geelnard. For more info
-check http://tinythreadpp.bitsnbites.eu/ 
-
 Various users have kindly supplied patches, bug reports and feature requests
 over the years.  Many, many thanks go to them.
 


=====================================
BOWTIE2_VERSION
=====================================
@@ -1 +1 @@
-2.5.0
\ No newline at end of file
+2.5.1
\ No newline at end of file


=====================================
MANUAL
=====================================
@@ -775,7 +775,7 @@ alignment to be considered valid, and x is the read length.
 
 Usage
 
-    bowtie2 [options]* -x <bt2-idx> {-1 <m1> -2 <m2> | -U <r> | --interleaved <i> | --sra-acc <acc> | b <bam>} -S [<sam>]
+    bowtie2 [options]* -x <bt2-idx> {-1 <m1> -2 <m2> | -U <r> | --interleaved <i> | --sra-acc <acc> | -b <bam>} -S [<sam>]
 
 Main arguments
 


=====================================
Makefile
=====================================
@@ -32,14 +32,13 @@ BOWTIE_SHARED_MEM :=
 
 CXXFLAGS += -std=c++11
 
-ARCH = $(shell uname -m)
-NGS_VER ?= 2.9.2
-VDB_VER ?= 2.9.2-1
+NGS_VER ?= 2.10.2
+VDB_VER ?= 2.10.2
 
 # Detect Cygwin or MinGW
 WINDOWS :=
 MINGW :=
-ifneq (,$(findstring MINGW,$(shell uname)))
+ifneq (,$(findstring mingw,$(shell $(CXX) --version)))
   WINDOWS := 1
   MINGW := 1
   # POSIX memory-mapped files not currently supported on Windows
@@ -62,7 +61,8 @@ ifneq (,$(findstring Darwin,$(shell uname)))
 endif
 
 BITS := 32
-ifneq (,$(findstring $(shell uname -m), x86_64 amd64))
+ARCH ?= $(shell uname -m)
+ifneq (,$(findstring $(ARCH), x86_64 amd64))
   BITS := 64
   ifeq (1, $(SSE_AVX2))
 	SSE_FLAG := -mavx2 -faligned-new -DSSE_AVX2
@@ -71,7 +71,7 @@ ifneq (,$(findstring $(shell uname -m), x86_64 amd64))
   endif
 
   POPCNT_CAPABILITY ?= 1
-else ifneq (,$(findstring $(shell uname -m), aarch64 arm64 s390x ppc64 ppc64le))
+else ifneq (,$(findstring $(ARCH), aarch64 arm64 s390x powerpc64 powerpc64le ppc64 ppc64le))
   BITS := 64
   SSE_FLAG :=
   CXXFLAGS += -fopenmp-simd


=====================================
NEWS
=====================================
@@ -4,7 +4,7 @@ Bowtie 2 NEWS
 Bowtie 2 is available for download from the project website,
 http://bowtie-bio.sf.net/bowtie2 and on Github,
 https://github.com/BenLangmead/bowtie2/releases.  2.0.0-beta1 is
-the first version released to the public and 2.5.0 is the latest
+the first version released to the public and 2.5.1 is the latest
 version.  Bowtie 2 is licensed under the GPLv3 license.  See `LICENSE'
 file for details.
 
@@ -19,6 +19,14 @@ Please report any issues to the Bowtie 2 Github page or using the Sourceforge bu
 Version Release History
 =======================
 
+## Version 2.5.1 - Feb 17, 2023 ##
+
+### bowtie2 ###
+  * Fixed an issue affecting `bowtie2` alignment accuracy.
+  * Updated the versions of the NCBI `NGS` and `VDB` libraries used by `bowtie2`.
+  * Fixed a segmentation fault that would occur while aligning SRA data.
+  * Fixed an issue preventing `--un-mates` from properly saving unaligned mates.
+
 ## Version 2.5.0 - Oct 31, 2022 ##
 
 ### bowtie2 ###


=====================================
README.md
=====================================
@@ -2,7 +2,7 @@
 <!-- badges: start -->
 ![Random Tests](https://github.com/BenLangmead/bowtie2/actions/workflows/random-tests.yml/badge.svg)
 ![Simple Tests](https://github.com/BenLangmead/bowtie2/actions/workflows/simple-tests.yml/badge.svg)
-[![Version](https://img.shields.io/badge/version-2.5.0-green.svg)](https://shields.io/)
+[![Version](https://img.shields.io/badge/version-2.5.1-green.svg)](https://shields.io/)
 <!-- [![Build Status](https://travis-ci.org/BenLangmead/bowtie2.svg?branch=master)](https://travis-ci.org/BenLangmead/bowtie2) -->
 [![License: GPL v3](https://img.shields.io/badge/license-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
 <!--badges: end -->
@@ -117,7 +117,7 @@ bowtie2-inspect --large-index example/index/lambda_virus
 
 - Langmead B, Salzberg S. __[Fast gapped-read alignment with Bowtie 2](http://www.nature.com/nmeth/journal/v9/n4/full/nmeth.1923.html)__. [Nature Methods](http://www.nature.com/nmeth). 2012, 9:357-359.
 
-- Langmead B, Trapnell C, Pop M, Salzberg SL. __[Ultrafast and memory-efficient alignment of short DNA sequences to the human genome](http://genomebiology.com/2009/10/3/R25)__. [Genome Biology](http://genomebiology.com/) 10:R25.
+- Langmead B, Trapnell C, Pop M, Salzberg SL. __[Ultrafast and memory-efficient alignment of short DNA sequences to the human genome](https://genomebiology.biomedcentral.com/articles/10.1186/gb-2009-10-3-r25)__. [Genome Biology](https://genomebiology.biomedcentral.com/) 10:R25.
 
 ### Related Publications
 


=====================================
bowtie2
=====================================
@@ -516,7 +516,7 @@ if(defined($cap_out)) {
                                 $base_spec_dir = $read_fns{$i};
                                 $base_fname = undef;
                         }
-                        if($i =~ /-conc$|^un-mate$/) {
+                        if($i =~ /-conc$|^un-mates$/) {
                                 # Open 2 output files, one for mate 1, one for mate 2
                                 my ($fn1, $fn2);
                                 if ($base_fname) {
@@ -609,7 +609,7 @@ if(defined($cap_out)) {
                                                 }
                                         }
                                         # paired read failed to align concordantly or discordantly
-                                        if (defined($read_fhs{"un-mates"}) && $pair && $unal && ($fl & 8) != 0) {
+                                        if (defined($read_fhs{"un-mates"}) && $pair && $unal && ($fl & 4) != 0) {
                                                 if ($mate1) {
                                                         print {$read_fhs{"un-mates"}{1}} $l if defined($read_fhs{"un-mates"});
                                                 } else {


=====================================
bt2_search.cpp
=====================================
@@ -3323,7 +3323,7 @@ static void multiseedSearchWorker(void *vp) {
 					exhaustive[0] = exhaustive[1] = false;
 					size_t matemap[2] = { 0, 1 };
 					bool pairPostFilt = filt[0] && filt[1];
-					if(false && pairPostFilt) {
+					if(pairPostFilt) {
 						rnd.init(ps->read_a().seed ^ ps->read_b().seed);
 					} else {
 						rnd.init(ps->read_a().seed);
@@ -3903,7 +3903,7 @@ static void multiseedSearchWorker(void *vp) {
 								// Sort seed hits into ranks
 								shs[mate].rankSeedHits(rnd, msinkwrap.allHits());
 								int ret = 0;
-								if(false && paired) {
+								if(paired) {
 									// Paired-end dynamic programming driver
 									ret = sd.extendSeedsPaired(
 										*rds[mate],     // mate to align as anchor
@@ -3973,11 +3973,11 @@ static void multiseedSearchWorker(void *vp) {
 										nceil[mate],    // N ceil for anchor
 										maxhalf,        // max width on one DP side
 										doUngapped,     // do ungapped alignment
-										mxIter[mate] * 2,   // max extend loop iters
-										mxUg[mate] * 2,     // max # ungapped extends
-										mxDp[mate] * 2,     // max # DPs
-										streak[mate] * 2,   // stop after streak of this many end-to-end fails
-										streak[mate] * 2,   // stop after streak of this many ungap fails
+										mxIter[mate],   // max extend loop iters
+										mxUg[mate],     // max # ungapped extends
+										mxDp[mate],     // max # DPs
+										streak[mate],   // stop after streak of this many end-to-end fails
+										streak[mate],   // stop after streak of this many ungap fails
 										doExtend,       // extend seed hits
 										enable8,        // use 8-bit SSE where possible
 										cminlen,        // checkpoint if read is longer
@@ -4071,9 +4071,9 @@ static void multiseedSearchWorker(void *vp) {
 						assert_leq(prm.nMateDps, mxDp[i]);
 						assert_leq(prm.nExUgs,   mxUg[i]);
 						assert_leq(prm.nMateUgs, mxUg[i]);
-						// assert_leq(prm.nDpFail,  streak[i]);
-						// assert_leq(prm.nUgFail,  streak[i]);
-						// assert_leq(prm.nEeFail,  streak[i]);
+						assert_leq(prm.nDpFail,  streak[i]);
+						assert_leq(prm.nUgFail,  streak[i]);
+						assert_leq(prm.nEeFail,  streak[i]);
 					}
 
 				// Commit and report paired-end/unpaired alignments
@@ -4380,7 +4380,7 @@ static void multiseedSearchWorker_2p5(void *vp) {
 			}
 			exhaustive[0] = exhaustive[1] = false;
 			bool pairPostFilt = filt[0] && filt[1];
-			if(false && pairPostFilt) {
+			if(pairPostFilt) {
 				rnd.init(ROTL((rds[0]->seed ^ rds[1]->seed), 10));
 			}
 			// Calculate streak length


=====================================
debian/changelog
=====================================
@@ -1,3 +1,14 @@
+bowtie2 (2.5.1-1) unstable; urgency=medium
+
+  * Team upload.
+  * New upstream version
+  * refresh patches.
+  * d/patches: update my email address, add some Forwarded hints
+  * tests: remove need to build debug versions.
+  * d/tests: run built-in tests as well.
+
+ -- Michael R. Crusoe <crusoe at debian.org>  Tue, 12 Sep 2023 13:16:13 +0200
+
 bowtie2 (2.5.0-3) unstable; urgency=medium
 
   * Merge all autopkgtest scripts into run-unit-test as usual in Debian Med


=====================================
debian/control
=====================================
@@ -10,9 +10,9 @@ Build-Depends: debhelper-compat (= 13),
                libtbb-dev,
                python3,
                liblocal-lib-perl,
-               libtest-deep-perl,
-               libclone-perl,
-               libfile-which-perl,
+               libtest-deep-perl <!nocheck>,
+               libclone-perl <!nocheck>,
+               libfile-which-perl <!nocheck>,
                zlib1g-dev,
                libsimde-dev
 Standards-Version: 4.6.2


=====================================
debian/patches/correct_64bit_test
=====================================
@@ -1,31 +1,32 @@
-Author: Michael R. Crusoe <michael.crusoe at gmail.com>
+Author: Michael R. Crusoe <crusoe at debian.org>
 Description: Handle -m64 and -msse2 flags better
---- a/Makefile
-+++ b/Makefile
-@@ -61,9 +61,9 @@ ifneq (,$(findstring Darwin,$(shell unam
+Forwarded: not-needed
+--- bowtie2.orig/Makefile
++++ bowtie2/Makefile
+@@ -60,10 +60,9 @@
    endif
  endif
  
 -BITS := 32
--ifneq (,$(findstring $(shell uname -m), x86_64 amd64))
+-ARCH ?= $(shell uname -m)
+-ifneq (,$(findstring $(ARCH), x86_64 amd64))
 -  BITS := 64
 +CXXFLAGS += -fopenmp-simd
 +CPPFLAGS += -Ithird_party
-+ifeq (amd64,$(dpkg-architecture -q DEB_TARGET_ARCH))
++ifneq (,$(findstring $(shell dpkg-architecture -q DEB_TARGET_ARCH), x86_64 amd64))
    ifeq (1, $(SSE_AVX2))
  	SSE_FLAG := -mavx2 -faligned-new -DSSE_AVX2
    else
-@@ -71,11 +71,8 @@ ifneq (,$(findstring $(shell uname -m),
+@@ -71,11 +70,8 @@
    endif
  
    POPCNT_CAPABILITY ?= 1
--else ifneq (,$(findstring $(shell uname -m), aarch64 arm64 s390x ppc64 ppc64le))
+-else ifneq (,$(findstring $(ARCH), aarch64 arm64 s390x powerpc64 powerpc64le ppc64 ppc64le))
 -  BITS := 64
--  SSE_FLAG :=
++else
+   SSE_FLAG :=
 -  CXXFLAGS += -fopenmp-simd
 -  CPPFLAGS += -Ithird_party
-+else
-+  SSE_FLAG =
    POPCNT_CAPABILITY ?= 0
  endif
  


=====================================
debian/patches/do-not-rebuild-during-test.patch
=====================================
@@ -2,6 +2,7 @@ Description: do not rebuild with default settings during test
  The test suite builds the debug versions of the executables with default
  flags, while is needs to be built with the flags in d/rules.
 Author: Sascha Steinbiss <satta at debian.org>
+Forwarded: not-needed
 --- bowtie2.orig/scripts/sim/run.sh
 +++ bowtie2/scripts/sim/run.sh
 @@ -21,17 +21,17 @@
@@ -68,3 +69,126 @@ Author: Sascha Steinbiss <satta at debian.org>
  perl scripts/test/simple_tests.pl \
  	--bowtie2=./bowtie2 \
  	--bowtie2-build=./bowtie2-build \
+--- bowtie2.orig/scripts/test/simple_tests.pl
++++ bowtie2/scripts/test/simple_tests.pl
+@@ -4807,7 +4807,7 @@
+ my $tmpfafn = ".simple_tests.pl.fa";
+ my $last_ref = undef;
+ foreach my $large_idx (undef,1) {
+-	foreach my $binary_type ("release", "debug", "sanitized") {
++	foreach my $binary_type ("release") {
+ 		for (my $ci = 0; $ci < scalar(@cases); $ci++) {
+ 			my $c = $cases[$ci];
+ 			last unless defined($c);
+--- bowtie2.orig/scripts/sim/Sim.pm
++++ bowtie2/scripts/sim/Sim.pm
+@@ -423,16 +423,15 @@
+ 			$argstr .= " ".$args->{$_};
+ 		}
+ 	}
+-	$argstr .= " --sanity";
+ 	# Build nucleotide index
+-	my $cmd = "$conf->{bowtie2_build_debug} $argstr $fa $idx";
++	my $cmd = "$conf->{bowtie2_build} $argstr $fa $idx";
+ 	print STDERR "Executing: $cmd\n";
+ 	system($cmd);
+ 	$? == 0 || mydie("Error running '$cmd'; exitlevel=$?");
+ 	print STDERR "Built nucleotide index '$idx'\n";
+ 	# Build colorspace index
+ 	unless($conf->{no_color}) {
+-		$cmd = "$conf->{bowtie2_build_debug} $argstr -C $fa ${idx}.c";
++		$cmd = "$conf->{bowtie2_build} $argstr -C $fa ${idx}.c";
+ 		print STDERR "$cmd\n";
+ 		system($cmd);
+ 		$? == 0 || mydie("Error running '$cmd'; exitlevel=$?");
+@@ -884,7 +883,7 @@
+ 	my $als_debug = "$conf->{tempdir}/Sim.pm.$conf->{randstr}.debug.als";
+ 	my $als_px    = "$conf->{tempdir}/Sim.pm.$conf->{randstr}.px.als";
+ 	my $als_px_reord = "$conf->{tempdir}/Sim.pm.$conf->{randstr}.px.reord.als";
+-	my $cmd = "$conf->{bowtie2_debug} $argstr -x $idx $inputfn";
++	my $cmd = "$conf->{bowtie2} $argstr -x $idx $inputfn";
+ 	print "$cmd\n";
+ 	open(ALSDEB, ">$als_debug") || mydie("Could not open '$als_debug' for writing");
+ 	open(ALSDEBCMD, "$cmd |") || mydie("Could not open pipe '$cmd |'");
+@@ -900,13 +899,13 @@
+ 	}
+ 	close(ALSDEBCMD);
+ 	$ac->checkAlignments(\@lines, 0);
+-	$? == 0 || mydie("bowtie2-align-debug exited with exitlevel $?:\n$cmd\n");
++	$? == 0 || mydie("bowtie2-align exited with exitlevel $?:\n$cmd\n");
+ 	close(ALSDEB);
+ 	$ac->printSummary();
+ 	# With some probability, also run debug Bowtie and check that
+ 	# results are identical
+ 	if(int(rand(3)) == 0) {
+-		print STDERR "ALSO checking that bowtie2 and bowtie2-align-debug match up\n";
++		print STDERR "ALSO checking that bowtie2 and bowtie2-align match up\n";
+ 		# Remove @PG line because CL: tag can legitimately differ
+ 		$cmd = "$conf->{bowtie2} $argstr -x $idx $inputfn | grep -v '^\@PG' > $als";
+ 		print "$cmd\n";
+@@ -917,7 +916,7 @@
+ 		print "$cmd\n";
+ 		system($cmd);
+ 		$? == 0 ||
+-			mydie("diff found a difference between bowtie2 and bowtie2-align-debug ".
++			mydie("diff found a difference between bowtie2 and bowtie2-align ".
+ 			      "output for same input (above)\n");
+ 	}
+ 	# With some probability, also run debug Bowtie in -p X mode with  X > 1 and
+@@ -948,7 +947,7 @@
+ 		print "$cmd\n";
+ 		system($cmd);
+ 		$? == 0 ||
+-			mydie("diff found a difference between bowtie2-align-debug and bowtie2 ".
++			mydie("diff found a difference between bowtie2-align and bowtie2 ".
+ 			      "-p output for same input (above)\n");
+ 	}
+ 
+@@ -965,7 +964,7 @@
+ 		print "$cmd\n";
+ 		system($cmd);
+ 		$? == 0 ||
+-			mydie("diff found a difference between bowtie2-align-debug and bowtie2 ".
++			mydie("diff found a difference between bowtie2-align and bowtie2 ".
+ 			      "-p --reorder output for same input (above)\n");
+ 	}
+ }
+@@ -977,8 +976,6 @@
+ #
+ # 1. bowtie2_build:       path to bowtie2-build binary
+ # 2. bowtie2:             path to bowtie2 binary
+-# 3. bowtie2_build_debug: path to bowtie2-build-debug binary
+-# 4. bowtie2_debug:       path to bowtie2-debug binary
+ # 5. tempdir:             temporary directory for reference/reads/index
+ # 6. no_paired:           defined & non-0 -> don't generate paired-end datasets
+ # 7. no_color:            defined & non-0 -> don't generate colorspace datasets
+@@ -989,8 +986,6 @@
+ 
+ 	$conf->{bowtie2_build}       = "bowtie2-build"  unless defined($conf->{bowtie2_build});
+ 	$conf->{bowtie2}             = "bowtie2-align"  unless defined($conf->{bowtie2});
+-	$conf->{bowtie2_build_debug} = $conf->{bowtie2_build}." --debug";
+-	$conf->{bowtie2_debug}       = $conf->{bowtie2}." --debug";
+ 	$conf->{tempdir}             = "/tmp"           unless defined($conf->{tempdir});
+ 	srand(time ^ $$);
+ 	$conf->{randstr} = randStr(8);
+--- bowtie2.orig/scripts/sim/run.pl
++++ bowtie2/scripts/sim/run.pl
+@@ -32,8 +32,6 @@
+ our %conf = (
+ 	bowtie2_build       => "bowtie2-build",
+ 	bowtie2             => "bowtie2",
+-	bowtie2_build_debug => "bowtie2-build --debug",
+-	bowtie2_debug       => "bowtie2 --debug",
+ 	tempdir             => "/tmp",
+ 	no_color            => 1,
+ 	small               => 1
+@@ -48,9 +46,7 @@
+ Options:
+ 
+   --bowtie2 <path>              Path to bowtie2 release binary
+-  --bowtie2-debug <path>        Path to bowtie2 debug binary
+   --bowtie2-build <path>        Path to bowtie2-build release binary
+-  --bowtie2-build-debug <path>  Path to bowtie2-build debug binary
+   --tempdir <path>              Put temporary files here
+   --cases <int>                 Each thread runs around <int> cases (def: 5)
+   --cpus <int> / -p <int>       Run test cases in <int> threads at once


=====================================
debian/patches/no_sanity
=====================================
@@ -1,8 +1,9 @@
-Author: Michael R. Crusoe <michael.crusoe at gmail.com>
+Author: Michael R. Crusoe <crusoe at debian.org>
 Description: save resources by not making/testing the -fsantize variants
---- a/Makefile
-+++ b/Makefile
-@@ -202,15 +202,6 @@ BUILD_CPPS_MAIN := $(BUILD_CPPS) bowtie_
+Forwarded: not-needed
+--- bowtie2.orig/Makefile
++++ bowtie2/Makefile
+@@ -201,15 +201,6 @@
  SEARCH_FRAGMENTS := $(wildcard search_*_phase*.c)
  VERSION := $(shell cat BOWTIE2_VERSION)
  
@@ -18,7 +19,7 @@ Description: save resources by not making/testing the -fsantize variants
  DEBUG_FLAGS    := -O0 -g3 $(SSE_FLAG)
  RELEASE_FLAGS  := -O3 $(SSE_FLAG) -funroll-loops -g3
  NOASSERT_FLAGS := -DNDEBUG
-@@ -230,15 +221,6 @@ BOWTIE2_BIN_LIST_DBG := bowtie2-build-s-
+@@ -229,15 +220,6 @@
    bowtie2-align-l-debug \
    bowtie2-inspect-s-debug \
    bowtie2-inspect-l-debug
@@ -34,7 +35,7 @@ Description: save resources by not making/testing the -fsantize variants
  
  GENERAL_LIST := $(wildcard scripts/*.sh) \
    $(wildcard scripts/*.pl) \
-@@ -290,10 +272,9 @@ endif
+@@ -289,10 +271,9 @@
  .PHONY: all allall both both-debug
  
  all: $(BOWTIE2_BIN_LIST) ;
@@ -46,7 +47,7 @@ Description: save resources by not making/testing the -fsantize variants
  
  DEFS := -fno-strict-aliasing \
    -DBOWTIE2_VERSION="\"`cat BOWTIE2_VERSION`\"" \
-@@ -307,17 +288,10 @@ DEFS := -fno-strict-aliasing \
+@@ -306,17 +287,10 @@
    $(CPPFLAGS) \
    $(CFLAGS)
  
@@ -65,7 +66,7 @@ Description: save resources by not making/testing the -fsantize variants
  	$(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(CXXFLAGS) \
  		$(DEFS) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall \
  		$(CPPFLAGS) \
-@@ -325,7 +299,7 @@ bowtie2-build-s-sanitized bowtie2-build-
+@@ -324,7 +298,7 @@
  		$(SHARED_CPPS) $(BUILD_CPPS_MAIN) \
  		$(LDFLAGS) $(LDLIBS)
  
@@ -74,7 +75,7 @@ Description: save resources by not making/testing the -fsantize variants
  	$(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(CXXFLAGS) \
  		$(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX $(NOASSERT_FLAGS) -Wall \
  		$(CPPFLAGS) \
-@@ -353,7 +327,7 @@ bowtie2-build-l-debug: bt2_build.cpp $(S
+@@ -352,7 +326,7 @@
  # bowtie2-align targets
  #
  
@@ -83,7 +84,7 @@ Description: save resources by not making/testing the -fsantize variants
  	$(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(CXXFLAGS) \
  		$(DEFS) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall \
  		$(CPPFLAGS) \
-@@ -361,7 +335,7 @@ bowtie2-align-s-sanitized bowtie2-align-
+@@ -360,7 +334,7 @@
  		$(SHARED_CPPS) $(SEARCH_CPPS_MAIN) \
  		$(LDFLAGS) $(LDLIBS)
  
@@ -92,7 +93,7 @@ Description: save resources by not making/testing the -fsantize variants
  	$(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(CXXFLAGS) \
  		$(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX $(NOASSERT_FLAGS) -Wall \
  		$(CPPFLAGS) \
-@@ -391,7 +365,7 @@ bowtie2-align-l-debug: bt2_search.cpp $(
+@@ -390,7 +364,7 @@
  # bowtie2-inspect targets
  #
  
@@ -101,7 +102,7 @@ Description: save resources by not making/testing the -fsantize variants
  	$(CXX) $(RELEASE_FLAGS) \
  		$(RELEASE_DEFS) $(CXXFLAGS) \
  		$(DEFS) -DBOWTIE2 -DBOWTIE_INSPECT_MAIN -Wall \
-@@ -400,7 +374,7 @@ bowtie2-inspect-s-sanitized bowtie2-insp
+@@ -399,7 +373,7 @@
  		$(SHARED_CPPS) \
  		$(LDFLAGS) $(LDLIBS)
  
@@ -110,7 +111,7 @@ Description: save resources by not making/testing the -fsantize variants
  	$(CXX) $(RELEASE_FLAGS) \
  		$(RELEASE_DEFS) $(CXXFLAGS) \
  		$(DEFS) -DBOWTIE2 -DBOWTIE_INSPECT_MAIN  -DBOWTIE_64BIT_INDEX -Wall \
-@@ -601,7 +575,7 @@ test: simple-test
+@@ -600,7 +574,7 @@
  
  .PHONY: clean
  clean:
@@ -119,9 +120,9 @@ Description: save resources by not making/testing the -fsantize variants
  	$(addsuffix .exe,$(BOWTIE2_BIN_LIST) $(BOWTIE2_BIN_LIST_DBG)) \
  	bowtie2-*.zip
  	rm -f core.* .tmp.head
---- a/bowtie2
-+++ b/bowtie2
-@@ -122,7 +122,6 @@ getBt2Desc(\%desc);
+--- bowtie2.orig/bowtie2
++++ bowtie2/bowtie2
+@@ -122,7 +122,6 @@
  sub isWrapped($) { return defined($wrapped{$_[0]}); }
  
  my $debug = 0;
@@ -129,7 +130,7 @@ Description: save resources by not making/testing the -fsantize variants
  my %read_fns = ();
  my %read_compress = ();
  my $cap_out = undef;       # Filename for passthrough
-@@ -184,7 +183,6 @@ GetOptions(
+@@ -184,7 +183,6 @@
          "keep"                          => \$keep,
          "verbose"                       => \$verbose,
          "debug"                         => \$debug,
@@ -137,7 +138,7 @@ Description: save resources by not making/testing the -fsantize variants
          "large-index"                   => \$large_idx,
          "no-unal"                       => \$no_unal,
          "un=s"                          => \&handle_un_or_al,
-@@ -473,9 +471,6 @@ my $suffix = "";
+@@ -473,9 +471,6 @@
  if ($debug) {
          $suffix = "-debug";
  }
@@ -147,9 +148,9 @@ Description: save resources by not making/testing the -fsantize variants
  
  # Construct command invoking bowtie2-align
  quote_params(\@bt2_args);
---- a/bowtie2-build
-+++ b/bowtie2-build
-@@ -46,7 +46,6 @@ def main():
+--- bowtie2.orig/bowtie2-build
++++ bowtie2/bowtie2-build
+@@ -46,7 +46,6 @@
  
      group = parser.add_mutually_exclusive_group()
      group.add_argument('--debug', action='store_true')
@@ -157,7 +158,7 @@ Description: save resources by not making/testing the -fsantize variants
  
      logging.basicConfig(level=logging.ERROR,
                          format='%(levelname)s: %(message)s'
-@@ -69,9 +68,9 @@ def main():
+@@ -69,9 +68,9 @@
          build_bin_spec += '-debug'
          build_bin_l += '-debug'
  
@@ -170,9 +171,9 @@ Description: save resources by not making/testing the -fsantize variants
  
      fastas = []
      if '-c' not in argv and len(argv) >= 2:
---- a/bowtie2-inspect
-+++ b/bowtie2-inspect
-@@ -33,7 +33,6 @@ def main():
+--- bowtie2.orig/bowtie2-inspect
++++ bowtie2/bowtie2-inspect
+@@ -33,7 +33,6 @@
  
      group = parser.add_mutually_exclusive_group()
      group.add_argument('--debug', action='store_true')
@@ -180,7 +181,7 @@ Description: save resources by not making/testing the -fsantize variants
  
      parser.add_argument('--verbose', action='store_true')
      parser.add_argument('--large-index', action='store_true')
-@@ -60,10 +59,6 @@ def main():
+@@ -60,10 +59,6 @@
          inspect_bin_spec += '-debug'
          inspect_bin_l += '-debug'
  
@@ -191,9 +192,9 @@ Description: save resources by not making/testing the -fsantize variants
      if script_options.large_index:
          inspect_bin_spec = os.path.join(ex_path,inspect_bin_l)
      elif len(argv) >= 1:
---- a/scripts/test/simple_tests.pl
-+++ b/scripts/test/simple_tests.pl
-@@ -4605,7 +4605,7 @@ sub runbowtie2($$$$$$$$$$$$$$$$$$$$$$$$$
+--- bowtie2.orig/scripts/test/simple_tests.pl
++++ bowtie2/scripts/test/simple_tests.pl
+@@ -4605,7 +4605,7 @@
  	close(FA);
  	if($do_build) {
  		my $build_args = "";
@@ -202,17 +203,8 @@ Description: save resources by not making/testing the -fsantize variants
  		print "$cmd\n";
  		system($cmd);
  		($? == 0) || die "Bad exitlevel from bowtie2-build: $?";
-@@ -4807,7 +4807,7 @@ sub matchSamOptionalFlags($$) {
- my $tmpfafn = ".simple_tests.pl.fa";
- my $last_ref = undef;
- foreach my $large_idx (undef,1) {
--	foreach my $binary_type ("release", "debug", "sanitized") {
-+	foreach my $binary_type ("release", "debug") {
- 		for (my $ci = 0; $ci < scalar(@cases); $ci++) {
- 			my $c = $cases[$ci];
- 			last unless defined($c);
---- a/scripts/test/simple_tests.sh
-+++ b/scripts/test/simple_tests.sh
+--- bowtie2.orig/scripts/test/simple_tests.sh
++++ bowtie2/scripts/test/simple_tests.sh
 @@ -21,8 +21,8 @@
  
  #  simple_tests.sh
@@ -224,9 +216,9 @@ Description: save resources by not making/testing the -fsantize variants
  
  #MAKE=`which gmake || which make`
  #$MAKE $* bowtie2-align-s \
---- a/bt2_build.cpp
-+++ b/bt2_build.cpp
-@@ -147,7 +147,6 @@ static void printUsage(ostream& out) {
+--- bowtie2.orig/bt2_build.cpp
++++ bowtie2/bt2_build.cpp
+@@ -147,7 +147,6 @@
  	out << "    --large-index           force generated index to be 'large', even if ref" << endl
  	    << "                            has fewer than 4 billion nucleotides" << endl
  	    << "    --debug                 use the debug binary; slower, assertions enabled" << endl
@@ -234,9 +226,9 @@ Description: save resources by not making/testing the -fsantize variants
  	    << "    --verbose               log the issued command" << endl;
  	}
  	out << "    -a/--noauto             disable automatic -p/--bmax/--dcv memory-fitting" << endl
---- a/bt2_inspect.cpp
-+++ b/bt2_inspect.cpp
-@@ -81,7 +81,6 @@ static void printUsage(ostream& out) {
+--- bowtie2.orig/bt2_inspect.cpp
++++ bowtie2/bt2_inspect.cpp
+@@ -81,7 +81,6 @@
  		out << "  --large-index      force inspection of the 'large' index, even if a" << endl
  		    << "                     'small' one is present." << endl
  		    << "  --debug            use the debug binary; slower, assertions enabled" << endl


=====================================
debian/patches/reproducible.patch
=====================================
@@ -3,6 +3,7 @@ Description: make build reproducible
  hostname, time, etc. from the binary. It also ensures a stable
  sorting order for all wildcard expansions in the Makefile.
 Author: Sascha Steinbiss <sascha at steinbiss.name>
+Forwarded: not-needed
 --- a/Makefile
 +++ b/Makefile
 @@ -26,7 +26,7 @@ bindir := $(PREFIX)/bin


=====================================
debian/patches/simde
=====================================
@@ -1,6 +1,6 @@
-Author: Michael R. Crusoe <michael.crusoe at gmail.com>
+Author: Michael R. Crusoe <crusoe at debian.org>
 Description: Enable SIMDE everywhere
-
+Forwarded: not-needed
 --- bowtie2.orig/sse_wrap.h
 +++ bowtie2/sse_wrap.h
 @@ -27,8 +27,9 @@


=====================================
debian/patches/skip_test_requiring_non-free_libmath-random-perl.patch
=====================================
@@ -4,6 +4,7 @@ Description: Math::Random is in package libmath-random-perl which is
  unfortunately in non-free thus we can not use it for testing while building
  this package.  Thus the occurrences of references and the surrounding code
  is removed here.
+Forwarded: not-needed
 
 --- a/example/reads/simulate.pl
 +++ b/example/reads/simulate.pl


=====================================
debian/patches/use-source-date-epoch-in-Makefile.patch
=====================================
@@ -5,9 +5,9 @@ Bug-Debian: https://bugs.debian.org/977435
 
 https://reproducible-builds.org/docs/source-date-epoch/
 
---- a/Makefile
-+++ b/Makefile
-@@ -279,7 +279,7 @@ both-debug: bowtie2-align-s-debug bowtie
+--- bowtie2.orig/Makefile
++++ bowtie2/Makefile
+@@ -278,7 +278,7 @@
  DEFS := -fno-strict-aliasing \
    -DBOWTIE2_VERSION="\"`cat BOWTIE2_VERSION`\"" \
    -DBUILD_HOST="\"$${HOSTNAME:-`hostname`}\"" \


=====================================
debian/rules
=====================================
@@ -31,13 +31,6 @@ endif
 
 override_dh_auto_test:
 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
-	LD_PRELOAD= $(MAKE) EXTRA_FLAGS="-std=c++98 $(LDFLAGS)" $(EXTRA_OPTIONS) \
-	  bowtie2-build-s-debug \
-	  bowtie2-build-l-debug \
-	  bowtie2-align-s-debug \
-	  bowtie2-align-l-debug \
-	  bowtie2-inspect-s-debug \
-	  bowtie2-inspect-l-debug
 	LD_PRELOAD= make -j1 test
 endif
 


=====================================
debian/tests/control
=====================================
@@ -1,4 +1,4 @@
 Tests: run-unit-test
-Depends: @
+Depends: @, libclone-perl, libtest-deep-perl, libclone-perl, libfile-which-perl, libmath-random-perl, libsys-info-perl
 Restrictions: allow-stderr
 Architecture: !s390x


=====================================
debian/tests/run-unit-test
=====================================
@@ -9,9 +9,21 @@ if [ "${AUTOPKGTEST_TMP}" = "" ] ; then
   trap "rm -rf ${AUTOPKGTEST_TMP}" 0 INT QUIT ABRT PIPE TERM
 fi
 
-cp -a /usr/share/doc/${pkg}/examples/* "${AUTOPKGTEST_TMP}"
+cp -ar /usr/share/doc/${pkg}/examples "${AUTOPKGTEST_TMP}"/
+cp -ar scripts/test "${AUTOPKGTEST_TMP}"/
+cp -ar scripts/sim "${AUTOPKGTEST_TMP}"/
 
-cd "${AUTOPKGTEST_TMP}"
+cd "${AUTOPKGTEST_TMP}"/test
+perl simple_tests.pl --bowtie2=/usr/bin/bowtie2 \
+	--bowtie2-build=/usr/bin/bowtie2-build \
+	--compressed
+
+cd "${AUTOPKGTEST_TMP}"/sim
+perl run.pl --bowtie2=/usr/bin/bowtie2 \
+	--bowtie2-build=/usr/bin/bowtie2-build \
+	--cpus=$(nproc)
+
+cd "${AUTOPKGTEST_TMP}"/examples
 
 # check-wo-arguments
 TMP="$(mktemp)"


=====================================
doc/website/recent_news.ssi
=====================================
@@ -1,9 +1,18 @@
+<h2>Version 2.5.1 - Feb 17, 2023</h2>
+<h3 id="bowtie2">bowtie2</h3>
+<ul>
+    <li>Fixed an issue affecting <code>bowtie2</code> alignment accuracy.</li>
+    <li>Updated the versions of the NCBI <code>NGS</code> and <code>VDB</code> libraries used by <code>bowtie2</code>.</li>
+    <li>Fixed a segmentation fault that would occur while aligning SRA data.</li>
+    <li>Fixed an issue preventing <code><a href="manual.shtml#bowtie2-options-un-mates">--un-mates</a></code> from properly saving unaligned mates.</li>
+</ul>
+
 <h2>Version 2.5.0 - Oct 31, 2022</h2>
 <h3 id="bowtie2">bowtie2</h3>
 <ul>
     <li>Overall improvements in the use of prefetch instructions. (contribution by Igor Sfiligoi)</li>
     <li>Made input/output fully asynchronous by using a dedicated thread. (contribution by Igor Sfiligoi)</li>
-    <li>Added support for AVX2 256-bit instructions with can be enabled by setting the <code>SSE_AXV2<code> environment variable at compile time. (contribution by Igor Sfiligoi)</li>
+    <li>Added support for AVX2 256-bit instructions with can be enabled by setting the <code>SSE_AXV2</code> environment variable at compile time. (contribution by Igor Sfiligoi)</li>
     <li>Fixed an issue causing <code>bowtie2</code> to crash when processing ZSTD files with high compression ratios.</li>
     <li>Changed the way that unique alignments are counted in summary message to better match up with filters on SAM output</li>
 </ul>


=====================================
doc/website/rhsidebar.ssi
=====================================
@@ -18,10 +18,10 @@
         </tr>
       <tr>
       <td>
-        <a href="https://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.5.0">Bowtie2 v2.4.5</a>
+        <a href="https://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.5.1">Bowtie2 v2.5.1</a>
       </td>
       <td align="right">
-        10/31/22 
+        02/17/23 
       </td>
       </tr>
       <tr>


=====================================
pat.cpp
=====================================
@@ -1699,28 +1699,29 @@ std::pair<bool, int> SRAPatternSource::nextBatchImpl(
 	size_t readi = 0;
 	bool done = false;
 
-	for(; readi < pt.max_buf_; readi++) {
-		if(!sra_its_[pt.tid_]->nextRead() || !sra_its_[pt.tid_]->nextFragment()) {
+	while (readi < pt.max_buf_) {
+		if(!read_iter_->nextRead() || !read_iter_->nextFragment()) {
 			done = true;
 			break;
 		}
-		const ngs::StringRef rname = sra_its_[pt.tid_]->getReadId();
-		const ngs::StringRef ra_seq = sra_its_[pt.tid_]->getFragmentBases();
-		const ngs::StringRef ra_qual = sra_its_[pt.tid_]->getFragmentQualities();
+		const ngs::StringRef rname = read_iter_->getReadId();
+		const ngs::StringRef ra_seq = read_iter_->getFragmentBases();
+		const ngs::StringRef ra_qual = read_iter_->getFragmentQualities();
 		readbuf[readi].readOrigBuf.install(rname.data(), rname.size());
 		readbuf[readi].readOrigBuf.append('\t');
 		readbuf[readi].readOrigBuf.append(ra_seq.data(), ra_seq.size());
 		readbuf[readi].readOrigBuf.append('\t');
 		readbuf[readi].readOrigBuf.append(ra_qual.data(), ra_qual.size());
-		if(sra_its_[pt.tid_]->nextFragment()) {
-			const ngs::StringRef rb_seq = sra_its_[pt.tid_]->getFragmentBases();
-			const ngs::StringRef rb_qual = sra_its_[pt.tid_]->getFragmentQualities();
+		if(read_iter_->nextFragment()) {
+			const ngs::StringRef rb_seq = read_iter_->getFragmentBases();
+			const ngs::StringRef rb_qual = read_iter_->getFragmentQualities();
 			readbuf[readi].readOrigBuf.append('\t');
 			readbuf[readi].readOrigBuf.append(rb_seq.data(), rb_seq.size());
 			readbuf[readi].readOrigBuf.append('\t');
 			readbuf[readi].readOrigBuf.append(rb_qual.data(), rb_qual.size());
 		}
 		readbuf[readi].readOrigBuf.append('\n');
+		readi++;
 	}
 
 	pt.setReadId(readCnt_);
@@ -1877,26 +1878,14 @@ void SRAPatternSource::open() {
 			return;
 		}
 
-		size_t window_size = MAX_ROW / sra_its_.size();
-		size_t remainder = MAX_ROW % sra_its_.size();
-		size_t i = 0, start = 1;
+		size_t start = 1;
 
 		if (pp_.skip > 0) {
 			start = pp_.skip + 1;
 			readCnt_ = pp_.skip;
 		}
 
-		while (i < sra_its_.size()) {
-			sra_its_[i] = new ngs::ReadIterator(sra_run.getReadRange(start, window_size, ngs::Read::all));
-			assert(sra_its_[i] != NULL);
-
-			i++;
-			start += window_size;
-			if (i == sra_its_.size() - 1) {
-				window_size += remainder;
-			}
-		}
-
+		read_iter_ = new ngs::ReadIterator(sra_run.getReadRange(start, MAX_ROW, ngs::Read::all));
 	} catch(...) {
 		cerr << "Warning: Could not access \"" << sra_acc << "\" for reading; skipping..." << endl;
 	}


=====================================
pat.h
=====================================
@@ -1444,7 +1444,6 @@ public:
 		sra_acc_cur_(0),
 		cur_(0),
 		first_(true),
-		sra_its_(p.nthreads),
 		mutex_m(),
 		pp_(p)
 	{
@@ -1456,12 +1455,7 @@ public:
 	}
 
 	virtual ~SRAPatternSource() {
-		for (size_t i = 0; i < sra_its_.size(); i++) {
-			if(sra_its_[i] != NULL) {
-				delete sra_its_[i];
-				sra_its_[i] = NULL;
-			}
-		}
+		delete read_iter_;
 	}
 
 	/**
@@ -1488,7 +1482,9 @@ public:
 	 */
 	virtual void reset() {
 		PatternSource::reset();
-		sra_acc_cur_ = 0,
+		sra_acc_cur_ = 0;
+		if (read_iter_)
+			delete read_iter_;
 		open();
 		sra_acc_cur_++;
 	}
@@ -1510,7 +1506,7 @@ protected:
 	size_t cur_;             // current read id
 	bool first_;
 
-	std::vector<ngs::ReadIterator*> sra_its_;
+	ngs::ReadIterator* read_iter_;
 
 	/// Lock enforcing mutual exclusion for (a) file I/O, (b) writing fields
 	/// of this or another other shared object.



View it on GitLab: https://salsa.debian.org/med-team/bowtie2/-/compare/43afb83bb0e52164200a9575333c357b33b75ead...d2e29bfa56edcfe2581715f603f88b4203d94840

-- 
View it on GitLab: https://salsa.debian.org/med-team/bowtie2/-/compare/43afb83bb0e52164200a9575333c357b33b75ead...d2e29bfa56edcfe2581715f603f88b4203d94840
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20230912/742ea7cb/attachment-0001.htm>


More information about the debian-med-commit mailing list