[med-svn] [Git][med-team/snap-aligner][master] 6 commits: New upstream version

Michael R. Crusoe (@crusoe) gitlab at salsa.debian.org
Fri Sep 5 13:47:59 BST 2025



Michael R. Crusoe pushed to branch master at Debian Med / snap-aligner


Commits:
93b75e23 by Michael R. Crusoe at 2025-09-05T13:51:43+02:00
New upstream version

- - - - -
7a8ef679 by Michael R. Crusoe at 2025-09-05T13:51:44+02:00
New upstream version 2.0.5+dfsg
- - - - -
80fb3ef9 by Michael R. Crusoe at 2025-09-05T13:51:52+02:00
Update upstream source from tag 'upstream/2.0.5+dfsg'

Update to upstream version '2.0.5+dfsg'
with Debian dir 4b7b0042ec0635a29b848499d51617bc8c77283d
- - - - -
10b527be by Michael R. Crusoe at 2025-09-05T13:51:53+02:00
Standards-Version: 4.7.2 (routine-update)

- - - - -
887dc2c6 by Michael R. Crusoe at 2025-09-05T14:04:29+02:00
Refreshed patches.

* Added patch to fix typo.

- - - - -
314cd30d by Michael R. Crusoe at 2025-09-05T14:04:29+02:00
routine-update: Ready to upload to unstable

- - - - -


12 changed files:

- README.md
- SNAPLib/AlignerOptions.cpp
- SNAPLib/BaseAligner.cpp
- SNAPLib/CommandProcessor.cpp
- SNAPLib/IntersectingPairedEndAligner.cpp
- debian/changelog
- debian/control
- debian/patches/non-x86-and-kfreebsd
- debian/patches/series
- + debian/patches/spelling
- docs/SNAP User Manual.docx
- docs/SNAP User Manual.pdf


Changes:

=====================================
README.md
=====================================
@@ -13,15 +13,7 @@ need for several pipeline stages used by other aligners.
 
 ## Binaries
 
-The SNAP executable
-- [v2.0.2 For Linux](https://1drv.ms/u/s!AhuEg_0yZD86hcpYCkpLlDktZnVaow?e=QRDhs4)
-- [v2.0.2 for Windows 10](https://1drv.ms/u/s!AhuEg_0yZD86hcpZQUgOEMrmA5qaLA?e=eUNeHZ)
-- [v2.0.0 for OSX](https://1drv.ms/u/s!AhuEg_0yZD86hcphrIjwoeTjdSvgoA?e=coSU85)
-
-The SNAPCommand tool
-- [SNAPCommand for Linux](https://1drv.ms/u/s!AhuEg_0yZD86hcpdvv0ZBdB1BqF57g?e=IHVbq2>)
-- [SNAPCommand for Windows 10](https://1drv.ms/u/s!AhuEg_0yZD86hcpaSLKPRGJ6dcvVgA?e=vXH8y6)
-- [SNAPCommand for OSX](https://1drv.ms/u/s!AhuEg_0yZD86hcpgy-ONBaw0DjFpTQ?e=cMc6eE)
+Current binaries are available on this GitHub page under "releases"
 
 
 ## Documentation
@@ -39,6 +31,6 @@ When you build it, you will have to set it to build for x64, not "Any CPU" or 32
 
 For Linux, simply type `make`. Requirements:
 - g++ version 4.8.5 or later
-- zlib 1.2.11 or later from http://zlib.net/
+- zlib 1.2.11 or later from http://zlib.net/.  On Ubuntu, do sudo apt install libz1g-dev
 
 


=====================================
SNAPLib/AlignerOptions.cpp
=====================================
@@ -154,7 +154,7 @@ AlignerOptions::usage()
             "  -x   explore some hits of overly popular seeds (useful for filtering)\n"
             "  -S   suppress additional processing (sorted BAM output only)\n"
             "       i=index, d=duplicate marking\n"
-            "  -f   stop on first match within edit distance limit (filtering mode)\n"
+            "  -f   stop on first match within edit distance limit (filtering mode, single-end only)\n"
             "  -F   filter output (a=aligned only, s=single hit only (MAPQ >= %d), u=unaligned only, l=long enough to align (see -mrl))\n"
             "  -E   an alternate (and fully general) way to specify filter options.  Emit only these types s = single hit (MAPQ >= %d), m = multiple hit (MAPQ < %d),\n"
             "       x = not long enough to align, u = unaligned, b = filter must apply to both ends of a paired-end read.  Combine the letters after\n"


=====================================
SNAPLib/BaseAligner.cpp
=====================================
@@ -1292,6 +1292,21 @@ Return Value:
 
                     bool foundAlignment = useHamming ? (score1Gapless != ScoreAboveLimit && score2Gapless != ScoreAboveLimit) : (score1 != ScoreAboveLimit && score2 != ScoreAboveLimit);
 
+                    if (foundAlignment && genomeLocationOffset != 0 && 
+                        NULL == genome->getSubstring(genomeLocation + genomeLocationOffset, genomeDataLength)) {
+                        //
+                        // We had an indel that pushed the alignment to cross a contig boundary.  Just dump it
+                        // (though maybe hard clipping is more approproiate).
+                        //
+                        foundAlignment = false;
+#ifdef  _DEBUG
+                        if (_DumpAlignments) {
+                            printf("\t\t Rejected candidate alignment at %s because an indel caused it to cross a contig boundary\n",
+                                genome->genomeLocationInStringForm(genomeLocation.location, genomeLocationBuffer, genomeLocationBufferSize));
+                        }
+#endif  // _DEBUG
+                    }
+
                     if (foundAlignment) {
                         score = score1 + score2;
                         scoreGapless = score1Gapless + score2Gapless;
@@ -1303,7 +1318,6 @@ Return Value:
                         //
                         genomeLocation += genomeLocationOffset;
 
-
                         agScore = agScore1 + agScore2;
 
                         //
@@ -1478,8 +1492,15 @@ Return Value:
                     // care about the best alignment. Stop now but mark the result as MultipleHits because we're not
                     // confident that it's the best one.  We don't support mapq in this secnario, because we haven't
                     // explored enough to compute it.
+
+
+                    (altAwareness ? scoresForNonAltAlignments : scoresForAllAlignments).fillInSingleAlignmentResult(primaryResult, popularSeedsSkipped);
+                    //
+                    // Force MAPQ 0 in this case, since we didn't explore the whole space and can't say.
+                    //
                     primaryResult->status = MultipleHits;
                     primaryResult->mapq = 0;
+                    firstALTResult->status = NotFound;
                     return true;
                 }
 


=====================================
SNAPLib/CommandProcessor.cpp
=====================================
@@ -36,7 +36,7 @@ Revision History:
 #include "Compat.h"
 #include "HitDepth.h"
 
-const char *SNAP_VERSION = "2.0.3";
+const char *SNAP_VERSION = "2.0.5";
 
 static void usage()
 {


=====================================
SNAPLib/IntersectingPairedEndAligner.cpp
=====================================
@@ -3359,6 +3359,19 @@ IntersectingPairedEndAligner::scoreLocation(
         agScore2 = (seedOffset - score2) * matchReward - score2 * subPenalty;
     }
 
+    if (0 != *genomeLocationOffset && NULL == genome->getSubstring(genomeLocation + *genomeLocationOffset, genomeDataLength)) {
+        // 
+        // We adjusted the alignment offset due to an indel in such a way that it now crosses a contig boundary.
+        // Dump the alignment.
+        //
+#ifdef _DEBUG
+        if (_DumpAlignments) {
+            printf("Rejecting alignment candidate because an indel caused a contig boundary cross\n");
+        }
+#endif  // _DEBUG
+        score2 = ScoreAboveLimit;
+    }
+
     if (score1 != ScoreAboveLimit && score2 != ScoreAboveLimit) {
         *score = score1 + score2;
         _ASSERT(*score <= scoreLimit);


=====================================
debian/changelog
=====================================
@@ -1,9 +1,13 @@
-snap-aligner (2.0.3+dfsg-3) UNRELEASED; urgency=medium
+snap-aligner (2.0.5+dfsg-1) unstable; urgency=medium
 
   * d/control: simplify architecture specification via the provisions
     from the architecture-properties package.
+  * New upstream version
+  * Standards-Version: 4.7.2 (routine-update)
+  * Refreshed patches.
+  * Added patch to fix typo.
 
- -- Michael R. Crusoe <crusoe at debian.org>  Mon, 25 Mar 2024 19:20:00 +0100
+ -- Michael R. Crusoe <crusoe at debian.org>  Fri, 05 Sep 2025 13:52:21 +0200
 
 snap-aligner (2.0.3+dfsg-2) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -9,7 +9,7 @@ Build-Depends: debhelper-compat (= 13),
                help2man,
                zlib1g-dev,
                libsimde-dev
-Standards-Version: 4.6.2
+Standards-Version: 4.7.2
 Vcs-Browser: https://salsa.debian.org/med-team/snap-aligner
 Vcs-Git: https://salsa.debian.org/med-team/snap-aligner.git
 Homepage: https://snap.cs.berkeley.edu/


=====================================
debian/patches/non-x86-and-kfreebsd
=====================================
@@ -1,9 +1,9 @@
 Description: Uses more liberal CPP defines to add compatibility to kfreebsd &
 non-x86 systems
 Author: Michael R. Crusoe <crusoe at ucdavis.edu> and Aaron M. Ucko <ucko at debian.org>
---- a/SNAPLib/Compat.cpp
-+++ b/SNAPLib/Compat.cpp
-@@ -1293,7 +1293,7 @@ _int64 timeInMillis()
+--- snap-aligner.orig/SNAPLib/Compat.cpp
++++ snap-aligner/SNAPLib/Compat.cpp
+@@ -1319,7 +1319,7 @@
  _int64 timeInNanos()
  {
      timespec ts;
@@ -12,9 +12,9 @@ Author: Michael R. Crusoe <crusoe at ucdavis.edu> and Aaron M. Ucko <ucko at debian.or
      clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux
  #elif defined(__MACH__)
      clock_serv_t cclock;
---- a/SNAPLib/Compat.h
-+++ b/SNAPLib/Compat.h
-@@ -77,7 +77,7 @@ int getpagesize();
+--- snap-aligner.orig/SNAPLib/Compat.h
++++ snap-aligner/SNAPLib/Compat.h
+@@ -77,7 +77,7 @@
  #include <sched.h>  // For sched_setaffinity
  #endif
  


=====================================
debian/patches/series
=====================================
@@ -1,3 +1,4 @@
 non-x86-and-kfreebsd
 drop-msse
 simde
+spelling


=====================================
debian/patches/spelling
=====================================
@@ -0,0 +1,14 @@
+From: Michael R. Crusoe <crusoe at debian.org>
+Subject: Fix a typo
+Forwarded: https://github.com/amplab/snap/pull/172
+--- snap-aligner.orig/SNAPLib/AlignerOptions.cpp
++++ snap-aligner/SNAPLib/AlignerOptions.cpp
+@@ -142,7 +142,7 @@
+             "  -h   maximum hits to consider per seed (default: %d)\n"
+             "  -ms  minimum seed matches per location (default: %d)\n"
+             "  -t   number of threads (default is one per core)\n"
+-            "  -b-  Don't bind each thread to its processor (--b (with two dashes) does the smae thing)\n"
++            "  -b-  Don't bind each thread to its processor (--b (with two dashes) does the same thing)\n"
+             "  -P   disables cache prefetching in the genome; may be helpful for machines\n"
+             "       with small caches or lots of cores/cache\n"
+             "  -so  sort output file by alignment location\n"


=====================================
docs/SNAP User Manual.docx
=====================================
Binary files a/docs/SNAP User Manual.docx and b/docs/SNAP User Manual.docx differ


=====================================
docs/SNAP User Manual.pdf
=====================================
Binary files a/docs/SNAP User Manual.pdf and b/docs/SNAP User Manual.pdf differ



View it on GitLab: https://salsa.debian.org/med-team/snap-aligner/-/compare/d62363e3ff8ac015e30c02526985825c3434e968...314cd30d5ce97a356187fff67670e7448efe2942

-- 
View it on GitLab: https://salsa.debian.org/med-team/snap-aligner/-/compare/d62363e3ff8ac015e30c02526985825c3434e968...314cd30d5ce97a356187fff67670e7448efe2942
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/20250905/5141db88/attachment-0001.htm>


More information about the debian-med-commit mailing list