[med-svn] [picard-tools] 01/06: New upstream version 2.6.0+dfsg
Andreas Tille
tille at debian.org
Sat Sep 10 08:51:30 UTC 2016
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository picard-tools.
commit 2968317700fb60606d24e4bfd6a6d30fcb0e1303
Author: Andreas Tille <tille at debian.org>
Date: Sat Sep 10 10:11:13 2016 +0200
New upstream version 2.6.0+dfsg
---
.travis.yml | 2 +
README.md | 74 ++++++-
build.gradle | 25 ++-
build.xml | 3 +
settings.gradle | 1 +
.../analysis/directed/RnaSeqMetricsCollector.java | 45 +++--
.../picard/fingerprint/FingerprintChecker.java | 4 +-
.../java/picard/fingerprint/GenotypeReader.java | 2 +-
src/main/java/picard/sam/BuildBamIndex.java | 4 +-
src/main/java/picard/sam/FastqToSam.java | 4 +-
src/main/java/picard/sam/FilterSamReads.java | 60 ++++--
src/main/java/picard/vcf/FixVcfHeader.java | 214 +++++++++++++++++++++
src/main/java/picard/vcf/GatherVcfs.java | 2 +-
src/main/java/picard/vcf/MakeSitesOnlyVcf.java | 2 +-
src/main/java/picard/vcf/MergeVcfs.java | 2 +-
src/main/java/picard/vcf/SortVcf.java | 4 +-
src/main/java/picard/vcf/SplitVcfs.java | 2 +-
.../picard/vcf/UpdateVcfSequenceDictionary.java | 2 +-
src/main/java/picard/vcf/VcfFormatConverter.java | 2 +-
.../vcf/processor/VariantIteratorProducer.java | 6 +-
src/test/java/picard/sam/FilterSamReadsTest.java | 104 ++++++++--
.../picard/vcf/AbstractVcfMergingClpTester.java | 2 +-
src/test/java/picard/vcf/FixVcfHeaderTest.java | 94 +++++++++
.../picard/vcf/VariantContextComparatorTest.java | 2 +-
.../sam/FilterSamReads/filter1.interval_list | 12 ++
.../sam/FilterSamReads/filter2.interval_list | 12 ++
testdata/picard/vcf/FixVcfHeaderTest/header.vcf | 150 +++++++++++++++
.../FixVcfHeaderTest/header_with_extra_sample.vcf | 150 +++++++++++++++
testdata/picard/vcf/FixVcfHeaderTest/input.vcf | 199 +++++++++++++++++++
testdata/picard/vcf/FixVcfHeaderTest/output.vcf | 206 ++++++++++++++++++++
30 files changed, 1307 insertions(+), 84 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 7ccf32f..f40c6b1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,3 +13,5 @@ before_install:
- sudo apt-get -qq update
- sudo apt-get install -y --no-install-recommends r-base-dev r-recommended qpdf
script: ./gradlew jacocoTestReport
+after_success:
+ - ./gradlew coveralls
\ No newline at end of file
diff --git a/README.md b/README.md
index e811d0c..d6e303c 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+[![Coverage Status](https://coveralls.io/repos/github/broadinstitute/picard/badge.svg?branch=master)](https://coveralls.io/github/broadinstitute/picard?branch=master)
[![Build Status](https://travis-ci.org/broadinstitute/picard.svg?branch=master)](https://travis-ci.org/broadinstitute/picard)
A set of Java command line tools for manipulating high-throughput sequencing (HTS) data and formats.
@@ -8,27 +9,78 @@ sequencing data such as [SAM][2] and [VCF][3].
As of version 2.0.1 (Nov. 2015) Picard requires Java 1.8 (jdk8u66). The last version to support Java 1.7 was release 1.141.
-To clone and build:
-Clone the repo:
+####Building Picard
+* First, clone the repo:
+```
git clone git at github.com:broadinstitute/picard.git
cd picard/
+```
+
+* Picard is now built using [gradle](http://gradle.org/). A wrapper script (`gradlew`) is included which will download the appropriate version of gradle on the first invocation.
-Clone htsjdk into a subdirectory:
+* To build a fully-packaged, runnable Picard jar with all dependencies included, run:
+```
+ ./gradlew shadowJar
+```
- ant clone-htsjdk
-Build:
+* The resulting jar will be in `build/libs`. To run it, the command is:
+```
+ java -jar build/libs/picard.jar
+
+ or
+
+ java -jar build/libs/picard-<VERSION>-all.jar
+```
- ant
+
+* To build a jar containing only Picard classes (without its dependencies), run:
+```
+ ./gradlew jar
+```
+
+* To clean the build directory, run:
+```
+ ./gradlew clean
+```
-Enjoy!
+####Running Tests
- java -jar dist/picard.jar
+* To run all tests, the command is:
+```
+ ./gradlew test
+```
-**NOTE:** Picard expects the *latest tagged release* version of HTSJDK. It is *not* guaranteed to be able to build from older versions of HTSJDK nor from the latest state of the HTSJDK master branch. When you run `ant clone-htsjdk` the first time, Picard will fetch the appropriate tagged version. Subsequently, to update HTSJDK (if for example you run into build issues) you can do so manually by running `git checkout <tag>` within your HTSJDK clone, where `<tag>` is the latest release tag [...]
+* To run a specific test, the command is:
+```
+ ./gradlew test -Dtest.single=TestClassName
+```
-----
+####Changing the released version of HTSJDK that Picard depends on
+
+To switch Picard's HTSJDK dependency to a different released version:
+
+* Open `build.gradle`
+* Edit VERSION in the following line to be a different released version of HTSJDK. HTSJDK releases are listed [here](https://github.com/samtools/htsjdk/releases)
+```
+ final htsjdkVersion = System.getProperty('htsjdk.version', 'VERSION')`
+```
+* Open a pull request with this change
+####Building Picard with a Custom Version of HTSJDK
+
+During development in Picard, it is sometimes necessary to build locally against an unreleased version or branch of HTSJDK.
+
+* To build against an unreleased version of HTSJDK's master branch:
+ * Go to the [Broad artifactory](https://artifactory.broadinstitute.org/artifactory/simple/libs-snapshot-local/com/github/samtools/htsjdk/), where continuous snapshots of HTSJDK's master branch are published, and select the version you want to use. For example, `2.5.1-9-g5740ca1-SNAPSHOT`. You can search by tag or short git commit hash.
+ * In your Picard clone, run `./gradlew shadowJar -Dhtsjdk.version=VERSION`, where VERSION is the version of the HTSJDK master branch snapshot you want to use.
+
+* To build against a version of HTSJDK that has *not* yet been merged into HTSJDK's master branch:
+ * Clone [HTSJDK](https://github.com/samtools/htsjdk/), and in your clone check out the tag or branch you want to build Picard with.
+ * Run `./gradlew install printVersion` in your htsjdk clone to install that version to your local maven repository. Take note of the version number that gets printed at the end.
+ * Switch back to your Picard clone, and run `./gradlew shadowJar -Dhtsjdk.version=VERSION`, where VERSION is the version of HTSJDK you installed to your local maven repository.
+
+----
It's also possible to build a version of Picard that supports reading from
GA4GH API, e.g. Google Genomics:
@@ -72,6 +124,8 @@ GA4GH_CLIENT_SECRETS=../client_secrets.json
```
For Java 7 (as opposed to 8) use ```alpn-boot-7.1.3.v20150130.jar```.
+----
+
Picard is migrating to semantic versioning (http://semver.org/). We will eventually adhere to it strictly and bump our major version whenever there are breaking changes to our API, but until we more clearly define what constitutes our official API, clients should assume that every release potentially contains at least minor changes to public methods.
Please see the [Picard Documentation](http://broadinstitute.github.io/picard) for more information.
diff --git a/build.gradle b/build.gradle
index 6170a0e..03d4887 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,6 @@
+import org.gradle.internal.os.OperatingSystem
+
import javax.tools.ToolProvider
-import org.ajoberstar.grgit.*
buildscript {
repositories {
@@ -25,6 +26,9 @@ mainClassName = "picard.cmdline.PicardCommandLine"
repositories {
mavenLocal()
mavenCentral()
+ maven {
+ url "https://artifactory.broadinstitute.org/artifactory/libs-snapshot/" //for htsjdk snapshots
+ }
}
jacocoTestReport {
@@ -43,9 +47,11 @@ jacoco {
toolVersion = "0.7.5.201505241946"
}
+final htsjdkVersion = System.getProperty('htsjdk.version', '2.6.0')
+
dependencies {
compile 'com.google.guava:guava:15.0'
- compile ('com.github.samtools:htsjdk:2.5.0')
+ compile 'com.github.samtools:htsjdk:' + htsjdkVersion
//tools dependency for doclet requires sdk devel
compile(files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()))
testCompile 'org.testng:testng:6.9.10'
@@ -63,7 +69,7 @@ group = 'com.github.broadinstitute'
defaultTasks 'all'
-task all(dependsOn: ['jar', 'distZip', 'documentAll'])
+task all(dependsOn: ['jar', 'distZip', 'documentAll', 'shadowJar', 'currentJar'])
jar {
manifest {
@@ -73,9 +79,6 @@ jar {
'Implementation-Version': version
}
}
-
-import org.gradle.internal.os.OperatingSystem;
-
// This is a hack to disable the java 8 default javadoc lint until we fix the html formatting
if (JavaVersion.current().isJava8Compatible()) {
tasks.withType(Javadoc) {
@@ -83,6 +86,16 @@ if (JavaVersion.current().isJava8Compatible()) {
}
}
+task currentJar(type: Copy){
+ from shadowJar
+ into new File(buildDir, "libs")
+ rename { string -> "picard.jar"}
+}
+
+shadowJar {
+ finalizedBy currentJar
+}
+
tasks.withType(Test) {
outputs.upToDateWhen { false } // tests will always rerun
description = "Runs the unit tests"
diff --git a/build.xml b/build.xml
index 8fc6cfe..a3ae77e 100644
--- a/build.xml
+++ b/build.xml
@@ -27,6 +27,9 @@
./gradlew test --tests "*ParserTest"
./gradlew test --tests "*ParserTest" --debug-jvm
+ run tests and collect coverage information (report will be in `build/reports/jacoco/test/html/index.html`)
+ ./gradlew jacocoTestReport
+
clean the project directory
./gradlew clean
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..adda0d7
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1 @@
+rootProject.name = "picard"
diff --git a/src/main/java/picard/analysis/directed/RnaSeqMetricsCollector.java b/src/main/java/picard/analysis/directed/RnaSeqMetricsCollector.java
index 8385704..149e0ff 100644
--- a/src/main/java/picard/analysis/directed/RnaSeqMetricsCollector.java
+++ b/src/main/java/picard/analysis/directed/RnaSeqMetricsCollector.java
@@ -36,7 +36,7 @@ public class RnaSeqMetricsCollector extends SAMRecordMultiLevelCollector<RnaSeqM
private final int minimumLength;
private final StrandSpecificity strandSpecificity;
private final double rrnaFragmentPercentage;
- private final Long ribosomalInitialValue;
+ protected final Long ribosomalInitialValue;
final private Set<Integer> ignoredSequenceIndices;
@@ -95,21 +95,34 @@ public class RnaSeqMetricsCollector extends SAMRecordMultiLevelCollector<RnaSeqM
return ignoredSequenceIndices;
}
- private class PerUnitRnaSeqMetricsCollector implements PerUnitMetricCollector<RnaSeqMetrics, Integer, SAMRecord> {
+ protected class PerUnitRnaSeqMetricsCollector implements PerUnitMetricCollector<RnaSeqMetrics, Integer, SAMRecord> {
+
+ protected final RnaSeqMetrics metrics;
- final RnaSeqMetrics metrics = new RnaSeqMetrics();
-
private final Map<Gene.Transcript, int[]> coverageByTranscript = new HashMap<Gene.Transcript, int[]>();
- public PerUnitRnaSeqMetricsCollector(final String sample,
- final String library,
- final String readGroup,
- final Long ribosomalBasesInitialValue) {
+ /**
+ * Derived classes that need to capture some additional metrics can use this ctor to supply a metrics instance
+ * that is a subclass of RnaSeqMetrics.
+ */
+ protected PerUnitRnaSeqMetricsCollector(final RnaSeqMetrics metrics,
+ final String sample,
+ final String library,
+ final String readGroup,
+ final Long ribosomalBasesInitialValue) {
+ this.metrics = metrics;
this.metrics.SAMPLE = sample;
this.metrics.LIBRARY = library;
this.metrics.READ_GROUP = readGroup;
this.metrics.RIBOSOMAL_BASES = ribosomalBasesInitialValue;
-
+
+ }
+
+ public PerUnitRnaSeqMetricsCollector(final String sample,
+ final String library,
+ final String readGroup,
+ final Long ribosomalBasesInitialValue) {
+ this(new RnaSeqMetrics(), sample, library, readGroup, ribosomalBasesInitialValue);
}
public void acceptRecord(SAMRecord rec) {
@@ -156,11 +169,7 @@ public class RnaSeqMetricsCollector extends SAMRecordMultiLevelCollector<RnaSeqM
// Assume entire read is ribosomal.
// TODO: Should count reads, not bases?
metrics.RIBOSOMAL_BASES += rec.getReadLength();
- int numAlignedBases = 0;
- for (final AlignmentBlock alignmentBlock : rec.getAlignmentBlocks()) {
- numAlignedBases += alignmentBlock.getLength();
- }
- metrics.PF_ALIGNED_BASES += numAlignedBases;
+ metrics.PF_ALIGNED_BASES += getNumAlignedBases(rec);
return;
}
}
@@ -244,6 +253,14 @@ public class RnaSeqMetricsCollector extends SAMRecordMultiLevelCollector<RnaSeqM
}
+ protected int getNumAlignedBases(SAMRecord rec) {
+ int numAlignedBases = 0;
+ for (final AlignmentBlock alignmentBlock : rec.getAlignmentBlocks()) {
+ numAlignedBases += alignmentBlock.getLength();
+ }
+ return numAlignedBases;
+ }
+
public void finish() {
if (metrics.PF_ALIGNED_BASES > 0) {
if (metrics.RIBOSOMAL_BASES != null) {
diff --git a/src/main/java/picard/fingerprint/FingerprintChecker.java b/src/main/java/picard/fingerprint/FingerprintChecker.java
index 2cc6fba..4b4b55e 100644
--- a/src/main/java/picard/fingerprint/FingerprintChecker.java
+++ b/src/main/java/picard/fingerprint/FingerprintChecker.java
@@ -151,8 +151,8 @@ public class FingerprintChecker {
if (samples == null) samples = ctx.getSampleNames();
if (isUsableSnp(ctx)) {
- final HaplotypeBlock h = this.haplotypes.getHaplotype(ctx.getChr(), ctx.getStart());
- final Snp snp = this.haplotypes.getSnp(ctx.getChr(), ctx.getStart());
+ final HaplotypeBlock h = this.haplotypes.getHaplotype(ctx.getContig(), ctx.getStart());
+ final Snp snp = this.haplotypes.getSnp(ctx.getContig(), ctx.getStart());
if (h == null) continue;
// Check the alleles from the file against the expected set of genotypes
diff --git a/src/main/java/picard/fingerprint/GenotypeReader.java b/src/main/java/picard/fingerprint/GenotypeReader.java
index fc68728..e9c4248 100644
--- a/src/main/java/picard/fingerprint/GenotypeReader.java
+++ b/src/main/java/picard/fingerprint/GenotypeReader.java
@@ -98,7 +98,7 @@ public class GenotypeReader {
if (next == null) {
while (i.hasNext()) {
final VariantContext ctx = i.next();
- final Interval ctxInterval = new Interval(ctx.getChr(), ctx.getStart(), ctx.getEnd());
+ final Interval ctxInterval = new Interval(ctx.getContig(), ctx.getStart(), ctx.getEnd());
final Collection<Interval> hits = detector.getOverlaps(ctxInterval);
if (hits != null && !hits.isEmpty()) {
next = ctx;
diff --git a/src/main/java/picard/sam/BuildBamIndex.java b/src/main/java/picard/sam/BuildBamIndex.java
index 9dea8a6..b5a554e 100755
--- a/src/main/java/picard/sam/BuildBamIndex.java
+++ b/src/main/java/picard/sam/BuildBamIndex.java
@@ -103,7 +103,7 @@ public class BuildBamIndex extends CommandLineProgram {
final String baseFileName;
if (inputUrl != null) {
final String path = inputUrl.getPath();
- final int lastSlash = path.lastIndexOf("/");
+ final int lastSlash = path.lastIndexOf('/');
baseFileName = path.substring(lastSlash + 1, path.length());
} else {
baseFileName = inputFile.getAbsolutePath();
@@ -111,7 +111,7 @@ public class BuildBamIndex extends CommandLineProgram {
if (baseFileName.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) {
- final int index = baseFileName.lastIndexOf(".");
+ final int index = baseFileName.lastIndexOf('.');
OUTPUT = new File(baseFileName.substring(0, index) + BAMIndex.BAMIndexSuffix);
} else {
diff --git a/src/main/java/picard/sam/FastqToSam.java b/src/main/java/picard/sam/FastqToSam.java
index 441d292..2b8bd84 100644
--- a/src/main/java/picard/sam/FastqToSam.java
+++ b/src/main/java/picard/sam/FastqToSam.java
@@ -461,7 +461,7 @@ public class FastqToSam extends CommandLineProgram {
private String [] getReadNameTokens(final String readName, final int pairNum, final FastqReader freader) {
if(readName.equals("")) throw new PicardException(error(freader,"Pair read name "+pairNum+" cannot be empty: "+readName));
- final int idx = readName.lastIndexOf("/");
+ final int idx = readName.lastIndexOf('/');
final String[] result = new String[2];
if (idx == -1) {
@@ -489,7 +489,7 @@ public class FastqToSam extends CommandLineProgram {
// Read names cannot contain blanks
private String getReadName(final String fastqHeader, final boolean paired) {
- final int idx = fastqHeader.indexOf(" ");
+ final int idx = fastqHeader.indexOf(' ');
String readName = (idx == -1) ? fastqHeader : fastqHeader.substring(0,idx);
// NOTE: the while loop isn't necessarily the most efficient way to handle this but we don't
diff --git a/src/main/java/picard/sam/FilterSamReads.java b/src/main/java/picard/sam/FilterSamReads.java
index 12536be..ecfe31b 100644
--- a/src/main/java/picard/sam/FilterSamReads.java
+++ b/src/main/java/picard/sam/FilterSamReads.java
@@ -34,13 +34,12 @@ import htsjdk.samtools.SAMFileWriterFactory;
import htsjdk.samtools.SAMRecord;
import htsjdk.samtools.SamReader;
import htsjdk.samtools.SamReaderFactory;
-import htsjdk.samtools.filter.AlignedFilter;
-import htsjdk.samtools.filter.FilteringIterator;
-import htsjdk.samtools.filter.JavascriptSamRecordFilter;
-import htsjdk.samtools.filter.ReadNameFilter;
+import htsjdk.samtools.filter.*;
import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IntervalList;
import htsjdk.samtools.util.Log;
import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.Interval;
import picard.cmdline.CommandLineProgram;
import picard.cmdline.CommandLineProgramProperties;
import picard.cmdline.Option;
@@ -51,6 +50,8 @@ import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.List;
/**
* From a SAM or BAM file, produce a new SAM or BAM by filtering aligned reads or a list of read
@@ -86,7 +87,8 @@ public class FilterSamReads extends CommandLineProgram {
excludeAligned("OUTPUT SAM/BAM will contain un-mapped reads only. INPUT SAM/BAM must be in queryname SortOrder. (Note that *both* first and second of pair must be aligned to be excluded from the OUTPUT SAM or BAM)"),
includeReadList("OUTPUT SAM/BAM will contain reads that are supplied in the READ_LIST_FILE file"),
excludeReadList("OUTPUT bam will contain reads that are *not* supplied in the READ_LIST_FILE file"),
- includeJavascript("OUTPUT bam will contain reads that hava been accepted by the JAVASCRIPT_FILE script.");
+ includeJavascript("OUTPUT bam will contain reads that hava been accepted by the JAVASCRIPT_FILE script."),
+ includePairedIntervals("OUTPUT SAM/BAM will contain any reads (and their mate) that overlap with an interval. INPUT SAM/BAM and INTERVAL_LIST must be in coordinate SortOrder. Only aligned reads will be output.");
private final String description;
Filter(final String description) {
@@ -112,6 +114,11 @@ public class FilterSamReads extends CommandLineProgram {
shortName = "RLF")
public File READ_LIST_FILE;
+ @Option(doc = "Interval List File containing intervals that will be included or excluded from the OUTPUT SAM or BAM file.",
+ optional = true,
+ shortName = "IL")
+ public File INTERVAL_LIST;
+
@Option(
doc = "SortOrder of the OUTPUT SAM or BAM file, otherwise use the SortOrder of the INPUT file.",
optional = true, shortName = "SO")
@@ -136,7 +143,7 @@ public class FilterSamReads extends CommandLineProgram {
public File JAVASCRIPT_FILE = null;
- private void filterReads(final FilteringIterator filteringIterator) {
+ private void filterReads(final FilteringSamIterator filteringIterator) {
// get OUTPUT header from INPUT and overwrite it if necessary
final SAMFileHeader fileHeader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(INPUT);
@@ -144,6 +151,11 @@ public class FilterSamReads extends CommandLineProgram {
if (SORT_ORDER != null) {
fileHeader.setSortOrder(SORT_ORDER);
}
+
+ if (FILTER == Filter.includePairedIntervals && fileHeader.getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
+ throw new UnsupportedOperationException("Input must be coordinate sorted to use includePairedIntervals");
+ }
+
final boolean presorted = inputSortOrder.equals(fileHeader.getSortOrder());
log.info("Filtering [presorted=" + presorted + "] " + INPUT.getName() + " -> OUTPUT=" +
OUTPUT.getName() + " [sortorder=" + fileHeader.getSortOrder().name() + "]");
@@ -186,6 +198,11 @@ public class FilterSamReads extends CommandLineProgram {
IOUtil.assertFileIsReadable(readsFile);
}
+ private List<Interval> getIntervalList (final File intervalFile) throws IOException {
+ IOUtil.assertFileIsReadable(intervalFile);
+ return IntervalList.fromFile(intervalFile).getIntervals();
+ }
+
@Override
protected int doWork() {
@@ -193,33 +210,42 @@ public class FilterSamReads extends CommandLineProgram {
IOUtil.assertFileIsReadable(INPUT);
IOUtil.assertFileIsWritable(OUTPUT);
if (WRITE_READS_FILES) writeReadsFile(INPUT);
+
+ List<Interval> intervalList = new ArrayList<>();
+
+ if (INTERVAL_LIST != null) {
+ intervalList = getIntervalList(INTERVAL_LIST);
+ }
+
final SamReader samReader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
- final FilteringIterator filteringIterator;
+ final FilteringSamIterator filteringIterator;
switch (FILTER) {
case includeAligned:
- filteringIterator = new FilteringIterator(samReader.iterator(),
+ filteringIterator = new FilteringSamIterator(samReader.iterator(),
new AlignedFilter(true), true);
break;
case excludeAligned:
- filteringIterator = new FilteringIterator(samReader.iterator(),
+ filteringIterator = new FilteringSamIterator(samReader.iterator(),
new AlignedFilter(false), true);
break;
case includeReadList:
- filteringIterator = new FilteringIterator(samReader.iterator(),
+ filteringIterator = new FilteringSamIterator(samReader.iterator(),
new ReadNameFilter(READ_LIST_FILE, true));
break;
case excludeReadList:
- filteringIterator = new FilteringIterator(samReader.iterator(),
+ filteringIterator = new FilteringSamIterator(samReader.iterator(),
new ReadNameFilter(READ_LIST_FILE, false));
break;
case includeJavascript:
- filteringIterator = new FilteringIterator(samReader.iterator(),
+ filteringIterator = new FilteringSamIterator(samReader.iterator(),
new JavascriptSamRecordFilter(
JAVASCRIPT_FILE,
- samReader.getFileHeader()
- ));
-
+ samReader.getFileHeader()));
+ break;
+ case includePairedIntervals:
+ filteringIterator = new FilteringSamIterator(samReader.iterator(),
+ new IntervalKeepPairFilter(intervalList), false);
break;
default:
throw new UnsupportedOperationException(FILTER.name() + " has not been implemented!");
@@ -254,6 +280,10 @@ public class FilterSamReads extends CommandLineProgram {
}
+ if (FILTER.equals(Filter.includePairedIntervals) && INTERVAL_LIST == null) {
+ return new String[]{"A INTERVAL_LIST must be specified when using the " + FILTER.name() + " option"};
+ }
+
return super.customCommandLineValidation();
}
diff --git a/src/main/java/picard/vcf/FixVcfHeader.java b/src/main/java/picard/vcf/FixVcfHeader.java
new file mode 100644
index 0000000..1ebc7a2
--- /dev/null
+++ b/src/main/java/picard/vcf/FixVcfHeader.java
@@ -0,0 +1,214 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2016 Nils Homer
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ */
+
+package picard.vcf;
+
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFFormatHeaderLine;
+import htsjdk.variant.vcf.VCFHeader;
+import htsjdk.variant.vcf.VCFHeaderLine;
+import htsjdk.variant.vcf.VCFHeaderLineCount;
+import htsjdk.variant.vcf.VCFHeaderLineType;
+import htsjdk.variant.vcf.VCFInfoHeaderLine;
+import htsjdk.variant.vcf.VCFStandardHeaderLines;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Tool for replacing or fixing up a VCF header.
+ *
+ * @author Nils Homer
+ */
+ at CommandLineProgramProperties(
+ usage = FixVcfHeader.USAGE_SUMMARY + FixVcfHeader.USAGE_DETAILS,
+ usageShort = FixVcfHeader.USAGE_SUMMARY,
+ programGroup = VcfOrBcf.class
+)
+public class FixVcfHeader extends CommandLineProgram {
+ static final String USAGE_SUMMARY = "Replaces or fixes a VCF header.";
+ static final String USAGE_DETAILS =
+ "This tool will either replace the header in the input VCF file (INPUT) with the given VCF header (HEADER) or will attempt to fill " +
+ "in any field definitions that are missing in the input header by examining the variants in the input VCF file (INPUT). In the " +
+ " latter case, this tool will perform two passes over the input VCF, and any INFO and FORMAT fields found in the VCF records but " +
+ "not found in the input VCF header will be added to the output VCF header with dummy descriptions.<br />" +
+ "<h4>Replace header usage example:</h4>" +
+ "<pre>" +
+ "java -jar picard.jar FixVcfHeader \\<br />" +
+ " I=input.vcf \\<br />" +
+ " O=fixed.vcf \\<br />" +
+ " HEADER=header.vcf" +
+ "</pre>" +
+ "<h4>Fix header usage example:</h4>" +
+ "<pre>" +
+ "java -jar picard.jar FixVcfHeader \\<br />" +
+ " I=input.vcf \\<br />" +
+ " O=fixed.vcf \\<br />" +
+ "</pre>" +
+ "<hr />";
+ @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input VCF/BCF file.")
+ public File INPUT;
+
+ @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output VCF/BCF file.")
+ public File OUTPUT;
+
+ @Option(shortName="N", doc="Check only the first N records when searching for missing INFO and FORMAT fields.", optional=true)
+ public int CHECK_FIRST_N_RECORDS = -1;
+
+ @Option(shortName="H", doc="The replacement VCF header.", optional=true)
+ public File HEADER = null;
+
+ @Option(doc="Enforce that the samples are the same (and in the same order) when replacing the VCF header.", optional=true)
+ public boolean ENFORCE_SAME_SAMPLES = true;
+
+ private final Log log = Log.getInstance(FixVcfHeader.class);
+
+ // Stock main method
+ public static void main(final String[] args) {
+ new FixVcfHeader().instanceMainWithExit(args);
+ }
+
+ @Override
+ protected String[] customCommandLineValidation() {
+ if (HEADER != null && 0 <= CHECK_FIRST_N_RECORDS) return new String[]{"CHECK_FIRST_N_RECORDS should no be specified when HEADER is specified"};
+ return super.customCommandLineValidation();
+ }
+
+ @Override protected int doWork() {
+ IOUtil.assertFileIsReadable(INPUT);
+ if (HEADER != null) IOUtil.assertFileIsReadable(HEADER);
+ IOUtil.assertFileIsWritable(OUTPUT);
+
+ final VCFFileReader reader = new VCFFileReader(INPUT, false);
+
+ final VCFHeader outHeader;
+ if (HEADER != null) { // read the header from the file
+ final VCFFileReader headerReader = new VCFFileReader(HEADER, false);
+ if (ENFORCE_SAME_SAMPLES) {
+ outHeader = headerReader.getFileHeader();
+ enforceSameSamples(reader.getFileHeader(), outHeader);
+ }
+ else {
+ outHeader = new VCFHeader(headerReader.getFileHeader().getMetaDataInInputOrder(), reader.getFileHeader().getSampleNamesInOrder());
+ }
+ CloserUtil.close(headerReader);
+ outHeader.getInfoHeaderLines()
+ .stream()
+ .filter(infoHeaderLine -> !reader.getFileHeader().hasInfoLine(infoHeaderLine.getID()))
+ .forEach(infoHeaderLine -> log.info("INFO line found in HEADER will be added to OUTPUT: " + infoHeaderLine.getID()));
+ outHeader.getFormatHeaderLines()
+ .stream()
+ .filter(formatHeaderLine -> !reader.getFileHeader().hasInfoLine(formatHeaderLine.getID()))
+ .forEach(formatHeaderLine -> log.info("FORMAT line found in HEADER will be added to OUTPUT: " + formatHeaderLine.getID()));
+ }
+ else { // read the input
+ final ProgressLogger progress = new ProgressLogger(log, 1000000, "read");
+ final VCFFileReader in = new VCFFileReader(INPUT, false);
+ final VCFHeader inHeader = in.getFileHeader();
+
+ final Map<String, VCFInfoHeaderLine> infoHeaderLines = new HashMap<>();
+ final Map<String, VCFFormatHeaderLine> formatHeaderLines = new HashMap<>();
+ log.info("Reading in records to re-build the header.");
+ for (final VariantContext ctx : in) {
+ // INFO
+ for (final Map.Entry<String, Object> attribute : ctx.getAttributes().entrySet()) {
+ final String id = attribute.getKey();
+ if (!inHeader.hasInfoLine(id) && !infoHeaderLines.containsKey(id)) {
+ log.info("Will add an INFO line with id: " + id);
+ infoHeaderLines.put(id, new VCFInfoHeaderLine(id, VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "Missing description: this INFO line was added by Picard's FixVCFHeader"));
+ }
+ }
+ // FORMAT
+ for (final Genotype genotype : ctx.getGenotypes()) {
+ for (final Map.Entry<String, Object> attribute : genotype.getExtendedAttributes().entrySet()) {
+ final String id = attribute.getKey();
+ if (!inHeader.hasFormatLine(id) && !formatHeaderLines.containsKey(id)) {
+ log.info("Will add FORMAT line with id: " + id);
+ formatHeaderLines.put(id, new VCFFormatHeaderLine(id, VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "Missing description: this FORMAT line was added by Picard's FixVCFHeader"));
+ }
+ }
+ }
+ progress.record(ctx.getContig(), ctx.getStart());
+ if (0 < CHECK_FIRST_N_RECORDS && CHECK_FIRST_N_RECORDS <= progress.getCount()) break;
+ }
+ CloserUtil.close(in);
+
+ // create the output header
+ final Set<VCFHeaderLine> headerLines = new HashSet<>(inHeader.getMetaDataInInputOrder());
+ VCFStandardHeaderLines.addStandardFormatLines(headerLines, false, Genotype.PRIMARY_KEYS); // This is very frustrating to have to add
+ headerLines.addAll(infoHeaderLines.values());
+ headerLines.addAll(formatHeaderLines.values());
+ outHeader = new VCFHeader(headerLines, inHeader.getSampleNamesInOrder());
+ log.info("VCF header re-built.");
+ }
+
+ final VariantContextWriter writer = new VariantContextWriterBuilder().setOption(Options.INDEX_ON_THE_FLY)
+ .setOutputFile(OUTPUT).setReferenceDictionary(outHeader.getSequenceDictionary()).build();
+ writer.writeHeader(outHeader);
+
+ log.info("Writing the output VCF.");
+ final ProgressLogger progress = new ProgressLogger(log, 1000000, "read");
+ for (final VariantContext ctx : reader) {
+ writer.add(ctx);
+ progress.record(ctx.getContig(), ctx.getStart());
+ }
+ writer.close();
+ CloserUtil.close(reader);
+
+ return 0;
+ }
+
+ private void enforceSameSamples(final VCFHeader readerHeader, final VCFHeader inputHeader) {
+ final ArrayList<String> readerSamples = readerHeader.getSampleNamesInOrder();
+ final ArrayList<String> inputSamples = inputHeader.getSampleNamesInOrder();
+ if (readerSamples.size() != inputSamples.size()) {
+ throw new PicardException("The input VCF had a different # of samples than the input VCF header.");
+ }
+ for (int i = 0; i < readerSamples.size(); i++) {
+ if (!readerSamples.get(i).equals(inputSamples.get(i))) {
+ throw new PicardException(String.format("Mismatch in the %dth sample: '%s' != '%s'", i, readerSamples.get(i), inputSamples.get(i)));
+ }
+ }
+ }
+}
diff --git a/src/main/java/picard/vcf/GatherVcfs.java b/src/main/java/picard/vcf/GatherVcfs.java
index 1f6a4e2..c69907b 100644
--- a/src/main/java/picard/vcf/GatherVcfs.java
+++ b/src/main/java/picard/vcf/GatherVcfs.java
@@ -175,7 +175,7 @@ public class GatherVcfs extends CommandLineProgram {
while (variantIterator.hasNext()) {
lastContext = variantIterator.next();
out.add(lastContext);
- progress.record(lastContext.getChr(), lastContext.getStart());
+ progress.record(lastContext.getContig(), lastContext.getStart());
}
lastFile = f;
diff --git a/src/main/java/picard/vcf/MakeSitesOnlyVcf.java b/src/main/java/picard/vcf/MakeSitesOnlyVcf.java
index 879570f..f93dd88 100644
--- a/src/main/java/picard/vcf/MakeSitesOnlyVcf.java
+++ b/src/main/java/picard/vcf/MakeSitesOnlyVcf.java
@@ -91,7 +91,7 @@ public class MakeSitesOnlyVcf extends CommandLineProgram {
final VariantContext full = iterator.next();
final VariantContext site = subsetToSamplesWithOriginalAnnotations(full, SAMPLE);
writer.add(site);
- progress.record(site.getChr(), site.getStart());
+ progress.record(site.getContig(), site.getStart());
}
CloserUtil.close(iterator);
diff --git a/src/main/java/picard/vcf/MergeVcfs.java b/src/main/java/picard/vcf/MergeVcfs.java
index f8294bf..ee0ae76 100644
--- a/src/main/java/picard/vcf/MergeVcfs.java
+++ b/src/main/java/picard/vcf/MergeVcfs.java
@@ -150,7 +150,7 @@ public class MergeVcfs extends CommandLineProgram {
while (mergingIterator.hasNext()) {
final VariantContext context = mergingIterator.next();
writer.add(context);
- progress.record(context.getChr(), context.getStart());
+ progress.record(context.getContig(), context.getStart());
}
CloserUtil.close(mergingIterator);
diff --git a/src/main/java/picard/vcf/SortVcf.java b/src/main/java/picard/vcf/SortVcf.java
index b3dd79d..c0a6473 100644
--- a/src/main/java/picard/vcf/SortVcf.java
+++ b/src/main/java/picard/vcf/SortVcf.java
@@ -166,7 +166,7 @@ public class SortVcf extends CommandLineProgram {
log.info("Reading entries from input file " + readerCount);
for (final VariantContext variantContext : reader) {
sorter.add(variantContext);
- readProgress.record(variantContext.getChr(), variantContext.getStart());
+ readProgress.record(variantContext.getContig(), variantContext.getStart());
}
reader.close();
readerCount++;
@@ -184,7 +184,7 @@ public class SortVcf extends CommandLineProgram {
out.writeHeader(outputHeader);
for (final VariantContext variantContext : sortedOutput) {
out.add(variantContext);
- writeProgress.record(variantContext.getChr(), variantContext.getStart());
+ writeProgress.record(variantContext.getContig(), variantContext.getStart());
}
out.close();
}
diff --git a/src/main/java/picard/vcf/SplitVcfs.java b/src/main/java/picard/vcf/SplitVcfs.java
index b9521fa..299f5c8 100644
--- a/src/main/java/picard/vcf/SplitVcfs.java
+++ b/src/main/java/picard/vcf/SplitVcfs.java
@@ -113,7 +113,7 @@ public class SplitVcfs extends CommandLineProgram {
else incorrectVariantCount++;
}
- progress.record(context.getChr(), context.getStart());
+ progress.record(context.getContig(), context.getStart());
}
if (incorrectVariantCount > 0) {
diff --git a/src/main/java/picard/vcf/UpdateVcfSequenceDictionary.java b/src/main/java/picard/vcf/UpdateVcfSequenceDictionary.java
index 71a9ab9..b68f96c 100644
--- a/src/main/java/picard/vcf/UpdateVcfSequenceDictionary.java
+++ b/src/main/java/picard/vcf/UpdateVcfSequenceDictionary.java
@@ -98,7 +98,7 @@ public class UpdateVcfSequenceDictionary extends CommandLineProgram {
while (iterator.hasNext()) {
final VariantContext context = iterator.next();
vcfWriter.add(context);
- progress.record(context.getChr(), context.getStart());
+ progress.record(context.getContig(), context.getStart());
}
CloserUtil.close(iterator);
diff --git a/src/main/java/picard/vcf/VcfFormatConverter.java b/src/main/java/picard/vcf/VcfFormatConverter.java
index 28d9a3a..39a94df 100644
--- a/src/main/java/picard/vcf/VcfFormatConverter.java
+++ b/src/main/java/picard/vcf/VcfFormatConverter.java
@@ -119,7 +119,7 @@ public class VcfFormatConverter extends CommandLineProgram {
while (iterator.hasNext()) {
final VariantContext context = iterator.next();
writer.add(context);
- progress.record(context.getChr(), context.getStart());
+ progress.record(context.getContig(), context.getStart());
}
CloserUtil.close(iterator);
diff --git a/src/main/java/picard/vcf/processor/VariantIteratorProducer.java b/src/main/java/picard/vcf/processor/VariantIteratorProducer.java
index 8ae028f..82137f1 100644
--- a/src/main/java/picard/vcf/processor/VariantIteratorProducer.java
+++ b/src/main/java/picard/vcf/processor/VariantIteratorProducer.java
@@ -244,7 +244,7 @@ public abstract class VariantIteratorProducer {
return true;
}
final Collection<VcfFileSegment> intersectingSegments =
- multiSegmentDetectorPerFile.get(sourceSegment.vcf()).getOverlaps(new Interval(vc.getChr(), vc.getStart(), vc.getEnd()));
+ multiSegmentDetectorPerFile.get(sourceSegment.vcf()).getOverlaps(new Interval(vc.getContig(), vc.getStart(), vc.getEnd()));
if (intersectingSegments.size() < 2) {
// There's only one segment that produces this variant
return true;
@@ -268,8 +268,8 @@ public abstract class VariantIteratorProducer {
final class OverlapsPredicate implements Predicate<VariantContext> {
@Override
public boolean apply(final VariantContext vc) {
- final boolean include = !intervalsOfInterestDetector.getOverlaps(new Interval(vc.getChr(), vc.getStart(), vc.getEnd())).isEmpty();
- if (!include) LOG.debug("Filtering variant at ", vc.getChr(), ":", vc.getStart(), "-", vc.getEnd());
+ final boolean include = !intervalsOfInterestDetector.getOverlaps(new Interval(vc.getContig(), vc.getStart(), vc.getEnd())).isEmpty();
+ if (!include) LOG.debug("Filtering variant at ", vc.getContig(), ":", vc.getStart(), "-", vc.getEnd());
return include;
}
}
diff --git a/src/test/java/picard/sam/FilterSamReadsTest.java b/src/test/java/picard/sam/FilterSamReadsTest.java
index c611246..71469c5 100644
--- a/src/test/java/picard/sam/FilterSamReadsTest.java
+++ b/src/test/java/picard/sam/FilterSamReadsTest.java
@@ -23,16 +23,16 @@
*/
package picard.sam;
+import htsjdk.samtools.*;
import org.testng.Assert;
+import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-import htsjdk.samtools.SAMRecordIterator;
-import htsjdk.samtools.SamReader;
-import htsjdk.samtools.SamReaderFactory;
import picard.cmdline.CommandLineProgramTest;
import java.io.File;
+import java.util.stream.StreamSupport;
public class FilterSamReadsTest extends CommandLineProgramTest {
@Override
@@ -40,11 +40,33 @@ public class FilterSamReadsTest extends CommandLineProgramTest {
return FilterSamReads.class.getSimpleName();
}
+ private static final int READ_LENGTH = 151;
+ private final SAMRecordSetBuilder builder = new SAMRecordSetBuilder();
+ private final static File TEST_DIR = new File("testdata/picard/sam/FilterSamReads/");
+
+
+ @BeforeTest
+ public void setUp() {
+ builder.setReadLength(READ_LENGTH);
+ builder.addPair("mapped_pair_chr1", 0, 1, 151); //should be kept in first test, filtered out in third
+ builder.addPair("mapped_pair_chr2", 1, 1, 151); //should be filtered out for first test, and kept in third
+ builder.addPair("prove_one_of_pair", 0, 1000, 1000); //neither of these will be kept in any test
+ builder.addPair("one_of_pair", 0, 1, 1000); //first read should pass, second should not, but both will be kept in first test
+ }
+
@DataProvider(name = "dataTestJsFilter")
public Object[][] dataTestJsFilter() {
return new Object[][]{
- {"testdata/picard/sam/aligned.sam","testdata/picard/sam/FilterSamReads/filterOddStarts.js",3},
- {"testdata/picard/sam/aligned.sam","testdata/picard/sam/FilterSamReads/filterReadsWithout5primeSoftClip.js", 0}
+ {"testdata/picard/sam/aligned.sam", "testdata/picard/sam/FilterSamReads/filterOddStarts.js",3},
+ {"testdata/picard/sam/aligned.sam", "testdata/picard/sam/FilterSamReads/filterReadsWithout5primeSoftClip.js", 0}
+ };
+ }
+
+ @DataProvider(name = "dataTestPairedIntervalFilter")
+ public Object[][] dataTestPairedIntervalFilter() {
+ return new Object[][]{
+ {"testdata/picard/sam/FilterSamReads/filter1.interval_list", 4},
+ {"testdata/picard/sam/FilterSamReads/filter2.interval_list", 0}
};
}
@@ -56,22 +78,66 @@ public class FilterSamReadsTest extends CommandLineProgramTest {
// input as SAM file
final File inputSam = new File(samFilename);
final File javascriptFile = new File(javascriptFilename);
- //loop over javascript filters
+
+ FilterSamReads filterTest = setupProgram(javascriptFile, inputSam, FilterSamReads.Filter.includeJavascript);
+ Assert.assertEquals(filterTest.doWork(),0);
+
+ long count = getReadCount(filterTest);
+
+ Assert.assertEquals(count, expectNumber);
+ }
+
+ /**
+ * filters a SAM using an interval filter
+ */
+ @Test(dataProvider = "dataTestPairedIntervalFilter")
+ public void testPairedIntervalFilter(final String intervalFilename, final int expectNumber) throws Exception {
+ // Build a sam file for testing
+ final File inputSam = File.createTempFile("testSam", ".sam", TEST_DIR);
+ inputSam.deleteOnExit();
+
+ final SAMFileWriter writer = new SAMFileWriterFactory()
+ .setCreateIndex(true).makeBAMWriter(builder.getHeader(), false, inputSam);
+
+ for (final SAMRecord record : builder) {
+ writer.addAlignment(record);
+ }
+ writer.close();
+
+ final File intervalFile = new File(intervalFilename);
+
+ FilterSamReads filterTest = setupProgram(intervalFile, inputSam, FilterSamReads.Filter.includePairedIntervals);
+ Assert.assertEquals(filterTest.doWork(),0);
+
+ long count = getReadCount(filterTest);
+
+ Assert.assertEquals(count, expectNumber);
+ }
+
+ private FilterSamReads setupProgram(final File inputFile, final File inputSam, final FilterSamReads.Filter filter) throws Exception {
final FilterSamReads program = new FilterSamReads();
program.INPUT = inputSam;
program.OUTPUT = File.createTempFile("FilterSamReads.output.", ".sam");
program.OUTPUT.deleteOnExit();
- program.FILTER = FilterSamReads.Filter.includeJavascript;
- program.JAVASCRIPT_FILE = javascriptFile;
- Assert.assertEquals(program.doWork(),0);
-
- //count reads
- final SamReader samReader = SamReaderFactory.makeDefault().open(program.OUTPUT);
- final SAMRecordIterator iter = samReader.iterator();
- int count = 0;
- while(iter.hasNext()) { iter.next(); ++ count; }
- iter.close();
+ program.FILTER = filter;
+
+ if(filter == FilterSamReads.Filter.includePairedIntervals) {
+ program.INTERVAL_LIST = inputFile;
+ }
+ else {
+ program.JAVASCRIPT_FILE = inputFile;
+ }
+
+ return program;
+ }
+
+ private long getReadCount(FilterSamReads filterTest) throws Exception {
+ final SamReader samReader = SamReaderFactory.makeDefault().open(filterTest.OUTPUT);
+
+ long count = StreamSupport.stream(samReader.spliterator(), false)
+ .count();
+
samReader.close();
- Assert.assertEquals(count, expectNumber);
- }
- }
+ return count;
+ }
+}
diff --git a/src/test/java/picard/vcf/AbstractVcfMergingClpTester.java b/src/test/java/picard/vcf/AbstractVcfMergingClpTester.java
index b7a5c71..5ee7e42 100644
--- a/src/test/java/picard/vcf/AbstractVcfMergingClpTester.java
+++ b/src/test/java/picard/vcf/AbstractVcfMergingClpTester.java
@@ -169,6 +169,6 @@ public abstract class AbstractVcfMergingClpTester {
}
static String getContigPosition(final VariantContext context) {
- return context.getChr() + "-" + Integer.toString(context.getStart());
+ return context.getContig() + "-" + Integer.toString(context.getStart());
}
}
diff --git a/src/test/java/picard/vcf/FixVcfHeaderTest.java b/src/test/java/picard/vcf/FixVcfHeaderTest.java
new file mode 100644
index 0000000..8ae72e5
--- /dev/null
+++ b/src/test/java/picard/vcf/FixVcfHeaderTest.java
@@ -0,0 +1,94 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2016 Nils Homer
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ */
+
+package picard.vcf;
+
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+
+/**
+ * Tests for FixVcfHeader.
+ *
+ * @author Nils Homer
+ */
+public class FixVcfHeaderTest {
+ private static final File OUTPUT_DATA_PATH = IOUtil.createTempDir("FixVcfHeaderTest", null);
+ private static final File TEST_DATA_PATH = new File("testdata/picard/vcf/FixVcfHeaderTest/");
+ private static final File INPUT_VCF = new File(TEST_DATA_PATH, "input.vcf");
+ private static final File OUTPUT_VCF = new File(TEST_DATA_PATH, "output.vcf");
+ private static final File HEADER_VCF = new File(TEST_DATA_PATH, "header.vcf");
+ private static final File HEADER_VCF_WITH_EXTRA_SAMPLE = new File(TEST_DATA_PATH, "header_with_extra_sample.vcf");
+
+ private void runFixVcfHeader(final int checkFirstNRecords,
+ final File replacementHeader,
+ final boolean enforceSampleSamples) {
+ final FixVcfHeader program = new FixVcfHeader();
+ final File outputVcf = new File(OUTPUT_DATA_PATH, "output.vcf");
+ outputVcf.deleteOnExit();
+
+ program.INPUT = INPUT_VCF;
+ program.OUTPUT = outputVcf;
+ if (replacementHeader == null) {
+ program.CHECK_FIRST_N_RECORDS = checkFirstNRecords;
+ }
+ else {
+ program.HEADER = replacementHeader;
+ program.ENFORCE_SAME_SAMPLES = enforceSampleSamples;
+ }
+
+ Assert.assertEquals(program.instanceMain(new String[0]), 0);
+
+ IOUtil.assertFilesEqual(OUTPUT_VCF, outputVcf);
+ }
+
+ @Test(dataProvider = "testFixVcfHeaderDataProvider")
+ public void testFixVcfHeader(final int checkFirstNRecords,
+ final File replacementHeader,
+ final boolean enforceSampleSamples) {
+ runFixVcfHeader(checkFirstNRecords, replacementHeader, enforceSampleSamples);
+ }
+
+ @DataProvider(name="testFixVcfHeaderDataProvider")
+ public Object[][] testFixVcfHeaderDataProvider() {
+ return new Object[][] {
+ {-1, HEADER_VCF, true},
+ {-1, HEADER_VCF, false},
+ {-1, HEADER_VCF_WITH_EXTRA_SAMPLE, false},
+ {-1, null, true},
+ {1, null, true},
+ {Integer.MAX_VALUE, null, true}
+ };
+ }
+
+ @Test(expectedExceptions=PicardException.class)
+ public void testReplaceHeaderWithDifferentSamplesError() {
+ runFixVcfHeader(-1, HEADER_VCF_WITH_EXTRA_SAMPLE, true);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/picard/vcf/VariantContextComparatorTest.java b/src/test/java/picard/vcf/VariantContextComparatorTest.java
index 49cbc5f..871eafa 100644
--- a/src/test/java/picard/vcf/VariantContextComparatorTest.java
+++ b/src/test/java/picard/vcf/VariantContextComparatorTest.java
@@ -47,7 +47,7 @@ public class VariantContextComparatorTest {
private static List<String> getOrderedContigList(final VariantContext... variantContexts) {
final LinkedHashSet<String> contigs = new LinkedHashSet<String>();
for (final VariantContext context : variantContexts) {
- contigs.add(context.getChr());
+ contigs.add(context.getContig());
}
return new ArrayList<String>(contigs);
}
diff --git a/testdata/picard/sam/FilterSamReads/filter1.interval_list b/testdata/picard/sam/FilterSamReads/filter1.interval_list
new file mode 100644
index 0000000..98c2df3
--- /dev/null
+++ b/testdata/picard/sam/FilterSamReads/filter1.interval_list
@@ -0,0 +1,12 @@
+ at HD VN:1.5 SO:coordinate
+ at SQ SN:chr1 LN:101
+ at SQ SN:chr2 LN:101
+ at SQ SN:chr3 LN:101
+ at SQ SN:chr4 LN:101
+ at SQ SN:chr5 LN:101
+ at SQ SN:chr6 LN:101
+ at SQ SN:chr7 LN:404
+ at SQ SN:chr8 LN:202
+ at RG ID:0 SM:Hi,Mom! PL:ILLUMINA
+ at PG ID:1 PN:Hey! VN:2.0
+chr1 1 999 + .
\ No newline at end of file
diff --git a/testdata/picard/sam/FilterSamReads/filter2.interval_list b/testdata/picard/sam/FilterSamReads/filter2.interval_list
new file mode 100644
index 0000000..4ad4248
--- /dev/null
+++ b/testdata/picard/sam/FilterSamReads/filter2.interval_list
@@ -0,0 +1,12 @@
+ at HD VN:1.5 SO:coordinate
+ at SQ SN:chr1 LN:101
+ at SQ SN:chr2 LN:101
+ at SQ SN:chr3 LN:101
+ at SQ SN:chr4 LN:101
+ at SQ SN:chr5 LN:101
+ at SQ SN:chr6 LN:101
+ at SQ SN:chr7 LN:404
+ at SQ SN:chr8 LN:202
+ at RG ID:0 SM:Hi,Mom! PL:ILLUMINA
+ at PG ID:1 PN:Hey! VN:2.0
+chr3 1 2 + .
\ No newline at end of file
diff --git a/testdata/picard/vcf/FixVcfHeaderTest/header.vcf b/testdata/picard/vcf/FixVcfHeaderTest/header.vcf
new file mode 100644
index 0000000..ce8c379
--- /dev/null
+++ b/testdata/picard/vcf/FixVcfHeaderTest/header.vcf
@@ -0,0 +1,150 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS,Description="All filters passed">
+##FILTER=<ID=Uncertain,Description="Uncertain genotype due to reason in filter INFO field">
+##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##FORMAT=<ID=FT,Number=.,Type=String,Description="Genotype-level filter">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Net Genotype across all datasets">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods summed across all unfiltered datasets for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DPSum,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##INFO=<ID=Entropy,Number=1,Type=Float,Description="Shannon entropy of variant flanking regions, 12bp on both sides">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HapNoVar,Number=1,Type=Integer,Description="Number of datasets for which HaplotypeCaller called a variant within 35bp and did not call a variant at this location">
+##INFO=<ID=LEN,Number=A,Type=Integer,Description="allele length">
+##INFO=<ID=NoCG,Number=0,Type=Flag,Description="Present if no consensus was reached for arbitration of all datasets, so we looked at all datasets except Complete Genomics since it may have a different representation of complex variants">
+##INFO=<ID=NoPLTot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for a genotype different from the called genotype">
+##INFO=<ID=PL454WG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~16x 454 whole genome sequencing from 1000 Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLCG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~73x Complete Genomics whole genome sequencing, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~66x 2x100bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~68x 2x100bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILL250,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~50x 2x250bp Illumina PCR-free whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLCLIA,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x 2x100bp Illumina whole genome sequencing from Illumina CLIA lab, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~30x 2x54bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~39x 2x44bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIllPCRFree,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~56x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIonEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x mean 237bp Ion Torrent exome sequencing from Life Technologies, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLNCIIonWG,Number=.,Type=String,Description="Missing description: this INFO line was added by Picard's FixVCFHeader">
+##INFO=<ID=PLPlatGen,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~190x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXIll,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~37x 2x100bp Illumina whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXPSolWGLS,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~24x 50bpx35bp SOLiD whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLminsum,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##INFO=<ID=PLminsumOverDP,Number=1,Type=Float,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods, divided by the depth of coverage">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=TYPE,Number=A,Type=String,Description="The type of allele, either snp, mnp, ins, del, or complex.">
+##INFO=<ID=TrancheABQDmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with abnormal allele balance (AB and QD)">
+##INFO=<ID=TrancheAlignmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with local alignment errors (distance from the end of the read and clipping)">
+##INFO=<ID=TrancheMapmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with mapping errors (mapping quality and depth of coverage)">
+##INFO=<ID=TrancheSSEmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with systematic sequencing errors (strand bias and neighboring base quality)">
+##INFO=<ID=YesPLtot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for the called genotype">
+##INFO=<ID=allalts,Number=1,Type=Integer,Description="All ALT alleles originally considered at this position">
+##INFO=<ID=datasetcalls,Number=1,Type=Integer,Description="Number of datasets with any genotype call at this position">
+##INFO=<ID=filter,Number=1,Type=String,Description="Reason for filtering this genotype as uncertain">
+##INFO=<ID=geno,Number=1,Type=Integer,Description="Most probable genotype, corresponding to the minimum entry in the PL field (e.g., 1=0/0,2=0/1,3=1/1,4=0/2,etc)">
+##INFO=<ID=genoMapGood,Number=1,Type=Integer,Description="Number of datasets calling this genotype with VQSR mapping tranche <= 95">
+##INFO=<ID=platformbias,Number=.,Type=String,Description="Names of platforms that have at more than twice as many incorrect than correct genotypes at this location, indicating platform-specific bias (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platformnames,Number=.,Type=String,Description="Names of platforms that called this genotype (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platforms,Number=1,Type=Integer,Description="Number of different platforms that called this genotype">
+##INFO=<ID=varType,Number=1,Type=String,Description="Type of variant">
+##SelectVariants="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/projects/scratch-data-backup/justin.zook/NA12878/bed/union13callableMQonlymerged_addcert_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs_v2.19_2mindatasets_5minYesNoRatio.bed] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/projects/scratch-data-backup [...]
+##bcftools_viewCommand=view -O z -r 22:1-51304566 ../NA12878_HG001/NISTv2.19/NISTIntegratedCalls_14datasets_131103_allcall_UGHapMerge_HetHomVarPASS_VQSRv2.19_2mindatasets_5minYesNoRatio_all_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs.vcf.gz
+##bcftools_viewVersion=1.2-136-gc29c8c3+htslib-1.2.1-213-g1e2ed48
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##fileDate=20130719
+##phasing=none
+##reference=file:///projects/scratch-data-backup/justin.zook/references/human_g1k_v37.fasta
+##source=SelectVariants
+##variants_justified=left
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
diff --git a/testdata/picard/vcf/FixVcfHeaderTest/header_with_extra_sample.vcf b/testdata/picard/vcf/FixVcfHeaderTest/header_with_extra_sample.vcf
new file mode 100644
index 0000000..83b2bf0
--- /dev/null
+++ b/testdata/picard/vcf/FixVcfHeaderTest/header_with_extra_sample.vcf
@@ -0,0 +1,150 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS,Description="All filters passed">
+##FILTER=<ID=Uncertain,Description="Uncertain genotype due to reason in filter INFO field">
+##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##FORMAT=<ID=FT,Number=1,Type=String,Description="Genotype-level filter">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Net Genotype across all datasets">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods summed across all unfiltered datasets for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DPSum,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##INFO=<ID=Entropy,Number=1,Type=Float,Description="Shannon entropy of variant flanking regions, 12bp on both sides">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HapNoVar,Number=1,Type=Integer,Description="Number of datasets for which HaplotypeCaller called a variant within 35bp and did not call a variant at this location">
+##INFO=<ID=LEN,Number=A,Type=Integer,Description="allele length">
+##INFO=<ID=NoCG,Number=0,Type=Flag,Description="Present if no consensus was reached for arbitration of all datasets, so we looked at all datasets except Complete Genomics since it may have a different representation of complex variants">
+##INFO=<ID=NoPLTot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for a genotype different from the called genotype">
+##INFO=<ID=PL454WG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~16x 454 whole genome sequencing from 1000 Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLCG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~73x Complete Genomics whole genome sequencing, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~66x 2x100bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~68x 2x100bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILL250,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~50x 2x250bp Illumina PCR-free whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLCLIA,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x 2x100bp Illumina whole genome sequencing from Illumina CLIA lab, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~30x 2x54bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~39x 2x44bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIllPCRFree,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~56x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIonEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x mean 237bp Ion Torrent exome sequencing from Life Technologies, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLNCIIonWG,Number=.,Type=String,Description="Missing description: this INFO line was added by Picard's FixVCFHeader">
+##INFO=<ID=PLPlatGen,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~190x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXIll,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~37x 2x100bp Illumina whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXPSolWGLS,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~24x 50bpx35bp SOLiD whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLminsum,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##INFO=<ID=PLminsumOverDP,Number=1,Type=Float,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods, divided by the depth of coverage">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=TYPE,Number=A,Type=String,Description="The type of allele, either snp, mnp, ins, del, or complex.">
+##INFO=<ID=TrancheABQDmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with abnormal allele balance (AB and QD)">
+##INFO=<ID=TrancheAlignmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with local alignment errors (distance from the end of the read and clipping)">
+##INFO=<ID=TrancheMapmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with mapping errors (mapping quality and depth of coverage)">
+##INFO=<ID=TrancheSSEmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with systematic sequencing errors (strand bias and neighboring base quality)">
+##INFO=<ID=YesPLtot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for the called genotype">
+##INFO=<ID=allalts,Number=1,Type=Integer,Description="All ALT alleles originally considered at this position">
+##INFO=<ID=datasetcalls,Number=1,Type=Integer,Description="Number of datasets with any genotype call at this position">
+##INFO=<ID=filter,Number=1,Type=String,Description="Reason for filtering this genotype as uncertain">
+##INFO=<ID=geno,Number=1,Type=Integer,Description="Most probable genotype, corresponding to the minimum entry in the PL field (e.g., 1=0/0,2=0/1,3=1/1,4=0/2,etc)">
+##INFO=<ID=genoMapGood,Number=1,Type=Integer,Description="Number of datasets calling this genotype with VQSR mapping tranche <= 95">
+##INFO=<ID=platformbias,Number=.,Type=String,Description="Names of platforms that have at more than twice as many incorrect than correct genotypes at this location, indicating platform-specific bias (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platformnames,Number=.,Type=String,Description="Names of platforms that called this genotype (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platforms,Number=1,Type=Integer,Description="Number of different platforms that called this genotype">
+##INFO=<ID=varType,Number=1,Type=String,Description="Type of variant">
+##SelectVariants="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/projects/scratch-data-backup/justin.zook/NA12878/bed/union13callableMQonlymerged_addcert_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs_v2.19_2mindatasets_5minYesNoRatio.bed] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/projects/scratch-data-backup [...]
+##bcftools_viewCommand=view -O z -r 22:1-51304566 ../NA12878_HG001/NISTv2.19/NISTIntegratedCalls_14datasets_131103_allcall_UGHapMerge_HetHomVarPASS_VQSRv2.19_2mindatasets_5minYesNoRatio_all_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs.vcf.gz
+##bcftools_viewVersion=1.2-136-gc29c8c3+htslib-1.2.1-213-g1e2ed48
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##fileDate=20130719
+##phasing=none
+##reference=file:///projects/scratch-data-backup/justin.zook/references/human_g1k_v37.fasta
+##source=SelectVariants
+##variants_justified=left
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878 EXTRA_SAMPLE
diff --git a/testdata/picard/vcf/FixVcfHeaderTest/input.vcf b/testdata/picard/vcf/FixVcfHeaderTest/input.vcf
new file mode 100644
index 0000000..b29a026
--- /dev/null
+++ b/testdata/picard/vcf/FixVcfHeaderTest/input.vcf
@@ -0,0 +1,199 @@
+##fileformat=VCFv4.1
+##FILTER=<ID=PASS,Description="All filters passed">
+##FILTER=<ID=Uncertain,Description="Uncertain genotype due to reason in filter INFO field">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Net Genotype across all datasets">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods summed across all unfiltered datasets for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DPSum,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##INFO=<ID=Entropy,Number=1,Type=Float,Description="Shannon entropy of variant flanking regions, 12bp on both sides">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HapNoVar,Number=1,Type=Integer,Description="Number of datasets for which HaplotypeCaller called a variant within 35bp and did not call a variant at this location">
+##INFO=<ID=LEN,Number=A,Type=Integer,Description="allele length">
+##INFO=<ID=NoCG,Number=0,Type=Flag,Description="Present if no consensus was reached for arbitration of all datasets, so we looked at all datasets except Complete Genomics since it may have a different representation of complex variants">
+##INFO=<ID=NoPLTot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for a genotype different from the called genotype">
+##INFO=<ID=PL454WG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~16x 454 whole genome sequencing from 1000 Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLCG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~73x Complete Genomics whole genome sequencing, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~66x 2x100bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~68x 2x100bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILL250,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~50x 2x250bp Illumina PCR-free whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLCLIA,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x 2x100bp Illumina whole genome sequencing from Illumina CLIA lab, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~30x 2x54bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~39x 2x44bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIllPCRFree,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~56x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIonEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x mean 237bp Ion Torrent exome sequencing from Life Technologies, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLPlatGen,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~190x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXIll,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~37x 2x100bp Illumina whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXPSolWGLS,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~24x 50bpx35bp SOLiD whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLminsum,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##INFO=<ID=PLminsumOverDP,Number=1,Type=Float,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods, divided by the depth of coverage">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=TYPE,Number=A,Type=String,Description="The type of allele, either snp, mnp, ins, del, or complex.">
+##INFO=<ID=TrancheABQDmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with abnormal allele balance (AB and QD)">
+##INFO=<ID=TrancheAlignmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with local alignment errors (distance from the end of the read and clipping)">
+##INFO=<ID=TrancheMapmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with mapping errors (mapping quality and depth of coverage)">
+##INFO=<ID=TrancheSSEmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with systematic sequencing errors (strand bias and neighboring base quality)">
+##INFO=<ID=YesPLtot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for the called genotype">
+##INFO=<ID=allalts,Number=1,Type=Integer,Description="All ALT alleles originally considered at this position">
+##INFO=<ID=datasetcalls,Number=1,Type=Integer,Description="Number of datasets with any genotype call at this position">
+##INFO=<ID=filter,Number=1,Type=String,Description="Reason for filtering this genotype as uncertain">
+##INFO=<ID=geno,Number=1,Type=Integer,Description="Most probable genotype, corresponding to the minimum entry in the PL field (e.g., 1=0/0,2=0/1,3=1/1,4=0/2,etc)">
+##INFO=<ID=genoMapGood,Number=1,Type=Integer,Description="Number of datasets calling this genotype with VQSR mapping tranche <= 95">
+##INFO=<ID=platformbias,Number=.,Type=String,Description="Names of platforms that have at more than twice as many incorrect than correct genotypes at this location, indicating platform-specific bias (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platformnames,Number=.,Type=String,Description="Names of platforms that called this genotype (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platforms,Number=1,Type=Integer,Description="Number of different platforms that called this genotype">
+##INFO=<ID=varType,Number=1,Type=String,Description="Type of variant">
+##SelectVariants="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/projects/scratch-data-backup/justin.zook/NA12878/bed/union13callableMQonlymerged_addcert_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs_v2.19_2mindatasets_5minYesNoRatio.bed] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/projects/scratch-data-backup [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##fileDate=20130719
+##phasing=none
+##reference=file:///projects/scratch-data-backup/justin.zook/references/human_g1k_v37.fasta
+##source=SelectVariants
+##variants_justified=left
+##bcftools_viewVersion=1.2-136-gc29c8c3+htslib-1.2.1-213-g1e2ed48
+##bcftools_viewCommand=view -O z -r 22:1-51304566 ../NA12878_HG001/NISTv2.19/NISTIntegratedCalls_14datasets_131103_allcall_UGHapMerge_HetHomVarPASS_VQSRv2.19_2mindatasets_5minYesNoRatio_all_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs.vcf.gz
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
+22 17278430 . C A 13292 PASS DPSum=590;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=218,21,0;PLCG=552,63,0;PLHSWEx=37,3,0;PLHSWG=1091,96,0;PLILL250=912,66,0;PLILLCLIA=1596,119,0;PLILLWG=300,30,0;PLIllPCRFree=1629,144,0;PLNCIIonWG=202,21,0;PLPlatGen=5948,528,0;PLXIll=743,69,0;PLXPSolWGLS=64,6,0;PLminsum=1166;PLminsumOverDP=1.98;RPA=17,18,19;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=12;geno=3;genoMapGood=10;platformbias=none;platf [...]
+22 17278465 . G A 11843 PASS DPSum=556;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=106,9,0;PLCG=886,99,0;PLHSWG=1192,105,0;PLILL250=794,66,0;PLILLCLIA=1660,126,0;PLILLWG=67,6,0;PLIllPCRFree=1137,102,0;PLNCIIonWG=85,9,0;PLPlatGen=4661,419,0;PLXIll=933,72,0;PLXPSolWGLS=322,24,0;PLminsum=1037;PLminsumOverDP=1.87;RPA=17,18,19;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=8;allalts=.;datasetcalls=11;geno=3;genoMapGood=8;platformbias=none;platformnames=ill,sol,cg [...]
+22 17278495 . A G 12201 PASS DPSum=501;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=104,9,0;PLCG=1095,126,0;PLHSWG=1215,108,0;PLILL250=766,72,0;PLILLCLIA=1685,132,0;PLILLWG=124,12,0;PLIllPCRFree=1271,89,0;PLNCIIonWG=98,12,0;PLPlatGen=5015,425,0;PLXIll=828,63,0;PLminsum=1048;PLminsumOverDP=2.09;RPA=17,18,19;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=90;YesPLtot=7;allalts=.;datasetcalls=10;geno=3;genoMapGood=7;platformbias=none;platformnames=ill,cg;platforms=2;varType [...]
+22 17279070 . C CA 12780 PASS DPSum=359;HRun=21;HapNoVar=0;NoPLTot=0;PLCG=0,1,7,8,8,8,2,8,8,8;PLHSWG=1854,137,0,1854,1854,1854,1854,1854,1854,1854;PLILL250=1704,123,0,1704,1704,1704,1704,1704,1704,1704;PLILLCLIA=1624,116,0,1624,1624,1624,1624,1624,1624,1624;PLILLWG=174,1,0,174,174,174,174,174,174,174;PLIllPCRFree=1045,35,0,1045,1045,1045,1045,1045,1045,1045;PLPlatGen=5835,226,0,5835,5835,5835,5835,5835,5835,5835;PLXIll=551,3,0,551,551,551,551,551,551,551;PLminsum=635;PLminsumOverDP=1.77; [...]
+22 17279084 . C A 14325 PASS DPSum=498;HRun=21;HapNoVar=0;NoPLTot=0;PLHSWG=1197,95,0;PLILL250=1446,115,0;PLILLCLIA=2009,156,0;PLILLWG=174,1,0;PLIllPCRFree=1817,153,0;PLPlatGen=7597,623,0;PLXPSolWGLS=85,9,0;PLminsum=1152;PLminsumOverDP=2.31;RPA=21,20;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=90;YesPLtot=5;allalts=.;datasetcalls=7;geno=3;genoMapGood=5;platformbias=none;platformnames=ill;platforms=1;varType=SNP GT:DP:GQ:PL 1/1:498:1152:14325,1152,0
+22 17279115 . A T 20051 PASS DPSum=654;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=435,36,0;PLCG=954,105,0;PLHSWG=2681,211,0;PLILL250=1567,132,0;PLILLCLIA=2534,187,0;PLILLWG=1160,105,0;PLIllPCRFree=1456,120,0;PLNCIIonWG=238,27,0;PLPlatGen=7515,607,0;PLXIll=954,75,0;PLXPSolWGLS=557,45,0;PLminsum=1650;PLminsumOverDP=2.52;RPA=21,20;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=i [...]
+22 17280388 . T C 19838 PASS DPSum=597;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=175,18,0;PLCG=974,111,0;PLHSWG=2148,187,0;PLILL250=1346,132,0;PLILLCLIA=1759,132,0;PLILLWG=824,87,0;PLIllPCRFree=2215,130,0;PLNCIIonWG=282,30,0;PLPlatGen=8968,598,0;PLXIll=959,72,0;PLXPSolWGLS=188,21,0;PLminsum=1518;PLminsumOverDP=2.54;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=ill [...]
+22 17281097 . T TA 24703 PASS DPSum=632;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=339,24,0;PLCG=388,28,0;PLHSWG=3723,265,0;PLILL250=2308,171,0;PLILLCLIA=2369,169,0;PLILLWG=964,60,0;PLIllPCRFree=2935,211,0;PLNCIIonWG=139,12,0;PLPlatGen=10405,740,0;PLXIll=1007,72,0;PLXPSolWGLS=126,9,0;PLminsum=1761;PLminsumOverDP=2.79;RPA=1,2;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,45 [...]
+22 17281392 . G A 23420 PASS DPSum=653;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=394,36,0;PLCG=628,72,0;PLHSWEx=45,3,0;PLHSWG=3538,271,0;PLILL250=1967,162,0;PLILLCLIA=2170,163,0;PLILLWG=1247,114,0;PLIllPCRFree=2160,160,0;PLPlatGen=9660,725,0;PLXIll=1192,90,0;PLXPSolWGLS=419,39,0;PLminsum=1835;PLminsumOverDP=2.81;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,45 [...]
+22 17281931 . G A 22300 PASS DPSum=630;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=232,21,0;PLCG=1322,133,0;PLHSWG=2585,199,0;PLILL250=1746,130,0;PLILLCLIA=1924,144,0;PLILLWG=765,69,0;PLIllPCRFree=2516,190,0;PLPlatGen=9866,704,0;PLXIll=976,72,0;PLXPSolWGLS=368,33,0;PLminsum=1695;PLminsumOverDP=2.69;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,cg;platfor [...]
+22 17282305 . A G 18414 PASS DPSum=578;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=300,30,0;PLCG=1245,141,0;PLHSWG=1833,171,0;PLILL250=1203,114,0;PLILLCLIA=2153,171,0;PLILLWG=975,99,0;PLIllPCRFree=1382,73,0;PLNCIIonWG=185,21,0;PLPlatGen=7700,560,0;PLXIll=978,75,0;PLXPSolWGLS=460,39,0;PLminsum=1494;PLminsumOverDP=2.58;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill [...]
+22 17282665 . T C 23312 PASS DPSum=679;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=233,21,0;PLCG=1172,132,0;PLHSWG=3548,286,0;PLILL250=1567,135,0;PLILLCLIA=2190,168,0;PLILLWG=1246,114,0;PLIllPCRFree=2412,160,0;PLIonEx=36,3,0;PLNCIIonWG=48,6,0;PLPlatGen=9461,696,0;PLXIll=1129,87,0;PLXPSolWGLS=270,24,0;PLminsum=1832;PLminsumOverDP=2.7;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=12;geno=3;genoMapGood=10;platformbias=none;p [...]
+22 17282666 . G A 23609 PASS DPSum=677;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=238,21,0;PLCG=1226,141,0;PLHSWG=3575,283,0;PLILL250=1598,135,0;PLILLCLIA=2184,168,0;PLILLWG=1261,111,0;PLIllPCRFree=2500,192,0;PLIonEx=36,3,0;PLNCIIonWG=48,6,0;PLPlatGen=9577,695,0;PLXIll=1106,87,0;PLXPSolWGLS=260,24,0;PLminsum=1866;PLminsumOverDP=2.76;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=12;geno=3;genoMapGood=10;platformbias=none; [...]
+22 17283381 . C CT 12654 PASS DPSum=589;HRun=0;HapNoVar=0;NoPLTot=1;PLHSWG=1689,120,0;PLILL250=1174,112,0;PLILLCLIA=1141,128,0;PLILLWG=428,48,0;PLIllPCRFree=1426,146,0;PLPlatGen=6112,636,0;PLXIll=746,81,0;PLXPSolWGLS=0,6,62;PLminsum=1215;PLminsumOverDP=2.06;RPA=10,11;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=7;allalts=.;datasetcalls=8;geno=3;genoMapGood=7;platformbias=none;platformnames=ill;platforms=1;varType=INDEL GT:DP:GQ:PL 1/1:589:1215:1271 [...]
+22 17283967 . C CAT 15865 PASS DPSum=487;HRun=18;HapNoVar=0;NoPLTot=1;PL454WG=260,18,0,260,260,260;PLCG=0,9,49,49,49,49;PLILL250=2339,185,0,2339,2339,2339;PLILLCLIA=1827,55,0,1827,1827,1827;PLILLWEx=51,6,0,51,51,51;PLIllPCRFree=2277,161,0,2277,2277,2277;PLNCIIonWG=241,21,0,241,241,241;PLPlatGen=8203,584,0,8203,8203,8203;PLXIll=716,53,0,716,716,716;PLminsum=1043;PLminsumOverDP=2.14;RPA=18,17;RU=T;TrancheABQDmin2=90;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=90;YesPLtot=6;allalts=. [...]
+22 17284065 . T C 25700 PASS DPSum=739;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=207,18,0;PLCG=1097,120,0;PLHSWG=3970,319,0;PLILL250=2001,171,0;PLILLCLIA=2803,211,0;PLILLWG=1058,93,0;PLIllPCRFree=2454,192,0;PLNCIIonWG=524,54,0;PLPlatGen=9657,740,0;PLXIll=1676,129,0;PLXPSolWGLS=253,3,0;PLminsum=2050;PLminsumOverDP=2.77;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=il [...]
+22 17284363 . G A 25075 PASS DPSum=730;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=265,24,0;PLCG=840,96,0;PLHSWG=3268,256,0;PLILL250=1684,138,0;PLILLCLIA=3152,241,0;PLILLWG=1592,150,0;PLIllPCRFree=2541,192,0;PLNCIIonWG=333,36,0;PLPlatGen=9440,716,0;PLXIll=1656,135,0;PLXPSolWGLS=304,24,0;PLminsum=2008;PLminsumOverDP=2.75;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames= [...]
+22 17285049 . G C 23775 PASS DPSum=690;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=314,27,0;PLCG=1545,174,0;PLHSWG=2071,162,0;PLILL250=1497,120,0;PLILLCLIA=2702,202,0;PLILLWG=1067,105,0;PLIllPCRFree=2804,211,0;PLNCIIonWG=207,8,0;PLPlatGen=9654,725,0;PLXIll=1658,126,0;PLXPSolWGLS=256,21,0;PLminsum=1881;PLminsumOverDP=2.73;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames [...]
+22 17286329 . T G 24692 PASS DPSum=688;HRun=1;HapNoVar=0;NoPLTot=0;PLCG=1330,147,0;PLHSWG=2540,204,0;PLILL250=1920,162,0;PLILLCLIA=3304,247,0;PLILLWG=1236,117,0;PLIllPCRFree=1943,144,0;PLNCIIonWG=253,27,0;PLPlatGen=10111,746,0;PLXIll=1464,111,0;PLXPSolWGLS=591,48,0;PLminsum=1953;PLminsumOverDP=2.84;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,sol,cg,ion [...]
+22 17286712 . T A 22855 PASS DPSum=675;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=556,51,0;PLCG=932,108,0;PLHSWG=2571,204,0;PLILL250=1978,165,0;PLILLCLIA=2843,220,0;PLILLWG=700,69,0;PLIllPCRFree=2223,169,0;PLNCIIonWG=244,24,0;PLPlatGen=9280,710,0;PLXIll=1088,84,0;PLXPSolWGLS=440,42,0;PLminsum=1846;PLminsumOverDP=2.73;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=il [...]
+22 17287835 . A T 22125 PASS DPSum=629;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=745,63,0;PLCG=899,110,0;PLHSWG=2842,226,0;PLILL250=2063,174,0;PLILLCLIA=1362,102,0;PLILLWG=1134,99,0;PLIllPCRFree=2271,169,0;PLPlatGen=9423,701,0;PLXIll=1112,84,0;PLXPSolWGLS=274,6,0;PLminsum=1734;PLminsumOverDP=2.76;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;v [...]
+22 17288058 . A G 24855 PASS DPSum=703;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=380,33,0;PLCG=1412,137,0;PLHSWG=3216,256,0;PLILL250=2124,183,0;PLILLCLIA=2344,175,0;PLILLWG=887,87,0;PLIllPCRFree=2579,193,0;PLNCIIonWG=372,36,0;PLPlatGen=9982,743,0;PLXIll=1141,87,0;PLXPSolWGLS=418,36,0;PLminsum=1966;PLminsumOverDP=2.8;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=il [...]
+22 17288266 . C A 24401 PASS DPSum=701;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=402,36,0;PLCG=1085,126,0;PLHSWG=2507,196,0;PLILL250=2469,204,0;PLILLCLIA=2419,180,0;PLILLWG=1341,126,0;PLIllPCRFree=2554,190,0;PLNCIIonWG=90,9,0;PLPlatGen=9971,737,0;PLXIll=1563,123,0;PLminsum=1927;PLminsumOverDP=2.75;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3; [...]
+22 17288377 . A C 24105 PASS DPSum=680;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=357,33,0;PLCG=970,108,0;PLHSWG=2670,214,0;PLILL250=2081,177,0;PLILLCLIA=2880,217,0;PLILLWG=1027,102,0;PLIllPCRFree=1968,144,0;PLNCIIonWG=367,39,0;PLPlatGen=9891,703,0;PLXIll=1404,105,0;PLXPSolWGLS=490,42,0;PLminsum=1884;PLminsumOverDP=2.77;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17289118 . C T 27387 PASS DPSum=769;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=653,57,0;PLCG=1705,198,0;PLHSWG=3418,265,0;PLILL250=1717,138,0;PLILLCLIA=3187,241,0;PLILLWG=1220,111,0;PLIllPCRFree=3030,226,0;PLIonEx=92,9,0;PLNCIIonWG=238,24,0;PLPlatGen=9958,703,0;PLXIll=1642,129,0;PLXPSolWGLS=527,48,0;PLminsum=2149;PLminsumOverDP=2.79;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=12;geno=3;genoMapGood=11;platformbias=no [...]
+22 17290010 . G T 24097 PASS DPSum=663;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=380,33,0;PLCG=964,108,0;PLHSWG=3092,238,0;PLILL250=1754,144,0;PLILLCLIA=2206,166,0;PLILLWG=1309,114,0;PLIllPCRFree=2237,166,0;PLNCIIonWG=231,21,0;PLPlatGen=9847,731,0;PLXIll=1833,138,0;PLXPSolWGLS=244,21,0;PLminsum=1880;PLminsumOverDP=2.84;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17290106 . T C 22811 PASS DPSum=656;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=379,33,0;PLCG=1115,91,0;PLHSWG=3280,265,0;PLILL250=1641,138,0;PLILLCLIA=2355,175,0;PLILLWG=1059,96,0;PLIllPCRFree=1982,144,0;PLNCIIonWG=200,21,0;PLPlatGen=9130,671,0;PLXIll=1547,117,0;PLXPSolWGLS=123,9,0;PLminsum=1760;PLminsumOverDP=2.68;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=i [...]
+22 17292156 . T C 15421 PASS DPSum=503;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=288,30,0;PLCG=1006,116,0;PLHSWG=1666,159,0;PLILL250=827,81,0;PLILLCLIA=1993,156,0;PLILLWG=722,78,0;PLIllPCRFree=1447,114,0;PLNCIIonWG=136,18,0;PLPlatGen=6579,526,0;PLXIll=757,63,0;PLminsum=1341;PLminsumOverDP=2.67;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;varType=SNP GT:DP:G [...]
+22 17292258 . C A 22579 PASS DPSum=686;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=621,54,0;PLCG=1072,126,0;PLHSWG=2792,229,0;PLILL250=1248,105,0;PLILLCLIA=3196,259,0;PLILLWG=603,54,0;PLIllPCRFree=2019,159,0;PLNCIIonWG=171,18,0;PLPlatGen=9110,722,0;PLXIll=1707,135,0;PLXPSolWGLS=40,6,0;PLminsum=1867;PLminsumOverDP=2.72;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platform [...]
+22 17292877 . C T 19695 PASS DPSum=606;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=107,9,0;PLCG=536,46,0;PLHSWEx=78,6,0;PLHSWG=3094,250,0;PLILL250=1429,123,0;PLILLCLIA=2154,174,0;PLILLWG=175,18,0;PLIllPCRFree=1762,141,0;PLNCIIonWG=182,18,0;PLPlatGen=8716,709,0;PLXIll=1462,126,0;PLminsum=1620;PLminsumOverDP=2.67;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=7;allalts=.;datasetcalls=11;geno=3;genoMapGood=7;platformbias=none;platformnames=ill,cg;platforms=2;varType [...]
+22 17293143 . A T 26111 PASS DPSum=772;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=482,42,0;PLCG=1508,173,0;PLHSWEx=45,3,0;PLHSWG=2735,214,0;PLILL250=1874,128,0;PLILLCLIA=4518,343,0;PLILLWG=1936,174,0;PLIllPCRFree=2011,150,0;PLNCIIonWG=414,42,0;PLPlatGen=8834,637,0;PLXIll=1387,108,0;PLXPSolWGLS=367,33,0;PLminsum=2047;PLminsumOverDP=2.65;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=12;geno=3;genoMapGood=11;platformbias=none;platformname [...]
+22 17293295 . G A 22699 PASS DPSum=649;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=281,24,0;PLCG=946,111,0;PLHSWEx=42,3,0;PLHSWG=2594,205,0;PLILL250=1874,153,0;PLILLCLIA=3853,265,0;PLILLWG=985,90,0;PLIllPCRFree=2030,153,0;PLNCIIonWG=187,18,0;PLPlatGen=8635,650,0;PLXIll=1272,99,0;PLminsum=1771;PLminsumOverDP=2.73;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;va [...]
+22 17294251 . T G 26280 PASS DPSum=780;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=377,36,0;PLCG=1885,221,0;PLHSWG=3688,289,0;PLILL250=1417,123,0;PLILLCLIA=3519,271,0;PLILLWG=1340,123,0;PLIllPCRFree=2194,169,0;PLNCIIonWG=266,30,0;PLPlatGen=9652,734,0;PLXIll=1525,123,0;PLXPSolWGLS=417,25,0;PLminsum=2144;PLminsumOverDP=2.75;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill,454,sol,c [...]
+22 17295419 . G A 9604 PASS DPSum=710;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=100,0,326;PLCG=409,0,378;PLHSWG=941,0,1561;PLILL250=689,0,1148;PLILLCLIA=893,0,1211;PLILLWG=301,0,382;PLIllPCRFree=1086,0,1302;PLNCIIonWG=10,0,46;PLPlatGen=4378,0,4170;PLXIll=545,0,609;PLXPSolWGLS=252,0,366;PLminsum=9604;PLminsumOverDP=13.53;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=2;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,c [...]
+22 17295764 . A G 22293 PASS DPSum=642;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=275,24,0;PLCG=669,72,0;PLHSWG=2177,172,0;PLILL250=1748,150,0;PLILLCLIA=2185,166,0;PLILLWG=1070,86,0;PLIllPCRFree=2362,178,0;PLNCIIonWG=558,57,0;PLPlatGen=9661,725,0;PLXIll=1240,93,0;PLXPSolWGLS=348,27,0;PLminsum=1750;PLminsumOverDP=2.73;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill [...]
+22 17296114 . G C 24713 PASS DPSum=739;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=396,36,0;PLCG=1128,134,0;PLHSWG=2739,240,0;PLILL250=1802,165,0;PLILLCLIA=3320,259,0;PLILLWG=1133,114,0;PLIllPCRFree=2459,184,0;PLNCIIonWG=372,39,0;PLPlatGen=9563,722,0;PLXIll=1478,111,0;PLXPSolWGLS=323,30,0;PLminsum=2034;PLminsumOverDP=2.75;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17297407 . A G 20747 PASS DPSum=607;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=568,31,0;PLCG=873,99,0;PLHSWG=3140,247,0;PLILL250=1787,125,0;PLILLCLIA=1687,126,0;PLILLWG=674,63,0;PLIllPCRFree=1979,150,0;PLIonEx=35,3,0;PLPlatGen=9371,713,0;PLXIll=633,48,0;PLminsum=1605;PLminsumOverDP=2.64;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;varType=SN [...]
+22 17297558 . A G 23212 PASS DPSum=664;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=714,66,0;PLCG=701,81,0;PLHSWG=2596,211,0;PLILL250=2011,174,0;PLILLCLIA=2470,190,0;PLILLWG=955,87,0;PLIllPCRFree=1940,150,0;PLNCIIonWG=325,36,0;PLPlatGen=9759,737,0;PLXIll=1556,120,0;PLXPSolWGLS=185,15,0;PLminsum=1867;PLminsumOverDP=2.81;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=ill [...]
+22 17298243 . C CCAAT 24119 PASS DPSum=580;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=449,30,0,449,449,449;PLHSWG=3386,226,0,3386,3386,3386;PLILL250=1959,131,0,1959,1959,1959;PLILLCLIA=2393,158,0,2393,2393,2393;PLILLWG=979,67,0,979,979,979;PLIllPCRFree=2399,158,0,2399,2399,2399;PLNCIIonWG=314,21,0,314,314,314;PLPlatGen=9836,649,0,9836,9836,9836;PLXIll=1583,106,0,1583,1583,1583;PLXPSolWGLS=821,57,0,821,821,821;PLminsum=1603;PLminsumOverDP=2.76;RPA=9,10;RU=T;TrancheABQDmin2=90;TrancheAlignmin2=0; [...]
+22 17300320 . A G 23768 PASS DPSum=677;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=415,36,0;PLCG=1091,123,0;PLHSWG=2645,208,0;PLILL250=1950,154,0;PLILLCLIA=2276,169,0;PLILLWG=1061,99,0;PLIllPCRFree=2485,187,0;PLNCIIonWG=219,4,0;PLPlatGen=9912,726,0;PLXIll=1178,93,0;PLXPSolWGLS=536,48,0;PLminsum=1847;PLminsumOverDP=2.73;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=il [...]
+22 17300408 . A G 24902 PASS DPSum=722;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=653,60,0;PLCG=1528,168,0;PLHSWG=3219,259,0;PLILL250=1745,147,0;PLILLCLIA=2277,172,0;PLILLWG=1364,132,0;PLIllPCRFree=2450,187,0;PLNCIIonWG=368,36,0;PLPlatGen=9385,707,0;PLXIll=1282,99,0;PLXPSolWGLS=631,41,0;PLminsum=2008;PLminsumOverDP=2.78;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames= [...]
+22 17301534 . T C 24274 PASS DPSum=729;HRun=1;HapNoVar=0;NoPLTot=0;PLCG=1821,206,0;PLHSWEx=33,3,0;PLHSWG=3224,256,0;PLILL250=1604,132,0;PLILLCLIA=3477,270,0;PLILLWG=1237,123,0;PLIllPCRFree=2015,153,0;PLNCIIonWG=532,57,0;PLPlatGen=8384,607,0;PLXIll=1528,120,0;PLXPSolWGLS=419,24,0;PLminsum=1951;PLminsumOverDP=2.68;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=i [...]
+22 17301843 . A G 24500 PASS DPSum=718;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=332,33,0;PLCG=1146,129,0;PLHSWG=2348,207,0;PLILL250=1578,150,0;PLILLCLIA=2995,226,0;PLILLWG=984,108,0;PLIllPCRFree=2517,187,0;PLNCIIonWG=187,8,0;PLPlatGen=10064,746,0;PLXIll=1741,129,0;PLXPSolWGLS=608,21,0;PLminsum=1944;PLminsumOverDP=2.71;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames= [...]
+22 17302170 . T C 24536 PASS DPSum=687;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=270,24,0;PLCG=969,105,0;PLHSWG=3354,265,0;PLILL250=1730,147,0;PLILLCLIA=2357,175,0;PLILLWG=1068,102,0;PLIllPCRFree=2310,169,0;PLNCIIonWG=308,33,0;PLPlatGen=10007,717,0;PLXIll=1766,132,0;PLXPSolWGLS=397,36,0;PLminsum=1905;PLminsumOverDP=2.77;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17302458 . C G 20051 PASS DPSum=560;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=367,33,0;PLCG=465,51,0;PLHSWG=3048,241,0;PLILL250=1289,108,0;PLILLCLIA=1933,147,0;PLILLWG=1122,102,0;PLIllPCRFree=1762,132,0;PLPlatGen=8679,662,0;PLXIll=1225,93,0;PLXPSolWGLS=161,7,0;PLminsum=1576;PLminsumOverDP=2.81;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;va [...]
+22 17302763 . G C 23052 PASS DPSum=646;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=612,54,0;PLCG=680,75,0;PLHSWG=3202,259,0;PLILL250=1384,117,0;PLILLCLIA=2153,163,0;PLILLWG=564,57,0;PLIllPCRFree=2309,175,0;PLNCIIonWG=414,45,0;PLPlatGen=9760,731,0;PLXIll=1371,102,0;PLXPSolWGLS=603,48,0;PLminsum=1826;PLminsumOverDP=2.83;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill [...]
+22 17302823 . T C 20963 PASS DPSum=580;HRun=0;HapNoVar=0;NoPLTot=0;PLCG=250,27,0;PLHSWG=3047,247,0;PLILL250=1243,108,0;PLILLCLIA=2289,172,0;PLILLWG=830,75,0;PLIllPCRFree=2454,181,0;PLNCIIonWG=654,69,0;PLPlatGen=9105,639,0;PLXIll=1091,81,0;PLminsum=1599;PLminsumOverDP=2.76;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=9;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,cg,ion;platforms=3;varType=SNP GT:DP:GQ:P [...]
+22 17304457 . C T 24395 PASS DPSum=698;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=240,21,0;PLCG=830,101,0;PLHSWG=3144,247,0;PLILL250=2220,187,0;PLILLCLIA=2751,214,0;PLILLWG=1794,162,0;PLIllPCRFree=2018,153,0;PLNCIIonWG=294,30,0;PLPlatGen=8939,677,0;PLXIll=1097,84,0;PLXPSolWGLS=1068,84,0;PLminsum=1960;PLminsumOverDP=2.81;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames= [...]
+22 17304696 . GT G 12386 PASS DPSum=607;HRun=12;HapNoVar=0;NoPLTot=0;PLCG=228,18,0;PLHSWG=1928,205,0;PLILL250=1676,200,0;PLILLCLIA=1255,135,0;PLILLWG=582,65,0;PLIllPCRFree=1144,105,0;PLPlatGen=4869,437,0;PLXIll=704,78,0;PLminsum=1243;PLminsumOverDP=2.05;RPA=12,11;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=7;allalts=.;datasetcalls=8;geno=3;genoMapGood=7;platformbias=none;platformnames=ill;platforms=1;varType=INDEL GT:DP:GQ:PL 1/1:607:1243:12386,1243,0
+22 17305777 . G A 25368 PASS DPSum=751;HRun=2;HapNoVar=0;NoPLTot=0;PL454WG=590,51,0;PLCG=2250,248,0;PLHSWG=2587,205,0;PLILL250=2115,180,0;PLILLCLIA=3295,253,0;PLILLWG=1173,105,0;PLIllPCRFree=2302,175,0;PLPlatGen=9119,695,0;PLXIll=1341,102,0;PLXPSolWGLS=596,48,0;PLminsum=2062;PLminsumOverDP=2.75;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,cg;plat [...]
+22 17307808 . TAA T 15937 PASS DPSum=500;HRun=0;HapNoVar=0;NoPLTot=1;PL454WG=404,26,0;PLCG=0,14,79;PLHSWG=1702,120,0;PLILL250=2095,166,0;PLILLCLIA=491,34,0;PLILLWG=601,45,0;PLIllPCRFree=2059,159,0;PLPlatGen=8052,597,0;PLXIll=544,40,0;PLXPSolWGLS=68,9,0;PLminsum=1131;PLminsumOverDP=2.26;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=8;allalts=.;datasetcalls=10;geno=3;genoMapGood=8;platformbias=none;platformnames=ill,454;platforms=2;varType=IN [...]
+22 17307811 . TTA T 15315 PASS DPSum=494;HRun=0;HapNoVar=0;NoPLTot=1;PL454WG=315,21,0;PLCG=0,10,64;PLHSWG=1664,109,0;PLILL250=1781,161,0;PLILLCLIA=493,37,0;PLILLWG=601,45,0;PLIllPCRFree=2037,142,0;PLPlatGen=7842,487,0;PLXIll=581,44,0;PLXPSolWGLS=65,9,0;PLminsum=1001;PLminsumOverDP=2.03;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=8;allalts=.;datasetcalls=10;geno=3;genoMapGood=8;platformbias=none;platformnames=ill,454;platforms=2;varType=IN [...]
+22 17308241 . A G 26367 PASS DPSum=747;HRun=2;HapNoVar=0;NoPLTot=0;PL454WG=369,33,0;PLCG=1209,121,0;PLHSWG=3461,277,0;PLILL250=1655,144,0;PLILLCLIA=3158,238,0;PLILLWG=1347,126,0;PLIllPCRFree=2901,187,0;PLPlatGen=9918,711,0;PLXIll=1535,114,0;PLXPSolWGLS=814,66,0;PLminsum=2017;PLminsumOverDP=2.7;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,cg;platf [...]
+22 17309881 . A G 26964 PASS DPSum=817;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=458,45,0;PLCG=1095,107,0;PLHSWEx=1556,117,0;PLHSWG=2536,226,0;PLILL250=1288,120,0;PLILLCLIA=4875,379,0;PLILLWG=1263,132,0;PLIllPCRFree=2138,165,0;PLIonEx=783,84,0;PLNCIIonWG=414,42,0;PLPlatGen=8350,579,0;PLXIll=1492,117,0;PLXPSolWGLS=716,63,0;PLminsum=2176;PLminsumOverDP=2.66;RPA=20,21,22,23;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=13;allalts=.;datasetcalls=13;geno=3;gen [...]
+22 17313798 . G C 23599 PASS DPSum=692;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=244,21,0;PLCG=1379,156,0;PLHSWEx=43,3,0;PLHSWG=2667,217,0;PLILL250=1287,108,0;PLILLCLIA=3727,286,0;PLILLWG=950,93,0;PLIllPCRFree=2550,193,0;PLPlatGen=9570,719,0;PLXIll=1081,84,0;PLXPSolWGLS=101,9,0;PLminsum=1889;PLminsumOverDP=2.73;RPA=20,21,22,23;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill [...]
+22 17313872 . C T 20417 PASS DPSum=589;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=333,27,0;PLCG=813,93,0;PLHSWG=2218,172,0;PLILL250=1118,93,0;PLILLCLIA=2388,184,0;PLILLWG=775,58,0;PLIllPCRFree=2090,157,0;PLNCIIonWG=288,30,0;PLPlatGen=8399,638,0;PLXIll=1447,111,0;PLXPSolWGLS=548,48,0;PLminsum=1611;PLminsumOverDP=2.74;RPA=20,21,22,23;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnam [...]
diff --git a/testdata/picard/vcf/FixVcfHeaderTest/output.vcf b/testdata/picard/vcf/FixVcfHeaderTest/output.vcf
new file mode 100644
index 0000000..ba771fa
--- /dev/null
+++ b/testdata/picard/vcf/FixVcfHeaderTest/output.vcf
@@ -0,0 +1,206 @@
+##fileformat=VCFv4.2
+##FILTER=<ID=PASS,Description="All filters passed">
+##FILTER=<ID=Uncertain,Description="Uncertain genotype due to reason in filter INFO field">
+##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##FORMAT=<ID=FT,Number=.,Type=String,Description="Genotype-level filter">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Net Genotype across all datasets">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods summed across all unfiltered datasets for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DPSum,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##INFO=<ID=Entropy,Number=1,Type=Float,Description="Shannon entropy of variant flanking regions, 12bp on both sides">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HapNoVar,Number=1,Type=Integer,Description="Number of datasets for which HaplotypeCaller called a variant within 35bp and did not call a variant at this location">
+##INFO=<ID=LEN,Number=A,Type=Integer,Description="allele length">
+##INFO=<ID=NoCG,Number=0,Type=Flag,Description="Present if no consensus was reached for arbitration of all datasets, so we looked at all datasets except Complete Genomics since it may have a different representation of complex variants">
+##INFO=<ID=NoPLTot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for a genotype different from the called genotype">
+##INFO=<ID=PL454WG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~16x 454 whole genome sequencing from 1000 Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLCG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~73x Complete Genomics whole genome sequencing, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~66x 2x100bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~68x 2x100bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILL250,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~50x 2x250bp Illumina PCR-free whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLCLIA,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x 2x100bp Illumina whole genome sequencing from Illumina CLIA lab, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~30x 2x54bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~39x 2x44bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIllPCRFree,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~56x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIonEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x mean 237bp Ion Torrent exome sequencing from Life Technologies, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLNCIIonWG,Number=.,Type=String,Description="Missing description: this INFO line was added by Picard's FixVCFHeader">
+##INFO=<ID=PLPlatGen,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~190x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXIll,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~37x 2x100bp Illumina whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXPSolWGLS,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~24x 50bpx35bp SOLiD whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLminsum,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##INFO=<ID=PLminsumOverDP,Number=1,Type=Float,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods, divided by the depth of coverage">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=TYPE,Number=A,Type=String,Description="The type of allele, either snp, mnp, ins, del, or complex.">
+##INFO=<ID=TrancheABQDmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with abnormal allele balance (AB and QD)">
+##INFO=<ID=TrancheAlignmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with local alignment errors (distance from the end of the read and clipping)">
+##INFO=<ID=TrancheMapmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with mapping errors (mapping quality and depth of coverage)">
+##INFO=<ID=TrancheSSEmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with systematic sequencing errors (strand bias and neighboring base quality)">
+##INFO=<ID=YesPLtot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for the called genotype">
+##INFO=<ID=allalts,Number=1,Type=Integer,Description="All ALT alleles originally considered at this position">
+##INFO=<ID=datasetcalls,Number=1,Type=Integer,Description="Number of datasets with any genotype call at this position">
+##INFO=<ID=filter,Number=1,Type=String,Description="Reason for filtering this genotype as uncertain">
+##INFO=<ID=geno,Number=1,Type=Integer,Description="Most probable genotype, corresponding to the minimum entry in the PL field (e.g., 1=0/0,2=0/1,3=1/1,4=0/2,etc)">
+##INFO=<ID=genoMapGood,Number=1,Type=Integer,Description="Number of datasets calling this genotype with VQSR mapping tranche <= 95">
+##INFO=<ID=platformbias,Number=.,Type=String,Description="Names of platforms that have at more than twice as many incorrect than correct genotypes at this location, indicating platform-specific bias (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platformnames,Number=.,Type=String,Description="Names of platforms that called this genotype (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platforms,Number=1,Type=Integer,Description="Number of different platforms that called this genotype">
+##INFO=<ID=varType,Number=1,Type=String,Description="Type of variant">
+##SelectVariants="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/projects/scratch-data-backup/justin.zook/NA12878/bed/union13callableMQonlymerged_addcert_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs_v2.19_2mindatasets_5minYesNoRatio.bed] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/projects/scratch-data-backup [...]
+##bcftools_viewCommand=view -O z -r 22:1-51304566 ../NA12878_HG001/NISTv2.19/NISTIntegratedCalls_14datasets_131103_allcall_UGHapMerge_HetHomVarPASS_VQSRv2.19_2mindatasets_5minYesNoRatio_all_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs.vcf.gz
+##bcftools_viewVersion=1.2-136-gc29c8c3+htslib-1.2.1-213-g1e2ed48
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##fileDate=20130719
+##phasing=none
+##reference=file:///projects/scratch-data-backup/justin.zook/references/human_g1k_v37.fasta
+##source=SelectVariants
+##variants_justified=left
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
+22 17278430 . C A 13292 PASS DPSum=590;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=218,21,0;PLCG=552,63,0;PLHSWEx=37,3,0;PLHSWG=1091,96,0;PLILL250=912,66,0;PLILLCLIA=1596,119,0;PLILLWG=300,30,0;PLIllPCRFree=1629,144,0;PLNCIIonWG=202,21,0;PLPlatGen=5948,528,0;PLXIll=743,69,0;PLXPSolWGLS=64,6,0;PLminsum=1166;PLminsumOverDP=1.98;RPA=17,18,19;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=12;geno=3;genoMapGood=10;platformbias=none;platf [...]
+22 17278465 . G A 11843 PASS DPSum=556;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=106,9,0;PLCG=886,99,0;PLHSWG=1192,105,0;PLILL250=794,66,0;PLILLCLIA=1660,126,0;PLILLWG=67,6,0;PLIllPCRFree=1137,102,0;PLNCIIonWG=85,9,0;PLPlatGen=4661,419,0;PLXIll=933,72,0;PLXPSolWGLS=322,24,0;PLminsum=1037;PLminsumOverDP=1.87;RPA=17,18,19;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=8;allalts=.;datasetcalls=11;geno=3;genoMapGood=8;platformbias=none;platformnames=ill,sol,cg [...]
+22 17278495 . A G 12201 PASS DPSum=501;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=104,9,0;PLCG=1095,126,0;PLHSWG=1215,108,0;PLILL250=766,72,0;PLILLCLIA=1685,132,0;PLILLWG=124,12,0;PLIllPCRFree=1271,89,0;PLNCIIonWG=98,12,0;PLPlatGen=5015,425,0;PLXIll=828,63,0;PLminsum=1048;PLminsumOverDP=2.09;RPA=17,18,19;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=90;YesPLtot=7;allalts=.;datasetcalls=10;geno=3;genoMapGood=7;platformbias=none;platformnames=ill,cg;platforms=2;varType [...]
+22 17279070 . C CA 12780 PASS DPSum=359;HRun=21;HapNoVar=0;NoPLTot=0;PLCG=0,1,7,8,8,8,2,8,8,8;PLHSWG=1854,137,0,1854,1854,1854,1854,1854,1854,1854;PLILL250=1704,123,0,1704,1704,1704,1704,1704,1704,1704;PLILLCLIA=1624,116,0,1624,1624,1624,1624,1624,1624,1624;PLILLWG=174,1,0,174,174,174,174,174,174,174;PLIllPCRFree=1045,35,0,1045,1045,1045,1045,1045,1045,1045;PLPlatGen=5835,226,0,5835,5835,5835,5835,5835,5835,5835;PLXIll=551,3,0,551,551,551,551,551,551,551;PLminsum=635;PLminsumOverDP=1.77; [...]
+22 17279084 . C A 14325 PASS DPSum=498;HRun=21;HapNoVar=0;NoPLTot=0;PLHSWG=1197,95,0;PLILL250=1446,115,0;PLILLCLIA=2009,156,0;PLILLWG=174,1,0;PLIllPCRFree=1817,153,0;PLPlatGen=7597,623,0;PLXPSolWGLS=85,9,0;PLminsum=1152;PLminsumOverDP=2.31;RPA=21,20;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=90;YesPLtot=5;allalts=.;datasetcalls=7;geno=3;genoMapGood=5;platformbias=none;platformnames=ill;platforms=1;varType=SNP GT:DP:GQ:PL 1/1:498:1152:14325,1152,0
+22 17279115 . A T 20051 PASS DPSum=654;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=435,36,0;PLCG=954,105,0;PLHSWG=2681,211,0;PLILL250=1567,132,0;PLILLCLIA=2534,187,0;PLILLWG=1160,105,0;PLIllPCRFree=1456,120,0;PLNCIIonWG=238,27,0;PLPlatGen=7515,607,0;PLXIll=954,75,0;PLXPSolWGLS=557,45,0;PLminsum=1650;PLminsumOverDP=2.52;RPA=21,20;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=i [...]
+22 17280388 . T C 19838 PASS DPSum=597;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=175,18,0;PLCG=974,111,0;PLHSWG=2148,187,0;PLILL250=1346,132,0;PLILLCLIA=1759,132,0;PLILLWG=824,87,0;PLIllPCRFree=2215,130,0;PLNCIIonWG=282,30,0;PLPlatGen=8968,598,0;PLXIll=959,72,0;PLXPSolWGLS=188,21,0;PLminsum=1518;PLminsumOverDP=2.54;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=ill [...]
+22 17281097 . T TA 24703 PASS DPSum=632;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=339,24,0;PLCG=388,28,0;PLHSWG=3723,265,0;PLILL250=2308,171,0;PLILLCLIA=2369,169,0;PLILLWG=964,60,0;PLIllPCRFree=2935,211,0;PLNCIIonWG=139,12,0;PLPlatGen=10405,740,0;PLXIll=1007,72,0;PLXPSolWGLS=126,9,0;PLminsum=1761;PLminsumOverDP=2.79;RPA=1,2;RU=A;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,45 [...]
+22 17281392 . G A 23420 PASS DPSum=653;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=394,36,0;PLCG=628,72,0;PLHSWEx=45,3,0;PLHSWG=3538,271,0;PLILL250=1967,162,0;PLILLCLIA=2170,163,0;PLILLWG=1247,114,0;PLIllPCRFree=2160,160,0;PLPlatGen=9660,725,0;PLXIll=1192,90,0;PLXPSolWGLS=419,39,0;PLminsum=1835;PLminsumOverDP=2.81;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,45 [...]
+22 17281931 . G A 22300 PASS DPSum=630;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=232,21,0;PLCG=1322,133,0;PLHSWG=2585,199,0;PLILL250=1746,130,0;PLILLCLIA=1924,144,0;PLILLWG=765,69,0;PLIllPCRFree=2516,190,0;PLPlatGen=9866,704,0;PLXIll=976,72,0;PLXPSolWGLS=368,33,0;PLminsum=1695;PLminsumOverDP=2.69;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,cg;platfor [...]
+22 17282305 . A G 18414 PASS DPSum=578;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=300,30,0;PLCG=1245,141,0;PLHSWG=1833,171,0;PLILL250=1203,114,0;PLILLCLIA=2153,171,0;PLILLWG=975,99,0;PLIllPCRFree=1382,73,0;PLNCIIonWG=185,21,0;PLPlatGen=7700,560,0;PLXIll=978,75,0;PLXPSolWGLS=460,39,0;PLminsum=1494;PLminsumOverDP=2.58;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill [...]
+22 17282665 . T C 23312 PASS DPSum=679;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=233,21,0;PLCG=1172,132,0;PLHSWG=3548,286,0;PLILL250=1567,135,0;PLILLCLIA=2190,168,0;PLILLWG=1246,114,0;PLIllPCRFree=2412,160,0;PLIonEx=36,3,0;PLNCIIonWG=48,6,0;PLPlatGen=9461,696,0;PLXIll=1129,87,0;PLXPSolWGLS=270,24,0;PLminsum=1832;PLminsumOverDP=2.7;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=12;geno=3;genoMapGood=10;platformbias=none;p [...]
+22 17282666 . G A 23609 PASS DPSum=677;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=238,21,0;PLCG=1226,141,0;PLHSWG=3575,283,0;PLILL250=1598,135,0;PLILLCLIA=2184,168,0;PLILLWG=1261,111,0;PLIllPCRFree=2500,192,0;PLIonEx=36,3,0;PLNCIIonWG=48,6,0;PLPlatGen=9577,695,0;PLXIll=1106,87,0;PLXPSolWGLS=260,24,0;PLminsum=1866;PLminsumOverDP=2.76;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=12;geno=3;genoMapGood=10;platformbias=none; [...]
+22 17283381 . C CT 12654 PASS DPSum=589;HRun=0;HapNoVar=0;NoPLTot=1;PLHSWG=1689,120,0;PLILL250=1174,112,0;PLILLCLIA=1141,128,0;PLILLWG=428,48,0;PLIllPCRFree=1426,146,0;PLPlatGen=6112,636,0;PLXIll=746,81,0;PLXPSolWGLS=0,6,62;PLminsum=1215;PLminsumOverDP=2.06;RPA=10,11;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=7;allalts=.;datasetcalls=8;geno=3;genoMapGood=7;platformbias=none;platformnames=ill;platforms=1;varType=INDEL GT:DP:GQ:PL 1/1:589:1215:1271 [...]
+22 17283967 . C CAT 15865 PASS DPSum=487;HRun=18;HapNoVar=0;NoPLTot=1;PL454WG=260,18,0,260,260,260;PLCG=0,9,49,49,49,49;PLILL250=2339,185,0,2339,2339,2339;PLILLCLIA=1827,55,0,1827,1827,1827;PLILLWEx=51,6,0,51,51,51;PLIllPCRFree=2277,161,0,2277,2277,2277;PLNCIIonWG=241,21,0,241,241,241;PLPlatGen=8203,584,0,8203,8203,8203;PLXIll=716,53,0,716,716,716;PLminsum=1043;PLminsumOverDP=2.14;RPA=18,17;RU=T;TrancheABQDmin2=90;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=90;YesPLtot=6;allalts=. [...]
+22 17284065 . T C 25700 PASS DPSum=739;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=207,18,0;PLCG=1097,120,0;PLHSWG=3970,319,0;PLILL250=2001,171,0;PLILLCLIA=2803,211,0;PLILLWG=1058,93,0;PLIllPCRFree=2454,192,0;PLNCIIonWG=524,54,0;PLPlatGen=9657,740,0;PLXIll=1676,129,0;PLXPSolWGLS=253,3,0;PLminsum=2050;PLminsumOverDP=2.77;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=il [...]
+22 17284363 . G A 25075 PASS DPSum=730;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=265,24,0;PLCG=840,96,0;PLHSWG=3268,256,0;PLILL250=1684,138,0;PLILLCLIA=3152,241,0;PLILLWG=1592,150,0;PLIllPCRFree=2541,192,0;PLNCIIonWG=333,36,0;PLPlatGen=9440,716,0;PLXIll=1656,135,0;PLXPSolWGLS=304,24,0;PLminsum=2008;PLminsumOverDP=2.75;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames= [...]
+22 17285049 . G C 23775 PASS DPSum=690;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=314,27,0;PLCG=1545,174,0;PLHSWG=2071,162,0;PLILL250=1497,120,0;PLILLCLIA=2702,202,0;PLILLWG=1067,105,0;PLIllPCRFree=2804,211,0;PLNCIIonWG=207,8,0;PLPlatGen=9654,725,0;PLXIll=1658,126,0;PLXPSolWGLS=256,21,0;PLminsum=1881;PLminsumOverDP=2.73;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames [...]
+22 17286329 . T G 24692 PASS DPSum=688;HRun=1;HapNoVar=0;NoPLTot=0;PLCG=1330,147,0;PLHSWG=2540,204,0;PLILL250=1920,162,0;PLILLCLIA=3304,247,0;PLILLWG=1236,117,0;PLIllPCRFree=1943,144,0;PLNCIIonWG=253,27,0;PLPlatGen=10111,746,0;PLXIll=1464,111,0;PLXPSolWGLS=591,48,0;PLminsum=1953;PLminsumOverDP=2.84;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,sol,cg,ion [...]
+22 17286712 . T A 22855 PASS DPSum=675;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=556,51,0;PLCG=932,108,0;PLHSWG=2571,204,0;PLILL250=1978,165,0;PLILLCLIA=2843,220,0;PLILLWG=700,69,0;PLIllPCRFree=2223,169,0;PLNCIIonWG=244,24,0;PLPlatGen=9280,710,0;PLXIll=1088,84,0;PLXPSolWGLS=440,42,0;PLminsum=1846;PLminsumOverDP=2.73;RPA=18,17;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=il [...]
+22 17287835 . A T 22125 PASS DPSum=629;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=745,63,0;PLCG=899,110,0;PLHSWG=2842,226,0;PLILL250=2063,174,0;PLILLCLIA=1362,102,0;PLILLWG=1134,99,0;PLIllPCRFree=2271,169,0;PLPlatGen=9423,701,0;PLXIll=1112,84,0;PLXPSolWGLS=274,6,0;PLminsum=1734;PLminsumOverDP=2.76;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;v [...]
+22 17288058 . A G 24855 PASS DPSum=703;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=380,33,0;PLCG=1412,137,0;PLHSWG=3216,256,0;PLILL250=2124,183,0;PLILLCLIA=2344,175,0;PLILLWG=887,87,0;PLIllPCRFree=2579,193,0;PLNCIIonWG=372,36,0;PLPlatGen=9982,743,0;PLXIll=1141,87,0;PLXPSolWGLS=418,36,0;PLminsum=1966;PLminsumOverDP=2.8;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=il [...]
+22 17288266 . C A 24401 PASS DPSum=701;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=402,36,0;PLCG=1085,126,0;PLHSWG=2507,196,0;PLILL250=2469,204,0;PLILLCLIA=2419,180,0;PLILLWG=1341,126,0;PLIllPCRFree=2554,190,0;PLNCIIonWG=90,9,0;PLPlatGen=9971,737,0;PLXIll=1563,123,0;PLminsum=1927;PLminsumOverDP=2.75;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3; [...]
+22 17288377 . A C 24105 PASS DPSum=680;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=357,33,0;PLCG=970,108,0;PLHSWG=2670,214,0;PLILL250=2081,177,0;PLILLCLIA=2880,217,0;PLILLWG=1027,102,0;PLIllPCRFree=1968,144,0;PLNCIIonWG=367,39,0;PLPlatGen=9891,703,0;PLXIll=1404,105,0;PLXPSolWGLS=490,42,0;PLminsum=1884;PLminsumOverDP=2.77;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17289118 . C T 27387 PASS DPSum=769;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=653,57,0;PLCG=1705,198,0;PLHSWG=3418,265,0;PLILL250=1717,138,0;PLILLCLIA=3187,241,0;PLILLWG=1220,111,0;PLIllPCRFree=3030,226,0;PLIonEx=92,9,0;PLNCIIonWG=238,24,0;PLPlatGen=9958,703,0;PLXIll=1642,129,0;PLXPSolWGLS=527,48,0;PLminsum=2149;PLminsumOverDP=2.79;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=12;geno=3;genoMapGood=11;platformbias=no [...]
+22 17290010 . G T 24097 PASS DPSum=663;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=380,33,0;PLCG=964,108,0;PLHSWG=3092,238,0;PLILL250=1754,144,0;PLILLCLIA=2206,166,0;PLILLWG=1309,114,0;PLIllPCRFree=2237,166,0;PLNCIIonWG=231,21,0;PLPlatGen=9847,731,0;PLXIll=1833,138,0;PLXPSolWGLS=244,21,0;PLminsum=1880;PLminsumOverDP=2.84;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17290106 . T C 22811 PASS DPSum=656;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=379,33,0;PLCG=1115,91,0;PLHSWG=3280,265,0;PLILL250=1641,138,0;PLILLCLIA=2355,175,0;PLILLWG=1059,96,0;PLIllPCRFree=1982,144,0;PLNCIIonWG=200,21,0;PLPlatGen=9130,671,0;PLXIll=1547,117,0;PLXPSolWGLS=123,9,0;PLminsum=1760;PLminsumOverDP=2.68;RPA=17,16;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=i [...]
+22 17292156 . T C 15421 PASS DPSum=503;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=288,30,0;PLCG=1006,116,0;PLHSWG=1666,159,0;PLILL250=827,81,0;PLILLCLIA=1993,156,0;PLILLWG=722,78,0;PLIllPCRFree=1447,114,0;PLNCIIonWG=136,18,0;PLPlatGen=6579,526,0;PLXIll=757,63,0;PLminsum=1341;PLminsumOverDP=2.67;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;varType=SNP GT:DP:G [...]
+22 17292258 . C A 22579 PASS DPSum=686;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=621,54,0;PLCG=1072,126,0;PLHSWG=2792,229,0;PLILL250=1248,105,0;PLILLCLIA=3196,259,0;PLILLWG=603,54,0;PLIllPCRFree=2019,159,0;PLNCIIonWG=171,18,0;PLPlatGen=9110,722,0;PLXIll=1707,135,0;PLXPSolWGLS=40,6,0;PLminsum=1867;PLminsumOverDP=2.72;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platform [...]
+22 17292877 . C T 19695 PASS DPSum=606;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=107,9,0;PLCG=536,46,0;PLHSWEx=78,6,0;PLHSWG=3094,250,0;PLILL250=1429,123,0;PLILLCLIA=2154,174,0;PLILLWG=175,18,0;PLIllPCRFree=1762,141,0;PLNCIIonWG=182,18,0;PLPlatGen=8716,709,0;PLXIll=1462,126,0;PLminsum=1620;PLminsumOverDP=2.67;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=7;allalts=.;datasetcalls=11;geno=3;genoMapGood=7;platformbias=none;platformnames=ill,cg;platforms=2;varType [...]
+22 17293143 . A T 26111 PASS DPSum=772;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=482,42,0;PLCG=1508,173,0;PLHSWEx=45,3,0;PLHSWG=2735,214,0;PLILL250=1874,128,0;PLILLCLIA=4518,343,0;PLILLWG=1936,174,0;PLIllPCRFree=2011,150,0;PLNCIIonWG=414,42,0;PLPlatGen=8834,637,0;PLXIll=1387,108,0;PLXPSolWGLS=367,33,0;PLminsum=2047;PLminsumOverDP=2.65;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=12;geno=3;genoMapGood=11;platformbias=none;platformname [...]
+22 17293295 . G A 22699 PASS DPSum=649;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=281,24,0;PLCG=946,111,0;PLHSWEx=42,3,0;PLHSWG=2594,205,0;PLILL250=1874,153,0;PLILLCLIA=3853,265,0;PLILLWG=985,90,0;PLIllPCRFree=2030,153,0;PLNCIIonWG=187,18,0;PLPlatGen=8635,650,0;PLXIll=1272,99,0;PLminsum=1771;PLminsumOverDP=2.73;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;va [...]
+22 17294251 . T G 26280 PASS DPSum=780;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=377,36,0;PLCG=1885,221,0;PLHSWG=3688,289,0;PLILL250=1417,123,0;PLILLCLIA=3519,271,0;PLILLWG=1340,123,0;PLIllPCRFree=2194,169,0;PLNCIIonWG=266,30,0;PLPlatGen=9652,734,0;PLXIll=1525,123,0;PLXPSolWGLS=417,25,0;PLminsum=2144;PLminsumOverDP=2.75;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill,454,sol,c [...]
+22 17295419 . G A 9604 PASS DPSum=710;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=100,0,326;PLCG=409,0,378;PLHSWG=941,0,1561;PLILL250=689,0,1148;PLILLCLIA=893,0,1211;PLILLWG=301,0,382;PLIllPCRFree=1086,0,1302;PLNCIIonWG=10,0,46;PLPlatGen=4378,0,4170;PLXIll=545,0,609;PLXPSolWGLS=252,0,366;PLminsum=9604;PLminsumOverDP=13.53;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=2;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,c [...]
+22 17295764 . A G 22293 PASS DPSum=642;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=275,24,0;PLCG=669,72,0;PLHSWG=2177,172,0;PLILL250=1748,150,0;PLILLCLIA=2185,166,0;PLILLWG=1070,86,0;PLIllPCRFree=2362,178,0;PLNCIIonWG=558,57,0;PLPlatGen=9661,725,0;PLXIll=1240,93,0;PLXPSolWGLS=348,27,0;PLminsum=1750;PLminsumOverDP=2.73;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill [...]
+22 17296114 . G C 24713 PASS DPSum=739;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=396,36,0;PLCG=1128,134,0;PLHSWG=2739,240,0;PLILL250=1802,165,0;PLILLCLIA=3320,259,0;PLILLWG=1133,114,0;PLIllPCRFree=2459,184,0;PLNCIIonWG=372,39,0;PLPlatGen=9563,722,0;PLXIll=1478,111,0;PLXPSolWGLS=323,30,0;PLminsum=2034;PLminsumOverDP=2.75;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17297407 . A G 20747 PASS DPSum=607;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=568,31,0;PLCG=873,99,0;PLHSWG=3140,247,0;PLILL250=1787,125,0;PLILLCLIA=1687,126,0;PLILLWG=674,63,0;PLIllPCRFree=1979,150,0;PLIonEx=35,3,0;PLPlatGen=9371,713,0;PLXIll=633,48,0;PLminsum=1605;PLminsumOverDP=2.64;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;varType=SN [...]
+22 17297558 . A G 23212 PASS DPSum=664;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=714,66,0;PLCG=701,81,0;PLHSWG=2596,211,0;PLILL250=2011,174,0;PLILLCLIA=2470,190,0;PLILLWG=955,87,0;PLIllPCRFree=1940,150,0;PLNCIIonWG=325,36,0;PLPlatGen=9759,737,0;PLXIll=1556,120,0;PLXPSolWGLS=185,15,0;PLminsum=1867;PLminsumOverDP=2.81;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=ill [...]
+22 17298243 . C CCAAT 24119 PASS DPSum=580;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=449,30,0,449,449,449;PLHSWG=3386,226,0,3386,3386,3386;PLILL250=1959,131,0,1959,1959,1959;PLILLCLIA=2393,158,0,2393,2393,2393;PLILLWG=979,67,0,979,979,979;PLIllPCRFree=2399,158,0,2399,2399,2399;PLNCIIonWG=314,21,0,314,314,314;PLPlatGen=9836,649,0,9836,9836,9836;PLXIll=1583,106,0,1583,1583,1583;PLXPSolWGLS=821,57,0,821,821,821;PLminsum=1603;PLminsumOverDP=2.76;RPA=9,10;RU=T;TrancheABQDmin2=90;TrancheAlignmin2=0; [...]
+22 17300320 . A G 23768 PASS DPSum=677;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=415,36,0;PLCG=1091,123,0;PLHSWG=2645,208,0;PLILL250=1950,154,0;PLILLCLIA=2276,169,0;PLILLWG=1061,99,0;PLIllPCRFree=2485,187,0;PLNCIIonWG=219,4,0;PLPlatGen=9912,726,0;PLXIll=1178,93,0;PLXPSolWGLS=536,48,0;PLminsum=1847;PLminsumOverDP=2.73;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=il [...]
+22 17300408 . A G 24902 PASS DPSum=722;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=653,60,0;PLCG=1528,168,0;PLHSWG=3219,259,0;PLILL250=1745,147,0;PLILLCLIA=2277,172,0;PLILLWG=1364,132,0;PLIllPCRFree=2450,187,0;PLNCIIonWG=368,36,0;PLPlatGen=9385,707,0;PLXIll=1282,99,0;PLXPSolWGLS=631,41,0;PLminsum=2008;PLminsumOverDP=2.78;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames= [...]
+22 17301534 . T C 24274 PASS DPSum=729;HRun=1;HapNoVar=0;NoPLTot=0;PLCG=1821,206,0;PLHSWEx=33,3,0;PLHSWG=3224,256,0;PLILL250=1604,132,0;PLILLCLIA=3477,270,0;PLILLWG=1237,123,0;PLIllPCRFree=2015,153,0;PLNCIIonWG=532,57,0;PLPlatGen=8384,607,0;PLXIll=1528,120,0;PLXPSolWGLS=419,24,0;PLminsum=1951;PLminsumOverDP=2.68;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames=i [...]
+22 17301843 . A G 24500 PASS DPSum=718;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=332,33,0;PLCG=1146,129,0;PLHSWG=2348,207,0;PLILL250=1578,150,0;PLILLCLIA=2995,226,0;PLILLWG=984,108,0;PLIllPCRFree=2517,187,0;PLNCIIonWG=187,8,0;PLPlatGen=10064,746,0;PLXIll=1741,129,0;PLXPSolWGLS=608,21,0;PLminsum=1944;PLminsumOverDP=2.71;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=11;geno=3;genoMapGood=10;platformbias=none;platformnames= [...]
+22 17302170 . T C 24536 PASS DPSum=687;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=270,24,0;PLCG=969,105,0;PLHSWG=3354,265,0;PLILL250=1730,147,0;PLILLCLIA=2357,175,0;PLILLWG=1068,102,0;PLIllPCRFree=2310,169,0;PLNCIIonWG=308,33,0;PLPlatGen=10007,717,0;PLXIll=1766,132,0;PLXPSolWGLS=397,36,0;PLminsum=1905;PLminsumOverDP=2.77;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames [...]
+22 17302458 . C G 20051 PASS DPSum=560;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=367,33,0;PLCG=465,51,0;PLHSWG=3048,241,0;PLILL250=1289,108,0;PLILLCLIA=1933,147,0;PLILLWG=1122,102,0;PLIllPCRFree=1762,132,0;PLPlatGen=8679,662,0;PLXIll=1225,93,0;PLXPSolWGLS=161,7,0;PLminsum=1576;PLminsumOverDP=2.81;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=10;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,454,cg;platforms=3;va [...]
+22 17302763 . G C 23052 PASS DPSum=646;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=612,54,0;PLCG=680,75,0;PLHSWG=3202,259,0;PLILL250=1384,117,0;PLILLCLIA=2153,163,0;PLILLWG=564,57,0;PLIllPCRFree=2309,175,0;PLNCIIonWG=414,45,0;PLPlatGen=9760,731,0;PLXIll=1371,102,0;PLXPSolWGLS=603,48,0;PLminsum=1826;PLminsumOverDP=2.83;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames=ill [...]
+22 17302823 . T C 20963 PASS DPSum=580;HRun=0;HapNoVar=0;NoPLTot=0;PLCG=250,27,0;PLHSWG=3047,247,0;PLILL250=1243,108,0;PLILLCLIA=2289,172,0;PLILLWG=830,75,0;PLIllPCRFree=2454,181,0;PLNCIIonWG=654,69,0;PLPlatGen=9105,639,0;PLXIll=1091,81,0;PLminsum=1599;PLminsumOverDP=2.76;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=9;geno=3;genoMapGood=9;platformbias=none;platformnames=ill,cg,ion;platforms=3;varType=SNP GT:DP:GQ:P [...]
+22 17304457 . C T 24395 PASS DPSum=698;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=240,21,0;PLCG=830,101,0;PLHSWG=3144,247,0;PLILL250=2220,187,0;PLILLCLIA=2751,214,0;PLILLWG=1794,162,0;PLIllPCRFree=2018,153,0;PLNCIIonWG=294,30,0;PLPlatGen=8939,677,0;PLXIll=1097,84,0;PLXPSolWGLS=1068,84,0;PLminsum=1960;PLminsumOverDP=2.81;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnames= [...]
+22 17304696 . GT G 12386 PASS DPSum=607;HRun=12;HapNoVar=0;NoPLTot=0;PLCG=228,18,0;PLHSWG=1928,205,0;PLILL250=1676,200,0;PLILLCLIA=1255,135,0;PLILLWG=582,65,0;PLIllPCRFree=1144,105,0;PLPlatGen=4869,437,0;PLXIll=704,78,0;PLminsum=1243;PLminsumOverDP=2.05;RPA=12,11;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=7;allalts=.;datasetcalls=8;geno=3;genoMapGood=7;platformbias=none;platformnames=ill;platforms=1;varType=INDEL GT:DP:GQ:PL 1/1:607:1243:12386,1243,0
+22 17305777 . G A 25368 PASS DPSum=751;HRun=2;HapNoVar=0;NoPLTot=0;PL454WG=590,51,0;PLCG=2250,248,0;PLHSWG=2587,205,0;PLILL250=2115,180,0;PLILLCLIA=3295,253,0;PLILLWG=1173,105,0;PLIllPCRFree=2302,175,0;PLPlatGen=9119,695,0;PLXIll=1341,102,0;PLXPSolWGLS=596,48,0;PLminsum=2062;PLminsumOverDP=2.75;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,cg;plat [...]
+22 17307808 . TAA T 15937 PASS DPSum=500;HRun=0;HapNoVar=0;NoPLTot=1;PL454WG=404,26,0;PLCG=0,14,79;PLHSWG=1702,120,0;PLILL250=2095,166,0;PLILLCLIA=491,34,0;PLILLWG=601,45,0;PLIllPCRFree=2059,159,0;PLPlatGen=8052,597,0;PLXIll=544,40,0;PLXPSolWGLS=68,9,0;PLminsum=1131;PLminsumOverDP=2.26;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=8;allalts=.;datasetcalls=10;geno=3;genoMapGood=8;platformbias=none;platformnames=ill,454;platforms=2;varType=IN [...]
+22 17307811 . TTA T 15315 PASS DPSum=494;HRun=0;HapNoVar=0;NoPLTot=1;PL454WG=315,21,0;PLCG=0,10,64;PLHSWG=1664,109,0;PLILL250=1781,161,0;PLILLCLIA=493,37,0;PLILLWG=601,45,0;PLIllPCRFree=2037,142,0;PLPlatGen=7842,487,0;PLXIll=581,44,0;PLXPSolWGLS=65,9,0;PLminsum=1001;PLminsumOverDP=2.03;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=8;allalts=.;datasetcalls=10;geno=3;genoMapGood=8;platformbias=none;platformnames=ill,454;platforms=2;varType=IN [...]
+22 17308241 . A G 26367 PASS DPSum=747;HRun=2;HapNoVar=0;NoPLTot=0;PL454WG=369,33,0;PLCG=1209,121,0;PLHSWG=3461,277,0;PLILL250=1655,144,0;PLILLCLIA=3158,238,0;PLILLWG=1347,126,0;PLIllPCRFree=2901,187,0;PLPlatGen=9918,711,0;PLXIll=1535,114,0;PLXPSolWGLS=814,66,0;PLminsum=2017;PLminsumOverDP=2.7;RPA=9,10;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=10;allalts=.;datasetcalls=10;geno=3;genoMapGood=10;platformbias=none;platformnames=ill,454,sol,cg;platf [...]
+22 17309881 . A G 26964 PASS DPSum=817;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=458,45,0;PLCG=1095,107,0;PLHSWEx=1556,117,0;PLHSWG=2536,226,0;PLILL250=1288,120,0;PLILLCLIA=4875,379,0;PLILLWG=1263,132,0;PLIllPCRFree=2138,165,0;PLIonEx=783,84,0;PLNCIIonWG=414,42,0;PLPlatGen=8350,579,0;PLXIll=1492,117,0;PLXPSolWGLS=716,63,0;PLminsum=2176;PLminsumOverDP=2.66;RPA=20,21,22,23;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=13;allalts=.;datasetcalls=13;geno=3;gen [...]
+22 17313798 . G C 23599 PASS DPSum=692;HRun=1;HapNoVar=0;NoPLTot=0;PL454WG=244,21,0;PLCG=1379,156,0;PLHSWEx=43,3,0;PLHSWG=2667,217,0;PLILL250=1287,108,0;PLILLCLIA=3727,286,0;PLILLWG=950,93,0;PLIllPCRFree=2550,193,0;PLPlatGen=9570,719,0;PLXIll=1081,84,0;PLXPSolWGLS=101,9,0;PLminsum=1889;PLminsumOverDP=2.73;RPA=20,21,22,23;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=9;allalts=.;datasetcalls=11;geno=3;genoMapGood=9;platformbias=none;platformnames=ill [...]
+22 17313872 . C T 20417 PASS DPSum=589;HRun=0;HapNoVar=0;NoPLTot=0;PL454WG=333,27,0;PLCG=813,93,0;PLHSWG=2218,172,0;PLILL250=1118,93,0;PLILLCLIA=2388,184,0;PLILLWG=775,58,0;PLIllPCRFree=2090,157,0;PLNCIIonWG=288,30,0;PLPlatGen=8399,638,0;PLXIll=1447,111,0;PLXPSolWGLS=548,48,0;PLminsum=1611;PLminsumOverDP=2.74;RPA=20,21,22,23;RU=T;TrancheABQDmin2=0;TrancheAlignmin2=0;TrancheMapmin2=0;TrancheSSEmin2=0;YesPLtot=11;allalts=.;datasetcalls=11;geno=3;genoMapGood=11;platformbias=none;platformnam [...]
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/picard-tools.git
More information about the debian-med-commit
mailing list