From ae1cd9b992d657c9d52db8e26cab3c374294abc3 Mon Sep 17 00:00:00 2001
From: Laura Gauthier
Date: Mon, 22 Jul 2019 16:11:48 -0400
Subject: [PATCH] Fixes for tests
---
.../hellbender/engine/FeatureManager.java | 2 +-
.../hellbender/engine/VariantWalker.java | 10 ----
.../tools/evoquer/GnarlyGenotyperEngine.java | 4 +-
.../tools/genomicsdb/GenomicsDBOptions.java | 2 +-
.../tools/genomicsdb/GenomicsDBUtils.java | 2 +-
.../tools/walkers/GnarlyGenotyper.java | 41 +++++++-------
.../walkers/annotator/AnnotationUtils.java | 13 ++---
.../walkers/annotator/RMSMappingQuality.java | 29 +++++-----
.../allelespecific/AS_QualByDepth.java | 6 +--
.../allelespecific/AS_RMSMappingQuality.java | 4 +-
.../allelespecific/AS_RankSumTest.java | 2 +-
.../walkers/variantutils/ReblockGVCF.java | 4 +-
.../hellbender/utils/GenotypeUtils.java | 30 +++++------
.../utils/variant/GATKVCFConstants.java | 2 +-
.../utils/variant/GATKVCFHeaderLines.java | 2 +-
.../annotator/RMSMappingQualityUnitTest.java | 4 +-
...S_Annotations.keepRawCombined.expected.vcf | 51 +++++++++---------
...hailOutput.chr20snippet.sites_only.vcf.idx | Bin 0 -> 154586 bytes
18 files changed, 98 insertions(+), 110 deletions(-)
create mode 100644 src/test/resources/org/broadinstitute/hellbender/tools/walkers/GnarlyGenotyper/hailOutput.chr20snippet.sites_only.vcf.idx
diff --git a/src/main/java/org/broadinstitute/hellbender/engine/FeatureManager.java b/src/main/java/org/broadinstitute/hellbender/engine/FeatureManager.java
index 4b21f4ba893..7aaa1e8507c 100644
--- a/src/main/java/org/broadinstitute/hellbender/engine/FeatureManager.java
+++ b/src/main/java/org/broadinstitute/hellbender/engine/FeatureManager.java
@@ -208,7 +208,7 @@ private void initializeFeatureSources( final int featureQueryLookahead, final Co
if ( featureInput != null ) {
final Class extends Feature> featureType = getFeatureTypeForFeatureInputField(featureArgument.getKey());
addToFeatureSources(featureQueryLookahead, featureInput, featureType, cloudPrefetchBuffer, cloudIndexPrefetchBuffer,
- toolInstance instanceof GATKTool ? ((GATKTool) toolInstance).getGenomicsDBOptions() : null);
+ toolInstance instanceof VariantWalker ? ((VariantWalker) toolInstance).getGenomicsDBOptions() : null);
}
}
}
diff --git a/src/main/java/org/broadinstitute/hellbender/engine/VariantWalker.java b/src/main/java/org/broadinstitute/hellbender/engine/VariantWalker.java
index 3d0e8b51cd6..3fb19ce414a 100644
--- a/src/main/java/org/broadinstitute/hellbender/engine/VariantWalker.java
+++ b/src/main/java/org/broadinstitute/hellbender/engine/VariantWalker.java
@@ -7,10 +7,8 @@
import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions;
import org.broadinstitute.hellbender.engine.filters.CountingReadFilter;
import org.broadinstitute.hellbender.exceptions.GATKException;
-import org.broadinstitute.hellbender.tools.genomicsdb.GenomicsDBOptions;
import org.broadinstitute.hellbender.utils.SimpleInterval;
-import java.nio.file.Path;
import java.util.Spliterator;
/**
@@ -146,12 +144,4 @@ protected final void onShutdown() {
if ( drivingVariants != null )
drivingVariants.close();
}
-
- /**
- * Does this tool need sample genotypes to be called if reading from a GenomicsDB?
- * @return if false, GTs remain no-calls, as in CombineGVCFs
- */
- protected boolean doGenotypeCalling() {
- return false;
- }
}
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/evoquer/GnarlyGenotyperEngine.java b/src/main/java/org/broadinstitute/hellbender/tools/evoquer/GnarlyGenotyperEngine.java
index 6afd517644b..f304fd5d9bc 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/evoquer/GnarlyGenotyperEngine.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/evoquer/GnarlyGenotyperEngine.java
@@ -68,7 +68,7 @@ public GnarlyGenotyperEngine(final boolean keepAllSites, final int maxAltAlleles
}
@SuppressWarnings({"unchecked", "rawtypes"})
- public static VariantContext finalizeGenotype(final VariantContext variant, final VariantContextBuilder annotationDBBuilder) {
+ public VariantContext finalizeGenotype(final VariantContext variant, final VariantContextBuilder annotationDBBuilder) {
//GenomicsDB or Evoquer merged all the annotations, but we still need to finalize MQ and QD annotations
//return a VC with the finalized annotations and dbBuilder gets the raw annotations for the database
@@ -245,7 +245,7 @@ public static VariantContext finalizeGenotype(final VariantContext variant, fina
* @param vc the input variant with NON_REF
* @return a GenotypesContext
*/
- private static GenotypesContext iterateOnGenotypes(final VariantContext vc, final List targetAlleles,
+ private GenotypesContext iterateOnGenotypes(final VariantContext vc, final List targetAlleles,
final Map targetAlleleCounts, final int[] SBsum,
final boolean nonRefReturned, final boolean summarizePLs,
final int[] rawGenotypeCounts) {
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBOptions.java b/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBOptions.java
index db37250cdbf..32516b9b2fb 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBOptions.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBOptions.java
@@ -23,7 +23,7 @@ public GenomicsDBOptions(final Path reference) {
/**
*
* @param reference Path to a reference. May be null. Needed only for reading from GenomicsDB.
- * @param callGenotypes Indicated whether GenomicsDB should return called genotypes
+ * @param callGenotypes Indicates whether GenomicsDB should return called genotypes
*/
public GenomicsDBOptions(final Path reference, final boolean callGenotypes, final int maxAlternateAlleles) {
this.reference = reference;
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBUtils.java b/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBUtils.java
index 3095874503a..cb1b41193e9 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBUtils.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/genomicsdb/GenomicsDBUtils.java
@@ -103,7 +103,7 @@ public static GenomicsDBExportConfiguration.ExportConfiguration createExportConf
//Update combine operations for GnarlyGenotyper
//Note that this MQ format is deprecated, but was used by the prototype version of ReblockGVCF
vidMapPB = updateINFOFieldCombineOperation(vidMapPB, fieldNameToIndexInVidFieldsList,
- GATKVCFConstants.MAPPING_QUALITY_DEPTH, "sum");
+ GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED, "sum");
vidMapPB = updateINFOFieldCombineOperation(vidMapPB, fieldNameToIndexInVidFieldsList,
GATKVCFConstants.RAW_QUAL_APPROX_KEY, "sum");
vidMapPB = updateINFOFieldCombineOperation(vidMapPB, fieldNameToIndexInVidFieldsList,
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/GnarlyGenotyper.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/GnarlyGenotyper.java
index 39dbea2f2a9..88ae435e6c9 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/GnarlyGenotyper.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/GnarlyGenotyper.java
@@ -70,8 +70,10 @@
*
*
* Caveats
- * - Only GenomicsDB instances can be used as input for this tool.
- * - To generate all the annotations necessary for VQSR, input variants must include the QUALapprox, VarDP and MQ_DP
+ *
+ * - This tool does not subset to the best alternate alleles and can return highly, highly multialleic variants (>1000 alts for cohorts in the 10s of thousands). Only
+ * GenomicsDB instances should be used as input for this tool, because GenomicsDB will drop PLs for such sites to avoid excessive vcf size.
+ * - To generate all the annotations necessary for VQSR, input variants must include the QUALapprox, VarDP and MQ_DP annotations
*
*
* Special note on ploidy
@@ -82,6 +84,7 @@
oneLineSummary = "Perform \"quick and dirty\" joint genotyping on one or more samples pre-called with HaplotypeCaller",
programGroup = ShortVariantDiscoveryProgramGroup.class)
@DocumentedFeature
+@BetaFeature
public final class GnarlyGenotyper extends VariantWalker {
private static final OneShotLogger warning = new OneShotLogger(GnarlyGenotyper.class);
@@ -90,13 +93,6 @@ public final class GnarlyGenotyper extends VariantWalker {
public static final int PIPELINE_MAX_ALT_COUNT = 6;
- private static GnarlyGenotyperEngine genotyperEngine;
-
- private final RMSMappingQuality mqCalculator = RMSMappingQuality.getInstance();
-
- private final Set> allASAnnotations = new HashSet<>();
-
-
@Argument(fullName = StandardArgumentDefinitions.OUTPUT_LONG_NAME, shortName = StandardArgumentDefinitions.OUTPUT_SHORT_NAME,
doc="File to which variants should be written", optional=false)
private File outputFile;
@@ -141,7 +137,10 @@ public final class GnarlyGenotyper extends VariantWalker {
private final DbsnpArgumentCollection dbsnp = new DbsnpArgumentCollection();
private VariantContextWriter vcfWriter;
- private VariantContextWriter annotationDBwriter = null;
+ private VariantContextWriter annotationDatabaseWriter = null;
+ private GnarlyGenotyperEngine genotyperEngine;
+ private final RMSMappingQuality mqCalculator = RMSMappingQuality.getInstance();
+ private final Set> allAlleleSpecificAnnotations = new HashSet<>();
/** these are used when {@link #onlyOutputCallsStartingInIntervals) is true */
private List intervals;
@@ -194,10 +193,10 @@ public void onTraversalStart() {
Reflections reflections = new Reflections("org.broadinstitute.hellbender.tools.walkers.annotator.allelespecific");
//not InfoFieldAnnotation.class because we don't want AS_InbreedingCoeff
- allASAnnotations.addAll(reflections.getSubTypesOf(AS_StrandBiasTest.class));
- allASAnnotations.addAll(reflections.getSubTypesOf(AS_RankSumTest.class));
- allASAnnotations.add(AS_RMSMappingQuality.class);
- allASAnnotations.add(AS_QualByDepth.class);
+ allAlleleSpecificAnnotations.addAll(reflections.getSubTypesOf(AS_StrandBiasTest.class));
+ allAlleleSpecificAnnotations.addAll(reflections.getSubTypesOf(AS_RankSumTest.class));
+ allAlleleSpecificAnnotations.add(AS_RMSMappingQuality.class);
+ allAlleleSpecificAnnotations.add(AS_QualByDepth.class);
}
private void setupVCFWriter(VCFHeader inputVCFHeader, SampleList samples) {
@@ -230,7 +229,7 @@ private void setupVCFWriter(VCFHeader inputVCFHeader, SampleList samples) {
vcfWriter = createVCFWriter(outputFile);
if (outputDbName != null) {
- annotationDBwriter = createVCFWriter(new File(outputDbName));
+ annotationDatabaseWriter = createVCFWriter(new File(outputDbName));
}
final Set sampleNameSet = samples.asSetOfSamples();
@@ -243,7 +242,7 @@ private void setupVCFWriter(VCFHeader inputVCFHeader, SampleList samples) {
final VCFHeader vcfHeader = new VCFHeader(headerLines, new TreeSet<>(sampleNameSet));
vcfWriter.writeHeader(vcfHeader);
if (outputDbName != null) {
- annotationDBwriter.writeHeader(dbHeader);
+ annotationDatabaseWriter.writeHeader(dbHeader);
}
}
@@ -271,12 +270,12 @@ public void apply(VariantContext variant, ReadsContext reads, ReferenceContext r
}
final VariantContextBuilder annotationDBBuilder = new VariantContextBuilder(variant);
- final VariantContext finalizedVC = GnarlyGenotyperEngine.finalizeGenotype(variant, annotationDBBuilder);
+ final VariantContext finalizedVC = genotyperEngine.finalizeGenotype(variant, annotationDBBuilder);
if (finalizedVC != null && (!onlyOutputCallsStartingInIntervals || intervals.stream().anyMatch(interval -> interval.contains(variantStart)))) {
vcfWriter.add(finalizedVC);
}
- if (annotationDBwriter != null) {
- annotationDBwriter.add(annotationDBBuilder.make()); //we don't seem to have a sites-only option anymore, so do it manually
+ if (annotationDatabaseWriter != null) {
+ annotationDatabaseWriter.add(annotationDBBuilder.make()); //we don't seem to have a sites-only option anymore, so do it manually
}
}
@@ -285,8 +284,8 @@ public void closeTool() {
if ( vcfWriter != null) {
vcfWriter.close();
}
- if (annotationDBwriter != null) {
- annotationDBwriter.close();
+ if (annotationDatabaseWriter != null) {
+ annotationDatabaseWriter.close();
}
}
}
\ No newline at end of file
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AnnotationUtils.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AnnotationUtils.java
index a0807fdedc2..70e2f52a98b 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AnnotationUtils.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/AnnotationUtils.java
@@ -15,16 +15,13 @@
import java.util.*;
public final class AnnotationUtils {
- public static final String ALLELE_SPECIFIC_SPLIT_DELIM = "\\|"; //String.split takes a regex, so we need to escape the pipe
public static final String ALLELE_SPECIFIC_PRINT_DELIM = "|";
public static final String ALLELE_SPECIFIC_REDUCED_DELIM = ",";
-
- private AnnotationUtils(){}
-
+ public static final String ALLELE_SPECIFIC_SPLIT_REGEX = "\\|"; //String.split takes a regex, so we need to escape the pipe
+ public static final String BRACKET_REGEX = "\\[|\\]";
public static final String LIST_DELIMITER = ",";
- public static final String AS_SPLIT_REGEX = "\\|"; //String.split takes a regex, so we need to escape the pipe
- public static final String PRINT_DELIM = "|";
+ private AnnotationUtils(){}
/**
* Helper function to parse the list into the annotation string
@@ -54,7 +51,7 @@ public static String encodeStringList( final List stringList) {
* @return a comma-separated String
*/
public static String encodeAnyASList( final List> somethingList) {
- return StringUtils.join(somethingList, ALLELE_SPECIFIC_PRINT_DELIM).replaceAll("\\[|\\]", ""); //Who actually wants brackets at the ends of their string? Who???
+ return StringUtils.join(somethingList, ALLELE_SPECIFIC_PRINT_DELIM).replaceAll(BRACKET_REGEX, ""); //Who actually wants brackets at the ends of their string? Who???
}
/**
@@ -90,6 +87,6 @@ public static List getAlleleLengthListOfString(String rawDataString) {
if (rawDataString.startsWith("[")) {
rawDataString = rawDataString.substring(1, rawDataString.length() - 1).replaceAll("\\s", "");
}
- return Arrays.asList(rawDataString.split(ALLELE_SPECIFIC_SPLIT_DELIM));
+ return Arrays.asList(rawDataString.split(ALLELE_SPECIFIC_SPLIT_REGEX));
}
}
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/RMSMappingQuality.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/RMSMappingQuality.java
index 2ee46af62bf..b7d7c979e33 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/RMSMappingQuality.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/RMSMappingQuality.java
@@ -55,6 +55,7 @@ public final class RMSMappingQuality extends InfoFieldAnnotation implements Stan
private static final int NUM_LIST_ENTRIES = 2;
private static final int SUM_OF_SQUARES_INDEX = 0;
private static final int TOTAL_DEPTH_INDEX = 1;
+ private static final String OUTPUT_PRECISION = "%.2f";
@Override
public String getRawKeyName() { return GATKVCFConstants.RAW_MAPPING_QUALITY_WITH_DEPTH_KEY;} //new key for the two-value MQ data to prevent version mismatch catastrophes
@@ -126,10 +127,10 @@ public Map finalizeRawData(final VariantContext vc, final Varian
else if (vc.hasAttribute(getDeprecatedRawKeyName())) {
rawMQdata = vc.getAttributeAsString(getDeprecatedRawKeyName(), null);
//the original version of ReblockGVCF produces a different MQ format -- try to handle that gracefully here just in case those files go through GenotypeGVCFs
- if (vc.hasAttribute("MQ_DP")) {
- logger.warn("Presence of MQ_DP key indicates that this tool may be running on an older output of ReblockGVCF " +
+ if (vc.hasAttribute(GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED)) {
+ logger.warn("Presence of " + GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED + " key indicates that this tool may be running on an older output of ReblockGVCF " +
"that may not have compatible annotations with this GATK version. Attempting to reformat MQ data.");
- final String rawMQdepth = vc.getAttributeAsString("MQ_DP",null);
+ final String rawMQdepth = vc.getAttributeAsString(GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED,null);
if (rawMQdepth == null) {
throw new UserException.BadInput("MQ annotation data is not properly formatted. This version expects a " +
"long tuple of sum of squared MQ values and total reads over variant genotypes.");
@@ -159,7 +160,7 @@ else if (vc.hasAttribute(getDeprecatedRawKeyName())) {
}
private String makeFinalizedAnnotationString(final long numOfReads, final long sumOfSquaredMQs) {
- return String.format("%.2f", Math.sqrt(sumOfSquaredMQs/(double)numOfReads));
+ return String.format(OUTPUT_PRECISION, Math.sqrt(sumOfSquaredMQs/(double)numOfReads));
}
@@ -216,7 +217,7 @@ public Map annotate(final ReferenceContext ref,
@VisibleForTesting
static String formattedValue(double rms) {
- return String.format("%.2f", rms);
+ return String.format(OUTPUT_PRECISION, rms);
}
/**
@@ -229,11 +230,11 @@ static String formattedValue(double rms) {
public VariantContext finalizeRawMQ(final VariantContext vc) {
final String rawMQdata = vc.getAttributeAsString(getRawKeyName(), null);
if (rawMQdata == null) {
- if (!vc.hasAttribute(GATKVCFConstants.MAPPING_QUALITY_DEPTH)) {
+ if (!vc.hasAttribute(GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED)) {
return vc;
}
- if (vc.hasAttribute(GATKVCFConstants.MAPPING_QUALITY_DEPTH)) {
- final int numOfReads = vc.getAttributeAsInt(GATKVCFConstants.MAPPING_QUALITY_DEPTH, getNumOfReads(vc)); //MQ_DP is an undocumented hack for the Gnarly Pipeline -- improved version uses RAW_MQ_and_DP tuple format (see #4969)
+ if (vc.hasAttribute(GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED)) {
+ final int numOfReads = vc.getAttributeAsInt(GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED, getNumOfReads(vc)); //MQ_DP is an undocumented hack for the Gnarly Pipeline -- improved version uses RAW_MQ_and_DP tuple format (see #4969)
final String deprecatedRawMQdata = vc.getAttributeAsString(getDeprecatedRawKeyName(), null);
final double squareSum = parseDeprecatedRawDataString(deprecatedRawMQdata);
final double rms = Math.sqrt(squareSum / (double)numOfReads);
@@ -265,7 +266,7 @@ private void parseRawDataString(ReducibleAnnotationData> myData) {
//TODO once the AS annotations have been added genotype gvcfs this can be removed for a more generic approach
private static List parseRawDataString(String rawDataString) {
try {
- final String[] parsed = rawDataString.trim().replaceAll("\\[|\\]", "").split(", *");
+ final String[] parsed = rawDataString.trim().replaceAll(AnnotationUtils.BRACKET_REGEX, "").split(", *");
if (parsed.length != NUM_LIST_ENTRIES) {
throw new UserException.BadInput("Raw value for annotation has " + parsed.length + " values, expected " + NUM_LIST_ENTRIES);
}
@@ -300,8 +301,8 @@ private static double parseDeprecatedRawDataString(String rawDataString) {
*/
@VisibleForTesting
private static int getNumOfReads(final VariantContext vc) {
- if(vc.hasAttribute(GATKVCFConstants.MAPPING_QUALITY_DEPTH)) {
- int mqDP = vc.getAttributeAsInt(GATKVCFConstants.MAPPING_QUALITY_DEPTH, 0);
+ if(vc.hasAttribute(GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED)) {
+ int mqDP = vc.getAttributeAsInt(GATKVCFConstants.MAPPING_QUALITY_DEPTH_DEPRECATED, 0);
if (mqDP > 0) {
return mqDP;
}
@@ -356,9 +357,9 @@ private static boolean hasReferenceDepth(Genotype gt) {
static long getNumOfReads(final VariantContext vc,
final ReadLikelihoods likelihoods) {
if(vc.hasAttribute(GATKVCFConstants.RAW_MAPPING_QUALITY_WITH_DEPTH_KEY)) {
- List MQtuple = getAttributeAsLongList(vc, GATKVCFConstants.RAW_MAPPING_QUALITY_WITH_DEPTH_KEY,0L);
- if (MQtuple.get(TOTAL_DEPTH_INDEX) > 0) {
- return MQtuple.get(TOTAL_DEPTH_INDEX);
+ List mqTuple = getAttributeAsLongList(vc, GATKVCFConstants.RAW_MAPPING_QUALITY_WITH_DEPTH_KEY,0L);
+ if (mqTuple.get(TOTAL_DEPTH_INDEX) > 0) {
+ return mqTuple.get(TOTAL_DEPTH_INDEX);
}
}
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_QualByDepth.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_QualByDepth.java
index 9db775d10c5..42066f1eecd 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_QualByDepth.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_QualByDepth.java
@@ -120,7 +120,7 @@ public Map finalizeRawData(VariantContext vc, VariantContext ori
final List standardDepth;
if (originalVC.hasAttribute(GATKVCFConstants.AS_VARIANT_DEPTH_KEY)) {
standardDepth = Arrays.stream(originalVC.getAttributeAsString(GATKVCFConstants.AS_VARIANT_DEPTH_KEY, "")
- .split(AnnotationUtils.AS_SPLIT_REGEX)).mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());
+ .split(AnnotationUtils.ALLELE_SPECIFIC_SPLIT_REGEX)).mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());
} else {
standardDepth = getAlleleDepths(genotypes);
}
@@ -192,7 +192,7 @@ public static String finalizeRawGVCFVarDPValues(final String rawAnnotationListWi
if (rawAnnotationListWithNonRef == null) {
return null;
}
- List dpValues = Arrays.asList(rawAnnotationListWithNonRef.split(AnnotationUtils.AS_SPLIT_REGEX));
+ List dpValues = Arrays.asList(rawAnnotationListWithNonRef.split(AnnotationUtils.ALLELE_SPECIFIC_SPLIT_REGEX));
if (dpValues.size() != expectedFinalAlleleCount + 1) { //we expect a nonRef allele
return null;
}
@@ -216,7 +216,7 @@ public static List parseQualList(final VariantContext vc) {
}
else if (vc.hasAttribute(GATKVCFConstants.AS_RAW_QUAL_APPROX_KEY)) {
String asQuals = vc.getAttributeAsString(GATKVCFConstants.AS_RAW_QUAL_APPROX_KEY, "").replaceAll("\\[\\]\\s","");
- String[] values = asQuals.split(AnnotationUtils.AS_SPLIT_REGEX);
+ String[] values = asQuals.split(AnnotationUtils.ALLELE_SPECIFIC_SPLIT_REGEX);
if (values.length != vc.getNAlleles()+1) { //plus one because the non-ref place holder is still around
throw new IllegalStateException("Number of AS_QUALapprox values doesn't match the number of alleles in the variant context.");
}
diff --git a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_RMSMappingQuality.java b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_RMSMappingQuality.java
index 386e3b1616e..5eaf0ed8d28 100644
--- a/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_RMSMappingQuality.java
+++ b/src/main/java/org/broadinstitute/hellbender/tools/walkers/annotator/allelespecific/AS_RMSMappingQuality.java
@@ -139,7 +139,7 @@ public void combineAttributeMap(final ReducibleAnnotationData toAdd, fin
protected void parseRawDataString(final ReducibleAnnotationData myData) {
final String rawDataString = myData.getRawData();
//get per-allele data by splitting on allele delimiter
- final String[] rawDataPerAllele = rawDataString.split(AnnotationUtils.AS_SPLIT_REGEX);
+ final String[] rawDataPerAllele = rawDataString.split(AnnotationUtils.ALLELE_SPECIFIC_SPLIT_REGEX);
for (int i=0; i vcAlleles, final Map myDat
}
//TODO handle misformatted annotation field more gracefully
//rawDataPerAllele is a per-sample list of the rank sum statistic for each allele
- final String[] rawDataPerAllele = rawDataNoBrackets.split(AnnotationUtils.ALLELE_SPECIFIC_SPLIT_DELIM);
+ final String[] rawDataPerAllele = rawDataNoBrackets.split(AnnotationUtils.ALLELE_SPECIFIC_SPLIT_REGEX);
for (int i=0; i annotate = new AS_RMSMappingQuality().annotateRawData(referenceContext, vc, likelihoods);
- final String[] split =((String)annotate.get(GATKVCFConstants.AS_RAW_RMS_MAPPING_QUALITY_KEY)).split(AnnotationUtils.AS_SPLIT_REGEX);
+ final String[] split =((String)annotate.get(GATKVCFConstants.AS_RAW_RMS_MAPPING_QUALITY_KEY)).split(AnnotationUtils.ALLELE_SPECIFIC_SPLIT_REGEX);
Assert.assertEquals(split.length, 2);
Assert.assertEquals(split[0], String.format("%.2f", 0.0));
Assert.assertEquals(split[1], String.format("%.2f", 0.0));
diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/walkers/GenotypeGVCFs/AS_Annotations.keepRawCombined.expected.vcf b/src/test/resources/org/broadinstitute/hellbender/tools/walkers/GenotypeGVCFs/AS_Annotations.keepRawCombined.expected.vcf
index ff755f200f3..20cf82bdbc0 100644
--- a/src/test/resources/org/broadinstitute/hellbender/tools/walkers/GenotypeGVCFs/AS_Annotations.keepRawCombined.expected.vcf
+++ b/src/test/resources/org/broadinstitute/hellbender/tools/walkers/GenotypeGVCFs/AS_Annotations.keepRawCombined.expected.vcf
@@ -12,7 +12,7 @@
##FORMAT=
##FORMAT=
##GATKCommandLine.HaplotypeCaller=
-##GATKCommandLine=
+##GATKCommandLine=
##INFO=
##INFO=
##INFO=
@@ -47,6 +47,7 @@
##INFO=
##INFO=
##INFO=
+##INFO=
##INFO=
##INFO=
##INFO=
@@ -139,27 +140,27 @@
##reference=file:///seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta
##source=GenotypeGVCFs
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
-20 10087820 . C CAG 294.64 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-2.100;AS_FS=2.811;AS_MQ=60.00;AS_MQRankSum=0.600;AS_QD=6.14;AS_QUAL=-2.946e+01;AS_RAW_BaseQRankSum=||-2.1,1;AS_RAW_MQ=123769.00|3600.00|46800.00;AS_RAW_MQRankSum=||0.6,1;AS_RAW_ReadPosRankSum=||-0.4,1;AS_ReadPosRankSum=-0.400;AS_SB_TABLE=17,18|1,0|8,5;AS_SOR=1.147;BaseQRankSum=-2.273e+00;DP=93;ExcessHet=3.0103;FS=4.432;MLEAC=1;MLEAF=0.500;MQ=59.55;MQRankSum=0.678;QD=6.14;RAW_MQ=329810.00;ReadPosRankSum=-4.920e-01;SOR=1.302 GT:AD:GQ:PL 0/1:35,13:99:302,0,1079
-20 10433322 . A AT 116.64 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=2.500;AS_FS=0.000;AS_MQ=44.10;AS_MQRankSum=1.100;AS_QD=7.29;AS_QUAL=-1.166e+01;AS_RAW_BaseQRankSum=|2.5,1;AS_RAW_MQ=14418.00|9723.00;AS_RAW_MQRankSum=|1.1,1;AS_RAW_ReadPosRankSum=|2.0,1;AS_ReadPosRankSum=2.000;AS_SB_TABLE=5,6|2,3;AS_SOR=0.836;BaseQRankSum=2.56;DP=35;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=43.98;MQRankSum=1.12;QD=7.29;RAW_MQ=67710.00;ReadPosRankSum=2.04;SOR=0.836 GT:AD:GQ:PL 0/1:11,5:99:124,0,369
-20 10433324 . A T 220.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=2.200;AS_FS=0.000;AS_MQ=41.96;AS_MQRankSum=0.500;AS_QD=15.76;AS_QUAL=-2.206e+01;AS_RAW_BaseQRankSum=|2.2,1;AS_RAW_MQ=11895.00|10564.00;AS_RAW_MQRankSum=|0.5,1;AS_RAW_ReadPosRankSum=|1.5,1;AS_ReadPosRankSum=1.500;AS_SB_TABLE=2,6|2,4;AS_SOR=0.412;BaseQRankSum=2.28;DP=33;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=42.82;MQRankSum=0.584;QD=15.76;RAW_MQ=60510.00;ReadPosRankSum=1.54;SOR=0.412 GT:AD:GQ:PGT:PID:PL 0/1:8,6:99:0|1:10433324_A_T:228,0,275
-20 10433326 . A T 220.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=0.800;AS_FS=0.000;AS_MQ=41.96;AS_MQRankSum=0.500;AS_QD=15.76;AS_QUAL=-2.206e+01;AS_RAW_BaseQRankSum=|0.8,1;AS_RAW_MQ=11895.00|10564.00;AS_RAW_MQRankSum=|0.5,1;AS_RAW_ReadPosRankSum=|1.4,1;AS_ReadPosRankSum=1.400;AS_SB_TABLE=2,6|2,4;AS_SOR=0.412;BaseQRankSum=0.874;DP=31;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=41.47;MQRankSum=0.584;QD=15.76;RAW_MQ=53310.00;ReadPosRankSum=1.40;SOR=0.412 GT:AD:GQ:PGT:PID:PL 0/1:8,6:99:0|1:10433324_A_T:228,0,275
-20 10433328 . A T,ATATAT 902.06 . AC=1,1;AF=0.500,0.500;AN=2;AS_BaseQRankSum=nul,nul;AS_FS=0.000,0.000;AS_MQ=41.96,29.00;AS_MQRankSum=nul,nul;AS_QD=25.36,28.73;AS_QUAL=-3.976e+01,-1.110e+01;AS_RAW_BaseQRankSum=|||||;AS_RAW_MQ=0.00|10564.00|2523.00|0.00|0.00|0.00;AS_RAW_MQRankSum=|||||;AS_RAW_ReadPosRankSum=|||||;AS_ReadPosRankSum=nul,nul;AS_SB_TABLE=0,0|2,4|1,2|0,0|0,0|0,0;AS_SOR=1.329,1.179;DP=30;ExcessHet=3.0103;FS=0.000;MLEAC=1,1;MLEAF=0.500,0.500;MQ=40.71;QD=30.97;RAW_MQ=49710.00;SOR=1.402 GT:AD:GQ:PL 1/2:0,6,3:99:919,177,246,420,0,500
-20 10433382 . T C 624.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.900;AS_FS=0.000;AS_MQ=55.21;AS_MQRankSum=1.000;AS_QD=20.82;AS_QUAL=-6.246e+01;AS_RAW_BaseQRankSum=|-1.9,1;AS_RAW_MQ=40862.00|45723.00;AS_RAW_MQRankSum=|1.0,1;AS_RAW_ReadPosRankSum=|0.2,1;AS_ReadPosRankSum=0.200;AS_SB_TABLE=10,5|11,4;AS_SOR=0.998;BaseQRankSum=-1.821e+00;DP=30;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=53.72;MQRankSum=1.03;QD=20.82;RAW_MQ=86585.00;ReadPosRankSum=0.249;SOR=0.998 GT:AD:GQ:PGT:PID:PL 0/1:15,15:99:0|1:10433382_T_C:632,0,601
-20 10433391 . T C 623.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-0.300;AS_FS=0.000;AS_MQ=57.05;AS_MQRankSum=1.300;AS_QD=18.34;AS_QUAL=-6.236e+01;AS_RAW_BaseQRankSum=|-0.3,1;AS_RAW_MQ=51662.00|52082.00;AS_RAW_MQRankSum=|1.3,1;AS_RAW_ReadPosRankSum=|1.5,1;AS_ReadPosRankSum=1.500;AS_SB_TABLE=14,4|13,3;AS_SOR=0.859;BaseQRankSum=-2.840e-01;DP=34;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=55.24;MQRankSum=1.33;QD=18.34;RAW_MQ=103744.00;ReadPosRankSum=1.54;SOR=0.859 GT:AD:GQ:PGT:PID:PL 0/1:18,16:99:0|1:10433382_T_C:631,0,673
-20 10433468 . T C 645.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.400;AS_FS=2.955;AS_MQ=58.84;AS_MQRankSum=0.000;AS_QD=16.99;AS_QUAL=-6.456e+01;AS_RAW_BaseQRankSum=|-1.4,1;AS_RAW_MQ=63049.00|69241.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|1.4,1;AS_ReadPosRankSum=1.400;AS_SB_TABLE=13,5|12,8;AS_SOR=0.324;BaseQRankSum=-1.312e+00;DP=38;ExcessHet=3.0103;FS=2.955;MLEAC=1;MLEAF=0.500;MQ=59.00;MQRankSum=0.076;QD=16.99;RAW_MQ=132290.00;ReadPosRankSum=1.46;SOR=0.324 GT:AD:GQ:PL 0/1:18,20:99:653,0,572
-20 10433560 . C A 987.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=3.400;AS_FS=5.027;AS_MQ=59.25;AS_MQRankSum=-1.100;AS_QD=17.64;AS_QUAL=-9.876e+01;AS_RAW_BaseQRankSum=|3.4,1;AS_RAW_MQ=111600.00|87769.00;AS_RAW_MQRankSum=|-1.1,1;AS_RAW_ReadPosRankSum=|1.3,1;AS_ReadPosRankSum=1.300;AS_SB_TABLE=30,1|22,3;AS_SOR=0.129;BaseQRankSum=3.50;DP=56;ExcessHet=3.0103;FS=5.027;MLEAC=1;MLEAF=0.500;MQ=59.67;MQRankSum=-1.078e+00;QD=17.64;RAW_MQ=199369.00;ReadPosRankSum=1.38;SOR=0.129 GT:AD:GQ:PGT:PID:PL 0/1:31,25:99:0|1:10433560_C_A:995,0,3032
-20 10433575 . C T 1143.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=3.800;AS_FS=1.568;AS_MQ=57.81;AS_MQRankSum=-1.200;AS_QD=17.87;AS_QUAL=-1.144e+02;AS_RAW_BaseQRankSum=|3.8,1;AS_RAW_MQ=119641.00|100251.00;AS_RAW_MQRankSum=|-1.2,1;AS_RAW_ReadPosRankSum=|0.8,1;AS_ReadPosRankSum=0.800;AS_SB_TABLE=31,3|26,4;AS_SOR=0.375;BaseQRankSum=3.81;DP=64;ExcessHet=3.0103;FS=1.568;MLEAC=1;MLEAF=0.500;MQ=58.62;MQRankSum=-1.123e+00;QD=17.87;RAW_MQ=219892.00;ReadPosRankSum=0.830;SOR=0.375 GT:AD:GQ:PGT:PID:PL 0/1:34,30:99:0|1:10433560_C_A:1151,0,3385
-20 10433594 . C T 1105.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=4.800;AS_FS=1.535;AS_MQ=54.33;AS_MQRankSum=-2.400;AS_QD=18.43;AS_QUAL=-1.106e+02;AS_RAW_BaseQRankSum=|4.8,1;AS_RAW_MQ=108841.00|85615.00;AS_RAW_MQRankSum=|-2.4,1;AS_RAW_ReadPosRankSum=|-0.6,1;AS_ReadPosRankSum=-0.600;AS_SB_TABLE=28,3|25,4;AS_SOR=0.415;BaseQRankSum=4.82;DP=61;ExcessHet=3.0103;FS=1.535;MLEAC=1;MLEAF=0.500;MQ=56.66;MQRankSum=-2.334e+00;QD=18.43;RAW_MQ=195825.00;ReadPosRankSum=-5.020e-01;SOR=0.415 GT:AD:GQ:PGT:PID:PL 0/1:31,29:99:0|1:10433560_C_A:1113,0,3070
-20 10433809 . A G 1135.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=1.400;AS_FS=0.968;AS_MQ=60.00;AS_MQRankSum=0.000;AS_QD=17.21;AS_QUAL=-1.136e+02;AS_RAW_BaseQRankSum=|1.4,1;AS_RAW_MQ=115200.00|122400.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|-0.5,1;AS_ReadPosRankSum=-0.500;AS_SB_TABLE=13,19|12,22;AS_SOR=0.930;BaseQRankSum=1.41;DP=68;ExcessHet=3.0103;FS=0.968;MLEAC=1;MLEAF=0.500;MQ=59.73;MQRankSum=0.00;QD=17.21;RAW_MQ=242569.00;ReadPosRankSum=-4.450e-01;SOR=0.930 GT:AD:GQ:PL 0/1:32,34:99:1143,0,1041
-20 10433955 . C CGTGTGTGTGTAT 1027.64 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=0.400;AS_FS=0.000;AS_MQ=40.57;AS_MQRankSum=-4.000;AS_QD=24.47;AS_QUAL=-1.028e+02;AS_RAW_BaseQRankSum=|0.4,1;AS_RAW_MQ=59810.00|39497.00;AS_RAW_MQRankSum=|-4.0,1;AS_RAW_ReadPosRankSum=|-0.8,1;AS_ReadPosRankSum=-0.800;AS_SB_TABLE=12,6|16,8;AS_SOR=0.710;BaseQRankSum=0.422;DP=47;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=49.96;MQRankSum=-4.001e+00;QD=24.47;RAW_MQ=117307.00;ReadPosRankSum=-7.890e-01;SOR=0.710 GT:AD:GQ:PL 0/1:18,24:99:1035,0,1217
-20 10434177 . A T 1467.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=0.900;AS_FS=0.888;AS_MQ=55.78;AS_MQRankSum=-2.500;AS_QD=20.10;AS_QUAL=-1.468e+02;AS_RAW_BaseQRankSum=|0.9,1;AS_RAW_MQ=108000.00|133784.00;AS_RAW_MQRankSum=|-2.5,1;AS_RAW_ReadPosRankSum=|-0.9,1;AS_ReadPosRankSum=-0.900;AS_SB_TABLE=15,15|23,20;AS_SOR=0.836;BaseQRankSum=0.903;DP=74;ExcessHet=3.0103;FS=0.888;MLEAC=1;MLEAF=0.500;MQ=57.58;MQRankSum=-2.473e+00;QD=20.10;RAW_MQ=245384.00;ReadPosRankSum=-8.910e-01;SOR=0.836 GT:AD:GQ:PL 0/1:30,43:99:1475,0,936
-20 10434258 . G A 1235.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=3.000;AS_FS=0.000;AS_MQ=52.93;AS_MQRankSum=-2.900;AS_QD=17.91;AS_QUAL=-1.236e+02;AS_RAW_BaseQRankSum=|3.0,1;AS_RAW_MQ=109369.00|106451.00;AS_RAW_MQRankSum=|-2.9,1;AS_RAW_ReadPosRankSum=|-0.2,1;AS_ReadPosRankSum=-0.200;AS_SB_TABLE=19,12|24,14;AS_SOR=0.776;BaseQRankSum=3.06;DP=70;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=55.99;MQRankSum=-2.871e+00;QD=17.91;RAW_MQ=219420.00;ReadPosRankSum=-1.550e-01;SOR=0.776 GT:AD:GQ:PL 0/1:31,38:99:1243,0,1003
-20 10434384 . TA T 782.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-0.100;AS_FS=0.000;AS_MQ=60.00;AS_MQRankSum=1.000;AS_QD=11.51;AS_QUAL=-7.826e+01;AS_RAW_BaseQRankSum=|-0.1,1;AS_RAW_MQ=123769.00|118800.00;AS_RAW_MQRankSum=|1.0,1;AS_RAW_ReadPosRankSum=|0.4,1;AS_ReadPosRankSum=0.400;AS_SB_TABLE=22,13|21,12;AS_SOR=0.723;BaseQRankSum=-1.000e-01;DP=71;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=59.74;MQRankSum=1.00;QD=11.51;RAW_MQ=253369.00;ReadPosRankSum=0.497;SOR=0.723 GT:AD:GQ:PL 0/1:35,33:99:790,0,846
-20 10434519 . T C 1464.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-3.200;AS_FS=1.877;AS_MQ=60.00;AS_MQRankSum=0.000;AS_QD=18.78;AS_QUAL=-1.465e+02;AS_RAW_BaseQRankSum=|-3.2,1;AS_RAW_MQ=126000.00|154800.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|-0.8,1;AS_ReadPosRankSum=-0.800;AS_SB_TABLE=18,17|19,24;AS_SOR=0.900;BaseQRankSum=-3.137e+00;DP=78;ExcessHet=3.0103;FS=1.877;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=18.78;RAW_MQ=280800.00;ReadPosRankSum=-7.490e-01;SOR=0.900 GT:AD:GQ:PL 0/1:35,43:99:1472,0,1192
-20 10435067 . GTA G 1446.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=2.600;AS_FS=3.289;AS_MQ=60.00;AS_MQRankSum=0.000;AS_QD=21.59;AS_QUAL=-1.447e+02;AS_RAW_BaseQRankSum=|2.6,1;AS_RAW_MQ=108000.00|133200.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|-0.2,1;AS_ReadPosRankSum=-0.200;AS_SB_TABLE=15,15|22,15;AS_SOR=1.121;BaseQRankSum=2.60;DP=67;ExcessHet=3.0103;FS=3.289;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=21.59;RAW_MQ=241200.00;ReadPosRankSum=-1.830e-01;SOR=1.121 GT:AD:GQ:PL 0/1:30,37:99:1454,0,1191
-20 10435948 . A C 1137.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-4.700;AS_FS=3.002;AS_MQ=54.65;AS_MQRankSum=-3.200;AS_QD=14.97;AS_QUAL=-1.138e+02;AS_RAW_BaseQRankSum=|-4.7,1;AS_RAW_MQ=144000.00|107528.00;AS_RAW_MQRankSum=|-3.2,1;AS_RAW_ReadPosRankSum=|-1.6,1;AS_ReadPosRankSum=-1.600;AS_SB_TABLE=19,21|20,16;AS_SOR=0.855;BaseQRankSum=-4.692e+00;DP=76;ExcessHet=3.0103;FS=3.002;MLEAC=1;MLEAF=0.500;MQ=57.53;MQRankSum=-3.121e+00;QD=14.97;RAW_MQ=251528.00;ReadPosRankSum=-1.594e+00;SOR=0.855 GT:AD:GQ:PL 0/1:40,36:99:1145,0,1413
-20 10436227 . TTTTATTTATTTATTTATTTA T,TTTTATTTATTTATTTATTTATTTA 1208.06 . AC=1,1;AF=0.500,0.500;AN=2;AS_BaseQRankSum=nul,nul;AS_FS=0.000,0.000;AS_MQ=32.72,53.03;AS_MQRankSum=nul,nul;AS_QD=27.24,28.88;AS_QUAL=-9.370e+01,-2.310e+01;AS_RAW_BaseQRankSum=||;AS_RAW_MQ=3600.00|25702.00|19682.00;AS_RAW_MQRankSum=||;AS_RAW_ReadPosRankSum=||;AS_ReadPosRankSum=nul,nul;AS_SB_TABLE=1,0|14,10|4,3;AS_SOR=0.382,0.330;BaseQRankSum=-1.450e+00;DP=75;ExcessHet=3.0103;FS=0.000;MLEAC=1,1;MLEAF=0.500,0.500;MQ=51.77;MQRankSum=-1.660e+00;QD=28.20;RAW_MQ=201025.00;ReadPosRankSum=1.30;SOR=0.379 GT:AD:GQ:PL 1/2:1,24,7:99:1225,241,589,947,0,970
-20 10436415 . A G 1190.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-2.800;AS_FS=9.312;AS_MQ=59.42;AS_MQRankSum=0.400;AS_QD=18.90;AS_QUAL=-1.191e+02;AS_RAW_BaseQRankSum=|-2.8,1;AS_RAW_MQ=81904.00|141241.00;AS_RAW_MQRankSum=|0.4,1;AS_RAW_ReadPosRankSum=|-0.1,1;AS_ReadPosRankSum=-0.100;AS_SB_TABLE=15,8|17,23;AS_SOR=0.739;BaseQRankSum=-2.775e+00;DP=63;ExcessHet=3.0103;FS=9.312;MLEAC=1;MLEAF=0.500;MQ=59.51;MQRankSum=0.399;QD=18.90;RAW_MQ=223145.00;ReadPosRankSum=-6.300e-02;SOR=0.739 GT:AD:GQ:PL 0/1:23,40:99:1198,0,691
-20 10436582 . A G 1187.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.400;AS_FS=3.189;AS_MQ=52.86;AS_MQRankSum=-2.700;AS_QD=16.73;AS_QUAL=-1.188e+02;AS_RAW_BaseQRankSum=|-1.4,1;AS_RAW_MQ=117410.00|103379.00;AS_RAW_MQRankSum=|-2.7,1;AS_RAW_ReadPosRankSum=|0.2,1;AS_ReadPosRankSum=0.200;AS_SB_TABLE=16,18|21,16;AS_SOR=0.906;BaseQRankSum=-1.326e+00;DP=71;ExcessHet=3.0103;FS=3.189;MLEAC=1;MLEAF=0.500;MQ=55.76;MQRankSum=-2.639e+00;QD=16.73;RAW_MQ=220789.00;ReadPosRankSum=0.267;SOR=0.906 GT:AD:GQ:PL 0/1:34,37:99:1195,0,1113
-20 10436700 . A G 1333.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.400;AS_FS=2.012;AS_MQ=59.53;AS_MQRankSum=-0.900;AS_QD=19.05;AS_QUAL=-1.334e+02;AS_RAW_BaseQRankSum=|-1.4,1;AS_RAW_MQ=108000.00|141769.00;AS_RAW_MQRankSum=|-0.9,1;AS_RAW_ReadPosRankSum=|0.5,1;AS_ReadPosRankSum=0.500;AS_SB_TABLE=18,12|21,19;AS_SOR=0.449;BaseQRankSum=-1.329e+00;DP=70;ExcessHet=3.0103;FS=2.012;MLEAC=1;MLEAF=0.500;MQ=59.73;MQRankSum=-8.370e-01;QD=19.05;RAW_MQ=249769.00;ReadPosRankSum=0.581;SOR=0.449 GT:AD:GQ:PL 0/1:30,40:99:1341,0,961
-20 10436908 . C G 1361.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-0.900;AS_FS=4.557;AS_MQ=58.89;AS_MQRankSum=-1.000;AS_QD=16.40;AS_QUAL=-1.362e+02;AS_RAW_BaseQRankSum=|-0.9,1;AS_RAW_MQ=145849.00|145638.00;AS_RAW_MQRankSum=|-1.0,1;AS_RAW_ReadPosRankSum=|-0.2,1;AS_ReadPosRankSum=-0.200;AS_SB_TABLE=15,26|11,31;AS_SOR=1.252;BaseQRankSum=-8.440e-01;DP=83;ExcessHet=3.0103;FS=4.557;MLEAC=1;MLEAF=0.500;MQ=59.26;MQRankSum=-9.940e-01;QD=16.40;RAW_MQ=291487.00;ReadPosRankSum=-1.480e-01;SOR=1.252 GT:AD:GQ:PL 0/1:41,42:99:1369,0,1378
+20 10087820 . C CAG 294.64 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-2.100;AS_FS=2.811;AS_MQ=60.00;AS_MQRankSum=0.600;AS_RAW_BaseQRankSum=||-2.1,1;AS_RAW_MQ=123769.00|3600.00|46800.00;AS_RAW_MQRankSum=||0.6,1;AS_RAW_ReadPosRankSum=||-0.4,1;AS_ReadPosRankSum=-0.400;AS_SB_TABLE=17,18|1,0|8,5;AS_SOR=1.147;BaseQRankSum=-2.273e+00;DP=93;ExcessHet=3.0103;FS=4.432;MLEAC=1;MLEAF=0.500;MQ=59.55;MQRankSum=0.678;QD=6.14;RAW_MQ=329810.00;ReadPosRankSum=-4.920e-01;SOR=1.302 GT:AD:GQ:PL 0/1:35,13:99:302,0,1079
+20 10433322 . A AT 116.64 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=2.500;AS_FS=0.000;AS_MQ=44.10;AS_MQRankSum=1.100;AS_RAW_BaseQRankSum=|2.5,1;AS_RAW_MQ=14418.00|9723.00;AS_RAW_MQRankSum=|1.1,1;AS_RAW_ReadPosRankSum=|2.0,1;AS_ReadPosRankSum=2.000;AS_SB_TABLE=5,6|2,3;AS_SOR=0.836;BaseQRankSum=2.56;DP=35;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=43.98;MQRankSum=1.12;QD=7.29;RAW_MQ=67710.00;ReadPosRankSum=2.04;SOR=0.836 GT:AD:GQ:PL 0/1:11,5:99:124,0,369
+20 10433324 . A T 220.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=2.200;AS_FS=0.000;AS_MQ=41.96;AS_MQRankSum=0.500;AS_RAW_BaseQRankSum=|2.2,1;AS_RAW_MQ=11895.00|10564.00;AS_RAW_MQRankSum=|0.5,1;AS_RAW_ReadPosRankSum=|1.5,1;AS_ReadPosRankSum=1.500;AS_SB_TABLE=2,6|2,4;AS_SOR=0.412;BaseQRankSum=2.28;DP=33;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=42.82;MQRankSum=0.584;QD=15.76;RAW_MQ=60510.00;ReadPosRankSum=1.54;SOR=0.412 GT:AD:GQ:PGT:PID:PL 0/1:8,6:99:0|1:10433324_A_T:228,0,275
+20 10433326 . A T 220.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=0.800;AS_FS=0.000;AS_MQ=41.96;AS_MQRankSum=0.500;AS_RAW_BaseQRankSum=|0.8,1;AS_RAW_MQ=11895.00|10564.00;AS_RAW_MQRankSum=|0.5,1;AS_RAW_ReadPosRankSum=|1.4,1;AS_ReadPosRankSum=1.400;AS_SB_TABLE=2,6|2,4;AS_SOR=0.412;BaseQRankSum=0.874;DP=31;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=41.47;MQRankSum=0.584;QD=15.76;RAW_MQ=53310.00;ReadPosRankSum=1.40;SOR=0.412 GT:AD:GQ:PGT:PID:PL 0/1:8,6:99:0|1:10433324_A_T:228,0,275
+20 10433328 . A T,ATATAT 902.06 . AC=1,1;AF=0.500,0.500;AN=2;AS_BaseQRankSum=nul,nul;AS_FS=0.000,0.000;AS_MQ=41.96,29.00;AS_MQRankSum=nul,nul;AS_RAW_BaseQRankSum=|||||;AS_RAW_MQ=0.00|10564.00|2523.00|0.00|0.00|0.00;AS_RAW_MQRankSum=|||||;AS_RAW_ReadPosRankSum=|||||;AS_ReadPosRankSum=nul,nul;AS_SB_TABLE=0,0|2,4|1,2|0,0|0,0|0,0;AS_SOR=1.329,1.179;DP=30;ExcessHet=3.0103;FS=0.000;MLEAC=1,1;MLEAF=0.500,0.500;MQ=40.71;QD=25.36;RAW_MQ=49710.00;SOR=1.402 GT:AD:GQ:PL 1/2:0,6,3:99:919,177,246,420,0,500
+20 10433382 . T C 624.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.900;AS_FS=0.000;AS_MQ=55.21;AS_MQRankSum=1.000;AS_RAW_BaseQRankSum=|-1.9,1;AS_RAW_MQ=40862.00|45723.00;AS_RAW_MQRankSum=|1.0,1;AS_RAW_ReadPosRankSum=|0.2,1;AS_ReadPosRankSum=0.200;AS_SB_TABLE=10,5|11,4;AS_SOR=0.998;BaseQRankSum=-1.821e+00;DP=30;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=53.72;MQRankSum=1.03;QD=20.82;RAW_MQ=86585.00;ReadPosRankSum=0.249;SOR=0.998 GT:AD:GQ:PGT:PID:PL 0/1:15,15:99:0|1:10433382_T_C:632,0,601
+20 10433391 . T C 623.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-0.300;AS_FS=0.000;AS_MQ=57.05;AS_MQRankSum=1.300;AS_RAW_BaseQRankSum=|-0.3,1;AS_RAW_MQ=51662.00|52082.00;AS_RAW_MQRankSum=|1.3,1;AS_RAW_ReadPosRankSum=|1.5,1;AS_ReadPosRankSum=1.500;AS_SB_TABLE=14,4|13,3;AS_SOR=0.859;BaseQRankSum=-2.840e-01;DP=34;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=55.24;MQRankSum=1.33;QD=18.34;RAW_MQ=103744.00;ReadPosRankSum=1.54;SOR=0.859 GT:AD:GQ:PGT:PID:PL 0/1:18,16:99:0|1:10433382_T_C:631,0,673
+20 10433468 . T C 645.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.400;AS_FS=2.955;AS_MQ=58.84;AS_MQRankSum=0.000;AS_RAW_BaseQRankSum=|-1.4,1;AS_RAW_MQ=63049.00|69241.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|1.4,1;AS_ReadPosRankSum=1.400;AS_SB_TABLE=13,5|12,8;AS_SOR=0.324;BaseQRankSum=-1.312e+00;DP=38;ExcessHet=3.0103;FS=2.955;MLEAC=1;MLEAF=0.500;MQ=59.00;MQRankSum=0.076;QD=16.99;RAW_MQ=132290.00;ReadPosRankSum=1.46;SOR=0.324 GT:AD:GQ:PL 0/1:18,20:99:653,0,572
+20 10433560 . C A 987.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=3.400;AS_FS=5.027;AS_MQ=59.25;AS_MQRankSum=-1.100;AS_RAW_BaseQRankSum=|3.4,1;AS_RAW_MQ=111600.00|87769.00;AS_RAW_MQRankSum=|-1.1,1;AS_RAW_ReadPosRankSum=|1.3,1;AS_ReadPosRankSum=1.300;AS_SB_TABLE=30,1|22,3;AS_SOR=0.129;BaseQRankSum=3.50;DP=56;ExcessHet=3.0103;FS=5.027;MLEAC=1;MLEAF=0.500;MQ=59.67;MQRankSum=-1.078e+00;QD=17.64;RAW_MQ=199369.00;ReadPosRankSum=1.38;SOR=0.129 GT:AD:GQ:PGT:PID:PL 0/1:31,25:99:0|1:10433560_C_A:995,0,3032
+20 10433575 . C T 1143.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=3.800;AS_FS=1.568;AS_MQ=57.81;AS_MQRankSum=-1.200;AS_RAW_BaseQRankSum=|3.8,1;AS_RAW_MQ=119641.00|100251.00;AS_RAW_MQRankSum=|-1.2,1;AS_RAW_ReadPosRankSum=|0.8,1;AS_ReadPosRankSum=0.800;AS_SB_TABLE=31,3|26,4;AS_SOR=0.375;BaseQRankSum=3.81;DP=64;ExcessHet=3.0103;FS=1.568;MLEAC=1;MLEAF=0.500;MQ=58.62;MQRankSum=-1.123e+00;QD=17.87;RAW_MQ=219892.00;ReadPosRankSum=0.830;SOR=0.375 GT:AD:GQ:PGT:PID:PL 0/1:34,30:99:0|1:10433560_C_A:1151,0,3385
+20 10433594 . C T 1105.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=4.800;AS_FS=1.535;AS_MQ=54.33;AS_MQRankSum=-2.400;AS_RAW_BaseQRankSum=|4.8,1;AS_RAW_MQ=108841.00|85615.00;AS_RAW_MQRankSum=|-2.4,1;AS_RAW_ReadPosRankSum=|-0.6,1;AS_ReadPosRankSum=-0.600;AS_SB_TABLE=28,3|25,4;AS_SOR=0.415;BaseQRankSum=4.82;DP=61;ExcessHet=3.0103;FS=1.535;MLEAC=1;MLEAF=0.500;MQ=56.66;MQRankSum=-2.334e+00;QD=18.43;RAW_MQ=195825.00;ReadPosRankSum=-5.020e-01;SOR=0.415 GT:AD:GQ:PGT:PID:PL 0/1:31,29:99:0|1:10433560_C_A:1113,0,3070
+20 10433809 . A G 1135.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=1.400;AS_FS=0.968;AS_MQ=60.00;AS_MQRankSum=0.000;AS_RAW_BaseQRankSum=|1.4,1;AS_RAW_MQ=115200.00|122400.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|-0.5,1;AS_ReadPosRankSum=-0.500;AS_SB_TABLE=13,19|12,22;AS_SOR=0.930;BaseQRankSum=1.41;DP=68;ExcessHet=3.0103;FS=0.968;MLEAC=1;MLEAF=0.500;MQ=59.73;MQRankSum=0.00;QD=17.21;RAW_MQ=242569.00;ReadPosRankSum=-4.450e-01;SOR=0.930 GT:AD:GQ:PL 0/1:32,34:99:1143,0,1041
+20 10433955 . C CGTGTGTGTGTAT 1027.64 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=0.400;AS_FS=0.000;AS_MQ=40.57;AS_MQRankSum=-4.000;AS_RAW_BaseQRankSum=|0.4,1;AS_RAW_MQ=59810.00|39497.00;AS_RAW_MQRankSum=|-4.0,1;AS_RAW_ReadPosRankSum=|-0.8,1;AS_ReadPosRankSum=-0.800;AS_SB_TABLE=12,6|16,8;AS_SOR=0.710;BaseQRankSum=0.422;DP=47;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=49.96;MQRankSum=-4.001e+00;QD=24.47;RAW_MQ=117307.00;ReadPosRankSum=-7.890e-01;SOR=0.710 GT:AD:GQ:PL 0/1:18,24:99:1035,0,1217
+20 10434177 . A T 1467.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=0.900;AS_FS=0.888;AS_MQ=55.78;AS_MQRankSum=-2.500;AS_RAW_BaseQRankSum=|0.9,1;AS_RAW_MQ=108000.00|133784.00;AS_RAW_MQRankSum=|-2.5,1;AS_RAW_ReadPosRankSum=|-0.9,1;AS_ReadPosRankSum=-0.900;AS_SB_TABLE=15,15|23,20;AS_SOR=0.836;BaseQRankSum=0.903;DP=74;ExcessHet=3.0103;FS=0.888;MLEAC=1;MLEAF=0.500;MQ=57.58;MQRankSum=-2.473e+00;QD=20.10;RAW_MQ=245384.00;ReadPosRankSum=-8.910e-01;SOR=0.836 GT:AD:GQ:PL 0/1:30,43:99:1475,0,936
+20 10434258 . G A 1235.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=3.000;AS_FS=0.000;AS_MQ=52.93;AS_MQRankSum=-2.900;AS_RAW_BaseQRankSum=|3.0,1;AS_RAW_MQ=109369.00|106451.00;AS_RAW_MQRankSum=|-2.9,1;AS_RAW_ReadPosRankSum=|-0.2,1;AS_ReadPosRankSum=-0.200;AS_SB_TABLE=19,12|24,14;AS_SOR=0.776;BaseQRankSum=3.06;DP=70;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=55.99;MQRankSum=-2.871e+00;QD=17.91;RAW_MQ=219420.00;ReadPosRankSum=-1.550e-01;SOR=0.776 GT:AD:GQ:PL 0/1:31,38:99:1243,0,1003
+20 10434384 . TA T 782.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-0.100;AS_FS=0.000;AS_MQ=60.00;AS_MQRankSum=1.000;AS_RAW_BaseQRankSum=|-0.1,1;AS_RAW_MQ=123769.00|118800.00;AS_RAW_MQRankSum=|1.0,1;AS_RAW_ReadPosRankSum=|0.4,1;AS_ReadPosRankSum=0.400;AS_SB_TABLE=22,13|21,12;AS_SOR=0.723;BaseQRankSum=-1.000e-01;DP=71;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=59.74;MQRankSum=1.00;QD=11.51;RAW_MQ=253369.00;ReadPosRankSum=0.497;SOR=0.723 GT:AD:GQ:PL 0/1:35,33:99:790,0,846
+20 10434519 . T C 1464.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-3.200;AS_FS=1.877;AS_MQ=60.00;AS_MQRankSum=0.000;AS_RAW_BaseQRankSum=|-3.2,1;AS_RAW_MQ=126000.00|154800.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|-0.8,1;AS_ReadPosRankSum=-0.800;AS_SB_TABLE=18,17|19,24;AS_SOR=0.900;BaseQRankSum=-3.137e+00;DP=78;ExcessHet=3.0103;FS=1.877;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=18.78;RAW_MQ=280800.00;ReadPosRankSum=-7.490e-01;SOR=0.900 GT:AD:GQ:PL 0/1:35,43:99:1472,0,1192
+20 10435067 . GTA G 1446.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=2.600;AS_FS=3.289;AS_MQ=60.00;AS_MQRankSum=0.000;AS_RAW_BaseQRankSum=|2.6,1;AS_RAW_MQ=108000.00|133200.00;AS_RAW_MQRankSum=|0.0,1;AS_RAW_ReadPosRankSum=|-0.2,1;AS_ReadPosRankSum=-0.200;AS_SB_TABLE=15,15|22,15;AS_SOR=1.121;BaseQRankSum=2.60;DP=67;ExcessHet=3.0103;FS=3.289;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=21.59;RAW_MQ=241200.00;ReadPosRankSum=-1.830e-01;SOR=1.121 GT:AD:GQ:PL 0/1:30,37:99:1454,0,1191
+20 10435948 . A C 1137.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-4.700;AS_FS=3.002;AS_MQ=54.65;AS_MQRankSum=-3.200;AS_RAW_BaseQRankSum=|-4.7,1;AS_RAW_MQ=144000.00|107528.00;AS_RAW_MQRankSum=|-3.2,1;AS_RAW_ReadPosRankSum=|-1.6,1;AS_ReadPosRankSum=-1.600;AS_SB_TABLE=19,21|20,16;AS_SOR=0.855;BaseQRankSum=-4.692e+00;DP=76;ExcessHet=3.0103;FS=3.002;MLEAC=1;MLEAF=0.500;MQ=57.53;MQRankSum=-3.121e+00;QD=14.97;RAW_MQ=251528.00;ReadPosRankSum=-1.594e+00;SOR=0.855 GT:AD:GQ:PL 0/1:40,36:99:1145,0,1413
+20 10436227 . TTTTATTTATTTATTTATTTA T,TTTTATTTATTTATTTATTTATTTA 1208.06 . AC=1,1;AF=0.500,0.500;AN=2;AS_BaseQRankSum=nul,nul;AS_FS=0.000,0.000;AS_MQ=32.72,53.03;AS_MQRankSum=nul,nul;AS_RAW_BaseQRankSum=||;AS_RAW_MQ=3600.00|25702.00|19682.00;AS_RAW_MQRankSum=||;AS_RAW_ReadPosRankSum=||;AS_ReadPosRankSum=nul,nul;AS_SB_TABLE=1,0|14,10|4,3;AS_SOR=0.382,0.330;BaseQRankSum=-1.450e+00;DP=75;ExcessHet=3.0103;FS=0.000;MLEAC=1,1;MLEAF=0.500,0.500;MQ=51.77;MQRankSum=-1.660e+00;QD=28.73;RAW_MQ=201025.00;ReadPosRankSum=1.30;SOR=0.379 GT:AD:GQ:PL 1/2:1,24,7:99:1225,241,589,947,0,970
+20 10436415 . A G 1190.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-2.800;AS_FS=9.312;AS_MQ=59.42;AS_MQRankSum=0.400;AS_RAW_BaseQRankSum=|-2.8,1;AS_RAW_MQ=81904.00|141241.00;AS_RAW_MQRankSum=|0.4,1;AS_RAW_ReadPosRankSum=|-0.1,1;AS_ReadPosRankSum=-0.100;AS_SB_TABLE=15,8|17,23;AS_SOR=0.739;BaseQRankSum=-2.775e+00;DP=63;ExcessHet=3.0103;FS=9.312;MLEAC=1;MLEAF=0.500;MQ=59.51;MQRankSum=0.399;QD=18.90;RAW_MQ=223145.00;ReadPosRankSum=-6.300e-02;SOR=0.739 GT:AD:GQ:PL 0/1:23,40:99:1198,0,691
+20 10436582 . A G 1187.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.400;AS_FS=3.189;AS_MQ=52.86;AS_MQRankSum=-2.700;AS_RAW_BaseQRankSum=|-1.4,1;AS_RAW_MQ=117410.00|103379.00;AS_RAW_MQRankSum=|-2.7,1;AS_RAW_ReadPosRankSum=|0.2,1;AS_ReadPosRankSum=0.200;AS_SB_TABLE=16,18|21,16;AS_SOR=0.906;BaseQRankSum=-1.326e+00;DP=71;ExcessHet=3.0103;FS=3.189;MLEAC=1;MLEAF=0.500;MQ=55.76;MQRankSum=-2.639e+00;QD=16.73;RAW_MQ=220789.00;ReadPosRankSum=0.267;SOR=0.906 GT:AD:GQ:PL 0/1:34,37:99:1195,0,1113
+20 10436700 . A G 1333.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-1.400;AS_FS=2.012;AS_MQ=59.53;AS_MQRankSum=-0.900;AS_RAW_BaseQRankSum=|-1.4,1;AS_RAW_MQ=108000.00|141769.00;AS_RAW_MQRankSum=|-0.9,1;AS_RAW_ReadPosRankSum=|0.5,1;AS_ReadPosRankSum=0.500;AS_SB_TABLE=18,12|21,19;AS_SOR=0.449;BaseQRankSum=-1.329e+00;DP=70;ExcessHet=3.0103;FS=2.012;MLEAC=1;MLEAF=0.500;MQ=59.73;MQRankSum=-8.370e-01;QD=19.05;RAW_MQ=249769.00;ReadPosRankSum=0.581;SOR=0.449 GT:AD:GQ:PL 0/1:30,40:99:1341,0,961
+20 10436908 . C G 1361.60 . AC=1;AF=0.500;AN=2;AS_BaseQRankSum=-0.900;AS_FS=4.557;AS_MQ=58.89;AS_MQRankSum=-1.000;AS_RAW_BaseQRankSum=|-0.9,1;AS_RAW_MQ=145849.00|145638.00;AS_RAW_MQRankSum=|-1.0,1;AS_RAW_ReadPosRankSum=|-0.2,1;AS_ReadPosRankSum=-0.200;AS_SB_TABLE=15,26|11,31;AS_SOR=1.252;BaseQRankSum=-8.440e-01;DP=83;ExcessHet=3.0103;FS=4.557;MLEAC=1;MLEAF=0.500;MQ=59.26;MQRankSum=-9.940e-01;QD=16.40;RAW_MQ=291487.00;ReadPosRankSum=-1.480e-01;SOR=1.252 GT:AD:GQ:PL 0/1:41,42:99:1369,0,1378
diff --git a/src/test/resources/org/broadinstitute/hellbender/tools/walkers/GnarlyGenotyper/hailOutput.chr20snippet.sites_only.vcf.idx b/src/test/resources/org/broadinstitute/hellbender/tools/walkers/GnarlyGenotyper/hailOutput.chr20snippet.sites_only.vcf.idx
new file mode 100644
index 0000000000000000000000000000000000000000..99bdfa50a448374764ab704c0474124f51c2a156
GIT binary patch
literal 154586
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 XzhU3Vpp^-Wwa@^^0Vos&_
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
Voxi{T{p&yWqZ{3C|LXqt{{dSAG0y-1
literal 0
HcmV?d00001