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. *

*