From d2af3f5fe9e599bbf93f6213c5a707508aecbfd1 Mon Sep 17 00:00:00 2001
From: gokalpcelik
Date: Wed, 17 Apr 2024 23:55:25 +0300
Subject: [PATCH 1/3] Add MappingQualityReadFilter
---
.../walkers/contamination/GetPileupSummaries.java | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
index 9c4f09d1bcd..c623073463a 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
@@ -9,6 +9,7 @@
import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions;
import org.broadinstitute.hellbender.cmdline.programgroups.CoverageAnalysisProgramGroup;
import org.broadinstitute.hellbender.engine.*;
+import org.broadinstitute.hellbender.engine.filters.MappingQualityReadFilter;
import org.broadinstitute.hellbender.engine.filters.ReadFilter;
import org.broadinstitute.hellbender.engine.filters.ReadFilterLibrary;
import org.broadinstitute.hellbender.engine.filters.WellformedReadFilter;
@@ -112,8 +113,7 @@ public class GetPileupSummaries extends LocusWalker {
public static final String MIN_SITE_AF_LONG_NAME = "minimum-population-allele-frequency";
public static final String MAX_SITE_AF_SHORT_NAME = "max-af";
public static final String MIN_SITE_AF_SHORT_NAME = "min-af";
- public static final String MIN_MAPPING_QUALITY_LONG_NAME = "min-mapping-quality";
- public static final String MIN_MAPPING_QUALITY_SHORT_NAME = "mmq";
+
private static final double DEFAULT_MIN_POPULATION_AF = 0.01;
private static final double DEFAULT_MAX_POPULATION_AF = 0.2;
@@ -137,9 +137,6 @@ public class GetPileupSummaries extends LocusWalker {
doc = "Maximum population allele frequency of sites to consider.", optional = true)
private double maxPopulationAlleleFrequency = DEFAULT_MAX_POPULATION_AF;
- @Argument(fullName = MIN_MAPPING_QUALITY_LONG_NAME, shortName = MIN_MAPPING_QUALITY_SHORT_NAME, doc = "Minimum read mapping quality", optional = true)
- private int minMappingQuality = DEFAULT_MINIMUM_MAPPING_QUALITY;
-
private boolean sawVariantsWithoutAlleleFrequency = false;
private boolean sawVariantsWithAlleleFrequency = false;
@@ -168,6 +165,7 @@ public boolean requiresFeatures() {
@Override
public List getDefaultReadFilters() {
final List filters = new ArrayList<>();
+ filters.add(new MappingQualityReadFilter(DEFAULT_MINIMUM_MAPPING_QUALITY));
filters.add(ReadFilterLibrary.MAPPING_QUALITY_AVAILABLE);
filters.add(ReadFilterLibrary.MAPPING_QUALITY_NOT_ZERO);
filters.add(ReadFilterLibrary.MAPPED);
@@ -208,8 +206,7 @@ public void apply(AlignmentContext alignmentContext, ReferenceContext referenceC
final VariantContext vc = vcs.get(0);
if ( vc.isBiallelic() && vc.isSNP() && alleleFrequencyInRange(vc) ) {
- final ReadPileup pileup = alignmentContext.getBasePileup()
- .makeFilteredPileup(pe -> pe.getRead().getMappingQuality() >= minMappingQuality);
+ final ReadPileup pileup = alignmentContext.getBasePileup();
try {
writer.writeRecord(new PileupSummary(vc, pileup));
} catch (final IOException ex) {
From a9300a617734620dca64aacf8858f1314a726854 Mon Sep 17 00:00:00 2001
From: gokalpcelik
Date: Thu, 18 Apr 2024 00:41:16 +0300
Subject: [PATCH 2/3] Added additional warnings for mmq
---
.../tools/walkers/contamination/GetPileupSummaries.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
index c623073463a..3abd8ee04b0 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
@@ -101,6 +101,13 @@
* file that have AF of 0.01 or more.
*
*
+ *
+ * Finally for those using mappers other than bwa mem or dragen-os, {@code --minimum-mapping-quality} threshold is
+ * set to 50, which limits the usable reads that tool considers for generating pileups. Certain mappers are known to
+ * assign scores less that this threshold even for the unique mappers. If you observe all empty results in your
+ * summary file please adjust the {@code --minimum-mapping-quality} parameter according to your input files.
+ *
+ *
*/
@CommandLineProgramProperties(
summary = "Tabulates pileup metrics for inferring contamination",
From 0436ef7b3845744f166df0dee1afaa4b137a5ff4 Mon Sep 17 00:00:00 2001
From: gokalpcelik
Date: Thu, 18 Apr 2024 20:43:31 +0300
Subject: [PATCH 3/3] Fixed doc typo
---
.../tools/walkers/contamination/GetPileupSummaries.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
index 3abd8ee04b0..9d6c40a691c 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/contamination/GetPileupSummaries.java
@@ -104,7 +104,7 @@
*
* Finally for those using mappers other than bwa mem or dragen-os, {@code --minimum-mapping-quality} threshold is
* set to 50, which limits the usable reads that tool considers for generating pileups. Certain mappers are known to
- * assign scores less that this threshold even for the unique mappers. If you observe all empty results in your
+ * assign scores less that this threshold even for the unique mappings. If you observe all empty results in your
* summary file please adjust the {@code --minimum-mapping-quality} parameter according to your input files.
*
*