From af1240f6bf93210233d92d01466c8c024c2c7c11 Mon Sep 17 00:00:00 2001 From: Marcel Martin Date: Wed, 20 Sep 2023 10:57:47 +0200 Subject: [PATCH 1/2] Add canonical read length 75 for lengths 66..90 Closes #339 --- src/indexparameters.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/indexparameters.cpp b/src/indexparameters.cpp index 2a1a6b78..ffada923 100644 --- a/src/indexparameters.cpp +++ b/src/indexparameters.cpp @@ -35,7 +35,8 @@ struct Profile { static auto max{std::numeric_limits::max()}; static std::vector profiles = { - Profile{ 50, 90, 20, -4, -3, 2}, + Profile{ 50, 65, 20, -4, -3, 2}, + Profile{ 75, 90, 20, -4, -2, -2}, Profile{100, 110, 20, -4, -2, 2}, Profile{125, 135, 20, -4, -1, 4}, Profile{150, 175, 20, -4, 1, 7}, From 02396501001ed06ea6ef7a8b60ce0ca5fedfc11f Mon Sep 17 00:00:00 2001 From: Marcel Martin Date: Wed, 20 Sep 2023 11:22:29 +0200 Subject: [PATCH 2/2] Set optimized parameters for read lengths 50, 100, 125, 250, 300 Closes #272 --- CHANGES.md | 3 +++ src/indexparameters.cpp | 10 +++++----- tests/phix.pe.paf | 18 +++++++++--------- tests/phix.se.paf | 16 ++++++++-------- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a25af96f..70bf27d3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,9 @@ ## development version +* #345: Improve mapping accuracy for read lengths <=100 by optimizing + parameters. Highest increase is for read length 50, which gains 1-2 + percentage points accuracy. * #293: Fix: When mapping single-end reads, many multimappers were previously assigned a high mapping quality. They now get assigned mapping quality zero as intended. diff --git a/src/indexparameters.cpp b/src/indexparameters.cpp index ffada923..73430b0c 100644 --- a/src/indexparameters.cpp +++ b/src/indexparameters.cpp @@ -35,13 +35,13 @@ struct Profile { static auto max{std::numeric_limits::max()}; static std::vector profiles = { - Profile{ 50, 65, 20, -4, -3, 2}, + Profile{ 50, 65, 18, -4, -2, -2}, Profile{ 75, 90, 20, -4, -2, -2}, - Profile{100, 110, 20, -4, -2, 2}, - Profile{125, 135, 20, -4, -1, 4}, + Profile{100, 110, 20, -4, -1, -1}, + Profile{125, 135, 20, -4, -1, 3}, Profile{150, 175, 20, -4, 1, 7}, - Profile{250, 275, 20, -4, 4, 13}, - Profile{300, 375, 22, -4, 2, 12}, + Profile{250, 275, 22, -4, 4, 14}, + Profile{300, 375, 22, -4, 3, 13}, Profile{400, max, 23, -6, 2, 12}, }; diff --git a/tests/phix.pe.paf b/tests/phix.pe.paf index 0d262287..54ba0bfd 100644 --- a/tests/phix.pe.paf +++ b/tests/phix.pe.paf @@ -1,11 +1,11 @@ -SRR1377138.37 301 8 254 - NC_001422.1 5386 800 1046 39 246 255 -SRR1377138.37 301 6 254 + NC_001422.1 5386 707 955 19 248 255 -SRR1377138.38 301 32 257 - NC_001422.1 5386 4971 5196 40 225 255 -SRR1377138.38 301 2 219 + NC_001422.1 5386 4839 5056 30 217 255 +SRR1377138.37 301 8 238 - NC_001422.1 5386 800 1030 38 230 255 +SRR1377138.37 301 6 254 + NC_001422.1 5386 707 955 21 248 255 +SRR1377138.38 301 32 239 - NC_001422.1 5386 4971 5178 39 207 255 +SRR1377138.38 301 2 189 + NC_001422.1 5386 4839 5026 29 187 255 SRR1377138.39/1 301 1 259 - NC_001422.1 5386 1791 2049 45 258 255 SRR1377138.39/2 301 22 257 + NC_001422.1 5386 1709 1944 45 235 255 -SRR1377138.40 301 4 265 - NC_001422.1 5386 3020 3281 40 261 255 -SRR1377138.40 301 3 270 + NC_001422.1 5386 2957 3224 41 267 255 -rescuable.42 301 4 265 - NC_001422.1 5386 3020 3281 40 261 255 -rescuable.43 301 3 270 + NC_001422.1 5386 2957 3224 41 267 255 -not.rescuable 301 4 265 - NC_001422.1 5386 3020 3281 40 261 255 +SRR1377138.40 301 4 251 - NC_001422.1 5386 3020 3267 36 247 255 +SRR1377138.40 301 3 267 + NC_001422.1 5386 2957 3221 37 264 255 +rescuable.42 301 4 251 - NC_001422.1 5386 3020 3267 36 247 255 +rescuable.43 301 3 267 + NC_001422.1 5386 2957 3221 37 264 255 +not.rescuable 301 4 251 - NC_001422.1 5386 3020 3267 36 247 255 diff --git a/tests/phix.se.paf b/tests/phix.se.paf index 7d0e0e1e..8bf70afe 100644 --- a/tests/phix.se.paf +++ b/tests/phix.se.paf @@ -1,11 +1,11 @@ -SRR1377138.32 301 2 260 + NC_001422.1 5386 1434 1692 43 258 255 -SRR1377138.33 301 2 267 + NC_001422.1 5386 3818 4083 41 265 255 +SRR1377138.32 301 2 257 + NC_001422.1 5386 1434 1689 41 255 255 +SRR1377138.33 301 2 228 + NC_001422.1 5386 3818 4044 40 226 255 SRR1377138.34 301 33 241 - NC_001422.1 5386 844 1052 37 208 255 SRR1377138.35 301 5 262 - NC_001422.1 5386 4041 4298 45 257 255 -SRR1377138.36 301 3 267 + NC_001422.1 5386 4997 5261 48 264 255 -SRR1377138.37 301 8 254 - NC_001422.1 5386 800 1046 39 246 255 -SRR1377138.38 301 32 257 - NC_001422.1 5386 4971 5196 40 225 255 +SRR1377138.36 301 3 263 + NC_001422.1 5386 4997 5257 47 260 255 +SRR1377138.37 301 8 238 - NC_001422.1 5386 800 1030 38 230 255 +SRR1377138.38 301 32 239 - NC_001422.1 5386 4971 5178 39 207 255 SRR1377138.39/1 301 1 259 - NC_001422.1 5386 1791 2049 45 258 255 -SRR1377138.40 301 4 265 - NC_001422.1 5386 3020 3281 40 261 255 -rescuable.42 301 4 265 - NC_001422.1 5386 3020 3281 40 261 255 -not.rescuable 301 4 265 - NC_001422.1 5386 3020 3281 40 261 255 +SRR1377138.40 301 4 251 - NC_001422.1 5386 3020 3267 36 247 255 +rescuable.42 301 4 251 - NC_001422.1 5386 3020 3267 36 247 255 +not.rescuable 301 4 251 - NC_001422.1 5386 3020 3267 36 247 255