diff --git a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/formats/records/SimpleCount.java b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/formats/records/SimpleCount.java
index 5d6521850b5..bdf70dc5ccf 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/copynumber/formats/records/SimpleCount.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/copynumber/formats/records/SimpleCount.java
@@ -2,6 +2,8 @@
import htsjdk.samtools.util.Locatable;
import htsjdk.tribble.Feature;
+import htsjdk.tribble.NamedFeature;
+import org.broadinstitute.hellbender.exceptions.UserException;
import org.broadinstitute.hellbender.utils.SimpleInterval;
import org.broadinstitute.hellbender.utils.Utils;
import org.broadinstitute.hellbender.utils.param.ParamUtils;
@@ -19,7 +21,17 @@ public class SimpleCount implements Locatable, Feature {
public SimpleCount(final SimpleInterval interval,
final int count) {
this.interval = Utils.nonNull(interval);
- this.count = ParamUtils.isPositiveOrZero(count, "Can't construct SimpleCount with negative count.");
+ this.count = ParamUtils.isPositiveOrZero(count, "Can't construct SimpleCount with negative count at " + interval.getContig() + ":" + interval.getStart() + "-" + interval.getEnd() + ".");
+ }
+
+ public SimpleCount(final NamedFeature namedFeature) {
+ try {
+ int count = Integer.parseInt(namedFeature.getName());
+ this.interval = new SimpleInterval(namedFeature);
+ this.count = ParamUtils.isPositiveOrZero(count, "Can't construct SimpleCount with negative count at " + namedFeature.getContig() + ":" + namedFeature.getStart() + "-" + namedFeature.getEnd() + ".");
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException("Error parsing name into integer for feature at " + namedFeature.getContig() + ":" + namedFeature.getStart() + "-" + namedFeature.getEnd() + ".");
+ }
}
@Override
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCaller.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCaller.java
index f504d400b13..557e7f0add9 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCaller.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCaller.java
@@ -127,6 +127,21 @@
* argument. Note however that very high ploidies (such as are encountered in large pooled experiments) may cause
* performance challenges including excessive slowness. We are working on resolving these limitations.
*
+ * For having variable ploidy in different regions, like making haploid calls outside the PAR on chrX or chrY,
+ * see the --ploidy-regions flag. The -ploidy flag sets the default ploidy to use everywhere, and --ploidy-regions
+ * should be a .bed or .interval_list with "name" column containing the desired ploidy to use in that region
+ * when genotyping. Note that variants near the boundary may not have the matching ploidy since the ploidy used will
+ * be determined using the following precedence:
+ *
+ * - ploidy given in --ploidy-regions for all intervals overlapping the active region when calling your variant
+ * (with ties broken by using largest ploidy); note ploidy interval may only overlap the active region and determine
+ * the ploidy of your variant even if the end coordinate written for your variant lies outside the given region;
+ * - ploidy given via global -ploidy flag;
+ * - ploidy determined by the default global built-in constant for humans (2).
+ *
+ *
+ * Coordinates for the PAR for CRCh38 can be found here.
+ *
* Additional Notes
*
* - When working with PCR-free data, be sure to set `-pcr_indel_model NONE` (see argument below).
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerArgumentCollection.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerArgumentCollection.java
index 7ab58d73264..f818659bb5e 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerArgumentCollection.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerArgumentCollection.java
@@ -1,7 +1,10 @@
package org.broadinstitute.hellbender.tools.walkers.haplotypecaller;
+import htsjdk.tribble.NamedFeature;
import htsjdk.variant.variantcontext.VariantContext;
+import org.apache.arrow.util.VisibleForTesting;
import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.SerializationUtils;
import org.broadinstitute.barclay.argparser.Advanced;
import org.broadinstitute.barclay.argparser.Argument;
import org.broadinstitute.barclay.argparser.ArgumentCollection;
@@ -9,6 +12,7 @@
import org.broadinstitute.hellbender.cmdline.ReadFilterArgumentDefinitions;
import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions;
import org.broadinstitute.hellbender.cmdline.argumentcollections.DbsnpArgumentCollection;
+import org.broadinstitute.hellbender.engine.FeatureDataSource;
import org.broadinstitute.hellbender.engine.FeatureInput;
import org.broadinstitute.hellbender.engine.GATKPath;
import org.broadinstitute.hellbender.engine.spark.AssemblyRegionArgumentCollection;
@@ -23,9 +27,11 @@
/**
* Set of arguments for the {@link HaplotypeCallerEngine}
*/
-public class HaplotypeCallerArgumentCollection extends AssemblyBasedCallerArgumentCollection implements Serializable{
+public class HaplotypeCallerArgumentCollection extends AssemblyBasedCallerArgumentCollection implements Serializable {
private static final long serialVersionUID = 1L;
+ public static final String PLOIDY_REGIONS_NAME = "ploidy-regions";
+
public static final String GQ_BAND_LONG_NAME = "gvcf-gq-bands";
public static final String GQ_BAND_SHORT_NAME = "GQB";
public static final String DO_NOT_CORRECT_OVERLAPPING_BASE_QUALITIES_LONG_NAME = "do-not-correct-overlapping-quality";
@@ -61,6 +67,9 @@ protected ReadThreadingAssemblerArgumentCollection getReadThreadingAssemblerArgu
return new HaplotypeCallerReadThreadingAssemblerArgumentCollection();
}
+ @Argument(fullName = PLOIDY_REGIONS_NAME, shortName = PLOIDY_REGIONS_NAME, doc = "Interval file with column specifying desired ploidy for genotyping models. Overrides default ploidy and user-provided --ploidy argument in specific regions.", optional = true)
+ public FeatureInput ploidyRegions = null;
+
/**
* You can use this argument to specify that HC should process a single sample out of a multisample BAM file. This
* is especially useful if your samples are all in the same file but you need to run them individually through HC
@@ -312,6 +321,12 @@ boolean isFlowBasedCallingMode() {
return flowMode != FlowMode.NONE;
}
+ // Copy method used to create new hcArgs with same fields except input ploidy model
+ public HaplotypeCallerArgumentCollection copyWithNewPloidy(int ploidy) {
+ HaplotypeCallerArgumentCollection newArgsWithNewPloidy = SerializationUtils.clone(this);
+ newArgsWithNewPloidy.standardArgs.genotypeArgs.samplePloidy = ploidy;
+ return newArgsWithNewPloidy;
+ }
/**
* the different flow modes, in terms of their parameters and their values
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java
index 71f6d64ede7..9e09eeba8a9 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerEngine.java
@@ -3,7 +3,10 @@
import htsjdk.samtools.SAMFileHeader;
import htsjdk.samtools.SAMSequenceDictionary;
import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.util.Locatable;
+import htsjdk.samtools.util.OverlapDetector;
import htsjdk.samtools.util.RuntimeIOException;
+import htsjdk.tribble.NamedFeature;
import htsjdk.variant.variantcontext.*;
import htsjdk.variant.variantcontext.writer.Options;
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
@@ -20,12 +23,15 @@
import org.broadinstitute.hellbender.engine.filters.WellformedReadFilter;
import org.broadinstitute.hellbender.engine.spark.AssemblyRegionArgumentCollection;
import org.broadinstitute.hellbender.exceptions.UserException;
+import org.broadinstitute.hellbender.tools.copynumber.formats.records.SimpleCount;
import org.broadinstitute.hellbender.tools.walkers.annotator.*;
import org.broadinstitute.hellbender.tools.walkers.genotyper.GenotypeAssignmentMethod;
+import org.broadinstitute.hellbender.tools.walkers.genotyper.GenotypingEngine;
import org.broadinstitute.hellbender.tools.walkers.genotyper.MinimalGenotypingEngine;
import org.broadinstitute.hellbender.tools.walkers.genotyper.OutputMode;
import org.broadinstitute.hellbender.tools.walkers.genotyper.StandardCallerArgumentCollection;
import org.broadinstitute.hellbender.tools.walkers.haplotypecaller.readthreading.ReadThreadingAssembler;
+import org.broadinstitute.hellbender.utils.IntervalUtils;
import org.broadinstitute.hellbender.utils.fasta.CachingIndexedFastaSequenceFile;
import org.broadinstitute.hellbender.utils.haplotype.Event;
import org.broadinstitute.hellbender.utils.pileup.PileupBasedAlleles;
@@ -83,8 +89,31 @@ public class HaplotypeCallerEngine implements AssemblyRegionEvaluator {
protected final OutputStreamWriter assemblyDebugOutStream;
- // the genotyping engine for the isActive() determination
- private MinimalGenotypingEngine activeRegionEvaluationGenotyperEngine = null;
+ /**
+ * List of interval file entries including regions and custom ploidy values to apply in that region.
+ */
+ protected final List ploidyRegions = new ArrayList<>();
+
+ /**
+ * An OverlapDetector object for checking whether region overlaps given ploidyRegions.
+ */
+ protected final OverlapDetector ploidyRegionsOverlapDetector;
+
+ /**
+ * List of all custom ploidies provided by user
+ */
+ private final LinkedHashSet allCustomPloidies;
+
+ /**
+ * The default genotyping engine for the isActive() determination
+ */
+ private MinimalGenotypingEngine defaultActiveRegionEvaluationGenotyperEngine = null;
+
+ /**
+ * Map of user-provided ploidy values to corresponding active region genotyper. Values are checked as valid Integers during
+ * initialization, but Strings are used as keys to avoid parsing repeatedly during runtime.
+ */
+ private final HashMap ploidyToActiveEvaluationGenotyper = new HashMap<>();
protected ReadThreadingAssembler assemblyEngine = null;
@@ -93,7 +122,16 @@ public class HaplotypeCallerEngine implements AssemblyRegionEvaluator {
// If we are in PDHMM mode we need to hold onto two likelihoods engines for the fallback
private ReadLikelihoodCalculationEngine pdhmmLikelihoodCalculationEngine = null;
- protected HaplotypeCallerGenotypingEngine genotypingEngine = null;
+ /**
+ * The default genotyping engine to use for actual variant calling and genotyping in an active region.
+ */
+ protected HaplotypeCallerGenotypingEngine defaultGenotypingEngine = null;
+
+ /**
+ * Map of user-provided ploidy values to corresponding genotyper. Values are checked as valid Integers during
+ * initialization, but Strings are used as keys to avoid parsing repeatedly during runtime.
+ */
+ protected final HashMap ploidyToGenotyperMap = new HashMap<>();
private VariantAnnotatorEngine annotationEngine = null;
@@ -163,7 +201,7 @@ public class HaplotypeCallerEngine implements AssemblyRegionEvaluator {
/**
* Create and initialize a new HaplotypeCallerEngine given a collection of HaplotypeCaller arguments, a reads header,
* and a reference file
- * @param hcArgs command-line arguments for the HaplotypeCaller
+ * @param hcArgs command-line arguments for the HaplotypeCaller
* @param assemblyRegionArgs
* @param createBamOutIndex true to create an index file for the bamout
* @param createBamOutMD5 true to create an md5 file for the bamout
@@ -196,6 +234,21 @@ public HaplotypeCallerEngine(final HaplotypeCallerArgumentCollection hcArgs, Ass
HaplotypeCallerGenotypingDebugger.initialize(hcArgs.genotyperDebugOutStream);
}
+ // Parse the user provided custom ploidy regions into ploidyRegions object containing SimpleCounts
+ if (this.hcArgs.ploidyRegions != null) {
+ FeatureDataSource ploidyDataSource = new FeatureDataSource<>(this.hcArgs.ploidyRegions, FeatureDataSource.DEFAULT_QUERY_LOOKAHEAD_BASES, NamedFeature.class);
+ ploidyDataSource.forEach(r -> this.ploidyRegions.add(new SimpleCount(r)));
+ }
+
+ for (SimpleCount region : this.ploidyRegions) {
+ if (!IntervalUtils.intervalIsOnDictionaryContig(region.getInterval(), readsHeader.getSequenceDictionary())) {
+ throw new UserException("Invalid region provided for --ploidy-regions at " + region.getContig() + ":" + region.getStart() + "-" + region.getEnd() + ". Contig name or endpoint doesn't match read sequence dictionary.");
+ }
+ }
+
+ this.ploidyRegionsOverlapDetector = OverlapDetector.create(this.ploidyRegions);
+ this.allCustomPloidies = this.ploidyRegions.stream().map(SimpleCount::getCount).collect(Collectors.toCollection(LinkedHashSet::new));
+
trimmer = new AssemblyRegionTrimmer(assemblyRegionArgs, readsHeader.getSequenceDictionary());
initialize(createBamOutIndex, createBamOutMD5);
}
@@ -242,8 +295,16 @@ private void initialize(boolean createBamOutIndex, final boolean createBamOutMD5
initializeActiveRegionEvaluationGenotyperEngine();
- genotypingEngine = new HaplotypeCallerGenotypingEngine(hcArgs, samplesList, ! hcArgs.doNotRunPhysicalPhasing, hcArgs.applyBQD);
- genotypingEngine.setAnnotationEngine(annotationEngine);
+ defaultGenotypingEngine = new HaplotypeCallerGenotypingEngine(hcArgs, samplesList, ! hcArgs.doNotRunPhysicalPhasing, hcArgs.applyBQD);
+ defaultGenotypingEngine.setAnnotationEngine(annotationEngine);
+
+ // Create other custom genotyping engines if user provided ploidyRegions
+ for (final int ploidy : this.allCustomPloidies) {
+ HaplotypeCallerArgumentCollection newPloidyHcArgs = hcArgs.copyWithNewPloidy(ploidy);
+ HaplotypeCallerGenotypingEngine newGenotypingEngine = new HaplotypeCallerGenotypingEngine(newPloidyHcArgs, samplesList, ! hcArgs.doNotRunPhysicalPhasing, hcArgs.applyBQD);
+ newGenotypingEngine.setAnnotationEngine(annotationEngine);
+ this.ploidyToGenotyperMap.put(ploidy, newGenotypingEngine);
+ }
boolean isFlowBased = (hcArgs.likelihoodArgs.likelihoodEngineImplementation == ReadLikelihoodCalculationEngine.Implementation.FlowBased)
|| (hcArgs.likelihoodArgs.likelihoodEngineImplementation == ReadLikelihoodCalculationEngine.Implementation.FlowBasedHMM);
@@ -381,8 +442,18 @@ private void initializeActiveRegionEvaluationGenotyperEngine() {
// Seems that at least with some test data we can lose genuine haploid variation if we use ploidy == 1
activeRegionArgs.genotypeArgs.samplePloidy = Math.max(MINIMUM_PUTATIVE_PLOIDY_FOR_ACTIVE_REGION_DISCOVERY, hcArgs.standardArgs.genotypeArgs.samplePloidy);
- activeRegionEvaluationGenotyperEngine = new MinimalGenotypingEngine(activeRegionArgs, samplesList);
- activeRegionEvaluationGenotyperEngine.setLogger(logger);
+ defaultActiveRegionEvaluationGenotyperEngine = new MinimalGenotypingEngine(activeRegionArgs, samplesList);
+ defaultActiveRegionEvaluationGenotyperEngine.setLogger(logger);
+
+ // If custom ploidyRegions provided, create corresponding map for active region determination genotyper
+ for (final int ploidy : this.allCustomPloidies) {
+ StandardCallerArgumentCollection newPloidyActiveArgs = new StandardCallerArgumentCollection();
+ newPloidyActiveArgs.copyStandardCallerArgsFrom(activeRegionArgs);
+ newPloidyActiveArgs.genotypeArgs.samplePloidy = Math.max(MINIMUM_PUTATIVE_PLOIDY_FOR_ACTIVE_REGION_DISCOVERY, ploidy);
+ MinimalGenotypingEngine newActiveGenotypingEngine = new MinimalGenotypingEngine(newPloidyActiveArgs, samplesList);
+ newActiveGenotypingEngine.setLogger(logger);
+ this.ploidyToActiveEvaluationGenotyper.put(ploidy, newActiveGenotypingEngine);
+ }
}
/**
@@ -455,7 +526,7 @@ public VCFHeader makeVCFHeader( final SAMSequenceDictionary sequenceDictionary,
final Set headerInfo = new HashSet<>();
headerInfo.addAll(defaultToolHeaderLines);
- headerInfo.addAll(genotypingEngine.getAppropriateVCFInfoHeaders());
+ headerInfo.addAll(defaultGenotypingEngine.getAppropriateVCFInfoHeaders());
// all annotation fields from VariantAnnotatorEngine
headerInfo.addAll(annotationEngine.getVCFAnnotationDescriptions(emitReferenceConfidence()));
// all callers need to add these standard annotation header lines
@@ -523,6 +594,57 @@ public void writeHeader( final VariantContextWriter vcfWriter, final SAMSequence
vcfWriter.writeHeader(makeVCFHeader(sequenceDictionary, defaultToolHeaderLines));
}
+ /**
+ * Determines the appropriate ploidy to use at given site for different genotyping engines.
+ * @param region Current region of interest
+ * @return Ploidy value to use here given user inputs, or -1 if fall back to default
+ */
+ private int getPloidyToUseAtThisSite(Locatable region) {
+ Set overlaps = this.ploidyRegionsOverlapDetector.getOverlaps(region);
+ // Return first engine for interval overlapping this region
+ if (!overlaps.isEmpty()) {
+ Iterator intervals = overlaps.iterator();
+ int max = intervals.next().getCount();
+ while (intervals.hasNext()) {
+ int next = intervals.next().getCount();
+ if (next > max) {
+ max = next;
+ }
+ }
+ return max;
+ } else {
+ return -1; // Sentinel value to fall back to default genotyper
+ }
+ }
+
+ /**
+ * Selects appropriate active region genotyping engine for given region
+ * @param region Current region of interest
+ * @return Active genotyping engine with correct ploidy setting for given region
+ */
+ private MinimalGenotypingEngine getLocalActiveGenotyper(Locatable region) {
+ int currentPloidy = getPloidyToUseAtThisSite(region);
+ if (currentPloidy == -1) {
+ return this.defaultActiveRegionEvaluationGenotyperEngine;
+ } else {
+ return this.ploidyToActiveEvaluationGenotyper.get(currentPloidy);
+ }
+ }
+
+ /**
+ * Selects appropriate genotyping engine for given region.
+ * @param region Current region of interest, e.g. AssemblyRegion
+ * @return Genotyping engine with correct ploidy setting for given region
+ */
+ protected HaplotypeCallerGenotypingEngine getLocalGenotypingEngine(Locatable region) {
+ int currentPloidy = getPloidyToUseAtThisSite(region);
+ if (currentPloidy == -1) {
+ return this.defaultGenotypingEngine;
+ } else {
+ return this.ploidyToGenotyperMap.get(currentPloidy);
+ }
+ }
+
/**
* Given a pileup, returns an ActivityProfileState containing the probability (0.0 to 1.0) that it's an "active" site.
*
@@ -537,6 +659,8 @@ public void writeHeader( final VariantContextWriter vcfWriter, final SAMSequence
*/
@Override
public ActivityProfileState isActive(final AlignmentContext context, final ReferenceContext ref, final FeatureContext features) {
+ MinimalGenotypingEngine localActiveGenotypingEngine = getLocalActiveGenotyper(ref);
+
if (forceCallingAllelesPresent && features.getValues(hcArgs.alleles, ref).stream().anyMatch(vc -> hcArgs.forceCallFiltered || vc.isNotFiltered())) {
return new ActivityProfileState(ref.getInterval(), 1.0);
}
@@ -546,7 +670,7 @@ public ActivityProfileState isActive(final AlignmentContext context, final Refer
return new ActivityProfileState(ref.getInterval(), 0.0);
}
- final int ploidy = activeRegionEvaluationGenotyperEngine.getConfiguration().genotypeArgs.samplePloidy;
+ final int ploidy = localActiveGenotypingEngine.getConfiguration().genotypeArgs.samplePloidy;
final List noCall = GATKVariantContextUtils.noCallAlleles(ploidy); // used to noCall all genotypes until the exact model is applied
final Map splitContexts;
@@ -565,7 +689,7 @@ public ActivityProfileState isActive(final AlignmentContext context, final Refer
sample.getValue().getBasePileup().forEach(p -> PileupBasedAlleles.addMismatchPercentageToRead(p.getRead(), readsHeader, ref));
}
// The ploidy here is not dictated by the sample but by the simple genotyping-engine used to determine whether regions are active or not.
- final int activeRegionDetectionHackishSamplePloidy = activeRegionEvaluationGenotyperEngine.getConfiguration().genotypeArgs.samplePloidy;
+ final int activeRegionDetectionHackishSamplePloidy = localActiveGenotypingEngine.getConfiguration().genotypeArgs.samplePloidy;
final double[] genotypeLikelihoods = ((RefVsAnyResult) referenceConfidenceModel.calcGenotypeLikelihoodsOfRefVsAny(
activeRegionDetectionHackishSamplePloidy,
sample.getValue().getBasePileup(), ref.getBase(),
@@ -579,9 +703,9 @@ public ActivityProfileState isActive(final AlignmentContext context, final Refer
if (genotypes.size() == 1) {
// Faster implementation using exact marginalization instead of iteration
- isActiveProb = activeRegionEvaluationGenotyperEngine.calculateSingleSampleRefVsAnyActiveStateProfileValue(genotypes.get(0).getLikelihoods().getAsVector());
+ isActiveProb = localActiveGenotypingEngine.calculateSingleSampleRefVsAnyActiveStateProfileValue(genotypes.get(0).getLikelihoods().getAsVector());
} else {
- final VariantContext vcOut = activeRegionEvaluationGenotyperEngine.calculateGenotypes(new VariantContextBuilder("HCisActive!", context.getContig(), context.getLocation().getStart(), context.getLocation().getEnd(), alleles).genotypes(genotypes).make());
+ final VariantContext vcOut = localActiveGenotypingEngine.calculateGenotypes(new VariantContextBuilder("HCisActive!", context.getContig(), context.getLocation().getStart(), context.getLocation().getEnd(), alleles).genotypes(genotypes).make());
isActiveProb = vcOut == null ? 0.0 : QualityUtils.qualToProb(vcOut.getPhredScaledQual());
}
@@ -607,6 +731,8 @@ public ActivityProfileState isActive(final AlignmentContext context, final Refer
* @return List of variants discovered in the region (may be empty)
*/
public List callRegion(final AssemblyRegion region, final FeatureContext features, final ReferenceContext referenceContext) {
+ final HaplotypeCallerGenotypingEngine localGenotypingEngine = getLocalGenotypingEngine(region);
+
if ( hcArgs.justDetermineActiveRegions ) {
// we're benchmarking ART and/or the active region determination code in the HC, just leave without doing any work
return NO_CALLS;
@@ -799,7 +925,7 @@ public List callRegion(final AssemblyRegion region, final Featur
if (hcArgs.filterAlleles) {
logger.debug("Filtering alleles");
- AlleleFilteringHC alleleFilter = new AlleleFilteringHC(hcArgs, assemblyDebugOutStream, genotypingEngine);
+ AlleleFilteringHC alleleFilter = new AlleleFilteringHC(hcArgs, assemblyDebugOutStream, localGenotypingEngine);
//need to update haplotypes to find the alleles
EventMap.buildEventMapsForHaplotypes(readLikelihoods.alleles(),
assemblyResult.getFullReferenceWithPadding(),
@@ -849,7 +975,7 @@ public List callRegion(final AssemblyRegion region, final Featur
}
}
- final CalledHaplotypes calledHaplotypes = genotypingEngine.assignGenotypeLikelihoods(
+ final CalledHaplotypes calledHaplotypes = localGenotypingEngine.assignGenotypeLikelihoods(
haplotypes,
subsettedReadLikelihoodsFinal,
perSampleFilteredReadList,
@@ -890,7 +1016,7 @@ public List callRegion(final AssemblyRegion region, final Featur
result.addAll(referenceConfidenceModel.calculateRefConfidence(assemblyResult.getReferenceHaplotype(),
calledHaplotypes.getCalledHaplotypes(), assemblyResult.getPaddedReferenceLoc(), regionForGenotyping,
- subsettedReadLikelihoodsFinal, genotypingEngine.getPloidyModel(), calledHaplotypes.getCalls(), hcArgs.standardArgs.genotypeArgs.supportVariants != null,
+ subsettedReadLikelihoodsFinal, localGenotypingEngine.getPloidyModel(), calledHaplotypes.getCalls(), hcArgs.standardArgs.genotypeArgs.supportVariants != null,
VCpriors));
trimmingResult.nonVariantRightFlankRegion().ifPresent(flank -> result.addAll(referenceModelForNoVariation(flank, false, VCpriors)));
@@ -948,6 +1074,7 @@ protected boolean containsCalls(final CalledHaplotypes calledHaplotypes) {
* @return a list of variant contexts (can be empty) to emit for this ref region
*/
protected List referenceModelForNoVariation(final AssemblyRegion region, final boolean needsToBeFinalized, final List VCpriors) {
+ final HaplotypeCallerGenotypingEngine localGenotypingEngine = getLocalGenotypingEngine(region);
if ( emitReferenceConfidence() ) {
if ( needsToBeFinalized ) {
AssemblyBasedCallerUtils.finalizeRegion(region,
@@ -967,7 +1094,7 @@ protected List referenceModelForNoVariation(final AssemblyRegion
final List haplotypes = Collections.singletonList(refHaplotype);
return referenceConfidenceModel.calculateRefConfidence(refHaplotype, haplotypes,
paddedLoc, region, AssemblyBasedCallerUtils.createDummyStratifiedReadMap(refHaplotype, samplesList, readsHeader, region),
- genotypingEngine.getPloidyModel(), Collections.emptyList(), hcArgs.standardArgs.genotypeArgs.supportVariants != null, VCpriors);
+ localGenotypingEngine.getPloidyModel(), Collections.emptyList(), hcArgs.standardArgs.genotypeArgs.supportVariants != null, VCpriors);
}
else {
return NO_CALLS;
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java
index b5b5c2cfa88..e47245c9f91 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/RampedHaplotypeCallerEngine.java
@@ -460,6 +460,7 @@ private void uncollapse(final CallRegionContext context) {
}
private void filter(final CallRegionContext context) {
+ final HaplotypeCallerGenotypingEngine localGenotypingEngine = getLocalGenotypingEngine(context.region);
try {
// no need for this step?
@@ -479,7 +480,7 @@ private void filter(final CallRegionContext context) {
context.suspiciousLocations = new HashSet<>();
if (hcArgs.filterAlleles) {
logger.debug("Filtering alleles");
- AlleleFilteringHC alleleFilter = new AlleleFilteringHC(hcArgs, assemblyDebugOutStream, genotypingEngine);
+ AlleleFilteringHC alleleFilter = new AlleleFilteringHC(hcArgs, assemblyDebugOutStream, localGenotypingEngine);
//need to update haplotypes to find the alleles
EventMap.buildEventMapsForHaplotypes(context.readLikelihoods.alleles(),
context.assemblyResult.getFullReferenceWithPadding(),
@@ -520,6 +521,7 @@ private void filter(final CallRegionContext context) {
}
private void genotype(final CallRegionContext context) {
+ final HaplotypeCallerGenotypingEngine localGenotypingEngine = getLocalGenotypingEngine(context.region);
// no need for this step?
if ( context.regionVariants != null ) {
@@ -542,7 +544,7 @@ private void genotype(final CallRegionContext context) {
// haplotype containing C as reference (and vice versa). Now this is fine if all possible haplotypes are included
// in the genotyping, but we lose information if we select down to a few haplotypes. [EB]
List haplotypes = context.readLikelihoods.alleles();
- final CalledHaplotypes calledHaplotypes = genotypingEngine.assignGenotypeLikelihoods(
+ final CalledHaplotypes calledHaplotypes = localGenotypingEngine.assignGenotypeLikelihoods(
haplotypes,
context.readLikelihoods,
perSampleFilteredReadList,
@@ -582,7 +584,7 @@ private void genotype(final CallRegionContext context) {
result.addAll(referenceConfidenceModel.calculateRefConfidence(context.assemblyResult.getReferenceHaplotype(),
calledHaplotypes.getCalledHaplotypes(), context.assemblyResult.getPaddedReferenceLoc(), regionForGenotyping,
- context.readLikelihoods, genotypingEngine.getPloidyModel(), calledHaplotypes.getCalls(), hcArgs.standardArgs.genotypeArgs.supportVariants != null,
+ context.readLikelihoods, localGenotypingEngine.getPloidyModel(), calledHaplotypes.getCalls(), hcArgs.standardArgs.genotypeArgs.supportVariants != null,
context.VCpriors));
context.nonVariantRightFlankRegion.ifPresent(flank -> result.addAll(referenceModelForNoVariation(flank, false, context.VCpriors)));
diff --git a/src/test/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java b/src/test/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java
index 54585b1709d..cddb87c5dac 100644
--- a/src/test/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java
+++ b/src/test/java/org/broadinstitute/hellbender/tools/walkers/haplotypecaller/HaplotypeCallerIntegrationTest.java
@@ -946,6 +946,125 @@ public void testHaplotypeCallerRemoveAltAlleleBasedOnHaptypeScores() throws IOEx
}
}
+ @Test(dataProvider="HaplotypeCallerTestInputs")
+ public void testCustomPloidyRegions(final String inputFileName, final String referenceFileName) throws Exception {
+ Utils.resetRandomGenerator();
+
+ final File output = createTempFile("output", ".vcf");
+ final File expected = new File(TEST_FILES_DIR, "expected.testPloidyRegions.vcf");
+ final File ploidyRegions = new File(TEST_FILES_DIR, "testPloidyRegions.bed");
+
+ final String[] args = {
+ "-I", inputFileName,
+ "-R", referenceFileName,
+ "-L", "20:10000000-10100000",
+ "-O", output.getAbsolutePath(),
+ "-ploidy", "3",
+ "--ploidy-regions", ploidyRegions.getAbsolutePath(),
+ "--" + StandardArgumentDefinitions.ADD_OUTPUT_VCF_COMMANDLINE, "false"
+ };
+
+ runCommandLine(args);
+
+ IntegrationTestSpec.assertEqualTextFiles(output, expected);
+ }
+
+ // Should fail due to non-integer values in name column of bed
+ @Test(dataProvider="HaplotypeCallerTestInputs", expectedExceptions = IllegalArgumentException.class)
+ public void testNonIntegerCustomPloidyRegions(final String inputFileName, final String referenceFileName) throws Exception {
+ Utils.resetRandomGenerator();
+
+ final File output = createTempFile("output", ".vcf");
+ final File expected = new File(TEST_FILES_DIR, "expected.testPloidyRegions.vcf");
+ final File ploidyRegions = new File(TEST_FILES_DIR, "testNonIntegerPloidyRegions.bed");
+
+ final String[] args = {
+ "-I", inputFileName,
+ "-R", referenceFileName,
+ "-L", "20:10000000-10100000",
+ "-O", output.getAbsolutePath(),
+ "-ploidy", "3",
+ "--ploidy-regions", ploidyRegions.getAbsolutePath(),
+ "--" + StandardArgumentDefinitions.ADD_OUTPUT_VCF_COMMANDLINE, "false"
+ };
+
+ runCommandLine(args);
+
+ IntegrationTestSpec.assertEqualTextFiles(output, expected);
+ }
+
+ // Should fail due to negative integer values in name column of bed
+ @Test(dataProvider="HaplotypeCallerTestInputs", expectedExceptions = IllegalArgumentException.class)
+ public void testNonPositiveCustomPloidyRegions(final String inputFileName, final String referenceFileName) throws Exception {
+ Utils.resetRandomGenerator();
+
+ final File output = createTempFile("output", ".vcf");
+ final File expected = new File(TEST_FILES_DIR, "expected.testPloidyRegions.vcf");
+ final File ploidyRegions = new File(TEST_FILES_DIR, "testNegativePloidyRegions.bed");
+
+ final String[] args = {
+ "-I", inputFileName,
+ "-R", referenceFileName,
+ "-L", "20:10000000-10100000",
+ "-O", output.getAbsolutePath(),
+ "-ploidy", "3",
+ "--ploidy-regions", ploidyRegions.getAbsolutePath(),
+ "--" + StandardArgumentDefinitions.ADD_OUTPUT_VCF_COMMANDLINE, "false"
+ };
+
+ runCommandLine(args);
+
+ IntegrationTestSpec.assertEqualTextFiles(output, expected);
+ }
+
+ // Should fail due to using chr20 contig name in ploidy-regions file when BAM sequence dictionary uses 20
+ @Test(dataProvider="HaplotypeCallerTestInputs", expectedExceptions = UserException.class)
+ public void testMismatchPloidyRegionsAndSequenceDictionary(final String inputFileName, final String referenceFileName) throws Exception {
+ Utils.resetRandomGenerator();
+
+ final File output = createTempFile("output", ".vcf");
+ final File expected = new File(TEST_FILES_DIR, "expected.testPloidyRegions.vcf");
+ final File ploidyRegions = new File(TEST_FILES_DIR, "testMismatchPloidyRegions.bed");
+
+ final String[] args = {
+ "-I", inputFileName,
+ "-R", referenceFileName,
+ "-L", "20:10000000-10100000",
+ "-O", output.getAbsolutePath(),
+ "-ploidy", "3",
+ "--ploidy-regions", ploidyRegions.getAbsolutePath(),
+ "--" + StandardArgumentDefinitions.ADD_OUTPUT_VCF_COMMANDLINE, "false"
+ };
+
+ runCommandLine(args);
+
+ IntegrationTestSpec.assertEqualTextFiles(output, expected);
+ }
+
+ // Tests the somewhat ad hoc implementation of copying hcArgs instances in the engine, used for managing multiple ploidies used based on user inputs
+ @Test
+ public void testArgCollectionCopiesAreSynchronized() {
+ Utils.resetRandomGenerator();
+
+ HaplotypeCallerArgumentCollection hcArgs = new HaplotypeCallerArgumentCollection();
+ hcArgs.applyBQD = !hcArgs.applyBQD;
+ hcArgs.dontGenotype = !hcArgs.dontGenotype;
+ hcArgs.standardArgs.annotateAllSitesWithPLs = !hcArgs.standardArgs.annotateAllSitesWithPLs;
+ hcArgs.standardArgs.genotypeArgs.ANNOTATE_NUMBER_OF_ALLELES_DISCOVERED = !hcArgs.standardArgs.genotypeArgs.ANNOTATE_NUMBER_OF_ALLELES_DISCOVERED;
+
+ // Create copy with different ploidy and check tweaked values (and one control non-changed value) remain in sync
+ HaplotypeCallerArgumentCollection hcArgsCopy = hcArgs.copyWithNewPloidy(3);
+ Assert.assertEquals(hcArgs.applyBQD, hcArgsCopy.applyBQD);
+ Assert.assertEquals(hcArgs.dontGenotype, hcArgsCopy.dontGenotype);
+ Assert.assertEquals(hcArgs.standardArgs.annotateAllSitesWithPLs, hcArgsCopy.standardArgs.annotateAllSitesWithPLs);
+ Assert.assertEquals(hcArgs.standardArgs.CONTAMINATION_FRACTION, hcArgsCopy.standardArgs.CONTAMINATION_FRACTION);
+ Assert.assertEquals(hcArgs.standardArgs.genotypeArgs.ANNOTATE_NUMBER_OF_ALLELES_DISCOVERED, hcArgsCopy.standardArgs.genotypeArgs.ANNOTATE_NUMBER_OF_ALLELES_DISCOVERED);
+
+ // Modify other values of copy and check they are now distinct, i.e. a "deep copy" was created above
+ hcArgsCopy.applyBQD = !hcArgsCopy.applyBQD;
+ Assert.assertNotEquals(hcArgs.applyBQD, hcArgsCopy.applyBQD);
+ }
+
// test that ReadFilterLibrary.NON_ZERO_REFERENCE_LENGTH_ALIGNMENT removes reads that consume zero reference bases
// e.g. read name HAVCYADXX150109:1:2102:20528:2129 with cigar 23S53I
@Test
diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/expected.testPloidyRegions.vcf b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/expected.testPloidyRegions.vcf
new file mode 100644
index 00000000000..9beffa772ce
--- /dev/null
+++ b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/expected.testPloidyRegions.vcf
@@ -0,0 +1,273 @@
+##fileformat=VCFv4.2
+##FILTER=
+##FORMAT=
+##FORMAT=
+##FORMAT=
+##FORMAT=
+##FORMAT=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##INFO=
+##contig=
+##contig=
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
+20 10000117 . C T 926.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=2.136;DP=66;ExcessHet=0.0000;FS=11.007;MLEAC=1;MLEAF=0.500;MQ=59.72;MQRankSum=0.913;QD=14.48;ReadPosRankSum=-0.223;SOR=1.538 GT:AD:DP:GQ:PL 0/1:36,28:64:99:934,0,1248
+20 10000211 . C T 962.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=1.867;DP=54;ExcessHet=0.0000;FS=5.587;MLEAC=1;MLEAF=0.500;MQ=59.65;MQRankSum=1.057;QD=18.16;ReadPosRankSum=0.703;SOR=0.944 GT:AD:DP:GQ:PL 0/1:26,27:53:99:970,0,906
+20 10000439 . T G 2819.06 . AC=2;AF=1.00;AN=2;DP=82;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=58.86;QD=25.36;SOR=1.236 GT:AD:DP:GQ:PL 1/1:0,80:80:99:2833,240,0
+20 10000598 . T A 1956.06 . AC=2;AF=1.00;AN=2;DP=51;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=55.45;QD=28.73;SOR=1.225 GT:AD:DP:GQ:PL 1/1:0,49:49:99:1970,147,0
+20 10000694 . G A 1029.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=3.599;DP=87;ExcessHet=0.0000;FS=1.822;MLEAC=1;MLEAF=0.500;MQ=48.86;MQRankSum=-5.114;QD=12.56;ReadPosRankSum=0.657;SOR=0.566 GT:AD:DP:GQ:PL 0/1:45,37:82:99:1037,0,1601
+20 10000758 . T A 3853.06 . AC=2;AF=1.00;AN=2;DP=97;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=53.51;QD=30.97;SOR=0.802 GT:AD:DP:GQ:PL 1/1:0,95:95:99:3867,286,0
+20 10001019 . T G 671.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-2.541;DP=75;ExcessHet=0.0000;FS=3.406;MLEAC=1;MLEAF=0.500;MQ=47.62;MQRankSum=-7.498;QD=10.33;ReadPosRankSum=-0.925;SOR=0.665 GT:AD:DP:GQ:PL 0/1:39,26:65:99:679,0,1426
+20 10001298 . T A 2932.06 . AC=2;AF=1.00;AN=2;DP=79;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=53.93;QD=27.24;SOR=0.963 GT:AD:DP:GQ:PL 1/1:0,73:73:99:2946,220,0
+20 10001436 . A AAGGCT 2325.03 . AC=2;AF=1.00;AN=2;DP=58;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=41.22;QD=28.20;SOR=3.014 GT:AD:DP:GQ:PL 1/1:0,52:52:99:2339,156,0
+20 10001474 . C T 2655.06 . AC=2;AF=1.00;AN=2;DP=77;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=44.87;QD=25.00;SOR=1.516 GT:AD:DP:GQ:PL 1/1:0,73:73:99:2669,219,0
+20 10001617 . C A 1752.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=1.261;DP=105;ExcessHet=0.0000;FS=13.163;MLEAC=1;MLEAF=0.500;MQ=59.02;MQRankSum=1.373;QD=17.02;ReadPosRankSum=-0.280;SOR=1.346 GT:AD:DP:GQ:PL 0/1:52,51:103:99:1760,0,1781
+20 10001628 . G A 3913.06 . AC=2;AF=1.00;AN=2;DP=98;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.19;QD=29.56;SOR=1.053 GT:AD:DP:GQ:PL 1/1:0,95:95:99:3927,285,0
+20 10001661 . T C 3621.06 . AC=2;AF=1.00;AN=2;DP=85;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=58.13;QD=30.62;SOR=1.112 GT:AD:DP:GQ:PL 1/1:0,83:83:99:3635,249,0
+20 10001670 . T G 3688.06 . AC=2;AF=1.00;AN=2;DP=86;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=57.60;QD=28.17;SOR=0.897 GT:AD:DP:GQ:PL 1/1:0,84:84:99:3702,253,0
+20 10002058 . T G 2978.06 . AC=2;AF=1.00;AN=2;BaseQRankSum=1.931;DP=79;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=57.87;MQRankSum=3.068;QD=26.80;ReadPosRankSum=0.624;SOR=0.776 GT:AD:DP:GQ:PL 1/1:1,74:75:99:2992,216,0
+20 10002099 . C T 1215.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-0.282;DP=68;ExcessHet=0.0000;FS=3.528;MLEAC=1;MLEAF=0.500;MQ=56.46;MQRankSum=-0.850;QD=18.70;ReadPosRankSum=0.173;SOR=0.375 GT:AD:DP:GQ:PL 0/1:27,38:65:99:1223,0,844
+20 10002138 . C G 2458.06 . AC=2;AF=1.00;AN=2;DP=57;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=56.64;QD=26.00;SOR=0.765 GT:AD:DP:GQ:PL 1/1:0,56:56:99:2472,169,0
+20 10002142 . G C 2422.06 . AC=2;AF=1.00;AN=2;DP=56;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=56.08;QD=30.02;SOR=0.804 GT:AD:DP:GQ:PL 1/1:0,55:55:99:2436,166,0
+20 10002458 . G GTTT 2154.96 . AC=2;AF=1.00;AN=2;DP=65;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=50.67;QD=31.98;SOR=2.303 GT:AD:DP:GQ:PL 1/1:0,56:56:99:2090,167,0
+20 10002470 . C T 2537.06 . AC=2;AF=1.00;AN=2;DP=68;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=49.92;QD=27.51;SOR=0.859 GT:AD:DP:GQ:PL 1/1:0,63:63:99:2551,189,0
+20 10002625 . G T 2680.06 . AC=2;AF=1.00;AN=2;DP=66;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.08;QD=29.11;SOR=1.127 GT:AD:DP:GQ:PL 1/1:0,64:64:99:2694,193,0
+20 10003021 . C T 2398.06 . AC=2;AF=1.00;AN=2;DP=63;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.04;QD=28.08;SOR=1.071 GT:AD:DP:GQ:PL 1/1:0,60:60:99:2412,181,0
+20 10003358 . A C 1475.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=0.004;DP=91;ExcessHet=0.0000;FS=0.844;MLEAC=1;MLEAF=0.500;MQ=59.80;MQRankSum=1.011;QD=16.58;ReadPosRankSum=-1.355;SOR=0.572 GT:AD:DP:GQ:PL 0/1:45,44:89:99:1483,0,1477
+20 10003651 . T C 3635.06 . AC=2;AF=1.00;AN=2;DP=98;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.24;QD=23.23;SOR=1.511 GT:AD:DP:GQ:PL 1/1:0,93:93:99:3649,279,0
+20 10003692 . A G 2624.06 . AC=2;AF=1.00;AN=2;DP=72;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.48;QD=29.03;SOR=1.352 GT:AD:DP:GQ:PL 1/1:0,68:68:99:2638,205,0
+20 10003832 . G A 2720.06 . AC=2;AF=1.00;AN=2;DP=67;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=56.82;QD=30.67;SOR=1.473 GT:AD:DP:GQ:PL 1/1:0,66:66:99:2734,199,0
+20 10004094 . A C 1840.06 . AC=2;AF=1.00;AN=2;DP=55;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=52.62;QD=34.72;SOR=1.524 GT:AD:DP:GQ:PL 1/1:0,53:53:99:1854,157,0
+20 10004147 . A G 1852.06 . AC=2;AF=1.00;AN=2;DP=54;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=55.19;QD=26.61;SOR=1.136 GT:AD:DP:GQ:PL 1/1:0,52:52:99:1866,156,0
+20 10004193 . G T 937.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-0.392;DP=54;ExcessHet=0.0000;FS=2.369;MLEAC=1;MLEAF=0.500;MQ=59.14;MQRankSum=3.385;QD=18.39;ReadPosRankSum=1.724;SOR=0.941 GT:AD:DP:GQ:PL 0/1:23,28:51:99:945,0,776
+20 10004222 . C CA 42.60 . AC=1;AF=0.500;AN=2;BaseQRankSum=0.335;DP=69;ExcessHet=0.0000;FS=3.221;MLEAC=1;MLEAF=0.500;MQ=58.21;MQRankSum=-2.220;QD=0.95;ReadPosRankSum=0.198;SOR=0.932 GT:AD:DP:GQ:PL 0/1:35,10:45:50:50,0,923
+20 10004223 . A AG 77.60 . AC=1;AF=0.500;AN=2;BaseQRankSum=-0.607;DP=69;ExcessHet=0.0000;FS=1.242;MLEAC=1;MLEAF=0.500;MQ=58.30;MQRankSum=2.260;QD=1.62;ReadPosRankSum=0.060;SOR=0.504 GT:AD:DP:GQ:PL 0/1:36,12:48:85:85,0,983
+20 10004351 . C G 2770.06 . AC=2;AF=1.00;AN=2;DP=71;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.05;QD=29.20;SOR=0.874 GT:AD:DP:GQ:PL 1/1:0,70:70:99:2784,211,0
+20 10004389 . T G 2509.06 . AC=2;AF=1.00;AN=2;DP=67;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=56.62;QD=28.55;SOR=1.143 GT:AD:DP:GQ:PL 1/1:0,62:62:99:2523,187,0
+20 10004610 . A C 3640.06 . AC=2;AF=1.00;AN=2;DP=93;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=58.75;QD=34.42;SOR=0.761 GT:AD:DP:GQ:PL 1/1:0,89:89:99:3654,267,0
+20 10004725 . A G 972.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-2.154;DP=67;ExcessHet=0.0000;FS=15.830;MLEAC=1;MLEAF=0.500;MQ=55.04;MQRankSum=3.008;QD=14.96;ReadPosRankSum=2.087;SOR=0.605 GT:AD:DP:GQ:PL 0/1:35,30:65:99:980,0,1168
+20 10004769 . TAAAACTATGC T 1011.60 . AC=1;AF=0.500;AN=2;BaseQRankSum=0.599;DP=80;ExcessHet=0.0000;FS=3.758;MLEAC=1;MLEAF=0.500;MQ=52.80;MQRankSum=-6.625;QD=15.81;ReadPosRankSum=1.879;SOR=1.306 GT:AD:DP:GQ:PL 0/1:37,27:64:99:1019,0,1471
+20 10004874 . A C 3617.06 . AC=2;AF=1.00;AN=2;DP=90;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.35;QD=28.53;SOR=1.286 GT:AD:DP:GQ:PL 1/1:0,87:87:99:3631,261,0
+20 10004887 . A G 1344.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=0.356;DP=90;ExcessHet=0.0000;FS=1.793;MLEAC=1;MLEAF=0.500;MQ=59.49;MQRankSum=-0.067;QD=15.82;ReadPosRankSum=-1.114;SOR=0.984 GT:AD:DP:GQ:PL 0/1:45,40:85:99:1352,0,1542
+20 10005010 . C T 2949.06 . AC=2;AF=1.00;AN=2;DP=73;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.68;QD=27.23;SOR=1.226 GT:AD:DP:GQ:PL 1/1:0,72:72:99:2963,217,0
+20 10005427 . C T 2229.06 . AC=2;AF=1.00;AN=2;DP=60;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.62;QD=29.52;SOR=0.729 GT:AD:DP:GQ:PL 1/1:0,55:55:99:2243,165,0
+20 10005499 . A G 3068.06 . AC=2;AF=1.00;AN=2;DP=78;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.00;QD=33.47;SOR=1.121 GT:AD:DP:GQ:PL 1/1:0,76:76:99:3082,229,0
+20 10005587 . A G 1250.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-0.834;DP=76;ExcessHet=0.0000;FS=1.955;MLEAC=1;MLEAF=0.500;MQ=59.75;MQRankSum=-0.972;QD=17.37;ReadPosRankSum=0.248;SOR=0.848 GT:AD:DP:GQ:PL 0/1:36,36:72:99:1258,0,1236
+20 10005723 . A G 3077.06 . AC=2;AF=1.00;AN=2;DP=88;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.79;QD=32.91;SOR=0.947 GT:AD:DP:GQ:PL 1/1:0,86:86:99:3091,258,0
+20 10006291 . G A 999.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=0.311;DP=85;ExcessHet=0.0000;FS=0.853;MLEAC=1;MLEAF=0.500;MQ=59.29;MQRankSum=-1.081;QD=11.90;ReadPosRankSum=-1.447;SOR=0.659 GT:AD:DP:GQ:PL 0/1:53,31:84:99:1007,0,1905
+20 10006404 . A C 2943.06 . AC=2;AF=1.00;AN=2;DP=83;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.22;QD=31.31;SOR=1.432 GT:AD:DP:GQ:PL 1/1:0,76:76:99:2957,228,0
+20 10006682 . T A 2889.06 . AC=2;AF=1.00;AN=2;DP=75;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.44;QD=31.45;SOR=1.179 GT:AD:DP:GQ:PL 1/1:0,73:73:99:2903,219,0
+20 10006819 . AAAAC A 2554.03 . AC=2;AF=1.00;AN=2;DP=81;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=61.06;QD=33.27;SOR=0.762 GT:AD:DP:GQ:PL 1/1:0,58:58:99:2568,176,0
+20 10007150 . G C 690.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-4.476;DP=64;ExcessHet=0.0000;FS=5.048;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.000;QD=10.96;ReadPosRankSum=-0.077;SOR=0.746 GT:AD:DP:GQ:PL 0/1:38,25:63:99:698,0,1479
+20 10007175 . C T 1371.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=2.249;DP=63;ExcessHet=0.0000;FS=2.211;MLEAC=1;MLEAF=0.500;MQ=59.63;MQRankSum=1.319;QD=22.49;ReadPosRankSum=-1.213;SOR=0.434 GT:AD:DP:GQ:PL 0/1:23,38:61:99:1379,0,780
+20 10007352 . C T 2779.06 . AC=2;AF=1.00;AN=2;DP=70;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.67;QD=31.26;SOR=1.054 GT:AD:DP:GQ:PL 1/1:0,69:69:99:2793,208,0
+20 10007531 . A G 2935.06 . AC=2;AF=1.00;AN=2;DP=75;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.75;QD=27.76;SOR=1.577 GT:AD:DP:GQ:PL 1/1:0,72:72:99:2949,217,0
+20 10007980 . A C 3539.06 . AC=2;AF=1.00;AN=2;DP=92;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.70;QD=29.09;SOR=0.990 GT:AD:DP:GQ:PL 1/1:0,90:90:99:3553,270,0
+20 10008029 . T TA 2010.03 . AC=2;AF=1.00;AN=2;BaseQRankSum=0.409;DP=97;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=61.11;MQRankSum=0.651;QD=26.10;ReadPosRankSum=-1.357;SOR=0.774 GT:AD:DP:GQ:PL 1/1:3,74:77:99:2024,145,0
+20 10008146 . TA T 2165.03 . AC=2;AF=1.00;AN=2;DP=77;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.56;QD=30.93;SOR=0.874 GT:AD:DP:GQ:PL 1/1:0,70:70:99:2179,211,0
+20 10008221 . T C 3239.06 . AC=2;AF=1.00;AN=2;DP=83;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.17;QD=26.08;SOR=0.850 GT:AD:DP:GQ:PL 1/1:0,80:80:99:3253,240,0
+20 10008458 . T G 2669.06 . AC=2;AF=1.00;AN=2;DP=72;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=52.76;QD=33.85;SOR=0.980 GT:AD:DP:GQ:PL 1/1:0,69:69:99:2683,207,0
+20 10008742 . G T 736.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=3.893;DP=50;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=37.07;MQRankSum=-1.502;QD=15.03;ReadPosRankSum=0.200;SOR=0.741 GT:AD:DP:GQ:PL 0/1:23,26:49:99:744,0,580
+20 10008758 . C CA 707.49 . AC=2;AF=1.00;AN=2;BaseQRankSum=0.130;DP=51;ExcessHet=0.0000;FS=2.191;MLEAC=1;MLEAF=0.500;MQ=37.72;MQRankSum=-0.875;QD=18.62;ReadPosRankSum=-0.262;SOR=0.405 GT:AD:DP:GQ:PL 1/1:4,34:38:10:721,10,0
+20 10008921 . C CA 283.60 . AC=1;AF=0.500;AN=2;BaseQRankSum=0.610;DP=60;ExcessHet=0.0000;FS=1.311;MLEAC=1;MLEAF=0.500;MQ=56.00;MQRankSum=-1.306;QD=8.10;ReadPosRankSum=-0.017;SOR=0.644 GT:AD:DP:GQ:PL 0/1:18,17:35:99:291,0,366
+20 10008948 . TA T 2091.03 . AC=2;AF=1.00;AN=2;BaseQRankSum=0.994;DP=56;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=51.26;MQRankSum=1.946;QD=27.08;ReadPosRankSum=0.884;SOR=0.721 GT:AD:DP:GQ:PL 1/1:1,53:54:99:2105,117,0
+20 10008952 . CACACACACACA C,CCACACACACA 1700.02 . AC=1,1;AF=0.500,0.500;AN=2;BaseQRankSum=0.963;DP=63;ExcessHet=0.0000;FS=0.000;MLEAC=1,1;MLEAF=0.500,0.500;MQ=51.23;MQRankSum=1.976;QD=25.42;ReadPosRankSum=0.868;SOR=1.112 GT:AD:DP:GQ:PL 1/2:1,17,18:36:99:1717,539,803,595,0,533
+20 10009227 . A G 1390.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-2.220;DP=63;ExcessHet=0.0000;FS=9.110;MLEAC=1;MLEAF=0.500;MQ=56.82;MQRankSum=1.428;QD=22.43;ReadPosRankSum=-1.159;SOR=0.281 GT:AD:DP:GQ:PL 0/1:23,39:62:99:1398,0,740
+20 10009246 . A G 3017.06 . AC=2;AF=1.00;AN=2;DP=81;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=55.68;QD=27.65;SOR=0.887 GT:AD:DP:GQ:PL 1/1:0,77:77:99:3031,231,0
+20 10009400 . T A 3013.06 . AC=2;AF=1.00;AN=2;DP=75;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.00;QD=29.48;SOR=0.804 GT:AD:DP:GQ:PL 1/1:0,74:74:99:3027,223,0
+20 10009512 . C G 3054.06 . AC=2;AF=1.00;AN=2;DP=80;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=58.53;QD=30.56;SOR=1.223 GT:AD:DP:GQ:PL 1/1:0,77:77:99:3068,231,0
+20 10009719 . A G 1901.06 . AC=2;AF=1.00;AN=2;DP=65;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.71;QD=33.35;SOR=1.047 GT:AD:DP:GQ:PL 1/1:0,57:57:99:1915,170,0
+20 10009795 . A G 1895.06 . AC=2;AF=1.00;AN=2;DP=49;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=59.62;QD=33.63;SOR=1.514 GT:AD:DP:GQ:PL 1/1:0,47:47:99:1909,141,0
+20 10009842 . G GAA 562.60 . AC=1;AF=0.500;AN=2;BaseQRankSum=0.383;DP=52;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=53.85;MQRankSum=-0.936;QD=16.07;ReadPosRankSum=1.757;SOR=0.602 GT:AD:DP:GQ:PL 0/1:19,16:35:99:570,0,691
+20 10009844 . G A 683.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=1.116;DP=54;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=53.61;MQRankSum=0.975;QD=19.53;ReadPosRankSum=-2.419;SOR=0.793 GT:AD:DP:GQ:PL 0/1:16,19:35:99:691,0,585
+20 10009871 . A G 679.64 . AC=1;AF=0.500;AN=2;BaseQRankSum=-0.803;DP=62;ExcessHet=0.0000;FS=1.273;MLEAC=1;MLEAF=0.500;MQ=51.11;MQRankSum=1.336;QD=18.37;ReadPosRankSum=0.840;SOR=0.631 GT:AD:DP:GQ:PL 0/1:18,19:37:99:687,0,593
+20 10009875 . A G,AGGGAGG 2389.06 . AC=1,1;AF=0.500,0.500;AN=2;BaseQRankSum=0.378;DP=58;ExcessHet=0.0000;FS=6.463;MLEAC=1,1;MLEAF=0.500,0.500;MQ=50.44;MQRankSum=1.413;QD=30.55;ReadPosRankSum=1.373;SOR=0.461 GT:AD:DP:GQ:PL 1/2:2,15,14:31:99:2406,645,532,697,0,574
+20 10009879 . A G 2259.06 . AC=2;AF=1.00;AN=2;BaseQRankSum=1.534;DP=53;ExcessHet=0.0000;FS=8.605;MLEAC=2;MLEAF=1.00;MQ=50.48;MQRankSum=1.681;QD=32.62;ReadPosRankSum=1.113;SOR=1.198 GT:AD:DP:GQ:PL 1/1:2,51:53:99:2273,150,0
+20 10009883 . A G 2166.06 . AC=2;AF=1.00;AN=2;DP=52;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=50.81;QD=29.33;SOR=1.755 GT:AD:DP:GQ:PL 1/1:0,49:49:99:2180,147,0
+20 10010393 . T G 1473.99 . AC=2;AF=0.667;AN=3;BaseQRankSum=-3.351;DP=79;FS=11.600;MLEAC=2;MLEAF=0.667;MQ=59.42;MQRankSum=-1.284;QD=18.66;ReadPosRankSum=-1.738;SOR=0.606 GT:AD:DP:GQ:PL 0/1/1:36,43:79:22:1484,22,0,1221
+20 10010536 . G GA 2453.32 . AC=3;AF=1.00;AN=3;DP=92;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=61.74;QD=30.67;SOR=0.850 GT:AD:DP:GQ:PL 1/1/1:0,80:80:99:2469,381,141,0
+20 10010766 . T G 2424.36 . AC=3;AF=1.00;AN=3;DP=70;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=60.00;QD=35.36;SOR=0.818 GT:AD:DP:GQ:PL 1/1/1:0,66:66:99:2440,315,116,0
+20 10010832 . T C 2964.36 . AC=3;AF=1.00;AN=3;DP=76;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.51;QD=34.30;SOR=1.091 GT:AD:DP:GQ:PL 1/1/1:0,75:75:99:2980,358,132,0
+20 10011075 . C T 1334.05 . AC=1;AF=0.333;AN=3;BaseQRankSum=5.364;DP=86;FS=1.800;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=16.07;ReadPosRankSum=-1.036;SOR=0.968 GT:AD:DP:GQ:PL 0/0/1:44,39:83:14:1340,0,14,1319
+20 10011309 . T C 2705.36 . AC=3;AF=1.00;AN=3;DP=80;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=60.00;QD=27.00;SOR=1.223 GT:AD:DP:GQ:PL 1/1/1:0,77:77:99:2721,366,135,0
+20 10011517 . GA G 526 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.924;DP=99;FS=2.130;MLEAC=1;MLEAF=0.333;MQ=59.91;MQRankSum=2.041;QD=6.92;ReadPosRankSum=0.603;SOR=0.412 GT:AD:DP:GQ:PL 0/0/1:46,30:76:46:532,0,46,880
+20 10011666 . C T 2974.36 . AC=3;AF=1.00;AN=3;DP=74;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.06;QD=30.82;SOR=1.103 GT:AD:DP:GQ:PL 1/1/1:0,73:73:99:2990,348,129,0
+20 10011939 . C T 2526.36 . AC=3;AF=1.00;AN=3;DP=66;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=56.55;QD=29.27;SOR=1.329 GT:AD:DP:GQ:PL 1/1/1:0,62:62:99:2542,296,109,0
+20 10012021 . CA C 1998.32 . AC=3;AF=1.00;AN=3;DP=71;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=57.12;QD=30.28;SOR=1.196 GT:AD:DP:GQ:PL 1/1/1:0,66:66:99:2014,314,116,0
+20 10012362 . G T 848.36 . AC=3;AF=1.00;AN=3;DP=25;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=54.31;QD=35.92;SOR=4.003 GT:AD:DP:GQ:PL 1/1/1:0,23:23:40:864,109,40,0
+20 10012384 . T C 250.21 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.773;DP=18;FS=7.375;MLEAC=1;MLEAF=0.333;MQ=53.38;MQRankSum=-0.811;QD=13.90;ReadPosRankSum=0.800;SOR=0.044 GT:AD:DP:GQ:PL 0/0/1:10,8:18:6:256,0,6,353
+20 10012387 . T C 546.34 . AC=3;AF=1.00;AN=3;DP=18;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=53.38;QD=32.14;SOR=3.383 GT:AD:DP:GQ:PL 1/1/1:0,17:17:29:562,78,29,0
+20 10012479 . A G 587.34 . AC=3;AF=1.00;AN=3;DP=18;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=51.29;QD=34.55;SOR=0.804 GT:AD:DP:GQ:PL 1/1/1:0,17:17:29:603,79,29,0
+20 10012498 . C G 434.23 . AC=3;AF=1.00;AN=3;DP=10;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=43.25;QD=29.63;SOR=1.609 GT:AD:DP:GQ:PL 1/1/1:0,10:10:18:450,48,18,0
+20 10012518 . T C 464.25 . AC=3;AF=1.00;AN=3;DP=12;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=43.58;QD=28.76;SOR=1.270 GT:AD:DP:GQ:PL 1/1/1:0,11:11:19:480,52,19,0
+20 10012521 . C T 97.07 . AC=1;AF=0.333;AN=3;BaseQRankSum=1.517;DP=12;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=40.86;MQRankSum=-0.376;QD=8.09;ReadPosRankSum=2.405;SOR=0.693 GT:AD:DP:GQ:PL 0/0/1:8,4:12:12:103,0,12,224
+20 10012570 . G GCA 479.21 . AC=3;AF=1.00;AN=3;DP=11;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=39.52;QD=29.94;SOR=3.442 GT:AD:DP:GQ:PL 1/1/1:0,11:11:19:495,52,19,0
+20 10012572 . GT G 479.21 . AC=3;AF=1.00;AN=3;DP=12;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=40.60;QD=31.54;SOR=3.442 GT:AD:DP:GQ:PL 1/1/1:0,11:11:19:495,52,19,0
+20 10012631 . C CG 513.88 . AC=2;AF=0.667;AN=3;BaseQRankSum=-1.030;DP=21;FS=8.822;MLEAC=2;MLEAF=0.667;MQ=48.34;MQRankSum=-1.670;QD=24.47;ReadPosRankSum=-1.777;SOR=0.048 GT:AD:DP:GQ:PL 0/1/1:8,13:21:15:524,15,0,299
+20 10012636 . G C 548.97 . AC=2;AF=0.667;AN=3;BaseQRankSum=2.711;DP=22;FS=5.959;MLEAC=2;MLEAF=0.667;MQ=48.93;MQRankSum=-1.513;QD=24.95;ReadPosRankSum=-1.777;SOR=0.058 GT:AD:DP:GQ:PL 0/1/1:8,14:22:18:559,18,0,297
+20 10012714 . G C 1313.36 . AC=3;AF=1.00;AN=3;DP=36;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=52.52;QD=28.86;SOR=2.964 GT:AD:DP:GQ:PL 1/1/1:0,35:35:62:1329,167,62,0
+20 10012751 . T C 950.36 . AC=3;AF=1.00;AN=3;DP=31;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=50.73;QD=31.68;SOR=0.976 GT:AD:DP:GQ:PL 1/1/1:0,30:30:52:966,140,52,0
+20 10013119 . C T 1018.56 . AC=2;AF=0.667;AN=3;BaseQRankSum=2.724;DP=61;FS=2.248;MLEAC=1;MLEAF=0.333;MQ=51.43;MQRankSum=-1.089;QD=17.26;ReadPosRankSum=0.159;SOR=0.405 GT:AD:DP:GQ:PL 0/1/1:29,30:59:3:1026,3,0,922
+20 10013574 . G A 1066.03 . AC=1;AF=0.333;AN=3;BaseQRankSum=3.469;DP=73;FS=7.109;MLEAC=1;MLEAF=0.333;MQ=58.17;MQRankSum=-0.271;QD=15.45;ReadPosRankSum=0.706;SOR=1.675 GT:AD:DP:GQ:PL 0/0/1:38,31:69:21:1072,0,21,1294
+20 10014990 . C CAT 1249.52 . AC=2;AF=0.667;AN=3;BaseQRankSum=1.930;DP=89;FS=2.076;MLEAC=1;MLEAF=0.333;MQ=60.88;MQRankSum=3.260;QD=16.23;ReadPosRankSum=-0.311;SOR=0.429 GT:AD:DP:GQ:PL 0/1/1:38,39:77:3:1257,3,0,1229
+20 10015679 . C T 160.79 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.200;DP=10;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=16.08;ReadPosRankSum=0.497;SOR=0.693 GT:AD:DP:GQ:PL 0/0/1:5,5:10:0:166,0,0,163
+20 10015761 . T C 362.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=-1.982;DP=23;FS=0.000;MLEAC=2;MLEAF=0.667;MQ=58.99;MQRankSum=1.294;QD=16.50;ReadPosRankSum=1.805;SOR=0.352 GT:AD:DP:GQ:PL 0/1/1:9,13:22:11:373,11,0,284
+20 10018158 . G C 1646.99 . AC=2;AF=0.667;AN=3;BaseQRankSum=5.213;DP=94;FS=0.808;MLEAC=2;MLEAF=0.667;MQ=59.80;MQRankSum=1.118;QD=18.72;ReadPosRankSum=1.179;SOR=0.834 GT:AD:DP:GQ:PL 0/1/1:40,48:88:24:1657,24,0,1154
+20 10018555 . G A 1581 . AC=2;AF=0.667;AN=3;BaseQRankSum=-0.627;DP=84;FS=4.241;MLEAC=2;MLEAF=0.667;MQ=60.00;MQRankSum=0.000;QD=19.76;ReadPosRankSum=0.815;SOR=0.627 GT:AD:DP:GQ:PL 0/1/1:35,45:80:30:1591,30,0,1206
+20 10019093 . A G 1250.05 . AC=2;AF=0.667;AN=3;BaseQRankSum=0.452;DP=73;FS=1.990;MLEAC=2;MLEAF=0.667;MQ=59.68;MQRankSum=1.073;QD=18.12;ReadPosRankSum=-0.252;SOR=0.665 GT:AD:DP:GQ:PL 0/1/1:33,36:69:10:1260,10,0,1091
+20 10020229 . G A 1559.26 . AC=2;AF=0.500;AN=4;BaseQRankSum=5.792;DP=84;FS=0.833;MLEAC=2;MLEAF=0.500;MQ=59.50;MQRankSum=0.104;QD=19.02;ReadPosRankSum=-0.549;SOR=0.573 GT:AD:DP:GQ:PL 0/0/1/1:38,44:82:37:1567,66,0,37,1130
+20 10023689 . G A 1874.21 . AC=3;AF=0.750;AN=4;BaseQRankSum=2.144;DP=82;FS=0.877;MLEAC=2;MLEAF=0.500;MQ=59.77;MQRankSum=1.352;QD=23.43;ReadPosRankSum=1.162;SOR=0.549 GT:AD:DP:GQ:PL 0/1/1/1:29,51:80:3:1883,105,3,0,948
+20 10024107 . C T 1715.26 . AC=2;AF=0.500;AN=4;BaseQRankSum=5.770;DP=89;FS=0.817;MLEAC=2;MLEAF=0.500;MQ=59.43;MQRankSum=-1.546;QD=19.94;ReadPosRankSum=0.148;SOR=0.823 GT:AD:DP:GQ:PL 0/0/1/1:38,48:86:29:1723,78,0,29,1086
+20 10024300 . CTT C,CTTTT 191.75 . AC=1,2;AF=0.250,0.500;AN=4;BaseQRankSum=1.975;DP=53;FS=2.963;MLEAC=1,1;MLEAF=0.250,0.250;MQ=52.89;MQRankSum=-1.143;QD=13.70;ReadPosRankSum=-0.297;SOR=1.981 GT:AD:DP:GQ:PL 0/1/2/2:2,4,8:14:12:198,123,140,182,447,100,12,19,80,92,0,46,101,38,202
+20 10026357 . T C 1187.27 . AC=2;AF=0.500;AN=4;BaseQRankSum=-1.700;DP=63;FS=8.911;MLEAC=2;MLEAF=0.500;MQ=58.43;MQRankSum=-0.148;QD=18.85;ReadPosRankSum=-0.076;SOR=0.722 GT:AD:DP:GQ:PL 0/0/1/1:28,35:63:23:1195,56,0,23,932
+20 10026794 . C T 1107.28 . AC=2;AF=0.500;AN=4;BaseQRankSum=2.828;DP=56;FS=2.399;MLEAC=2;MLEAF=0.500;MQ=59.59;MQRankSum=-0.719;QD=21.29;ReadPosRankSum=-0.533;SOR=0.428 GT:AD:DP:GQ:PL 0/0/1/1:19,33:52:0:1114,65,0,0,529
+20 10027234 . A ATTAG 1350.22 . AC=2;AF=0.500;AN=4;BaseQRankSum=-0.406;DP=75;FS=3.248;MLEAC=2;MLEAF=0.500;MQ=57.44;MQRankSum=-0.845;QD=19.57;ReadPosRankSum=-0.510;SOR=0.926 GT:AD:DP:GQ:PL 0/0/1/1:34,35:69:41:1358,45,0,41,1320
+20 10027868 . A G 1760.26 . AC=2;AF=0.500;AN=4;BaseQRankSum=-5.793;DP=91;FS=6.873;MLEAC=2;MLEAF=0.500;MQ=59.49;MQRankSum=0.047;QD=19.56;ReadPosRankSum=1.872;SOR=0.937 GT:AD:DP:GQ:PL 0/0/1/1:44,46:90:51:1768,61,0,51,1671
+20 10027872 . A G 1745.26 . AC=2;AF=0.500;AN=4;BaseQRankSum=-5.491;DP=88;FS=8.704;MLEAC=2;MLEAF=0.500;MQ=59.48;MQRankSum=0.065;QD=20.06;ReadPosRankSum=1.053;SOR=0.834 GT:AD:DP:GQ:PL 0/0/1/1:42,45:87:47:1753,61,0,47,1606
+20 10028867 . A ATG 1137.23 . AC=2;AF=0.500;AN=4;BaseQRankSum=-0.874;DP=93;FS=4.652;MLEAC=2;MLEAF=0.500;MQ=60.68;MQRankSum=2.711;QD=16.02;ReadPosRankSum=0.630;SOR=0.336 GT:AD:DP:GQ:PL 0/0/1/1:32,39:71:28:1145,60,0,28,915
+20 10030188 . T A 1378.12 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.711;DP=82;FS=9.186;MLEAC=1;MLEAF=0.333;MQ=59.49;MQRankSum=-1.013;QD=17.01;ReadPosRankSum=-0.553;SOR=1.105 GT:AD:DP:GQ:PL 0/0/1:42,39:81:9:1384,0,9,1508
+20 10031254 . A AT 1482.96 . AC=2;AF=0.667;AN=3;BaseQRankSum=-0.091;DP=90;FS=9.250;MLEAC=2;MLEAF=0.667;MQ=59.91;MQRankSum=0.017;QD=17.45;ReadPosRankSum=0.663;SOR=0.211 GT:AD:DP:GQ:PL 0/1/1:38,47:85:27:1493,27,0,1151
+20 10031342 . G A 1846.01 . AC=2;AF=0.667;AN=3;BaseQRankSum=1.833;DP=93;FS=1.714;MLEAC=2;MLEAF=0.667;MQ=59.75;MQRankSum=-0.866;QD=19.85;ReadPosRankSum=-0.012;SOR=0.955 GT:AD:DP:GQ:PL 0/1/1:41,52:93:33:1856,33,0,1367
+20 10031798 . G A 4309.36 . AC=3;AF=1.00;AN=3;DP=107;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.61;QD=29.41;SOR=0.900 GT:AD:DP:GQ:PL 1/1/1:0,104:104:99:4325,496,183,0
+20 10031827 . C T 2000.94 . AC=2;AF=0.667;AN=3;BaseQRankSum=3.552;DP=115;FS=4.729;MLEAC=2;MLEAF=0.667;MQ=59.84;MQRankSum=-0.945;QD=18.53;ReadPosRankSum=-1.396;SOR=0.382 GT:AD:DP:GQ:PL 0/1/1:52,56:108:12:2011,12,0,1776
+20 10032094 . G A 1238.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=5.488;DP=86;FS=6.039;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=14.92;ReadPosRankSum=-0.579;SOR=0.260 GT:AD:DP:GQ:PL 0/0/1:47,36:83:32:1244,0,32,1492
+20 10032413 . T G 881.07 . AC=1;AF=0.333;AN=3;BaseQRankSum=-6.142;DP=66;FS=10.444;MLEAC=1;MLEAF=0.333;MQ=59.43;MQRankSum=-0.065;QD=13.35;ReadPosRankSum=-1.003;SOR=1.293 GT:AD:DP:GQ:PL 0/0/1:35,31:66:12:887,0,12,1266
+20 10032882 . A T 1210.12 . AC=1;AF=0.333;AN=3;BaseQRankSum=-3.697;DP=76;FS=4.673;MLEAC=1;MLEAF=0.333;MQ=59.70;MQRankSum=-1.014;QD=16.13;ReadPosRankSum=0.626;SOR=0.338 GT:AD:DP:GQ:PL 0/0/1:39,36:75:9:1216,0,9,1391
+20 10032972 . C CAT 1143.08 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.354;DP=67;FS=5.062;MLEAC=1;MLEAF=0.333;MQ=59.66;MQRankSum=-1.017;QD=18.14;ReadPosRankSum=-0.723;SOR=1.300 GT:AD:DP:GQ:PL 0/0/1:33,30:63:9:1149,0,9,1284
+20 10034306 . T C 812.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-3.661;DP=80;FS=0.890;MLEAC=1;MLEAF=0.333;MQ=59.48;MQRankSum=1.150;QD=10.83;ReadPosRankSum=0.539;SOR=0.685 GT:AD:DP:GQ:PL 0/0/1:46,29:75:52:818,0,52,1600
+20 10036930 . CGATAGCCCTAGCCCTAGATA C 1060.99 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.720;DP=98;FS=11.152;MLEAC=1;MLEAF=0.333;MQ=54.46;MQRankSum=-4.048;QD=15.60;ReadPosRankSum=0.460;SOR=0.269 GT:AD:DP:GQ:PL 0/0/1:39,29:68:26:1067,0,26,1503
+20 10037037 . C T 1439.94 . AC=2;AF=0.667;AN=3;BaseQRankSum=3.504;DP=88;FS=1.943;MLEAC=2;MLEAF=0.667;MQ=60.08;MQRankSum=-1.193;QD=17.78;ReadPosRankSum=-1.609;SOR=0.495 GT:AD:DP:GQ:PL 0/1/1:39,42:81:12:1450,12,0,1110
+20 10037110 . T TGATA 2802.32 . AC=3;AF=1.00;AN=3;DP=84;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=55.01;QD=31.11;SOR=0.933 GT:AD:DP:GQ:PL 1/1/1:0,63:63:99:2818,300,110,0
+20 10037144 . T TGATAGATA 1845.32 . AC=3;AF=1.00;AN=3;DP=81;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=53.21;QD=34.66;SOR=1.179 GT:AD:DP:GQ:PL 1/1/1:0,43:43:74:1861,202,74,0
+20 10037709 . A T 1019.03 . AC=1;AF=0.333;AN=3;BaseQRankSum=-2.367;DP=73;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=59.68;MQRankSum=0.934;QD=14.35;ReadPosRankSum=0.040;SOR=0.608 GT:AD:DP:GQ:PL 0/0/1:39,32:71:22:1025,0,22,1347
+20 10039371 . T G 1332.97 . AC=2;AF=0.667;AN=3;BaseQRankSum=-3.260;DP=76;FS=6.144;MLEAC=2;MLEAF=0.667;MQ=60.00;MQRankSum=0.000;QD=18.01;ReadPosRankSum=0.391;SOR=1.031 GT:AD:DP:GQ:PL 0/1/1:34,40:74:18:1343,18,0,1184
+20 10040772 . C CT 2018.32 . AC=3;AF=1.00;AN=3;DP=85;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=52.32;QD=28.83;SOR=0.811 GT:AD:DP:GQ:PL 1/1/1:0,70:70:99:2034,333,123,0
+20 10040812 . AT A 2629.32 . AC=3;AF=1.00;AN=3;DP=83;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=51.21;QD=29.40;SOR=0.721 GT:AD:DP:GQ:PL 1/1/1:0,71:71:99:2645,339,125,0
+20 10040821 . T A 1174.63 . AC=2;AF=0.667;AN=3;BaseQRankSum=-0.021;DP=84;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=51.33;MQRankSum=-0.097;QD=15.06;ReadPosRankSum=-1.350;SOR=0.688 GT:AD:DP:GQ:PL 0/1/1:38,40:78:7:1184,7,0,1083
+20 10041304 . C T 2778.36 . AC=3;AF=1.00;AN=3;DP=68;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.39;QD=36.76;SOR=0.693 GT:AD:DP:GQ:PL 1/1/1:0,68:68:99:2794,324,119,0
+20 10041698 . C CAT 60.98 . AC=1;AF=0.333;AN=3;BaseQRankSum=1.887;DP=80;FS=1.616;MLEAC=1;MLEAF=0.333;MQ=58.63;MQRankSum=0.194;QD=1.07;ReadPosRankSum=-0.164;SOR=1.148 GT:AD:DP:GQ:PL 0/0/1:50,7:57:67:67,0,129,1477
+20 10041701 . A ATATG 1478.97 . AC=2;AF=0.667;AN=3;BaseQRankSum=0.848;DP=80;FS=3.477;MLEAC=2;MLEAF=0.667;MQ=58.93;MQRankSum=0.340;QD=25.07;ReadPosRankSum=-0.023;SOR=0.260 GT:AD:DP:GQ:PL 0/1/1:9,50:59:99:1489,124,0,104
+20 10042319 . C T 2671.36 . AC=3;AF=1.00;AN=3;DP=69;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.06;QD=30.54;SOR=1.033 GT:AD:DP:GQ:PL 1/1/1:0,66:66:99:2687,315,116,0
+20 10042761 . A G 3566.36 . AC=3;AF=1.00;AN=3;DP=94;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=60.00;QD=21.53;SOR=1.389 GT:AD:DP:GQ:PL 1/1/1:0,91:91:99:3582,431,159,0
+20 10042829 . A G 3068.36 . AC=3;AF=1.00;AN=3;DP=82;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.77;QD=34.87;SOR=0.855 GT:AD:DP:GQ:PL 1/1/1:0,78:78:99:3084,372,137,0
+20 10043002 . A T 1303.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=3.986;DP=89;FS=2.877;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=15.15;ReadPosRankSum=-0.035;SOR=0.434 GT:AD:DP:GQ:PL 0/0/1:48,38:86:30:1309,0,30,1651
+20 10044849 . A G 2104.36 . AC=3;AF=1.00;AN=3;DP=59;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.61;QD=31.04;SOR=1.316 GT:AD:DP:GQ:PL 1/1/1:0,59:59:99:2120,280,103,0
+20 10045078 . G T 3284.36 . AC=3;AF=1.00;AN=3;DP=84;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=58.78;QD=27.86;SOR=0.876 GT:AD:DP:GQ:PL 1/1/1:0,81:81:99:3300,386,143,0
+20 10045642 . G C 3120.36 . AC=3;AF=1.00;AN=3;DP=82;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.49;QD=34.17;SOR=0.821 GT:AD:DP:GQ:PL 1/1/1:0,81:81:99:3136,385,142,0
+20 10046178 . AAGAAAGAAAG A 2134.32 . AC=3;AF=1.00;AN=3;DP=63;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=48.77;QD=28.60;SOR=0.818 GT:AD:DP:GQ:PL 1/1/1:0,49:49:87:2150,236,87,0
+20 10046537 . A G 827.56 . AC=2;AF=0.667;AN=3;BaseQRankSum=-3.909;DP=57;FS=3.724;MLEAC=1;MLEAF=0.333;MQ=54.50;MQRankSum=0.395;QD=14.52;ReadPosRankSum=0.727;SOR=1.262 GT:AD:DP:GQ:PL 0/1/1:28,29:57:3:835,3,0,889
+20 10050828 . T C 1246.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-2.704;DP=91;FS=2.887;MLEAC=1;MLEAF=0.333;MQ=59.54;MQRankSum=0.892;QD=14.49;ReadPosRankSum=-0.140;SOR=0.521 GT:AD:DP:GQ:PL 0/0/1:49,37:86:35:1252,0,35,1764
+20 10051448 . T C 1139.79 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.501;DP=71;FS=3.687;MLEAC=1;MLEAF=0.333;MQ=59.41;MQRankSum=-1.404;QD=16.28;ReadPosRankSum=-0.705;SOR=0.302 GT:AD:DP:GQ:PL 0/0/1:35,35:70:0:1145,0,0,1132
+20 10052688 . C A 1085.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.180;DP=83;FS=3.135;MLEAC=1;MLEAF=0.333;MQ=59.78;MQRankSum=0.870;QD=14.09;ReadPosRankSum=1.443;SOR=0.379 GT:AD:DP:GQ:PL 0/0/1:45,32:77:39:1091,0,39,1645
+20 10058022 . T C 987.06 . AC=1;AF=0.333;AN=3;BaseQRankSum=-2.346;DP=72;FS=0.920;MLEAC=1;MLEAF=0.333;MQ=59.16;MQRankSum=0.466;QD=14.52;ReadPosRankSum=0.018;SOR=0.849 GT:AD:DP:GQ:PL 0/0/1:36,32:68:13:993,0,13,1251
+20 10067049 . TAAAAAAA T 534.01 . AC=1;AF=1.00;AN=1;BaseQRankSum=-0.674;DP=73;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=54.73;MQRankSum=-0.605;QD=24.27;ReadPosRankSum=-1.645;SOR=0.892 GT:AD:DP:GQ:PL 1:2,20:22:99:544,0
+20 10067090 . C A 2023.04 . AC=1;AF=1.00;AN=1;DP=56;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=54.57;QD=25.57;SOR=0.729 GT:AD:DP:GQ:PL 1:0,55:55:99:2033,0
+20 10067264 . G A 2941.04 . AC=1;AF=1.00;AN=1;DP=73;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.37;QD=33.11;SOR=0.776 GT:AD:DP:GQ:PL 1:0,73:73:99:2951,0
+20 10067722 . A C 2165.04 . AC=1;AF=1.00;AN=1;DP=59;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=60.00;QD=30.20;SOR=0.846 GT:AD:DP:GQ:PL 1:0,54:54:99:2175,0
+20 10068158 . GTGTATATATATA G 38.01 . AC=1;AF=1.00;AN=1;BaseQRankSum=-0.842;DP=28;FS=3.680;MLEAC=1;MLEAF=1.00;MQ=56.62;MQRankSum=0.328;QD=5.43;ReadPosRankSum=0.524;SOR=0.061 GT:AD:DP:GQ:PL 1:3,4:7:48:48,0
+20 10068981 . G A 2522.04 . AC=1;AF=1.00;AN=1;DP=65;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=60.00;QD=30.49;SOR=0.941 GT:AD:DP:GQ:PL 1:0,61:61:99:2532,0
+20 10070602 . T C 2710.04 . AC=1;AF=1.00;AN=1;DP=76;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=58.78;QD=31.67;SOR=0.749 GT:AD:DP:GQ:PL 1:0,72:72:99:2720,0
+20 10070936 . T A 3650.04 . AC=1;AF=1.00;AN=1;DP=86;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=58.96;QD=29.53;SOR=0.846 GT:AD:DP:GQ:PL 1:0,82:82:99:3660,0
+20 10070938 . G GA 3684.01 . AC=1;AF=1.00;AN=1;DP=85;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.07;QD=32.63;SOR=0.818 GT:AD:DP:GQ:PL 1:0,83:83:99:3694,0
+20 10071135 . C T 3276.04 . AC=1;AF=1.00;AN=1;DP=88;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.21;QD=30.36;SOR=1.003 GT:AD:DP:GQ:PL 1:0,79:79:99:3286,0
+20 10071187 . G A 3429.04 . AC=1;AF=1.00;AN=1;DP=85;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.73;QD=28.13;SOR=1.367 GT:AD:DP:GQ:PL 1:0,82:82:99:3439,0
+20 10071890 . T C 1993.04 . AC=1;AF=1.00;AN=1;DP=61;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.31;QD=34.97;SOR=0.728 GT:AD:DP:GQ:PL 1:0,57:57:99:2003,0
+20 10072505 . A G 2118.04 . AC=1;AF=1.00;AN=1;DP=67;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=60.00;QD=33.09;SOR=0.822 GT:AD:DP:GQ:PL 1:0,64:64:99:2128,0
+20 10074187 . A G 3120.04 . AC=1;AF=1.00;AN=1;DP=81;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.14;QD=27.97;SOR=0.881 GT:AD:DP:GQ:PL 1:0,79:79:99:3130,0
+20 10074240 . T C 3425.04 . AC=1;AF=1.00;AN=1;DP=89;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.79;QD=28.31;SOR=0.922 GT:AD:DP:GQ:PL 1:0,85:85:99:3435,0
+20 10074716 . G A 2419.04 . AC=1;AF=1.00;AN=1;DP=70;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.67;QD=35.21;SOR=1.214 GT:AD:DP:GQ:PL 1:0,64:64:99:2429,0
+20 10074806 . G A 2836.04 . AC=1;AF=1.00;AN=1;DP=75;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.38;QD=35.18;SOR=0.840 GT:AD:DP:GQ:PL 1:0,71:71:99:2846,0
+20 10075043 . T C 2424.04 . AC=1;AF=1.00;AN=1;DP=64;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.64;QD=29.59;SOR=1.107 GT:AD:DP:GQ:PL 1:0,61:61:99:2434,0
+20 10075168 . C T 3631.04 . AC=1;AF=1.00;AN=1;DP=91;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=59.37;QD=32.25;SOR=0.997 GT:AD:DP:GQ:PL 1:0,88:88:99:3641,0
+20 10075508 . GA G 1956.01 . AC=1;AF=1.00;AN=1;DP=81;FS=0.000;MLEAC=1;MLEAF=1.00;MQ=61.11;QD=27.94;SOR=1.085 GT:AD:DP:GQ:PL 1:0,70:70:99:1966,0
+20 10076339 . A G 293.04 . AC=1;AF=1.00;AN=1;BaseQRankSum=-0.069;DP=76;FS=1.992;MLEAC=1;MLEAF=1.00;MQ=59.70;MQRankSum=-0.866;QD=4.07;ReadPosRankSum=1.015;SOR=0.446 GT:AD:DP:GQ:PL 1:32,40:72:99:303,0
+20 10076399 . G A 282.04 . AC=1;AF=1.00;AN=1;BaseQRankSum=4.154;DP=95;FS=1.680;MLEAC=1;MLEAF=1.00;MQ=60.00;MQRankSum=0.000;QD=3.00;ReadPosRankSum=-1.058;SOR=0.952 GT:AD:DP:GQ:PL 1:44,50:94:99:292,0
+20 10077752 . T C 178.04 . AC=1;AF=1.00;AN=1;BaseQRankSum=-6.503;DP=83;FS=4.458;MLEAC=1;MLEAF=1.00;MQ=60.00;MQRankSum=0.000;QD=2.25;ReadPosRankSum=-0.352;SOR=1.251 GT:AD:DP:GQ:PL 1:34,45:79:99:188,0
+20 10081750 . C A 1362.05 . AC=1;AF=0.333;AN=3;BaseQRankSum=2.670;DP=92;FS=0.824;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=16.41;ReadPosRankSum=-0.406;SOR=0.664 GT:AD:DP:GQ:PL 0/0/1:44,39:83:14:1368,0,14,1511
+20 10081800 . C T 1118.21 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.241;DP=69;FS=11.086;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=16.44;ReadPosRankSum=-2.622;SOR=0.143 GT:AD:DP:GQ:PL 0/0/1:35,33:68:6:1124,0,6,1208
+20 10082892 . C T 1725.36 . AC=3;AF=1.00;AN=3;DP=45;FS=0.000;MLEAC=3;MLEAF=1.00;MQ=59.49;QD=34.86;SOR=0.883 GT:AD:DP:GQ:PL 1/1/1:0,44:44:77:1741,209,77,0
+20 10085211 . A T 1220.07 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.501;DP=81;FS=0.870;MLEAC=1;MLEAF=0.333;MQ=59.72;MQRankSum=-1.028;QD=16.05;ReadPosRankSum=-1.405;SOR=0.723 GT:AD:DP:GQ:PL 0/0/1:40,36:76:12:1226,0,12,1429
+20 10086110 . G A 1284.05 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.343;DP=83;FS=1.810;MLEAC=1;MLEAF=0.333;MQ=59.16;MQRankSum=-0.680;QD=15.85;ReadPosRankSum=0.170;SOR=0.495 GT:AD:DP:GQ:PL 0/0/1:43,38:81:15:1290,0,15,1493
+20 10086283 . G T 1056.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=2.304;DP=86;FS=0.855;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=12.57;ReadPosRankSum=1.889;SOR=0.529 GT:AD:DP:GQ:PL 0/0/1:52,32:84:60:1062,0,60,1779
+20 10086619 . T A 831.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.256;DP=76;FS=0.958;MLEAC=1;MLEAF=0.333;MQ=59.70;MQRankSum=-1.312;QD=11.87;ReadPosRankSum=-0.760;SOR=0.846 GT:AD:DP:GQ:PL 0/0/1:45,25:70:60:837,0,60,1616
+20 10086853 . G A 1020.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=3.915;DP=75;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=59.44;MQRankSum=-0.177;QD=13.97;ReadPosRankSum=-0.100;SOR=0.767 GT:AD:DP:GQ:PL 0/0/1:41,32:73:28:1026,0,28,1276
+20 10086954 . G A 1101.63 . AC=1;AF=0.333;AN=3;BaseQRankSum=2.606;DP=70;FS=4.812;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=16.20;ReadPosRankSum=-0.534;SOR=1.185 GT:AD:DP:GQ:PL 0/0/1:34,34:68:1:1107,0,1,1034
+20 10087230 . A G 1855.01 . AC=2;AF=0.667;AN=3;BaseQRankSum=-2.407;DP=101;FS=3.860;MLEAC=2;MLEAF=0.667;MQ=58.94;MQRankSum=1.707;QD=19.32;ReadPosRankSum=0.307;SOR=0.960 GT:AD:DP:GQ:PL 0/1/1:42,54:96:36:1865,36,0,1421
+20 10087394 . T G 1707.01 . AC=2;AF=0.667;AN=3;BaseQRankSum=-2.340;DP=85;FS=4.225;MLEAC=2;MLEAF=0.667;MQ=59.46;MQRankSum=1.207;QD=20.32;ReadPosRankSum=0.885;SOR=0.436 GT:AD:DP:GQ:PL 0/1/1:35,49:84:42:1717,42,0,1186
+20 10087754 . T G 1387.92 . AC=2;AF=0.667;AN=3;BaseQRankSum=0.239;DP=87;FS=0.851;MLEAC=2;MLEAF=0.667;MQ=60.60;MQRankSum=2.166;QD=17.57;ReadPosRankSum=-0.378;SOR=0.596 GT:AD:DP:GQ:PL 0/1/1:37,42:79:14:1398,14,0,1223
+20 10087804 . C T 1617 . AC=2;AF=0.667;AN=3;BaseQRankSum=1.940;DP=104;FS=3.847;MLEAC=1;MLEAF=0.333;MQ=60.18;MQRankSum=2.618;QD=16.17;ReadPosRankSum=0.341;SOR=0.369 GT:AD:DP:GQ:PL 0/1/1:50,50:100:1:1623,1,0,1486
+20 10087820 . C CAG 474.98 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.974;DP=103;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=60.51;MQRankSum=0.422;QD=8.64;ReadPosRankSum=-0.019;SOR=0.850 GT:AD:DP:GQ:PL 0/0/1:37,18:55:59:481,0,59,1184
+20 10088063 . C T 1423.06 . AC=1;AF=0.333;AN=3;BaseQRankSum=3.405;DP=94;FS=2.739;MLEAC=1;MLEAF=0.333;MQ=59.36;MQRankSum=0.515;QD=15.30;ReadPosRankSum=0.285;SOR=1.053 GT:AD:DP:GQ:PL 0/0/1:49,44:93:13:1429,0,13,1386
+20 10088699 . C T 798.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=3.803;DP=67;FS=16.952;MLEAC=1;MLEAF=0.333;MQ=56.90;MQRankSum=-3.140;QD=12.87;ReadPosRankSum=-1.456;SOR=1.914 GT:AD:DP:GQ:PL 0/0/1:36,26:62:30:804,0,30,1087
+20 10088730 . G A 987.07 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.224;DP=57;FS=9.708;MLEAC=1;MLEAF=0.333;MQ=52.92;MQRankSum=-5.213;QD=17.63;ReadPosRankSum=0.581;SOR=1.011 GT:AD:DP:GQ:PL 0/0/1:30,26:56:12:993,0,12,1144
+20 10088736 . A C 1092.21 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.282;DP=60;FS=7.080;MLEAC=1;MLEAF=0.333;MQ=52.86;MQRankSum=-5.157;QD=18.20;ReadPosRankSum=0.573;SOR=0.850 GT:AD:DP:GQ:PL 0/0/1:31,29:60:6:1098,0,6,1181
+20 10088747 . A G 1121.94 . AC=2;AF=0.667;AN=3;BaseQRankSum=-3.877;DP=56;FS=9.708;MLEAC=2;MLEAF=0.667;MQ=52.20;MQRankSum=-4.881;QD=20.03;ReadPosRankSum=0.009;SOR=1.162 GT:AD:DP:GQ:PL 0/1/1:26,30:56:12:1132,12,0,986
+20 10088799 . G A 1037 . AC=2;AF=0.667;AN=3;BaseQRankSum=5.503;DP=54;FS=10.098;MLEAC=2;MLEAF=0.667;MQ=53.34;MQRankSum=-2.498;QD=19.57;ReadPosRankSum=1.075;SOR=1.003 GT:AD:DP:GQ:PL 0/1/1:22,31:53:27:1047,27,0,617
+20 10088895 . C T 554.06 . AC=1;AF=0.333;AN=3;BaseQRankSum=2.330;DP=43;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=57.80;MQRankSum=0.260;QD=13.85;ReadPosRankSum=1.238;SOR=0.727 GT:AD:DP:GQ:PL 0/0/1:22,18:40:13:560,0,13,647
+20 10088968 . C CAAA 1191.75 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.552;DP=77;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=52.81;MQRankSum=-5.145;QD=18.62;ReadPosRankSum=0.629;SOR=0.693 GT:AD:DP:GQ:PL 0/0/1:32,32:64:0:1197,0,0,1220
+20 10088980 . T C 1259.05 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.585;DP=74;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=51.42;MQRankSum=-5.018;QD=17.25;ReadPosRankSum=1.577;SOR=0.758 GT:AD:DP:GQ:PL 0/0/1:39,34:73:15:1265,0,15,1486
+20 10088985 . T C 1197.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.192;DP=77;FS=0.890;MLEAC=1;MLEAF=0.333;MQ=51.29;MQRankSum=-5.248;QD=16.18;ReadPosRankSum=1.452;SOR=0.742 GT:AD:DP:GQ:PL 0/0/1:42,32:74:30:1203,0,30,1595
+20 10089441 . A G 1182.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=-4.885;DP=79;FS=6.071;MLEAC=1;MLEAF=0.333;MQ=59.71;MQRankSum=-0.948;QD=15.57;ReadPosRankSum=-0.156;SOR=1.363 GT:AD:DP:GQ:PL 0/1/1:37,39:76:6:1192,6,0,1297
+20 10089525 . C T 1554.96 . AC=2;AF=0.667;AN=3;BaseQRankSum=5.859;DP=83;FS=4.260;MLEAC=2;MLEAF=0.667;MQ=59.50;MQRankSum=1.531;QD=19.20;ReadPosRankSum=0.862;SOR=0.617 GT:AD:DP:GQ:PL 0/1/1:38,43:81:16:1565,16,0,1075
+20 10090289 . CA C 429.02 . AC=2;AF=0.667;AN=3;BaseQRankSum=0.296;DP=88;FS=1.377;MLEAC=1;MLEAF=0.333;MQ=59.97;MQRankSum=1.531;QD=11.29;ReadPosRankSum=0.535;SOR=1.127 GT:AD:DP:GQ:PL 0/1/1:14,24:38:28:426,28,0,235
+20 10090764 . A G 855.04 . AC=1;AF=0.333;AN=3;BaseQRankSum=-2.659;DP=67;FS=4.975;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=13.57;ReadPosRankSum=1.207;SOR=0.310 GT:AD:DP:GQ:PL 0/0/1:34,29:63:16:861,0,16,1199
+20 10090970 . T C 1263.05 . AC=2;AF=0.667;AN=3;BaseQRankSum=-0.484;DP=70;FS=0.927;MLEAC=2;MLEAF=0.667;MQ=59.47;MQRankSum=1.509;QD=18.31;ReadPosRankSum=-0.072;SOR=0.518 GT:AD:DP:GQ:PL 0/1/1:33,36:69:10:1273,10,0,1080
+20 10091214 . C T 1255.94 . AC=2;AF=0.667;AN=3;BaseQRankSum=0.361;DP=73;FS=0.000;MLEAC=2;MLEAF=0.667;MQ=59.74;MQRankSum=-0.916;QD=17.94;ReadPosRankSum=-0.035;SOR=0.625 GT:AD:DP:GQ:PL 0/1/1:33,37:70:12:1266,12,0,1098
+20 10092415 . A G 1637.14 . AC=1;AF=0.333;AN=3;BaseQRankSum=-6.731;DP=103;FS=0.741;MLEAC=1;MLEAF=0.333;MQ=60.00;MQRankSum=0.000;QD=16.21;ReadPosRankSum=0.082;SOR=0.665 GT:AD:DP:GQ:PL 0/0/1:52,49:101:8:1643,0,8,1880
+20 10092927 . G T 180.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-2.507;DP=83;FS=60.191;MLEAC=1;MLEAF=0.333;MQ=59.16;MQRankSum=-3.009;QD=2.50;ReadPosRankSum=-0.220;SOR=5.279 GT:AD:DP:GQ:PL 0/0/1:59,13:72:99:186,0,136,1914
+20 10093568 . GT G,GTT 381.96 . AC=1,1;AF=0.333,0.333;AN=3;BaseQRankSum=1.038;DP=62;FS=0.000;MLEAC=1,1;MLEAF=0.333,0.333;MQ=58.80;MQRankSum=0.965;QD=9.09;ReadPosRankSum=0.911;SOR=0.824 GT:AD:DP:GQ:PL 0/1/2:17,21,4:42:39:395,39,42,417,371,0,306,460,353,938
+20 10093923 . T A 1086.12 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.667;DP=73;FS=0.924;MLEAC=1;MLEAF=0.333;MQ=59.25;MQRankSum=0.358;QD=16.21;ReadPosRankSum=-1.583;SOR=0.772 GT:AD:DP:GQ:PL 0/0/1:35,32:67:9:1092,0,9,1244
+20 10094251 . T A 1290 . AC=2;AF=0.667;AN=3;BaseQRankSum=0.251;DP=67;FS=11.483;MLEAC=2;MLEAF=0.667;MQ=60.00;MQRankSum=0.000;QD=20.81;ReadPosRankSum=1.806;SOR=1.211 GT:AD:DP:GQ:PL 0/1/1:26,36:62:32:1300,32,0,781
+20 10094582 . A G 942.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.388;DP=73;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=59.43;MQRankSum=1.270;QD=13.65;ReadPosRankSum=-0.018;SOR=0.772 GT:AD:DP:GQ:PL 0/0/1:39,30:69:27:948,0,27,1346
+20 10094774 . C T 1048.04 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.784;DP=81;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=59.43;MQRankSum=0.962;QD=13.97;ReadPosRankSum=0.197;SOR=0.690 GT:AD:DP:GQ:PL 0/0/1:40,35:75:16:1054,0,16,1271
+20 10095432 . GTGATGATGA G 862.06 . AC=1;AF=0.333;AN=3;BaseQRankSum=1.063;DP=79;FS=1.102;MLEAC=1;MLEAF=0.333;MQ=54.53;MQRankSum=-4.431;QD=17.24;ReadPosRankSum=0.396;SOR=0.460 GT:AD:DP:GQ:PL 0/0/1:27,23:50:10:868,0,10,993
+20 10095741 . A G 1084.17 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.534;DP=72;FS=4.721;MLEAC=1;MLEAF=0.333;MQ=57.39;MQRankSum=-2.313;QD=15.49;ReadPosRankSum=-0.500;SOR=0.515 GT:AD:DP:GQ:PL 0/0/1:36,34:70:7:1090,0,7,1218
+20 10096293 . C T 1358.56 . AC=2;AF=0.667;AN=3;BaseQRankSum=4.664;DP=79;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=58.64;MQRankSum=1.397;QD=18.11;ReadPosRankSum=-1.135;SOR=0.638 GT:AD:DP:GQ:PL 0/1/1:37,38:75:3:1366,3,0,1240
+20 10096596 . C T 1568.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=2.728;DP=91;FS=0.000;MLEAC=2;MLEAF=0.667;MQ=58.82;MQRankSum=0.612;QD=18.03;ReadPosRankSum=-0.170;SOR=0.640 GT:AD:DP:GQ:PL 0/1/1:40,47:87:20:1579,20,0,1261
+20 10096768 . A C 1687.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=-2.764;DP=96;FS=3.983;MLEAC=2;MLEAF=0.667;MQ=59.28;MQRankSum=-1.609;QD=18.55;ReadPosRankSum=0.613;SOR=0.445 GT:AD:DP:GQ:PL 0/1/1:42,49:91:21:1698,21,0,1440
+20 10096899 . G T 1617.18 . AC=2;AF=0.667;AN=3;BaseQRankSum=2.755;DP=84;FS=13.441;MLEAC=2;MLEAF=0.667;MQ=59.28;MQRankSum=-1.677;QD=19.48;ReadPosRankSum=0.422;SOR=1.954 GT:AD:DP:GQ:PL 0/1/1:40,43:83:9:1627,9,0,1503
+20 10096905 . TA T 1610.75 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.755;DP=86;FS=11.056;MLEAC=1;MLEAF=0.333;MQ=59.30;MQRankSum=-1.739;QD=18.73;ReadPosRankSum=0.461;SOR=1.761 GT:AD:DP:GQ:PL 0/0/1:43,43:86:0:1616,0,0,1601
+20 10096933 . G C 1521.04 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.914;DP=89;FS=19.713;MLEAC=1;MLEAF=0.333;MQ=59.32;MQRankSum=-1.840;QD=17.09;ReadPosRankSum=0.383;SOR=1.420 GT:AD:DP:GQ:PL 0/0/1:47,42:89:16:1527,0,16,1749
+20 10096958 . G A 1769.94 . AC=2;AF=0.667;AN=3;BaseQRankSum=2.697;DP=93;FS=19.322;MLEAC=2;MLEAF=0.667;MQ=59.35;MQRankSum=-1.664;QD=19.24;ReadPosRankSum=-1.593;SOR=1.431 GT:AD:DP:GQ:PL 0/1/1:44,48:92:12:1780,12,0,1604
+20 10097075 . T G 1445.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=-2.533;DP=96;FS=6.613;MLEAC=2;MLEAF=0.667;MQ=58.14;MQRankSum=-1.389;QD=15.72;ReadPosRankSum=0.235;SOR=0.628 GT:AD:DP:GQ:PL 0/1/1:44,48:92:11:1456,11,0,1464
+20 10097101 . C CTTT 1116.97 . AC=2;AF=0.667;AN=3;BaseQRankSum=-0.954;DP=81;FS=7.014;MLEAC=1;MLEAF=0.333;MQ=58.04;MQRankSum=-1.720;QD=16.67;ReadPosRankSum=3.010;SOR=0.519 GT:AD:DP:GQ:PL 0/1/1:33,34:67:2:1117,2,0,1201
+20 10097436 . CTTTTCTTTCTTTCTTTCTTTCTTTCTTTCTTTCTTT C 1097.98 . AC=1;AF=0.333;AN=3;BaseQRankSum=1.650;DP=90;FS=1.851;MLEAC=1;MLEAF=0.333;MQ=54.34;MQRankSum=-6.464;QD=12.34;ReadPosRankSum=-3.097;SOR=0.948 GT:AD:DP:GQ:PL 0/0/1:57,32:89:75:1104,0,75,2258
+20 10097437 . TTTTC *,T 940.61 . AC=1,2;AF=0.333,0.667;AN=3;DP=78;FS=0.000;MLEAC=1,2;MLEAF=0.333,0.667;MQ=53.68;QD=17.10;SOR=1.877 GT:AD:DP:GQ:PL 1/2/2:0,32,23:55:42:2124,965,945,1801,1234,70,42,1164,0,1123
+20 10097626 . C A 649.03 . AC=1;AF=0.333;AN=3;BaseQRankSum=1.085;DP=54;FS=2.701;MLEAC=1;MLEAF=0.333;MQ=58.00;MQRankSum=-1.331;QD=13.52;ReadPosRankSum=1.015;SOR=0.324 GT:AD:DP:GQ:PL 0/0/1:28,20:48:23:655,0,23,957
+20 10097789 . T C 713.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.157;DP=60;FS=5.374;MLEAC=1;MLEAF=0.333;MQ=58.05;MQRankSum=-2.805;QD=12.51;ReadPosRankSum=0.220;SOR=0.756 GT:AD:DP:GQ:PL 0/0/1:34,23:57:33:719,0,33,1192
+20 10097928 . G A 583.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=-1.203;DP=37;FS=1.315;MLEAC=1;MLEAF=0.333;MQ=58.11;MQRankSum=-1.654;QD=16.22;ReadPosRankSum=-0.079;SOR=0.951 GT:AD:DP:GQ:PL 0/1/1:17,19:36:6:593,6,0,580
+20 10098110 . G C 603.21 . AC=1;AF=0.333;AN=3;BaseQRankSum=2.510;DP=36;FS=6.658;MLEAC=1;MLEAF=0.333;MQ=58.71;MQRankSum=-1.477;QD=16.76;ReadPosRankSum=-0.730;SOR=0.069 GT:AD:DP:GQ:PL 0/0/1:19,17:36:6:609,0,6,721
+20 10098135 . C A 500.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.155;DP=39;FS=4.449;MLEAC=1;MLEAF=0.333;MQ=59.65;MQRankSum=1.563;QD=12.82;ReadPosRankSum=-0.591;SOR=0.070 GT:AD:DP:GQ:PL 0/0/1:25,14:39:33:506,0,33,971
+20 10098219 . TATATATA T 327.08 . AC=1;AF=0.333;AN=3;BaseQRankSum=3.147;DP=21;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=55.94;MQRankSum=-0.205;QD=15.58;ReadPosRankSum=0.427;SOR=0.465 GT:AD:DP:GQ:PL 0/0/1:12,9:21:9:333,0,9,460
+20 10098237 . A T 263.79 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.006;DP=14;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=53.89;MQRankSum=-1.885;QD=18.84;ReadPosRankSum=1.118;SOR=0.693 GT:AD:DP:GQ:PL 0/0/1:7,7:14:0:269,0,0,269
+20 10098265 . T C 153.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=1.834;DP=6;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=41.96;MQRankSum=-1.834;QD=25.66;ReadPosRankSum=0.842;SOR=1.329 GT:AD:DP:GQ:PL 0/1/1:2,4:6:6:163,6,0,60
+20 10098885 . C CA 462.08 . AC=1;AF=0.333;AN=3;BaseQRankSum=0.165;DP=33;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=49.73;MQRankSum=-4.449;QD=14.91;ReadPosRankSum=-0.954;SOR=0.518 GT:AD:DP:GQ:PL 0/0/1:17,14:31:9:468,0,9,569
+20 10098945 . T C 426.92 . AC=2;AF=0.667;AN=3;BaseQRankSum=1.475;DP=22;FS=3.882;MLEAC=2;MLEAF=0.667;MQ=51.15;MQRankSum=-2.504;QD=19.41;ReadPosRankSum=1.038;SOR=2.368 GT:AD:DP:GQ:PL 0/1/1:9,13:22:13:437,13,0,249
+20 10098987 . C T 394.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=3.127;DP=25;FS=7.005;MLEAC=1;MLEAF=0.333;MQ=51.36;MQRankSum=-2.734;QD=16.46;ReadPosRankSum=0.436;SOR=2.925 GT:AD:DP:GQ:PL 0/1/1:11,13:24:6:404,6,0,347
+20 10099029 . T C 363.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.809;DP=30;FS=1.987;MLEAC=1;MLEAF=0.333;MQ=52.93;MQRankSum=-3.731;QD=12.52;ReadPosRankSum=-1.224;SOR=1.609 GT:AD:DP:GQ:PL 0/0/1:19,10:29:27:369,0,27,774
+20 10099034 . C A 363.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=2.757;DP=29;FS=1.987;MLEAC=1;MLEAF=0.333;MQ=53.57;MQRankSum=-3.731;QD=12.52;ReadPosRankSum=-1.850;SOR=1.609 GT:AD:DP:GQ:PL 0/0/1:19,10:29:27:369,0,27,774
+20 10099044 . A C 363.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.148;DP=29;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=51.81;MQRankSum=-4.533;QD=12.52;ReadPosRankSum=-2.207;SOR=0.892 GT:AD:DP:GQ:PL 0/0/1:19,10:29:27:369,0,27,774
+20 10099046 . T C 330.03 . AC=1;AF=0.333;AN=3;BaseQRankSum=-2.165;DP=24;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=49.94;MQRankSum=-4.418;QD=13.75;ReadPosRankSum=-2.297;SOR=0.515 GT:AD:DP:GQ:PL 0/0/1:15,9:24:18:336,0,18,606
+20 10099055 . T C 286.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.554;DP=25;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=50.20;MQRankSum=-4.179;QD=11.44;ReadPosRankSum=-1.970;SOR=0.770 GT:AD:DP:GQ:PL 0/0/1:17,8:25:27:292,0,27,680
+20 10099079 . C T 159.02 . AC=1;AF=0.333;AN=3;BaseQRankSum=1.434;DP=30;FS=1.826;MLEAC=1;MLEAF=0.333;MQ=51.49;MQRankSum=-2.614;QD=5.30;ReadPosRankSum=0.969;SOR=1.329 GT:AD:DP:GQ:PL 0/0/1:24,6:30:54:165,0,54,906
+20 10099111 . T TTTTGTTTG 683.03 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.207;DP=52;FS=1.206;MLEAC=1;MLEAF=0.333;MQ=53.85;MQRankSum=-0.973;QD=16.26;ReadPosRankSum=-1.860;SOR=0.967 GT:AD:DP:GQ:PL 0/0/1:23,19:42:12:689,0,12,798
+20 10099140 . G T 1012.36 . AC=2;AF=0.667;AN=3;BaseQRankSum=-0.114;DP=64;FS=2.241;MLEAC=1;MLEAF=0.333;MQ=55.86;MQRankSum=-2.469;QD=16.33;ReadPosRankSum=0.846;SOR=1.114 GT:AD:DP:GQ:PL 0/1/1:30,32:62:8:1022,8,0,920
+20 10099190 . G T 1042.41 . AC=1;AF=0.333;AN=3;BaseQRankSum=-0.034;DP=65;FS=0.000;MLEAC=1;MLEAF=0.333;MQ=57.56;MQRankSum=-1.711;QD=16.04;ReadPosRankSum=-1.260;SOR=0.776 GT:AD:DP:GQ:PL 0/0/1:33,32:65:3:1048,0,3,1139
+20 10099220 . A G 596.04 . AC=1;AF=0.333;AN=3;BaseQRankSum=-1.664;DP=47;FS=1.137;MLEAC=1;MLEAF=0.333;MQ=57.74;MQRankSum=-2.596;QD=13.25;ReadPosRankSum=0.629;SOR=0.519 GT:AD:DP:GQ:PL 0/0/1:25,20:45:16:602,0,16,870
+20 10099250 . G A 716.96 . AC=2;AF=0.667;AN=3;BaseQRankSum=3.170;DP=39;FS=7.195;MLEAC=2;MLEAF=0.667;MQ=56.89;MQRankSum=-2.272;QD=19.38;ReadPosRankSum=0.583;SOR=0.162 GT:AD:DP:GQ:PL 0/1/1:16,21:37:16:727,16,0,422
+20 10099535 . G A 1357.01 . AC=2;AF=0.667;AN=3;BaseQRankSum=5.034;DP=68;FS=2.172;MLEAC=2;MLEAF=0.667;MQ=59.04;MQRankSum=-1.418;QD=20.88;ReadPosRankSum=-0.777;SOR=0.408 GT:AD:DP:GQ:PL 0/1/1:26,39:65:39:1367,39,0,689
+20 10099565 . C T 1356.98 . AC=2;AF=0.667;AN=3;BaseQRankSum=4.595;DP=70;FS=8.736;MLEAC=2;MLEAF=0.667;MQ=59.40;MQRankSum=-1.266;QD=19.67;ReadPosRankSum=1.225;SOR=0.191 GT:AD:DP:GQ:PL 0/1/1:31,38:69:21:1367,21,0,986
+20 10099755 . C T 1105.41 . AC=1;AF=0.333;AN=3;BaseQRankSum=1.550;DP=66;FS=2.074;MLEAC=1;MLEAF=0.333;MQ=59.37;MQRankSum=-0.022;QD=17.01;ReadPosRankSum=-0.230;SOR=0.446 GT:AD:DP:GQ:PL 0/0/1:33,32:65:3:1111,0,3,1133
+20 10099832 . A G 1087.03 . AC=1;AF=0.333;AN=3;BaseQRankSum=-4.563;DP=75;FS=4.632;MLEAC=1;MLEAF=0.333;MQ=59.00;MQRankSum=0.869;QD=15.10;ReadPosRankSum=-1.023;SOR=0.871 GT:AD:DP:GQ:PL 0/0/1:39,33:72:18:1093,0,18,1421
diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testMismatchPloidyRegions.bed b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testMismatchPloidyRegions.bed
new file mode 100644
index 00000000000..9cec9490ffe
--- /dev/null
+++ b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testMismatchPloidyRegions.bed
@@ -0,0 +1,3 @@
+chr20 10000000 10010000 2
+20 10020000 10030000 4
+20 10060000 10080000 1
diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testNegativePloidyRegions.bed b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testNegativePloidyRegions.bed
new file mode 100644
index 00000000000..0020760881a
--- /dev/null
+++ b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testNegativePloidyRegions.bed
@@ -0,0 +1,3 @@
+20 10000000 10010000 -2
+20 10020000 10030000 4
+20 10060000 10080000 1
diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testNonIntegerPloidyRegions.bed b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testNonIntegerPloidyRegions.bed
new file mode 100644
index 00000000000..c294c72b668
--- /dev/null
+++ b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testNonIntegerPloidyRegions.bed
@@ -0,0 +1,3 @@
+20 10000000 10010000 hi
+20 10020000 10030000 .
+20 10060000 10080000 1
diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testPloidyRegions.bed b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testPloidyRegions.bed
new file mode 100644
index 00000000000..2e652e2566b
--- /dev/null
+++ b/src/test/resources/org/broadinstitute/hellbender/tools/haplotypecaller/testPloidyRegions.bed
@@ -0,0 +1,4 @@
+20 10000000 10010000 2
+20 10020000 10030000 4
+20 10022000 10026000 2
+20 10060000 10080000 1