diff --git a/build.xml b/build.xml
index fe1723587..fe4c7a3f4 100644
--- a/build.xml
+++ b/build.xml
@@ -28,6 +28,7 @@
+
@@ -44,11 +45,11 @@
-
-
+
+
-
-
+
+
@@ -69,8 +70,6 @@
-
-
@@ -103,7 +102,7 @@
-
+
@@ -128,14 +127,14 @@
-
+
-
+
-
+
@@ -146,11 +145,7 @@
-
-
-
-
-
@@ -178,13 +173,23 @@
-
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
@@ -214,12 +219,6 @@
-
-
-
-
-
-
@@ -229,6 +228,10 @@
+
+
+
+
@@ -252,7 +255,7 @@
-
+
@@ -287,7 +290,7 @@
depends="gatk.compile.public.source,gatk.compile.private.source,gatk.compile.external.source"
description="compile the GATK source" />
-
+
@@ -299,7 +302,16 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -312,7 +324,7 @@
+ description="create GATK contracts" if="include.contracts" />
@@ -357,7 +369,6 @@
-
@@ -374,7 +385,6 @@
-
@@ -452,7 +462,7 @@
-
+
@@ -464,7 +474,7 @@
-
+
@@ -663,7 +673,7 @@
-
+
-
-
+
@@ -769,6 +780,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -803,6 +858,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -820,7 +891,7 @@
-
+
@@ -828,7 +899,7 @@
-
+
@@ -921,8 +992,8 @@
-
-
+
+
@@ -944,7 +1015,7 @@
-
+
@@ -969,7 +1040,8 @@
-
+
+
diff --git a/ivy.xml b/ivy.xml
index c2a6c4ccd..3f3d1c97f 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -48,6 +48,9 @@
+
+
+
@@ -60,6 +63,10 @@
+
+
+
+
diff --git a/public/R/plot_Annotations_BinnedTruthMetrics.R b/public/R/plot_Annotations_BinnedTruthMetrics.R
deleted file mode 100644
index 9f9ee290c..000000000
--- a/public/R/plot_Annotations_BinnedTruthMetrics.R
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/bin/env Rscript
-
-args <- commandArgs(TRUE)
-verbose = TRUE
-
-input = args[1]
-annotationName = args[2]
-minBinCutoff = as.numeric(args[3])
-medianNumVariants = args[4]
-
-c <- read.table(input, header=T)
-
-all = c[c$numVariants>minBinCutoff & c$category=="all",]
-novel = c[c$numVariants>minBinCutoff & c$category=="novel",]
-dbsnp = c[c$numVariants>minBinCutoff & c$category=="dbsnp",]
-truth = c[c$numVariants>minBinCutoff & c$category=="truth",]
-
-#
-# Calculate min, max, medians
-#
-
-d = c[c$numVariants>minBinCutoff,]
-ymin = min(d$titv)
-ymax = max(d$titv)
-xmin = min(d$value)
-xmax = max(d$value)
-m = weighted.mean(all$value,all$numVariants/sum(all$numVariants))
-ma = all[all$value > m,]
-mb = all[all$value < m,]
-m75 = weighted.mean(ma$value,ma$numVariants/sum(ma$numVariants))
-m25 = weighted.mean(mb$value,mb$numVariants/sum(mb$numVariants))
-if(medianNumVariants == "true") {
-vc = cumsum( all$numVariants/sum(all$numVariants) )
-m10 = all$value[ max(which(vc<=0.10)) ]
-m25 = all$value[ max(which(vc<=0.25)) ]
-m = all$value[ max(which(vc<=0.5)) ]
-m75 = all$value[ min(which(vc>=0.75)) ]
-m90 = all$value[ min(which(vc>=0.90)) ]
-}
-
-#
-# Plot TiTv ratio as a function of the annotation
-#
-
-outfile = paste(input, ".TiTv.pdf", sep="")
-pdf(outfile, height=7, width=7)
-par(cex=1.1)
-plot(all$value,all$titv,xlab=annotationName,ylab="Ti/Tv Ratio",pch=20,ylim=c(ymin,ymax),xaxt="n",ps=14);
-axis(1,axTicks(1), format(axTicks(1), scientific=F))
-abline(v=m,lty=2,col="red")
-abline(v=m75,lty=3)
-abline(v=m25,lty=3)
-text(m, ymin, "50", col="red", cex=0.6);
-text(m75, ymin, "75", col="black", cex=0.6);
-text(m25, ymin, "25", col="black", cex=0.6);
-if(medianNumVariants == "true") {
-abline(v=m90,lty=3)
-abline(v=m10,lty=3)
-text(m10, ymin, "10", col="black", cex=0.6);
-text(m90, ymin, "90", col="black", cex=0.6);
-}
-points(novel$value,novel$titv,col="green",pch=20)
-points(dbsnp$value,dbsnp$titv,col="blue",pch=20)
-if( sum(all$truePositive==0) != length(all$truePositive) ) {
-points(truth$value,truth$titv,col="magenta",pch=20)
-legend("topleft", c("all","novel","dbsnp","truth"),col=c("black","green","blue","magenta"),pch=c(20,20,20,20))
-} else {
-legend("topleft", c("all","novel","dbsnp"),col=c("black","green","blue"),pch=c(20,20,20))
-}
-dev.off()
-
-#
-# Plot TiTv ratio as a function of the annotation, log scale on the x-axis
-#
-
-outfile = paste(input, ".TiTv_log.pdf", sep="")
-pdf(outfile, height=7, width=7)
-par(cex=1.1)
-plot(all$value,all$titv,xlab=annotationName,log="x",ylab="Ti/Tv Ratio",pch=20,ylim=c(ymin,ymax),xaxt="n",ps=14);
-axis(1,axTicks(1), format(axTicks(1), scientific=F))
-abline(v=m,lty=2,col="red")
-abline(v=m75,lty=3)
-abline(v=m25,lty=3)
-text(m, ymin, "50", col="red", cex=0.6);
-text(m75, ymin, "75", col="black", cex=0.6);
-text(m25, ymin, "25", col="black", cex=0.6);
-if(medianNumVariants == "true") {
-abline(v=m90,lty=3)
-abline(v=m10,lty=3)
-text(m10, ymin, "10", col="black", cex=0.6);
-text(m90, ymin, "90", col="black", cex=0.6);
-}
-points(novel$value,novel$titv,col="green",pch=20)
-points(dbsnp$value,dbsnp$titv,col="blue",pch=20)
-if( sum(all$truePositive==0) != length(all$truePositive) ) {
-points(truth$value,truth$titv,col="magenta",pch=20)
-legend("topleft", c("all","novel","dbsnp","truth"),col=c("black","green","blue","magenta"),pch=c(20,20,20,20))
-} else {
-legend("topleft", c("all","novel","dbsnp"),col=c("black","green","blue"),pch=c(20,20,20))
-}
-dev.off()
-
-#
-# Plot dbsnp and true positive rate as a function of the annotation
-#
-
-ymin = min(all$dbsnp)
-ymax = max(all$dbsnp)
-outfile = paste(input, ".truthRate.pdf", sep="")
-pdf(outfile, height=7, width=7)
-par(cex=1.1)
-yLabel = "DBsnp Rate"
-if( sum(all$truePositive==0) != length(all$truePositive) ) {
-t = all[all$truePositive>0,]
-yLabel = "DBsnp/True Positive Rate"
-ymin = min(min(all$dbsnp),min(t$truePositive))
-ymax = max(max(all$dbsnp),max(t$truePositive))
-}
-plot(all$value,all$dbsnp,xlab=annotationName,ylab=yLabel,pch=20,ylim=c(ymin,ymax),xaxt="n",ps=14);
-axis(1,axTicks(1), format(axTicks(1), scientific=F))
-abline(v=m,lty=2,col="red")
-abline(v=m75,lty=3)
-abline(v=m25,lty=3)
-text(m, ymin, "50", col="red", cex=0.6);
-text(m75, ymin, "75", col="black", cex=0.6);
-text(m25, ymin, "25", col="black", cex=0.6);
-if(medianNumVariants == "true") {
-abline(v=m90,lty=3)
-abline(v=m10,lty=3)
-text(m10, ymin, "10", col="black", cex=0.6);
-text(m90, ymin, "90", col="black", cex=0.6);
-}
-if( sum(all$truePositive==0) != length(all$truePositive) ) {
-points(t$value,t$truePositive,col="magenta",pch=20);
-legend("topleft", c("dbsnp","truth"),col=c("black","magenta"),pch=c(20,20))
-}
-dev.off()
-
-#
-# Plot dbsnp and true positive rate as a function of the annotation, log scale on the x-axis
-#
-
-outfile = paste(input, ".truthRate_log.pdf", sep="")
-pdf(outfile, height=7, width=7)
-par(cex=1.1)
-yLabel = "DBsnp Rate"
-if( sum(all$truePositive==0) != length(all$truePositive) ) {
-yLabel = "DBsnp/Truth Rate"
-}
-plot(all$value,all$dbsnp,xlab=annotationName,log="x",ylab=yLabel,ylim=c(ymin,ymax),pch=20,xaxt="n",ps=14);
-axis(1,axTicks(1), format(axTicks(1), scientific=F))
-abline(v=m,lty=2,col="red")
-abline(v=m75,lty=3)
-abline(v=m25,lty=3)
-text(m, ymin, "50", col="red", cex=0.6);
-text(m75, ymin, "75", col="black", cex=0.6);
-text(m25, ymin, "25", col="black", cex=0.6);
-if(medianNumVariants == "true") {
-abline(v=m90,lty=3)
-abline(v=m10,lty=3)
-text(m10, ymin, "10", col="black", cex=0.6);
-text(m90, ymin, "90", col="black", cex=0.6);
-}
-if( sum(all$truePositive==0) != length(all$truePositive) ) {
-points(t$value,t$truePositive,col="magenta",pch=20);
-legend("topleft", c("dbsnp","truth"),col=c("black","magenta"),pch=c(20,20))
-}
-dev.off()
-
-#
-# Plot histogram of the annotation's value
-#
-
-outfile = paste(input, ".Histogram.pdf", sep="")
-pdf(outfile, height=7, width=7)
-par(cex=1.1)
-plot(all$value,all$numVariants,xlab=annotationName,ylab="Num variants in bin",type="h",xaxt="n",ps=14,lwd=4);
-axis(1,axTicks(1), format(axTicks(1), scientific=F))
-dev.off()
-
-#
-# Plot histogram of the annotation's value, log scale on x-axis
-#
-
-outfile = paste(input, ".Histogram_log.pdf", sep="")
-pdf(outfile, height=7, width=7)
-par(cex=1.1)
-plot(all$value,all$numVariants,xlab=annotationName,log="x",ylab="Num variants in bin",type="h",xaxt="n",ps=14,lwd=4);
-axis(1,axTicks(1), format(axTicks(1), scientific=F))
-dev.off()
diff --git a/public/java/src/org/broadinstitute/sting/analyzecovariates/AnalyzeCovariates.java b/public/java/src/org/broadinstitute/sting/analyzecovariates/AnalyzeCovariates.java
index 3cf43c15a..b9e380295 100755
--- a/public/java/src/org/broadinstitute/sting/analyzecovariates/AnalyzeCovariates.java
+++ b/public/java/src/org/broadinstitute/sting/analyzecovariates/AnalyzeCovariates.java
@@ -25,20 +25,21 @@
package org.broadinstitute.sting.analyzecovariates;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.CommandLineProgram;
import org.broadinstitute.sting.commandline.Input;
-import org.broadinstitute.sting.gatk.walkers.recalibration.*;
+import org.broadinstitute.sting.gatk.walkers.recalibration.Covariate;
+import org.broadinstitute.sting.gatk.walkers.recalibration.RecalDatum;
+import org.broadinstitute.sting.gatk.walkers.recalibration.RecalibrationArgumentCollection;
import org.broadinstitute.sting.utils.classloader.PluginManager;
import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.commandline.CommandLineProgram;
-import org.broadinstitute.sting.commandline.Argument;
+import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
-import java.io.*;
/**
* Created by IntelliJ IDEA.
@@ -61,7 +62,7 @@ public class AnalyzeCovariates extends CommandLineProgram {
@Argument(fullName = "path_to_Rscript", shortName = "Rscript", doc = "The path to your implementation of Rscript. For Broad users this is maybe /broad/tools/apps/R-2.6.0/bin/Rscript", required = false)
private String PATH_TO_RSCRIPT = "Rscript";
@Argument(fullName = "path_to_resources", shortName = "resources", doc = "Path to resources folder holding the Sting R scripts.", required = false)
- private String PATH_TO_RESOURCES = "R/";
+ private String PATH_TO_RESOURCES = "public/R/";
@Argument(fullName = "ignoreQ", shortName = "ignoreQ", doc = "Ignore bases with reported quality less than this number.", required = false)
private int IGNORE_QSCORES_LESS_THAN = 5;
@Argument(fullName = "numRG", shortName = "numRG", doc = "Only process N read groups. Default value: -1 (process all read groups)", required = false)
diff --git a/public/java/src/org/broadinstitute/sting/commandline/Argument.java b/public/java/src/org/broadinstitute/sting/commandline/Argument.java
index b2ee9d1fc..33592287d 100755
--- a/public/java/src/org/broadinstitute/sting/commandline/Argument.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/Argument.java
@@ -25,12 +25,7 @@
package org.broadinstitute.sting.commandline;
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitionGroup.java b/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitionGroup.java
index c36a8e04f..b47677b08 100644
--- a/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitionGroup.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitionGroup.java
@@ -27,10 +27,10 @@ package org.broadinstitute.sting.commandline;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.List;
-import java.util.Collections;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
/**
* A group of argument definitions.
diff --git a/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitions.java b/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitions.java
index 39e698ca3..9f92df6e0 100755
--- a/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitions.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/ArgumentDefinitions.java
@@ -27,10 +27,10 @@ package org.broadinstitute.sting.commandline;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.Set;
-import java.util.HashSet;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Iterator;
+import java.util.Set;
/**
* A collection of argument definitions.
diff --git a/public/java/src/org/broadinstitute/sting/commandline/ArgumentTypeDescriptor.java b/public/java/src/org/broadinstitute/sting/commandline/ArgumentTypeDescriptor.java
index 6c50e1784..9c33e084d 100644
--- a/public/java/src/org/broadinstitute/sting/commandline/ArgumentTypeDescriptor.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/ArgumentTypeDescriptor.java
@@ -25,12 +25,12 @@
package org.broadinstitute.sting.commandline;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.classloader.JVMUtils;
+import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.walkers.Multiplex;
import org.broadinstitute.sting.gatk.walkers.Multiplexer;
-import org.apache.log4j.Logger;
+import org.broadinstitute.sting.utils.classloader.JVMUtils;
import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import java.lang.annotation.Annotation;
diff --git a/public/java/src/org/broadinstitute/sting/commandline/CommandLineProgram.java b/public/java/src/org/broadinstitute/sting/commandline/CommandLineProgram.java
index d404a2b6e..aba4fc109 100644
--- a/public/java/src/org/broadinstitute/sting/commandline/CommandLineProgram.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/CommandLineProgram.java
@@ -25,14 +25,20 @@
package org.broadinstitute.sting.commandline;
-import org.apache.log4j.*;
+import org.apache.log4j.FileAppender;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
import org.broadinstitute.sting.gatk.CommandLineGATK;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.help.ApplicationDetails;
import org.broadinstitute.sting.utils.help.HelpFormatter;
import java.io.IOException;
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.Locale;
public abstract class CommandLineProgram {
diff --git a/public/java/src/org/broadinstitute/sting/commandline/CommandLineUtils.java b/public/java/src/org/broadinstitute/sting/commandline/CommandLineUtils.java
index 99608f167..bd2006388 100644
--- a/public/java/src/org/broadinstitute/sting/commandline/CommandLineUtils.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/CommandLineUtils.java
@@ -25,11 +25,17 @@
package org.broadinstitute.sting.commandline;
-import org.apache.log4j.*;
+import org.apache.log4j.Appender;
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.*;
import java.lang.annotation.Annotation;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.Map;
/**
* Static utility methods for working with command-line arguments.
diff --git a/public/java/src/org/broadinstitute/sting/commandline/MissingArgumentValueException.java b/public/java/src/org/broadinstitute/sting/commandline/MissingArgumentValueException.java
index 8029db7b3..4e6c3a16f 100644
--- a/public/java/src/org/broadinstitute/sting/commandline/MissingArgumentValueException.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/MissingArgumentValueException.java
@@ -26,8 +26,6 @@ package org.broadinstitute.sting.commandline;
import org.broadinstitute.sting.utils.Utils;
-import java.util.Collection;
-
/**
* Specifies that a value was missing when attempting to populate an argument.
*/
diff --git a/public/java/src/org/broadinstitute/sting/commandline/ParsingEngine.java b/public/java/src/org/broadinstitute/sting/commandline/ParsingEngine.java
index 717c5c522..8423bb2f2 100755
--- a/public/java/src/org/broadinstitute/sting/commandline/ParsingEngine.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/ParsingEngine.java
@@ -25,16 +25,16 @@
package org.broadinstitute.sting.commandline;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.collections.Pair;
-import org.broadinstitute.sting.utils.classloader.JVMUtils;
+import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.classloader.JVMUtils;
+import org.broadinstitute.sting.utils.collections.Pair;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.help.ApplicationDetails;
import org.broadinstitute.sting.utils.help.HelpFormatter;
-import org.apache.log4j.Logger;
-import java.lang.reflect.*;
+import java.lang.reflect.Field;
import java.util.*;
/**
diff --git a/public/java/src/org/broadinstitute/sting/commandline/ParsingMethod.java b/public/java/src/org/broadinstitute/sting/commandline/ParsingMethod.java
index d1cda3ed9..a070cb5a1 100755
--- a/public/java/src/org/broadinstitute/sting/commandline/ParsingMethod.java
+++ b/public/java/src/org/broadinstitute/sting/commandline/ParsingMethod.java
@@ -27,10 +27,8 @@ package org.broadinstitute.sting.commandline;
import org.broadinstitute.sting.utils.Utils;
-import java.util.regex.Pattern;
import java.util.regex.Matcher;
-import java.util.List;
-import java.util.ArrayList;
+import java.util.regex.Pattern;
/**
* Holds a pattern, along with how to get to the argument definitions that could match that pattern.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/CommandLineExecutable.java b/public/java/src/org/broadinstitute/sting/gatk/CommandLineExecutable.java
index fd7e749c3..a080ab439 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/CommandLineExecutable.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/CommandLineExecutable.java
@@ -25,30 +25,21 @@
package org.broadinstitute.sting.gatk;
-import org.broadinstitute.sting.commandline.Tags;
-import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection;
-import org.broadinstitute.sting.commandline.CommandLineProgram;
import org.broadinstitute.sting.commandline.ArgumentTypeDescriptor;
-import org.broadinstitute.sting.gatk.datasources.reads.SAMReaderID;
+import org.broadinstitute.sting.commandline.CommandLineProgram;
+import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection;
import org.broadinstitute.sting.gatk.filters.ReadFilter;
import org.broadinstitute.sting.gatk.io.stubs.OutputStreamArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.io.stubs.SAMFileReaderArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.io.stubs.SAMFileWriterArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.io.stubs.VCFWriterArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
-import org.broadinstitute.sting.gatk.refdata.utils.RMDTriplet;
-import org.broadinstitute.sting.gatk.refdata.utils.RMDTriplet.RMDStorageType;
-import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
import org.broadinstitute.sting.gatk.walkers.Walker;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.*;
-
-import net.sf.picard.filter.SamRecordFilter;
-import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.ListFileUtils;
-import org.broadinstitute.sting.utils.text.XReadLines;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
/**
* @author aaron
diff --git a/public/java/src/org/broadinstitute/sting/gatk/CommandLineGATK.java b/public/java/src/org/broadinstitute/sting/gatk/CommandLineGATK.java
index 7982f61e2..da2be74bf 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/CommandLineGATK.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/CommandLineGATK.java
@@ -26,13 +26,15 @@
package org.broadinstitute.sting.gatk;
import org.broad.tribble.TribbleException;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.ArgumentCollection;
+import org.broadinstitute.sting.commandline.CommandLineProgram;
import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection;
import org.broadinstitute.sting.gatk.walkers.Attribution;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.text.TextFormattingUtils;
-import org.broadinstitute.sting.utils.help.ApplicationDetails;
-import org.broadinstitute.sting.commandline.*;
import org.broadinstitute.sting.gatk.walkers.Walker;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.help.ApplicationDetails;
+import org.broadinstitute.sting.utils.text.TextFormattingUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java b/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java
index f8527c33b..918bc1251 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java
@@ -28,24 +28,14 @@ import net.sf.picard.reference.IndexedFastaSequenceFile;
import net.sf.picard.reference.ReferenceSequenceFile;
import net.sf.samtools.*;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.commandline.ArgumentException;
-import org.broadinstitute.sting.commandline.ArgumentSource;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.commandline.CommandLineUtils;
-import org.broadinstitute.sting.commandline.ParsingEngine;
-import org.broadinstitute.sting.commandline.Tags;
+import org.broadinstitute.sting.commandline.*;
import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection;
import org.broadinstitute.sting.gatk.arguments.ValidationExclusion;
-import org.broadinstitute.sting.gatk.datasources.reads.SAMReaderID;
-import org.broadinstitute.sting.gatk.datasources.reads.Shard;
+import org.broadinstitute.sting.gatk.datasources.reads.*;
import org.broadinstitute.sting.gatk.datasources.reference.ReferenceDataSource;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
import org.broadinstitute.sting.gatk.datasources.sample.SampleDataSource;
-import org.broadinstitute.sting.gatk.datasources.reads.MonolithicShardStrategy;
-import org.broadinstitute.sting.gatk.datasources.reads.ShardStrategy;
-import org.broadinstitute.sting.gatk.datasources.reads.ShardStrategyFactory;
-import org.broadinstitute.sting.gatk.datasources.reads.SAMDataSource;
import org.broadinstitute.sting.gatk.executive.MicroScheduler;
import org.broadinstitute.sting.gatk.filters.FilterManager;
import org.broadinstitute.sting.gatk.filters.ReadFilter;
@@ -65,6 +55,7 @@ import org.broadinstitute.sting.utils.baq.BAQ;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.interval.IntervalUtils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/ReadMetrics.java b/public/java/src/org/broadinstitute/sting/gatk/ReadMetrics.java
index 27a86ab3f..7cb615f7f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/ReadMetrics.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/ReadMetrics.java
@@ -25,13 +25,12 @@
package org.broadinstitute.sting.gatk;
import net.sf.picard.filter.SamRecordFilter;
-
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Collections;
-
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* Holds a bunch of basic information about the traversal.
*/
diff --git a/public/java/src/org/broadinstitute/sting/gatk/ReadProperties.java b/public/java/src/org/broadinstitute/sting/gatk/ReadProperties.java
index 1a361029a..93fa2d146 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/ReadProperties.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/ReadProperties.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.picard.reference.IndexedFastaSequenceFile;
import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMFileReader;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/WalkerManager.java b/public/java/src/org/broadinstitute/sting/gatk/WalkerManager.java
index 9553f651e..cf190835e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/WalkerManager.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/WalkerManager.java
@@ -25,19 +25,18 @@
package org.broadinstitute.sting.gatk;
-import net.sf.picard.filter.SamRecordFilter;
import org.broadinstitute.sting.commandline.Hidden;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.filters.FilterManager;
import org.broadinstitute.sting.gatk.filters.ReadFilter;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.baq.BAQ;
import org.broadinstitute.sting.utils.classloader.PluginManager;
-import org.broadinstitute.sting.utils.text.TextFormattingUtils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.help.DescriptionTaglet;
import org.broadinstitute.sting.utils.help.DisplayNameTaglet;
import org.broadinstitute.sting.utils.help.SummaryTaglet;
-import org.broadinstitute.sting.utils.baq.BAQ;
+import org.broadinstitute.sting.utils.text.TextFormattingUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/arguments/GATKArgumentCollection.java b/public/java/src/org/broadinstitute/sting/gatk/arguments/GATKArgumentCollection.java
index 93638f21d..ee2e85025 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/arguments/GATKArgumentCollection.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/arguments/GATKArgumentCollection.java
@@ -26,17 +26,16 @@
package org.broadinstitute.sting.gatk.arguments;
import net.sf.samtools.SAMFileReader;
-import org.broadinstitute.sting.commandline.Hidden;
-import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
-import org.broadinstitute.sting.gatk.refdata.utils.RMDTriplet;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Hidden;
import org.broadinstitute.sting.commandline.Input;
import org.broadinstitute.sting.gatk.DownsampleType;
import org.broadinstitute.sting.gatk.DownsamplingMethod;
-import org.broadinstitute.sting.utils.interval.IntervalSetRule;
+import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
import org.broadinstitute.sting.utils.baq.BAQ;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
+import org.broadinstitute.sting.utils.interval.IntervalSetRule;
import org.simpleframework.xml.*;
import org.simpleframework.xml.core.Persister;
import org.simpleframework.xml.stream.Format;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContext.java b/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContext.java
index 337c2664c..17e4a0743 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContext.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContext.java
@@ -26,13 +26,13 @@
package org.broadinstitute.sting.gatk.contexts;
import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.HasGenomeLocation;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
-import java.util.*;
+import java.util.List;
/**
* Useful class for forwarding on locusContext data from this iterator
diff --git a/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java b/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java
index 6a0d30837..1f9a7d705 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContextUtils.java
@@ -27,8 +27,8 @@ package org.broadinstitute.sting.gatk.contexts;
import net.sf.samtools.SAMReadGroupRecord;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.pileup.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java b/public/java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java
index 760b3a7bc..376064cdb 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java
@@ -25,11 +25,12 @@
package org.broadinstitute.sting.gatk.contexts;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.BaseUtils;
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Requires;
import net.sf.samtools.util.StringUtil;
-import com.google.java.contract.*;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocParser;
/**
* The section of the reference that overlaps with the given
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java
index b36c59a2c..e92599494 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java
@@ -1,16 +1,14 @@
package org.broadinstitute.sting.gatk.datasources.providers;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.iterators.GenomeLocusIterator;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl;
+
+import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
-import java.util.ArrayList;
-import java.util.Collections;
-
-import org.broadinstitute.sting.gatk.iterators.GenomeLocusIterator;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl;
/**
* User: hanna
* Date: May 13, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java
index 330a9e4f7..ff312bcac 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java
@@ -1,13 +1,12 @@
package org.broadinstitute.sting.gatk.datasources.providers;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
+import net.sf.picard.reference.ReferenceSequence;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.walkers.Reference;
import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.gatk.walkers.Window;
-import org.broadinstitute.sting.gatk.walkers.Reference;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import net.sf.picard.reference.ReferenceSequence;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
/*
* Copyright (c) 2009 The Broad Institute
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusShardDataProvider.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusShardDataProvider.java
index 72b962522..55304da34 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusShardDataProvider.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusShardDataProvider.java
@@ -1,16 +1,15 @@
package org.broadinstitute.sting.gatk.datasources.providers;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
+import org.broadinstitute.sting.gatk.ReadProperties;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
-import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
-import org.broadinstitute.sting.gatk.ReadProperties;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocParser;
import java.util.Collection;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-
/**
* Presents data sharded by locus to the traversal engine.
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java
index b467a2ab5..f9ed0cb74 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java
@@ -1,7 +1,7 @@
package org.broadinstitute.sting.gatk.datasources.providers;
-import org.broadinstitute.sting.gatk.ReadProperties;
import org.broadinstitute.sting.gatk.DownsampleType;
+import org.broadinstitute.sting.gatk.ReadProperties;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
import org.broadinstitute.sting.utils.GenomeLoc;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java
index a91e169c1..223659a46 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java
@@ -5,10 +5,10 @@ import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.LocationAwareSeekableRODIterator;
import org.broadinstitute.sting.utils.GenomeLoc;
-import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
/**
* User: hanna
* Date: May 21, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadReferenceView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadReferenceView.java
index d2c097f5d..3d62faf49 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadReferenceView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadReferenceView.java
@@ -1,9 +1,8 @@
package org.broadinstitute.sting.gatk.datasources.providers;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.utils.GenomeLoc;
/*
* Copyright (c) 2009 The Broad Institute
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadShardDataProvider.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadShardDataProvider.java
index 5a672b09f..7843e7518 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadShardDataProvider.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadShardDataProvider.java
@@ -1,14 +1,13 @@
package org.broadinstitute.sting.gatk.datasources.providers;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
-import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
+import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
+import org.broadinstitute.sting.utils.GenomeLocParser;
import java.util.Collection;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-
/**
* Present data sharded by read to a traversal engine.
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadView.java
index 0c4b78a7c..e809092d4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReadView.java
@@ -1,11 +1,10 @@
package org.broadinstitute.sting.gatk.datasources.providers;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
-import java.util.Collection;
import java.util.Arrays;
-
-import net.sf.samtools.SAMRecord;
+import java.util.Collection;
/**
* User: hanna
* Date: May 22, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReferenceView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReferenceView.java
index d6c938f36..efb92235f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReferenceView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ReferenceView.java
@@ -1,16 +1,16 @@
package org.broadinstitute.sting.gatk.datasources.providers;
-import org.broadinstitute.sting.utils.*;
-
-import java.util.Collections;
-import java.util.Collection;
-import java.util.Arrays;
-
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.SAMRecord;
-import net.sf.picard.reference.ReferenceSequence;
import net.sf.picard.reference.IndexedFastaSequenceFile;
+import net.sf.picard.reference.ReferenceSequence;
+import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMSequenceRecord;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
/**
* User: hanna
* Date: May 22, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java
index feed2ab85..39c632539 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java
@@ -25,9 +25,9 @@
package org.broadinstitute.sting.gatk.datasources.providers;
-import org.broadinstitute.sting.gatk.refdata.*;
-import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.LocationAwareSeekableRODIterator;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
import org.broadinstitute.sting.utils.GenomeLoc;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ShardDataProvider.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ShardDataProvider.java
index a0ea32f9b..803bd885b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ShardDataProvider.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/providers/ShardDataProvider.java
@@ -1,15 +1,14 @@
package org.broadinstitute.sting.gatk.datasources.providers;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.ArrayList;
-import java.util.List;
import java.util.Collection;
-
-import net.sf.picard.reference.IndexedFastaSequenceFile;
+import java.util.List;
/**
* User: hanna
* Date: May 8, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMBlockStartIterator.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMBlockStartIterator.java
index a9e04e357..de938e845 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMBlockStartIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMBlockStartIterator.java
@@ -24,9 +24,6 @@
package org.broadinstitute.sting.gatk.datasources.reads;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-import org.apache.commons.lang.ArrayUtils;
import org.broadinstitute.sting.utils.exceptions.StingException;
import java.io.File;
@@ -35,9 +32,7 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
-import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java
index 34693d501..521bcd5a3 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java
@@ -39,12 +39,7 @@ import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
-import java.util.ArrayList;
-import java.util.BitSet;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* Writes schedules for a single BAM file to a target output file.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMScheduler.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMScheduler.java
index 266232c0f..467aebac5 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMScheduler.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMScheduler.java
@@ -26,20 +26,10 @@ package org.broadinstitute.sting.gatk.datasources.reads;
import net.sf.picard.util.PeekableIterator;
import net.sf.samtools.GATKBAMFileSpan;
-import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocSortedSet;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
+import java.util.*;
/**
* Assign intervals to the most appropriate blocks, keeping as little as possible in memory at once.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java
index c014c1995..e4141f61c 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java
@@ -29,19 +29,11 @@ import net.sf.samtools.GATKBAMFileSpan;
import net.sf.samtools.SAMFileSpan;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.GenomeLocSortedSet;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
import org.broadinstitute.sting.utils.interval.IntervalUtils;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
+import java.util.*;
/**
* Represents a small section of a BAM file, and every associated interval.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndex.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndex.java
index 8ebb8b1a8..5d0c38b78 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndex.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndex.java
@@ -23,24 +23,18 @@
*/
package org.broadinstitute.sting.gatk.datasources.reads;
-import net.sf.samtools.Bin;
-
-import net.sf.samtools.GATKBAMFileSpan;
-import net.sf.samtools.GATKBin;
-import net.sf.samtools.GATKChunk;
-import net.sf.samtools.LinearIndex;
-import net.sf.samtools.SAMException;
-import net.sf.samtools.util.RuntimeIOException;
+import net.sf.samtools.*;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.lang.ref.SoftReference;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
/**
* A basic interface for querying BAM indices.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndexData.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndexData.java
index f9b998a60..daf1b77e3 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndexData.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/GATKBAMIndexData.java
@@ -24,11 +24,7 @@
package org.broadinstitute.sting.gatk.datasources.reads;
-import net.sf.samtools.Bin;
-import net.sf.samtools.GATKBAMFileSpan;
-import net.sf.samtools.GATKBin;
-import net.sf.samtools.GATKChunk;
-import net.sf.samtools.LinearIndex;
+import net.sf.samtools.*;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/IntervalSharder.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/IntervalSharder.java
index fc3f76ab7..4ddf28dce 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/IntervalSharder.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/IntervalSharder.java
@@ -35,16 +35,7 @@ import org.broadinstitute.sting.utils.GenomeLocSortedSet;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.PriorityQueue;
-import java.util.Queue;
+import java.util.*;
/**
* Shard intervals based on position within the BAM file.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShard.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShard.java
index 26af890b4..19d33aa6b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShard.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShard.java
@@ -1,5 +1,6 @@
package org.broadinstitute.sting.gatk.datasources.reads;
+import net.sf.samtools.SAMFileSpan;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.Utils;
@@ -7,8 +8,6 @@ import org.broadinstitute.sting.utils.Utils;
import java.util.List;
import java.util.Map;
-import net.sf.samtools.SAMFileSpan;
-
/**
* Handles locus shards of BAM information.
* @author aaron
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShardStrategy.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShardStrategy.java
index 950d67428..a5ca07853 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShardStrategy.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/LocusShardStrategy.java
@@ -24,17 +24,18 @@
package org.broadinstitute.sting.gatk.datasources.reads;
-import net.sf.samtools.GATKBAMFileSpan;
-import org.broadinstitute.sting.utils.GenomeLocSortedSet;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
+import net.sf.samtools.SAMFileHeader;
+import net.sf.samtools.SAMFileSpan;
+import net.sf.samtools.SAMSequenceRecord;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.GenomeLocSortedSet;
-import java.util.*;
-
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.SAMFileSpan;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
/**
* A sharding strategy for loci based on reading of the index.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShard.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShard.java
index 7579c22f6..278eeb898 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShard.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShard.java
@@ -1,8 +1,8 @@
package org.broadinstitute.sting.gatk.datasources.reads;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.GenomeLoc;
import java.util.List;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShardStrategy.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShardStrategy.java
index 10228ecd7..28b737f28 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShardStrategy.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/MonolithicShardStrategy.java
@@ -4,8 +4,8 @@ import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import java.util.Iterator;
-import java.util.NoSuchElementException;
import java.util.List;
+import java.util.NoSuchElementException;
/**
* Create a giant shard representing all the data in the input BAM(s).
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShard.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShard.java
index 9aecd7779..4d9c9092d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShard.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShard.java
@@ -1,15 +1,17 @@
package org.broadinstitute.sting.gatk.datasources.reads;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
-import org.broadinstitute.sting.gatk.iterators.StingSAMIteratorAdapter;
-
-import java.util.*;
-
import net.sf.samtools.SAMFileSpan;
import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
+import org.broadinstitute.sting.gatk.iterators.StingSAMIteratorAdapter;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
/**
*
* User: aaron
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShardStrategy.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShardStrategy.java
index da70a615b..c2235ec73 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShardStrategy.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ReadShardStrategy.java
@@ -25,12 +25,11 @@
package org.broadinstitute.sting.gatk.datasources.reads;
import net.sf.samtools.SAMFileSpan;
-
-import java.util.*;
-
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.GenomeLocSortedSet;
+import java.util.*;
+
/**
* The sharding strategy for reads using a simple counting mechanism. Each read shard
* has a specific number of reads (default to 10K) which is configured in the constructor.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java
index c2aa5f18e..6064806f3 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java
@@ -24,21 +24,19 @@
package org.broadinstitute.sting.gatk.datasources.reads;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
+import net.sf.picard.sam.MergingSamRecordIterator;
+import net.sf.picard.sam.SamFileHeaderMerger;
import net.sf.samtools.*;
import net.sf.samtools.util.CloseableIterator;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.picard.sam.SamFileHeaderMerger;
-import net.sf.picard.sam.MergingSamRecordIterator;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
-
import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.DownsamplingMethod;
-import org.broadinstitute.sting.gatk.filters.ReadFilter;
-import org.broadinstitute.sting.gatk.iterators.*;
-import org.broadinstitute.sting.gatk.ReadProperties;
import org.broadinstitute.sting.gatk.ReadMetrics;
+import org.broadinstitute.sting.gatk.ReadProperties;
import org.broadinstitute.sting.gatk.arguments.ValidationExclusion;
import org.broadinstitute.sting.gatk.filters.CountingFilteringIterator;
+import org.broadinstitute.sting.gatk.filters.ReadFilter;
+import org.broadinstitute.sting.gatk.iterators.*;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.baq.BAQ;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/Shard.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/Shard.java
index 418f5d3ee..f8d941784 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/Shard.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/Shard.java
@@ -2,17 +2,13 @@ package org.broadinstitute.sting.gatk.datasources.reads;
import net.sf.samtools.SAMFileSpan;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.gatk.datasources.reads.SAMDataSource;
-import org.broadinstitute.sting.gatk.datasources.reads.SAMReaderID;
-import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
-import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.gatk.ReadMetrics;
import org.broadinstitute.sting.gatk.ReadProperties;
+import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.HasGenomeLocation;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ShardStrategyFactory.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ShardStrategyFactory.java
index fa733ce12..780b41ef7 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ShardStrategyFactory.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/ShardStrategyFactory.java
@@ -1,10 +1,10 @@
package org.broadinstitute.sting.gatk.datasources.reads;
-import net.sf.samtools.SAMSequenceDictionary;
import net.sf.picard.reference.IndexedFastaSequenceFile;
+import net.sf.samtools.SAMSequenceDictionary;
import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLocSortedSet;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
/**
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMFileStat.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMFileStat.java
index ae0f1cf43..07c13a76e 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMFileStat.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMFileStat.java
@@ -25,17 +25,17 @@
package org.broadinstitute.sting.gatk.datasources.reads.utilities;
-import org.broadinstitute.sting.commandline.CommandLineProgram;
+import net.sf.samtools.BAMIndex;
+import net.sf.samtools.SAMFileReader;
import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.CommandLineProgram;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.instrumentation.Sizeof;
import java.io.File;
import java.lang.reflect.Field;
-import java.util.Map;
import java.util.List;
-
-import net.sf.samtools.*;
+import java.util.Map;
/**
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMTagRenamer.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMTagRenamer.java
index f03e2a44f..54de04379 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMTagRenamer.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/BAMTagRenamer.java
@@ -24,12 +24,12 @@
package org.broadinstitute.sting.gatk.datasources.reads.utilities;
-import org.broadinstitute.sting.commandline.CommandLineProgram;
-import org.broadinstitute.sting.commandline.Argument;
-import net.sf.samtools.SAMFileWriter;
import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMFileWriter;
import net.sf.samtools.SAMFileWriterFactory;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.CommandLineProgram;
import java.io.File;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/PrintBGZFBounds.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/PrintBGZFBounds.java
index df7dccaa9..773541d11 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/PrintBGZFBounds.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/utilities/PrintBGZFBounds.java
@@ -24,7 +24,6 @@
package org.broadinstitute.sting.gatk.datasources.reads.utilities;
-import net.sf.samtools.SAMFileReader;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.CommandLineProgram;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reference/ReferenceDataSource.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reference/ReferenceDataSource.java
index c2d64ddd8..ef69a8e5f 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reference/ReferenceDataSource.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reference/ReferenceDataSource.java
@@ -25,16 +25,15 @@
package org.broadinstitute.sting.gatk.datasources.reference;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import net.sf.picard.reference.FastaSequenceIndexBuilder;
-import net.sf.picard.sam.CreateSequenceDictionary;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
import net.sf.picard.reference.FastaSequenceIndex;
+import net.sf.picard.reference.FastaSequenceIndexBuilder;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
+import net.sf.picard.sam.CreateSequenceDictionary;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.fasta.CachingIndexedFastaSequenceFile;
import org.broadinstitute.sting.utils.file.FSLockWithShared;
import org.broadinstitute.sting.utils.file.FileSystemInabilityToLockException;
-import org.broadinstitute.sting.utils.fasta.CachingIndexedFastaSequenceFile;
import java.io.File;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/rmd/ResourcePool.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/rmd/ResourcePool.java
index 934f4f997..21f58d480 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/rmd/ResourcePool.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/rmd/ResourcePool.java
@@ -28,11 +28,7 @@ import net.sf.samtools.SAMSequenceDictionary;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* A pool of open resources, all of which can create a closeable iterator.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/sample/SampleDataSource.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/sample/SampleDataSource.java
index 0a5981a1b..067bf3f72 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/datasources/sample/SampleDataSource.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/sample/SampleDataSource.java
@@ -3,11 +3,10 @@ package org.broadinstitute.sting.gatk.datasources.sample;
import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMReadGroupRecord;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.utils.SampleUtils;
import org.broadinstitute.sting.utils.exceptions.StingException;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/examples/CoverageBySample.java b/public/java/src/org/broadinstitute/sting/gatk/examples/CoverageBySample.java
index a1419ba70..5dbd90405 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/examples/CoverageBySample.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/examples/CoverageBySample.java
@@ -1,15 +1,20 @@
package org.broadinstitute.sting.gatk.examples;
-import net.sf.samtools.*;
-import org.broadinstitute.sting.gatk.refdata.*;
-import org.broadinstitute.sting.gatk.walkers.LocusWalker;
-import org.broadinstitute.sting.gatk.contexts.*;
-import org.broadinstitute.sting.utils.pileup.*;
+import net.sf.samtools.SAMReadGroupRecord;
import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.LocusWalker;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
-import java.util.*;
import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
/**
* Computes the coverage per sample.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/examples/GATKPaperGenotyper.java b/public/java/src/org/broadinstitute/sting/gatk/examples/GATKPaperGenotyper.java
index b96d0ffbf..26205a203 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/examples/GATKPaperGenotyper.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/examples/GATKPaperGenotyper.java
@@ -25,6 +25,8 @@
package org.broadinstitute.sting.gatk.examples;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
@@ -32,8 +34,6 @@ import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.walkers.TreeReducible;
import org.broadinstitute.sting.gatk.walkers.genotyper.DiploidSNPGenotypePriors;
import org.broadinstitute.sting.utils.MathUtils;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import java.io.PrintStream;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/Accumulator.java b/public/java/src/org/broadinstitute/sting/gatk/executive/Accumulator.java
index 3e335733d..b23782563 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/Accumulator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/Accumulator.java
@@ -25,18 +25,18 @@
package org.broadinstitute.sting.gatk.executive;
-import org.broadinstitute.sting.gatk.walkers.Walker;
-import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
-import org.broadinstitute.sting.gatk.datasources.providers.LocusShardDataProvider;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.gatk.datasources.providers.LocusShardDataProvider;
+import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
+import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.GenomeLocSortedSet;
+import org.broadinstitute.sting.utils.collections.Pair;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.ArrayList;
-import java.util.List;
import java.util.Iterator;
+import java.util.List;
/**
* Manages the
*/
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/HierarchicalMicroScheduler.java b/public/java/src/org/broadinstitute/sting/gatk/executive/HierarchicalMicroScheduler.java
index 8a27e008c..59fb4aa9e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/HierarchicalMicroScheduler.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/HierarchicalMicroScheduler.java
@@ -1,27 +1,27 @@
package org.broadinstitute.sting.gatk.executive;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.datasources.reads.SAMDataSource;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
-import org.broadinstitute.sting.gatk.walkers.Walker;
-import org.broadinstitute.sting.gatk.walkers.TreeReducible;
import org.broadinstitute.sting.gatk.datasources.reads.ShardStrategy;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
-import org.broadinstitute.sting.gatk.io.*;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
+import org.broadinstitute.sting.gatk.io.OutputTracker;
+import org.broadinstitute.sting.gatk.io.ThreadLocalOutputTracker;
+import org.broadinstitute.sting.gatk.walkers.TreeReducible;
+import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.threading.ThreadPoolMonitor;
-import java.util.Queue;
-import java.util.LinkedList;
import java.util.Collection;
-import java.util.concurrent.Executors;
+import java.util.LinkedList;
+import java.util.Queue;
import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
-
/**
* A microscheduler that schedules shards according to a tree-like structure.
* Requires a special walker tagged with a 'TreeReducible' interface.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/LinearMicroScheduler.java b/public/java/src/org/broadinstitute/sting/gatk/executive/LinearMicroScheduler.java
index 4cb571c45..9466fdf75 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/LinearMicroScheduler.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/LinearMicroScheduler.java
@@ -1,22 +1,21 @@
package org.broadinstitute.sting.gatk.executive;
-import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.datasources.providers.LocusShardDataProvider;
import org.broadinstitute.sting.gatk.datasources.providers.ReadShardDataProvider;
+import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
import org.broadinstitute.sting.gatk.datasources.reads.SAMDataSource;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
import org.broadinstitute.sting.gatk.datasources.reads.ShardStrategy;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
-import org.broadinstitute.sting.gatk.walkers.Walker;
-import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.io.DirectOutputTracker;
import org.broadinstitute.sting.gatk.io.OutputTracker;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
+import org.broadinstitute.sting.gatk.walkers.LocusWalker;
+import org.broadinstitute.sting.gatk.walkers.Walker;
import java.util.Collection;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
-
/** A micro-scheduling manager for single-threaded execution of a traversal. */
public class LinearMicroScheduler extends MicroScheduler {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java b/public/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java
index cfe0f8187..23e5769f1 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java
@@ -25,26 +25,18 @@
package org.broadinstitute.sting.gatk.executive;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
import org.apache.log4j.Logger;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.datasources.reads.SAMDataSource;
-import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
import org.broadinstitute.sting.gatk.datasources.reads.ShardStrategy;
+import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
+import org.broadinstitute.sting.gatk.io.OutputTracker;
+import org.broadinstitute.sting.gatk.iterators.NullSAMIterator;
+import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
import org.broadinstitute.sting.gatk.traversals.*;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.gatk.io.OutputTracker;
-import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
-import org.broadinstitute.sting.gatk.iterators.NullSAMIterator;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.gatk.ReadMetrics;
-
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-import java.lang.management.ManagementFactory;
-import java.util.*;
-
-import net.sf.picard.reference.IndexedFastaSequenceFile;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.threading.*;
@@ -52,6 +44,11 @@ import org.broadinstitute.sting.utils.threading.*;
import javax.management.JMException;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.lang.management.ManagementFactory;
+import java.util.Collection;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/OutputMergeTask.java b/public/java/src/org/broadinstitute/sting/gatk/executive/OutputMergeTask.java
index 76e0c1c8a..7be37a616 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/OutputMergeTask.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/OutputMergeTask.java
@@ -1,10 +1,9 @@
package org.broadinstitute.sting.gatk.executive;
import org.broadinstitute.sting.gatk.io.storage.Storage;
-import org.broadinstitute.sting.gatk.io.OutputTracker;
-import java.util.Collection;
import java.util.ArrayList;
+import java.util.Collection;
/**
* User: hanna
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/ReduceTree.java b/public/java/src/org/broadinstitute/sting/gatk/executive/ReduceTree.java
index 151a1ba26..7aac70b47 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/ReduceTree.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/ReduceTree.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.executive;
-import java.util.Queue;
-import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
+import java.util.List;
+import java.util.Queue;
import java.util.concurrent.Future;
/**
* User: hanna
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/ShardTraverser.java b/public/java/src/org/broadinstitute/sting/gatk/executive/ShardTraverser.java
index b78a4edc9..6136bd68d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/ShardTraverser.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/ShardTraverser.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.executive;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
import org.broadinstitute.sting.gatk.datasources.providers.LocusShardDataProvider;
+import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
-import org.broadinstitute.sting.gatk.traversals.TraversalEngine;
import org.broadinstitute.sting.gatk.io.ThreadLocalOutputTracker;
-import org.broadinstitute.sting.gatk.walkers.Walker;
+import org.broadinstitute.sting.gatk.traversals.TraversalEngine;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
+import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.concurrent.Callable;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/TreeReducer.java b/public/java/src/org/broadinstitute/sting/gatk/executive/TreeReducer.java
index 8fb4adb5d..d36a3b576 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/TreeReducer.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/TreeReducer.java
@@ -4,8 +4,8 @@ import org.broadinstitute.sting.gatk.walkers.TreeReducible;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.concurrent.Callable;
-import java.util.concurrent.Future;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
/**
* User: hanna
* Date: Apr 29, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/executive/WindowMaker.java b/public/java/src/org/broadinstitute/sting/gatk/executive/WindowMaker.java
index 5c341bb02..cfbce58ee 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/executive/WindowMaker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/executive/WindowMaker.java
@@ -1,17 +1,20 @@
package org.broadinstitute.sting.gatk.executive;
-import org.broadinstitute.sting.gatk.datasources.reads.Shard;
-import org.broadinstitute.sting.gatk.datasources.sample.SampleDataSource;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.gatk.iterators.*;
+import net.sf.picard.util.PeekableIterator;
import org.broadinstitute.sting.gatk.ReadProperties;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-
-import java.util.*;
-
-import net.sf.picard.util.PeekableIterator;
+import org.broadinstitute.sting.gatk.datasources.reads.Shard;
+import org.broadinstitute.sting.gatk.datasources.sample.SampleDataSource;
+import org.broadinstitute.sting.gatk.iterators.LocusIterator;
+import org.broadinstitute.sting.gatk.iterators.LocusIteratorByState;
+import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+
/**
* Buffer shards of data which may or may not contain multiple loci into
* iterators of all data which cover an interval. Its existence is an homage
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/BadCigarFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/BadCigarFilter.java
index b8a3ee977..0987c5d74 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/BadCigarFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/BadCigarFilter.java
@@ -24,8 +24,10 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.samtools.*;
+import net.sf.samtools.Cigar;
+import net.sf.samtools.CigarElement;
+import net.sf.samtools.CigarOperator;
+import net.sf.samtools.SAMRecord;
/**
* Filter out reads with wonky cigar strings.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/BadMateFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/BadMateFilter.java
index 3b988c8fb..8596e18eb 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/BadMateFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/BadMateFilter.java
@@ -24,7 +24,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/CountingFilteringIterator.java b/public/java/src/org/broadinstitute/sting/gatk/filters/CountingFilteringIterator.java
index 84390c173..03fc2063b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/CountingFilteringIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/CountingFilteringIterator.java
@@ -23,17 +23,16 @@
*/
package org.broadinstitute.sting.gatk.filters;
-import net.sf.samtools.util.CloserUtil;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Collection;
-
+import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.util.CloseableIterator;
-import net.sf.picard.filter.SamRecordFilter;
+import net.sf.samtools.util.CloserUtil;
import org.broadinstitute.sting.gatk.ReadMetrics;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
/**
* Filtering Iterator which takes a filter and an iterator and iterates
* through only those records which are not rejected by the filter.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/DuplicateReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/DuplicateReadFilter.java
index fb3c38582..589910fc7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/DuplicateReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/DuplicateReadFilter.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/FailsVendorQualityCheckReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/FailsVendorQualityCheckReadFilter.java
index b7806524a..cd77a9e7e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/FailsVendorQualityCheckReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/FailsVendorQualityCheckReadFilter.java
@@ -24,7 +24,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/FilterManager.java b/public/java/src/org/broadinstitute/sting/gatk/filters/FilterManager.java
index cda08fb66..67f82235d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/FilterManager.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/FilterManager.java
@@ -25,11 +25,8 @@
package org.broadinstitute.sting.gatk.filters;
-import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.classloader.PluginManager;
-import net.sf.picard.filter.SamRecordFilter;
-
import java.util.Collection;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/MalformedReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/MalformedReadFilter.java
index 4deeb09ee..74deace9a 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/MalformedReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/MalformedReadFilter.java
@@ -24,8 +24,8 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMFileHeader;
+import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMSequenceRecord;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityReadFilter.java
index bcd473b15..75369b306 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityReadFilter.java
@@ -25,7 +25,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
diff --git a/public/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/BatchMergeIntegrationTest.java b/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityUnavailableReadFilter.java
old mode 100755
new mode 100644
similarity index 50%
rename from public/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/BatchMergeIntegrationTest.java
rename to public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityUnavailableReadFilter.java
index 7e1d86105..1afec36d1
--- a/public/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/BatchMergeIntegrationTest.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityUnavailableReadFilter.java
@@ -1,6 +1,5 @@
/*
- * Copyright (c) 2010, The Broad Institute
- *
+ * Copyright (c) 2009 The Broad Institute
* 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
@@ -12,6 +11,7 @@
*
* 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
@@ -22,25 +22,21 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
-package org.broadinstitute.sting.gatk.walkers.variantutils;
+package org.broadinstitute.sting.gatk.filters;
-import org.broadinstitute.sting.WalkerTest;
-import org.testng.annotations.Test;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.utils.QualityUtils;
-import java.io.File;
-import java.util.Arrays;
+/**
+ * Filter out mapping quality zero reads.
+ *
+ * @author ebanks
+ * @version 0.1
+ */
-public class BatchMergeIntegrationTest extends WalkerTest {
- @Test
- public void testBatchMerge1() {
- String bam = validationDataLocation + "NA12878.HiSeq.b37.chr20.10_11mb.bam";
- String alleles = validationDataLocation + "batch.merge.alleles.vcf";
- WalkerTestSpec spec = new WalkerTestSpec(
- "-T UnifiedGenotyper -NO_HEADER -BTI alleles -stand_call_conf 0.0 -glm BOTH -G none -nsl -gt_mode GENOTYPE_GIVEN_ALLELES -out_mode EMIT_ALL_SITES -o %s -R " + b37KGReference
- + " -B:alleles,VCF " + alleles
- + " -I " + bam,
- 1,
- Arrays.asList("f4ed8f4ef2cba96823c06e90e9d0de35"));
- executeTest("testBatchMerge UG genotype given alleles:" + new File(bam).getName() + " with " + new File(alleles).getName(), spec);
+public class MappingQualityUnavailableReadFilter extends ReadFilter {
+ public boolean filterOut(SAMRecord rec) {
+ return (rec.getMappingQuality() == QualityUtils.MAPPING_QUALITY_UNAVAILABLE);
}
-}
\ No newline at end of file
+}
+
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/ZeroMappingQualityReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityZeroReadFilter.java
similarity index 90%
rename from public/java/src/org/broadinstitute/sting/gatk/filters/ZeroMappingQualityReadFilter.java
rename to public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityZeroReadFilter.java
index 7e6fc5e82..e49d4117c 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/ZeroMappingQualityReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/MappingQualityZeroReadFilter.java
@@ -24,17 +24,16 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/**
- * Filter out zero mapping quality reads.
+ * Filter out mapping quality zero reads.
*
* @author hanna
* @version 0.1
*/
-public class ZeroMappingQualityReadFilter extends ReadFilter {
+public class MappingQualityZeroReadFilter extends ReadFilter {
public boolean filterOut(SAMRecord rec) {
return (rec.getMappingQuality() == 0);
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/MaxInsertSizeFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/MaxInsertSizeFilter.java
index 584783d34..7bcee033f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/MaxInsertSizeFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/MaxInsertSizeFilter.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/MaxReadLengthFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/MaxReadLengthFilter.java
index 8a2fd5af3..cd31da61a 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/MaxReadLengthFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/MaxReadLengthFilter.java
@@ -25,7 +25,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/MissingReadGroupFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/MissingReadGroupFilter.java
index d5d40ec38..490a55040 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/MissingReadGroupFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/MissingReadGroupFilter.java
@@ -24,7 +24,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/NoOriginalQualityScoresFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/NoOriginalQualityScoresFilter.java
index fc21538e8..29738e499 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/NoOriginalQualityScoresFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/NoOriginalQualityScoresFilter.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/NotPrimaryAlignmentReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/NotPrimaryAlignmentReadFilter.java
index cfbba0383..31c2144ce 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/NotPrimaryAlignmentReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/NotPrimaryAlignmentReadFilter.java
@@ -24,7 +24,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/Platform454Filter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/Platform454Filter.java
index dcddebd55..8ad91ac1c 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/Platform454Filter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/Platform454Filter.java
@@ -25,9 +25,7 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
-
import org.broadinstitute.sting.utils.sam.ReadUtils;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformFilter.java
index 691fd95f0..30b2f828d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformFilter.java
@@ -25,11 +25,9 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
-
-import org.broadinstitute.sting.utils.sam.ReadUtils;
import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.utils.sam.ReadUtils;
/**
* Filter out PL matching reads.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformUnitFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformUnitFilter.java
index 4ef88402d..81044b888 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformUnitFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/PlatformUnitFilter.java
@@ -1,14 +1,12 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMReadGroupRecord;
-
-import java.util.Set;
-import java.util.HashSet;
-
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import java.util.HashSet;
+import java.util.Set;
+
/**
* Created by IntelliJ IDEA.
* User: asivache
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/ReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/ReadFilter.java
index 1d74ee20e..227637761 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/ReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/ReadFilter.java
@@ -1,7 +1,6 @@
package org.broadinstitute.sting.gatk.filters;
import net.sf.picard.filter.SamRecordFilter;
-import net.sf.samtools.SAMFileHeader;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/ReadGroupBlackListFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/ReadGroupBlackListFilter.java
index 69ebc8b04..0e5e8800c 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/ReadGroupBlackListFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/ReadGroupBlackListFilter.java
@@ -25,17 +25,16 @@
package org.broadinstitute.sting.gatk.filters;
-import java.util.*;
-import java.util.Map.Entry;
-import java.io.File;
-import java.io.FileNotFoundException;
-
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMReadGroupRecord;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.XReadLines;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.*;
+import java.util.Map.Entry;
+
/**
* Removes records matching the read group tag and exact match string.
* For example, this filter value:
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/ReadStrandFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/ReadStrandFilter.java
index 1b2a77f45..16eeed3cc 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/ReadStrandFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/ReadStrandFilter.java
@@ -25,7 +25,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/SampleFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/SampleFilter.java
index 682b22b1f..99d6bc154 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/SampleFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/SampleFilter.java
@@ -25,9 +25,8 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMReadGroupRecord;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/SingleReadGroupFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/SingleReadGroupFilter.java
index 05b472036..2f93cbcae 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/SingleReadGroupFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/SingleReadGroupFilter.java
@@ -25,9 +25,8 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.picard.filter.SamRecordFilter;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/filters/UnmappedReadFilter.java b/public/java/src/org/broadinstitute/sting/gatk/filters/UnmappedReadFilter.java
index ac4f4853a..e7ee345d2 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/filters/UnmappedReadFilter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/filters/UnmappedReadFilter.java
@@ -24,7 +24,6 @@
package org.broadinstitute.sting.gatk.filters;
-import net.sf.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/DirectOutputTracker.java b/public/java/src/org/broadinstitute/sting/gatk/io/DirectOutputTracker.java
index 865528688..658a28fbd 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/DirectOutputTracker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/DirectOutputTracker.java
@@ -25,9 +25,9 @@
package org.broadinstitute.sting.gatk.io;
-import org.broadinstitute.sting.gatk.io.stubs.Stub;
-import org.broadinstitute.sting.gatk.io.storage.StorageFactory;
import org.broadinstitute.sting.gatk.io.storage.Storage;
+import org.broadinstitute.sting.gatk.io.storage.StorageFactory;
+import org.broadinstitute.sting.gatk.io.stubs.Stub;
/**
* Maps creation of storage directly to output streams in parent.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/OutputTracker.java b/public/java/src/org/broadinstitute/sting/gatk/io/OutputTracker.java
index b68013aa4..f39ba2d8d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/io/OutputTracker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/OutputTracker.java
@@ -26,20 +26,20 @@
package org.broadinstitute.sting.gatk.io;
import net.sf.samtools.SAMFileReader;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.classloader.JVMUtils;
import org.broadinstitute.sting.commandline.ArgumentSource;
-import org.broadinstitute.sting.utils.sam.SAMFileReaderBuilder;
-import org.broadinstitute.sting.gatk.walkers.Walker;
+import org.broadinstitute.sting.gatk.io.storage.Storage;
+import org.broadinstitute.sting.gatk.io.storage.StorageFactory;
import org.broadinstitute.sting.gatk.io.stubs.OutputStreamStub;
import org.broadinstitute.sting.gatk.io.stubs.Stub;
-import org.broadinstitute.sting.gatk.io.storage.StorageFactory;
-import org.broadinstitute.sting.gatk.io.storage.Storage;
+import org.broadinstitute.sting.gatk.walkers.Walker;
+import org.broadinstitute.sting.utils.classloader.JVMUtils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.sam.SAMFileReaderBuilder;
-import java.io.*;
+import java.io.OutputStream;
import java.lang.reflect.Field;
-import java.util.Map;
import java.util.HashMap;
+import java.util.Map;
/**
* Manages the output and err streams that are created specifically for walker
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/StingSAMFileWriter.java b/public/java/src/org/broadinstitute/sting/gatk/io/StingSAMFileWriter.java
index 8701ecf3c..a9a74925d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/StingSAMFileWriter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/StingSAMFileWriter.java
@@ -1,7 +1,7 @@
package org.broadinstitute.sting.gatk.io;
-import net.sf.samtools.SAMFileWriter;
import net.sf.samtools.SAMFileHeader;
+import net.sf.samtools.SAMFileWriter;
/**
* A writer that will allow unsorted BAM files to be written
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/ThreadLocalOutputTracker.java b/public/java/src/org/broadinstitute/sting/gatk/io/ThreadLocalOutputTracker.java
index 36960246a..999deddd1 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/ThreadLocalOutputTracker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/ThreadLocalOutputTracker.java
@@ -25,15 +25,16 @@
package org.broadinstitute.sting.gatk.io;
-import org.broadinstitute.sting.gatk.io.stubs.Stub;
-import org.broadinstitute.sting.gatk.io.storage.StorageFactory;
-import org.broadinstitute.sting.gatk.io.storage.Storage;
import org.broadinstitute.sting.gatk.executive.OutputMergeTask;
+import org.broadinstitute.sting.gatk.io.storage.Storage;
+import org.broadinstitute.sting.gatk.io.storage.StorageFactory;
+import org.broadinstitute.sting.gatk.io.stubs.Stub;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import java.util.*;
import java.io.File;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
/**
* An output tracker that can either track its output per-thread or directly,
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/storage/OutputStreamStorage.java b/public/java/src/org/broadinstitute/sting/gatk/io/storage/OutputStreamStorage.java
index 4dc976289..56c9c0465 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/storage/OutputStreamStorage.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/storage/OutputStreamStorage.java
@@ -25,14 +25,14 @@
package org.broadinstitute.sting.gatk.io.storage;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.gatk.io.stubs.OutputStreamStub;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.*;
+import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.WritableByteChannel;
-import java.nio.channels.Channels;
public class OutputStreamStorage extends OutputStream implements Storage {
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/storage/SAMFileWriterStorage.java b/public/java/src/org/broadinstitute/sting/gatk/io/storage/SAMFileWriterStorage.java
index 610db1d76..cb8786be1 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/storage/SAMFileWriterStorage.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/storage/SAMFileWriterStorage.java
@@ -27,17 +27,16 @@ package org.broadinstitute.sting.gatk.io.storage;
import net.sf.samtools.*;
import net.sf.samtools.util.CloseableIterator;
-
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
import net.sf.samtools.util.RuntimeIOException;
import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.io.stubs.SAMFileWriterStub;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.sam.SimplifyingSAMFileWriter;
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
/**
* Provides temporary storage for SAMFileWriters.
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/storage/StorageFactory.java b/public/java/src/org/broadinstitute/sting/gatk/io/storage/StorageFactory.java
index ee5c56524..66907dd6b 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/storage/StorageFactory.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/storage/StorageFactory.java
@@ -25,9 +25,9 @@
package org.broadinstitute.sting.gatk.io.storage;
-import org.broadinstitute.sting.gatk.io.stubs.Stub;
import org.broadinstitute.sting.gatk.io.stubs.OutputStreamStub;
import org.broadinstitute.sting.gatk.io.stubs.SAMFileWriterStub;
+import org.broadinstitute.sting.gatk.io.stubs.Stub;
import org.broadinstitute.sting.gatk.io.stubs.VCFWriterStub;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/storage/VCFWriterStorage.java b/public/java/src/org/broadinstitute/sting/gatk/io/storage/VCFWriterStorage.java
index 74176ec35..1da03e9c2 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/storage/VCFWriterStorage.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/storage/VCFWriterStorage.java
@@ -1,16 +1,21 @@
package org.broadinstitute.sting.gatk.io.storage;
+import net.sf.samtools.util.BlockCompressedOutputStream;
import org.apache.log4j.Logger;
import org.broad.tribble.source.BasicFeatureSource;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.gatk.io.stubs.VCFWriterStub;
-
-import java.io.*;
-
-import net.sf.samtools.util.BlockCompressedOutputStream;
+import org.broadinstitute.sting.utils.codecs.vcf.StandardVCFWriter;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFCodec;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
/**
* Provides temporary and permanent storage for genotypes in VCF format.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamArgumentTypeDescriptor.java b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamArgumentTypeDescriptor.java
index 00e78f391..8bc97c886 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamArgumentTypeDescriptor.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamArgumentTypeDescriptor.java
@@ -30,8 +30,8 @@ import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.io.OutputStream;
import java.io.File;
+import java.io.OutputStream;
import java.lang.reflect.Constructor;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamStub.java b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamStub.java
index 5cf84c5a2..27bcb8a1c 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamStub.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/OutputStreamStub.java
@@ -27,9 +27,9 @@ package org.broadinstitute.sting.gatk.io.stubs;
import org.broadinstitute.sting.gatk.io.OutputTracker;
-import java.io.OutputStream;
-import java.io.IOException;
import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
/**
* A stub for routing and management of anything backed by an OutputStream.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileReaderArgumentTypeDescriptor.java b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileReaderArgumentTypeDescriptor.java
index d847015ed..f124c2302 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileReaderArgumentTypeDescriptor.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileReaderArgumentTypeDescriptor.java
@@ -24,14 +24,14 @@
package org.broadinstitute.sting.gatk.io.stubs;
-import org.broadinstitute.sting.commandline.ArgumentTypeDescriptor;
-import org.broadinstitute.sting.commandline.ArgumentSource;
+import net.sf.samtools.SAMFileReader;
import org.broadinstitute.sting.commandline.ArgumentMatches;
+import org.broadinstitute.sting.commandline.ArgumentSource;
+import org.broadinstitute.sting.commandline.ArgumentTypeDescriptor;
import org.broadinstitute.sting.commandline.ParsingEngine;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.sam.SAMFileReaderBuilder;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import net.sf.samtools.SAMFileReader;
import java.io.File;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterArgumentTypeDescriptor.java b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterArgumentTypeDescriptor.java
index a9a272220..38640eda0 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterArgumentTypeDescriptor.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterArgumentTypeDescriptor.java
@@ -25,18 +25,17 @@
package org.broadinstitute.sting.gatk.io.stubs;
+import net.sf.samtools.SAMFileWriter;
import org.broadinstitute.sting.commandline.*;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
-import net.sf.samtools.SAMFileWriter;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import java.lang.annotation.Annotation;
-import java.util.List;
-import java.util.Arrays;
import java.io.File;
import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.util.Arrays;
+import java.util.List;
/**
* Insert a SAMFileWriterStub instead of a full-fledged concrete OutputStream implementations.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterStub.java b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterStub.java
index f5c1e0efc..d8e59a3dd 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterStub.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/SAMFileWriterStub.java
@@ -25,20 +25,19 @@
package org.broadinstitute.sting.gatk.io.stubs;
+import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMFileWriter;
import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMFileHeader;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
+import org.broadinstitute.sting.gatk.io.OutputTracker;
+import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
+import org.broadinstitute.sting.utils.baq.BAQ;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.File;
import java.io.OutputStream;
-import org.broadinstitute.sting.gatk.io.OutputTracker;
-import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.baq.BAQ;
-
/**
* A stub for routing and management of SAM file reading and writing.
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterArgumentTypeDescriptor.java b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterArgumentTypeDescriptor.java
index 7521e754d..615841f02 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterArgumentTypeDescriptor.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterArgumentTypeDescriptor.java
@@ -25,14 +25,17 @@
package org.broadinstitute.sting.gatk.io.stubs;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.*;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.io.File;
import java.io.OutputStream;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
/**
* Injects new command-line arguments into the system providing support for the genotype writer.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterStub.java b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterStub.java
index 1a79d2785..bb84f9457 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterStub.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/io/stubs/VCFWriterStub.java
@@ -25,19 +25,19 @@
package org.broadinstitute.sting.gatk.io.stubs;
-import java.io.File;
-import java.io.PrintStream;
-import java.io.OutputStream;
-import java.util.Collection;
-
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.gatk.CommandLineExecutable;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.io.OutputTracker;
import org.broadinstitute.sting.utils.classloader.JVMUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+
+import java.io.File;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.util.Collection;
/**
* A stub for routing and management of genotype reading and writing.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/BoundedReadIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/BoundedReadIterator.java
index b5643f834..478675f9d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/BoundedReadIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/BoundedReadIterator.java
@@ -1,13 +1,11 @@
package org.broadinstitute.sting.gatk.iterators;
+import net.sf.picard.sam.MergingSamRecordIterator;
import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMRecord;
-import net.sf.picard.sam.MergingSamRecordIterator;
import java.util.Iterator;
-import org.broadinstitute.sting.gatk.ReadProperties;
-
/*
* Copyright (c) 2009 The Broad Institute
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/BufferingReadIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/BufferingReadIterator.java
index f3a060be1..7eaf4be41 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/BufferingReadIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/BufferingReadIterator.java
@@ -26,12 +26,11 @@ package org.broadinstitute.sting.gatk.iterators;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.util.CloseableIterator;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.Queue;
import java.util.LinkedList;
import java.util.NoSuchElementException;
-
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import java.util.Queue;
/**
* Buffers access to a large stream of reads, replenishing the buffer only when the reads
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/DownsampleIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/DownsampleIterator.java
index 1342f11fd..835748ff0 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/DownsampleIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/DownsampleIterator.java
@@ -1,11 +1,10 @@
package org.broadinstitute.sting.gatk.iterators;
import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import java.util.Iterator;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-
public class DownsampleIterator implements StingSAMIterator {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java
index aa376a12a..240564d34 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java
@@ -3,8 +3,8 @@ package org.broadinstitute.sting.gatk.iterators;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
-import java.util.NoSuchElementException;
import java.util.Iterator;
+import java.util.NoSuchElementException;
/**
* User: hanna
* Date: May 12, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java
index 30c1cf512..e177984ca 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java
@@ -1,11 +1,10 @@
package org.broadinstitute.sting.gatk.iterators;
import net.sf.samtools.util.CloseableIterator;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import java.util.Iterator;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-
/**
* Iterator that traverses a SAM File, accumulating information on a per-locus basis
*/
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIteratorByState.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIteratorByState.java
index 4e58813f5..e13c5a764 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIteratorByState.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/LocusIteratorByState.java
@@ -25,19 +25,27 @@
package org.broadinstitute.sting.gatk.iterators;
-import net.sf.samtools.*;
import net.sf.picard.util.PeekableIterator;
+import net.sf.samtools.Cigar;
+import net.sf.samtools.CigarElement;
+import net.sf.samtools.CigarOperator;
+import net.sf.samtools.SAMRecord;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.gatk.ReadProperties;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.gatk.DownsamplingMethod;
import org.broadinstitute.sting.gatk.DownsampleType;
+import org.broadinstitute.sting.gatk.DownsamplingMethod;
+import org.broadinstitute.sting.gatk.ReadProperties;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
import org.broadinstitute.sting.gatk.datasources.sample.SampleDataSource;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.ReservoirDownsampler;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.pileup.*;
+import org.broadinstitute.sting.utils.pileup.ExtendedEventPileupElement;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileupImpl;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl;
import org.broadinstitute.sting.utils.sam.ReadUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/NullSAMIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/NullSAMIterator.java
index ff458467f..21b71c9e6 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/NullSAMIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/NullSAMIterator.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk.iterators;
-import org.broadinstitute.sting.gatk.ReadProperties;
import net.sf.samtools.SAMRecord;
import java.util.Iterator;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/PositionTrackingIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/PositionTrackingIterator.java
index c2d3976ea..cc499b247 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/PositionTrackingIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/PositionTrackingIterator.java
@@ -25,7 +25,6 @@
package org.broadinstitute.sting.gatk.iterators;
-import org.broadinstitute.sting.gatk.ReadProperties;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.util.CloseableIterator;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/ReadFormattingIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/ReadFormattingIterator.java
index 239392eec..2f30d12a8 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/ReadFormattingIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/ReadFormattingIterator.java
@@ -1,13 +1,8 @@
package org.broadinstitute.sting.gatk.iterators;
import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMTag;
-import net.sf.samtools.SAMReadGroupRecord;
-import org.broadinstitute.sting.gatk.ReadProperties;
-import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
import org.apache.log4j.Logger;
-
-import java.util.List;
+import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
/**
* An iterator which does post-processing of a read, including potentially wrapping
diff --git a/public/java/src/org/broadinstitute/sting/gatk/iterators/StingSAMIterator.java b/public/java/src/org/broadinstitute/sting/gatk/iterators/StingSAMIterator.java
index d294993d4..1b248d097 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/iterators/StingSAMIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/iterators/StingSAMIterator.java
@@ -2,7 +2,6 @@ package org.broadinstitute.sting.gatk.iterators;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.util.CloseableIterator;
-import org.broadinstitute.sting.gatk.ReadProperties;
/**
*
* User: aaron
diff --git a/public/java/src/org/broadinstitute/sting/gatk/phonehome/GATKRunReport.java b/public/java/src/org/broadinstitute/sting/gatk/phonehome/GATKRunReport.java
index a51ca9292..69c0b3e0a 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/phonehome/GATKRunReport.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/phonehome/GATKRunReport.java
@@ -26,19 +26,16 @@ package org.broadinstitute.sting.gatk.phonehome;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.commandline.CommandLineUtils;
import org.broadinstitute.sting.gatk.CommandLineGATK;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection;
import org.broadinstitute.sting.gatk.walkers.Walker;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.Utils;
-import org.broadinstitute.sting.utils.exceptions.StingException;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.jets3t.service.S3Service;
import org.jets3t.service.S3ServiceException;
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
-import org.jets3t.service.model.S3Bucket;
import org.jets3t.service.model.S3Object;
import org.jets3t.service.security.AWSCredentials;
import org.simpleframework.xml.Element;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordIterator.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordIterator.java
index fa0c323b5..ce924fd87 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordIterator.java
@@ -25,17 +25,17 @@
package org.broadinstitute.sting.gatk.refdata;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.lang.reflect.Constructor;
import java.util.Iterator;
import java.util.regex.Pattern;
-import java.io.FileNotFoundException;
-import java.io.File;
-import java.lang.reflect.Constructor;
/**
* This is a low-level iterator designed to provide system-wide generic support for reading record-oriented data
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordListImpl.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordListImpl.java
index cff97e4ee..59b273d38 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordListImpl.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/RODRecordListImpl.java
@@ -2,9 +2,9 @@ package org.broadinstitute.sting.gatk.refdata;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.HasGenomeLocation;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.GenomeLoc;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java
index 43bf6f8e0..d03b122e2 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.refdata;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/SeekableRODIterator.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/SeekableRODIterator.java
index b3cb22a03..b7437e6e8 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/SeekableRODIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/SeekableRODIterator.java
@@ -6,9 +6,9 @@ import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.refdata.utils.LocationAwareSeekableRODIterator;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import java.util.Iterator;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/VariantContextAdaptors.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/VariantContextAdaptors.java
index c7c0468e7..1d622e2c7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/VariantContextAdaptors.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/VariantContextAdaptors.java
@@ -3,17 +3,13 @@ package org.broadinstitute.sting.gatk.refdata;
import org.broad.tribble.Feature;
import org.broad.tribble.dbsnp.DbSNPFeature;
import org.broad.tribble.gelitext.GeliTextFeature;
-import org.broadinstitute.sting.utils.codecs.hapmap.HapMapFeature;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.MutableGenotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
import org.broadinstitute.sting.utils.classloader.PluginManager;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.codecs.hapmap.HapMapFeature;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.*;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableCodec.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableCodec.java
index 59cd14a22..6bba754be 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableCodec.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableCodec.java
@@ -25,12 +25,6 @@
package org.broadinstitute.sting.gatk.refdata.features.annotator;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
import org.apache.log4j.Logger;
import org.broad.tribble.Feature;
import org.broad.tribble.exception.CodecLineParsingException;
@@ -41,6 +35,12 @@ import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.Utils;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
public class AnnotatorInputTableCodec implements ReferenceDependentFeatureCodec {
private static Logger logger = Logger.getLogger(AnnotatorInputTableCodec.class);
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableFeature.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableFeature.java
index d97e378fb..d12badd28 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableFeature.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/annotator/AnnotatorInputTableFeature.java
@@ -25,13 +25,13 @@
package org.broadinstitute.sting.gatk.refdata.features.annotator;
+import org.broad.tribble.Feature;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.broad.tribble.Feature;
-
/**
* This class represents a single record in an AnnotatorInputTable.
*/
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleCodec.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleCodec.java
index 7f97451cf..5e536d4c1 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleCodec.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleCodec.java
@@ -26,19 +26,19 @@ package org.broadinstitute.sting.gatk.refdata.features.beagle;
import org.broad.tribble.Feature;
+import org.broad.tribble.exception.CodecLineParsingException;
import org.broad.tribble.readers.AsciiLineReader;
import org.broad.tribble.readers.LineReader;
+import org.broadinstitute.sting.gatk.refdata.ReferenceDependentFeatureCodec;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocParser;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.broad.tribble.exception.CodecLineParsingException;
-import org.broadinstitute.sting.gatk.refdata.ReferenceDependentFeatureCodec;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
public class BeagleCodec implements ReferenceDependentFeatureCodec {
private String[] header;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleFeature.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleFeature.java
index c7bf86569..e6832754d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleFeature.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/beagle/BeagleFeature.java
@@ -25,14 +25,11 @@
package org.broadinstitute.sting.gatk.refdata.features.beagle;
import org.broad.tribble.Feature;
-
+import org.broadinstitute.sting.utils.variantcontext.Allele;
import java.util.ArrayList;
import java.util.Map;
-import net.sf.samtools.util.StringUtil;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-
public class BeagleFeature implements Feature {
private String chr;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/refseq/RefSeqFeature.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/refseq/RefSeqFeature.java
index 4648efd1e..d12114f9a 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/refseq/RefSeqFeature.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/refseq/RefSeqFeature.java
@@ -4,9 +4,8 @@ import org.broad.tribble.Feature;
import org.broadinstitute.sting.gatk.refdata.Transcript;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.ArrayList;
import java.util.List;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupCodec.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupCodec.java
index 00b7c45d9..43e2c3ff5 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupCodec.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupCodec.java
@@ -25,15 +25,15 @@
package org.broadinstitute.sting.gatk.refdata.features.sampileup;
-import org.broad.tribble.FeatureCodec;
import org.broad.tribble.Feature;
+import org.broad.tribble.FeatureCodec;
import org.broad.tribble.exception.CodecLineParsingException;
import org.broad.tribble.readers.LineReader;
import org.broad.tribble.util.ParsingUtils;
import java.util.ArrayList;
-import java.util.regex.Pattern;
import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import static org.broadinstitute.sting.gatk.refdata.features.sampileup.SAMPileupFeature.VariantType;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupFeature.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupFeature.java
index a794c2704..378f26934 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupFeature.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/sampileup/SAMPileupFeature.java
@@ -25,12 +25,11 @@
package org.broadinstitute.sting.gatk.refdata.features.sampileup;
+import net.sf.samtools.util.StringUtil;
import org.broad.tribble.Feature;
import java.util.List;
-import net.sf.samtools.util.StringUtil;
-
/**
* A tribble feature representing a SAM pileup.
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/samread/SAMReadCodec.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/samread/SAMReadCodec.java
index 15f559d46..039b8adde 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/samread/SAMReadCodec.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/samread/SAMReadCodec.java
@@ -24,14 +24,14 @@
package org.broadinstitute.sting.gatk.refdata.features.samread;
+import net.sf.samtools.Cigar;
+import net.sf.samtools.TextCigarCodec;
+import net.sf.samtools.util.StringUtil;
import org.broad.tribble.Feature;
import org.broad.tribble.FeatureCodec;
import org.broad.tribble.exception.CodecLineParsingException;
import org.broad.tribble.readers.LineReader;
import org.broad.tribble.util.ParsingUtils;
-import net.sf.samtools.util.StringUtil;
-import net.sf.samtools.TextCigarCodec;
-import net.sf.samtools.Cigar;
/**
* Decodes a simple SAM text string.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/BedTableCodec.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/BedTableCodec.java
index b831606a3..745ccdd9f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/BedTableCodec.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/BedTableCodec.java
@@ -1,13 +1,8 @@
package org.broadinstitute.sting.gatk.refdata.features.table;
import org.broad.tribble.Feature;
-import org.broad.tribble.readers.LineReader;
import org.broadinstitute.sting.gatk.refdata.ReferenceDependentFeatureCodec;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import java.io.IOException;
-import java.util.ArrayList;
import java.util.Arrays;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableCodec.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableCodec.java
old mode 100644
new mode 100755
index 6f0a712bf..ab1ac59d8
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableCodec.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableCodec.java
@@ -1,16 +1,14 @@
package org.broadinstitute.sting.gatk.refdata.features.table;
import org.broad.tribble.Feature;
-import org.broad.tribble.FeatureCodec;
import org.broad.tribble.readers.LineReader;
import org.broadinstitute.sting.gatk.refdata.ReferenceDependentFeatureCodec;
-import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.interval.IntervalUtils;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
/**
* implementation of a simple table (tab or comma delimited format) input files
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableFeature.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableFeature.java
old mode 100644
new mode 100755
index 6ff0384a0..ca73ee960
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableFeature.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/features/table/TableFeature.java
@@ -3,7 +3,7 @@ package org.broadinstitute.sting.gatk.refdata.features.table;
import org.broad.tribble.Feature;
import org.broadinstitute.sting.utils.GenomeLoc;
-import java.util.*;
+import java.util.List;
/**
* A feature representing a single row out of a text table
@@ -55,10 +55,14 @@ public class TableFeature implements Feature {
}
public List getAllValues() {
- return getValuesTo(values.size()-1);
+ return getValuesTo(values.size());
}
public List getValuesTo(int columnPosition) {
return values.subList(0,columnPosition);
}
+
+ public List getHeader() {
+ return keys;
+ }
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/indexer/RMDIndexer.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/indexer/RMDIndexer.java
index 5bb65f9a2..085d6b5b3 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/indexer/RMDIndexer.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/indexer/RMDIndexer.java
@@ -10,7 +10,6 @@ import org.broad.tribble.util.LittleEndianOutputStream;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.CommandLineProgram;
import org.broadinstitute.sting.commandline.Input;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.arguments.ValidationExclusion;
import org.broadinstitute.sting.gatk.refdata.ReferenceDependentFeatureCodec;
import org.broadinstitute.sting.gatk.refdata.tracks.builders.RMDTrackBuilder;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/QueryableTrack.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/QueryableTrack.java
index 19050ae11..731df997d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/QueryableTrack.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/QueryableTrack.java
@@ -28,7 +28,6 @@ import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.utils.GenomeLoc;
import java.io.IOException;
-import java.util.Iterator;
/**
* @author aaron
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/RMDTrack.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/RMDTrack.java
index 3b9f8243f..ba1ca674e 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/RMDTrack.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/RMDTrack.java
@@ -35,8 +35,6 @@ import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.File;
import java.io.IOException;
-import java.lang.reflect.Type;
-import java.util.Iterator;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/RMDTrackBuilder.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/RMDTrackBuilder.java
index c2057ad5e..19c91be1b 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/RMDTrackBuilder.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/RMDTrackBuilder.java
@@ -42,15 +42,17 @@ import org.broadinstitute.sting.gatk.refdata.utils.RMDTriplet;
import org.broadinstitute.sting.gatk.refdata.utils.RMDTriplet.RMDStorageType;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.SequenceDictionaryUtils;
-import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.classloader.PluginManager;
-import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.file.FSLockWithShared;
import org.broadinstitute.sting.utils.file.FileSystemInabilityToLockException;
import org.broadinstitute.sting.utils.instrumentation.Sizeof;
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/FeatureToGATKFeatureIterator.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/FeatureToGATKFeatureIterator.java
index 462bf98df..104ba87b5 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/FeatureToGATKFeatureIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/FeatureToGATKFeatureIterator.java
@@ -28,8 +28,6 @@ import org.broad.tribble.Feature;
import org.broad.tribble.iterators.CloseableTribbleIterator;
import org.broadinstitute.sting.utils.GenomeLocParser;
-import java.util.Iterator;
-
/**
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/GATKFeature.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/GATKFeature.java
index 1553402a5..59e8471a3 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/GATKFeature.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/GATKFeature.java
@@ -28,8 +28,6 @@ import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.HasGenomeLocation;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/LocationAwareSeekableRODIterator.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/LocationAwareSeekableRODIterator.java
index 83aa5f056..96086598a 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/LocationAwareSeekableRODIterator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/LocationAwareSeekableRODIterator.java
@@ -2,12 +2,8 @@ package org.broadinstitute.sting.gatk.refdata.utils;
import net.sf.samtools.SAMSequenceDictionary;
import net.sf.samtools.util.CloseableIterator;
-import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.utils.GenomeLoc;
-import java.util.Iterator;
-import java.util.List;
-
/**
* @author aaron
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/StringToGenomeLocIteratorAdapter.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/StringToGenomeLocIteratorAdapter.java
index 101784d97..fc7f7c58f 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/StringToGenomeLocIteratorAdapter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/StringToGenomeLocIteratorAdapter.java
@@ -25,10 +25,10 @@
package org.broadinstitute.sting.gatk.refdata.utils;
+import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.bed.BedParser;
-import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
import java.util.Iterator;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/helpers/DbSNPHelper.java b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/helpers/DbSNPHelper.java
index 75e7c1a32..3201769e0 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/helpers/DbSNPHelper.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/refdata/utils/helpers/DbSNPHelper.java
@@ -3,8 +3,8 @@ package org.broadinstitute.sting.gatk.refdata.utils.helpers;
import net.sf.samtools.util.SequenceUtil;
import org.broad.tribble.annotation.Strand;
import org.broad.tribble.dbsnp.DbSNPFeature;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraversalEngine.java b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraversalEngine.java
index e1085c6b2..89a179d0e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraversalEngine.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraversalEngine.java
@@ -25,11 +25,11 @@
package org.broadinstitute.sting.gatk.traversals;
import org.apache.log4j.Logger;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
+import org.broadinstitute.sting.gatk.ReadMetrics;
import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
import org.broadinstitute.sting.gatk.walkers.Walker;
-import org.broadinstitute.sting.gatk.ReadMetrics;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.utils.*;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
@@ -38,7 +38,10 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
-import java.util.*;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
public abstract class TraversalEngine,ProviderType extends ShardDataProvider> {
// Time in milliseconds since we initialized this engine
diff --git a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java
index 89ff688a7..1ba48ca5f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java
@@ -28,12 +28,11 @@ package org.broadinstitute.sting.gatk.traversals;
import net.sf.samtools.SAMRecord;
import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.datasources.providers.ReadView;
import org.broadinstitute.sting.gatk.datasources.providers.ReadShardDataProvider;
+import org.broadinstitute.sting.gatk.datasources.providers.ReadView;
import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
import org.broadinstitute.sting.gatk.walkers.DuplicateWalker;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java
index 240176f2f..232989fb0 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java
@@ -10,7 +10,6 @@ import org.broadinstitute.sting.gatk.walkers.DataSource;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReadPairs.java b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReadPairs.java
index f15a20cd3..196d54036 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReadPairs.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReadPairs.java
@@ -1,16 +1,18 @@
package org.broadinstitute.sting.gatk.traversals;
-import org.broadinstitute.sting.gatk.walkers.Requires;
-import org.broadinstitute.sting.gatk.walkers.DataSource;
-import org.broadinstitute.sting.gatk.walkers.ReadPairWalker;
+import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMRecordCoordinateComparator;
+import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.datasources.providers.ReadShardDataProvider;
import org.broadinstitute.sting.gatk.datasources.providers.ReadView;
import org.broadinstitute.sting.gatk.datasources.reads.Shard;
-import org.apache.log4j.Logger;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordCoordinateComparator;
+import org.broadinstitute.sting.gatk.walkers.DataSource;
+import org.broadinstitute.sting.gatk.walkers.ReadPairWalker;
+import org.broadinstitute.sting.gatk.walkers.Requires;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
/**
* Traverse over a collection of read pairs, assuming that a given shard will contain all pairs.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java
index 670676b48..06e4539c4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java
@@ -2,14 +2,16 @@ package org.broadinstitute.sting.gatk.traversals;
import net.sf.samtools.SAMRecord;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.gatk.WalkerManager;
import org.broadinstitute.sting.gatk.ReadMetrics;
+import org.broadinstitute.sting.gatk.WalkerManager;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.datasources.providers.*;
+import org.broadinstitute.sting.gatk.datasources.providers.ReadBasedReferenceOrderedView;
+import org.broadinstitute.sting.gatk.datasources.providers.ReadReferenceView;
+import org.broadinstitute.sting.gatk.datasources.providers.ReadShardDataProvider;
+import org.broadinstitute.sting.gatk.datasources.providers.ReadView;
import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.DataSource;
import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.GenomeLoc;
/*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/Allows.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/Allows.java
index a29e51189..2541921e9 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/Allows.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/Allows.java
@@ -1,11 +1,6 @@
package org.broadinstitute.sting.gatk.walkers;
-import java.lang.annotation.Documented;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.lang.annotation.ElementType;
+import java.lang.annotation.*;
/**
* User: hanna
* Date: May 19, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/BAQMode.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/BAQMode.java
index 99dd46cbe..03097887d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/BAQMode.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/BAQMode.java
@@ -1,11 +1,6 @@
package org.broadinstitute.sting.gatk.walkers;
-import java.lang.annotation.Documented;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.lang.annotation.ElementType;
+import java.lang.annotation.*;
/**
* User: hanna
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/By.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/By.java
index 25455b587..8fa6a4c1b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/By.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/By.java
@@ -1,11 +1,6 @@
package org.broadinstitute.sting.gatk.walkers;
-import java.lang.annotation.Documented;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.lang.annotation.ElementType;
+import java.lang.annotation.*;
/**
* User: hanna
* Date: May 14, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/ClipReadsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/ClipReadsWalker.java
index 1a3f87a7a..ca4e3f5e3 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/ClipReadsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/ClipReadsWalker.java
@@ -25,29 +25,29 @@
package org.broadinstitute.sting.gatk.walkers;
-import net.sf.samtools.*;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-import net.sf.picard.reference.ReferenceSequenceFile;
import net.sf.picard.reference.ReferenceSequence;
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import net.sf.picard.reference.ReferenceSequenceFile;
+import net.sf.picard.reference.ReferenceSequenceFileFactory;
+import net.sf.samtools.SAMRecord;
+import net.sf.samtools.util.StringUtil;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.clipreads.ClippingOp;
import org.broadinstitute.sting.utils.clipreads.ClippingRepresentation;
import org.broadinstitute.sting.utils.clipreads.ReadClipper;
import org.broadinstitute.sting.utils.collections.Pair;
-import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.utils.sam.ReadUtils;
-import java.util.*;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
import java.io.File;
import java.io.PrintStream;
-
-import net.sf.samtools.util.StringUtil;
-import org.broadinstitute.sting.utils.sam.ReadUtils;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* This ReadWalker provides simple, yet powerful read clipping capabilities. It allows the user to clip bases in reads
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java
index 1fc606f07..4bfedb672 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java
@@ -1,16 +1,13 @@
package org.broadinstitute.sting.gatk.walkers;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.filters.UnmappedReadFilter;
import org.broadinstitute.sting.gatk.filters.NotPrimaryAlignmentReadFilter;
+import org.broadinstitute.sting.gatk.filters.UnmappedReadFilter;
import org.broadinstitute.sting.utils.GenomeLoc;
import java.util.List;
import java.util.Set;
-import java.util.Arrays;
-
-import net.sf.samtools.SAMRecord;
-import net.sf.picard.filter.SamRecordFilter;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/FindReadsWithNamesWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/FindReadsWithNamesWalker.java
index a272150c7..56287df31 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/FindReadsWithNamesWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/FindReadsWithNamesWalker.java
@@ -26,7 +26,6 @@
package org.broadinstitute.sting.gatk.walkers;
import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMReadGroupRecord;
import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/FlagStatWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/FlagStatWalker.java
index 13a55eaac..fcfcb81b5 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/FlagStatWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/FlagStatWalker.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.walkers;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import java.io.PrintStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
-import java.io.PrintStream;
/*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/GCContentByIntervalWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/GCContentByIntervalWalker.java
index c0f469973..68bea4dba 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/GCContentByIntervalWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/GCContentByIntervalWalker.java
@@ -28,13 +28,12 @@ import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.collections.Pair;
import java.io.PrintStream;
-import java.util.*;
+import java.util.List;
/**
* Walks along reference and calculates the GC content for each interval.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java
index fc4b403c5..b0b2687f4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java
@@ -1,9 +1,12 @@
package org.broadinstitute.sting.gatk.walkers;
-import org.broadinstitute.sting.gatk.filters.*;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.filters.DuplicateReadFilter;
+import org.broadinstitute.sting.gatk.filters.FailsVendorQualityCheckReadFilter;
+import org.broadinstitute.sting.gatk.filters.NotPrimaryAlignmentReadFilter;
+import org.broadinstitute.sting.gatk.filters.UnmappedReadFilter;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java
index 84d868c1a..508d1f6ee 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java
@@ -26,22 +26,22 @@
package org.broadinstitute.sting.gatk.walkers;
import org.broad.tribble.dbsnp.DbSNPFeature;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
-import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.Utils;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
-import java.io.PrintStream;
/**
* Prints the alignment in the pileup format. In the pileup format, each line represents a genomic position,
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintRODsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintRODsWalker.java
index 9ac3fc0e6..158992a22 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintRODsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintRODsWalker.java
@@ -25,15 +25,15 @@
package org.broadinstitute.sting.gatk.walkers;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.VariantContextAdaptors;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
-import org.broadinstitute.sting.commandline.Output;
-import java.util.Iterator;
import java.io.PrintStream;
+import java.util.Iterator;
/**
* Prints out all of the RODs in the input data set. Data is rendered using the toString() method
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java
index 07938d322..a189c00b5 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java
@@ -28,14 +28,12 @@ package org.broadinstitute.sting.gatk.walkers;
import net.sf.samtools.SAMFileWriter;
import net.sf.samtools.SAMReadGroupRecord;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
import org.broadinstitute.sting.utils.baq.BAQ;
-import java.io.PrintStream;
-
/**
* Renders, in SAM/BAM format, all reads from the input data set in the order in which they appear
* in the input file. It can dynamically merge the contents of multiple input BAM files, resulting
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java
index a5486fd9a..db2038aa3 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java
@@ -1,8 +1,8 @@
package org.broadinstitute.sting.gatk.walkers;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/Requires.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/Requires.java
index 6c1e64c4e..e9a381a85 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/Requires.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/Requires.java
@@ -1,11 +1,6 @@
package org.broadinstitute.sting.gatk.walkers;
-import java.lang.annotation.Documented;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.lang.annotation.ElementType;
+import java.lang.annotation.*;
/**
* User: hanna
* Date: May 19, 2009
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/SplitSamFileWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/SplitSamFileWalker.java
index 014acff9c..486d233b7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/SplitSamFileWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/SplitSamFileWalker.java
@@ -25,14 +25,20 @@
package org.broadinstitute.sting.gatk.walkers;
-import net.sf.samtools.*;
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.utils.sam.ReadUtils;
+import net.sf.samtools.SAMFileHeader;
+import net.sf.samtools.SAMFileWriter;
+import net.sf.samtools.SAMReadGroupRecord;
+import net.sf.samtools.SAMRecord;
import org.apache.log4j.Logger;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.utils.sam.ReadUtils;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* Divides the input data set into separate BAM files, one for each sample in the input data set. The split
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java
index f0ba8bb46..384742302 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java
@@ -25,14 +25,14 @@
package org.broadinstitute.sting.gatk.walkers;
-import java.util.List;
-
+import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.filters.MalformedReadFilter;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.baq.BAQ;
import org.broadinstitute.sting.utils.collections.Pair;
-import org.apache.log4j.Logger;
+
+import java.util.List;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/WalkerName.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/WalkerName.java
index 0e4d40675..4d46607e5 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/WalkerName.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/WalkerName.java
@@ -1,10 +1,6 @@
package org.broadinstitute.sting.gatk.walkers;
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/Window.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/Window.java
index 0b718071d..9827fdf09 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/Window.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/Window.java
@@ -25,7 +25,10 @@
package org.broadinstitute.sting.gatk.walkers;
-import java.lang.annotation.*;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
/**
* Describes the size of the window into the genome. Has differing semantics based on
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnalyzeAnnotationsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnalyzeAnnotationsWalker.java
deleted file mode 100755
index 54fd0a20c..000000000
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnalyzeAnnotationsWalker.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2010 The Broad Institute
- *
- * 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 org.broadinstitute.sting.gatk.walkers.analyzeannotations;
-
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.RodWalker;
-import org.broadinstitute.sting.commandline.Argument;
-
-import java.util.HashMap;
-import java.util.Collection;
-
-/**
- * Takes variant calls as .vcf files and creates plots of truth metrics as a function of the various annotations found in the INFO field.
- *
- * @author rpoplin
- * @since Jan 15, 2010
- * @help.summary Takes variant calls as .vcf files and creates plots of truth metrics as a function of the various annotations found in the INFO field.
- */
-
-public class AnalyzeAnnotationsWalker extends RodWalker {
-
- /////////////////////////////
- // Command Line Arguments
- /////////////////////////////
- @Argument(fullName = "output_prefix", shortName = "output", doc = "The output path and name to prepend to all plots and intermediate data files", required = false)
- private String OUTPUT_PREFIX = "analyzeAnnotations/";
- @Argument(fullName = "path_to_Rscript", shortName = "Rscript", doc = "The path to your implementation of Rscript. For Broad users this is maybe /broad/tools/apps/R-2.6.0/bin/Rscript", required = false)
- private String PATH_TO_RSCRIPT = "Rscript";
- @Argument(fullName = "path_to_resources", shortName = "resources", doc = "Path to resources folder holding the Sting R scripts.", required = false)
- private String PATH_TO_RESOURCES = "R/";
- @Argument(fullName = "min_variants_per_bin", shortName = "minBinSize", doc = "The minimum number of variants in a bin in order to calculate truth metrics.", required = false)
- private int MIN_VARIANTS_PER_BIN = 1000;
- @Argument(fullName = "max_variants_per_bin", shortName = "maxBinSize", doc = "The maximum number of variants in a bin.", required = false)
- private int MAX_VARIANTS_PER_BIN = 20000;
- @Argument(fullName = "sampleName", shortName = "sampleName", doc = "If supplied, only process variants found in this sample.", required = false)
- private String SAMPLE_NAME = null;
- @Argument(fullName = "name", shortName = "name", doc = "Labels for the annotations to make plots look nicer. Each name is a separate -name argument. For example, -name DP,Depth -name AB,AlleleBalance", required = false)
- private String[] ANNOTATION_NAMES = null;
- @Argument(fullName = "indicate_mean_num_vars", shortName = "meanNumVars", doc = "If supplied, plots will indicate the distribution of number of variants instead of distribution of value of annotation", required = false)
- private boolean INDICATE_MEAN_NUM_VARS = false;
-
- /////////////////////////////
- // Private Member Variables
- /////////////////////////////
- private AnnotationDataManager dataManager;
-
- //---------------------------------------------------------------------------------------------------------------
- //
- // initialize
- //
- //---------------------------------------------------------------------------------------------------------------
-
- public void initialize() {
-
- // Create a HashMap associating the names of the annotations to full Strings that can be used as labels on plots
- HashMap nameMap = null;
- if( ANNOTATION_NAMES != null ) {
- nameMap = new HashMap();
- for( String nameLine : ANNOTATION_NAMES ) {
- String[] vals = nameLine.split(",");
- nameMap.put(vals[0],vals[1]);
- }
- }
- dataManager = new AnnotationDataManager( nameMap, INDICATE_MEAN_NUM_VARS );
-
- if( !PATH_TO_RESOURCES.endsWith("/") ) { PATH_TO_RESOURCES = PATH_TO_RESOURCES + "/"; }
- }
-
- //---------------------------------------------------------------------------------------------------------------
- //
- // map
- //
- //---------------------------------------------------------------------------------------------------------------
-
- public Integer map( RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context ) {
-
- if( tracker != null ) {
- Collection VCs = tracker.getAllVariantContexts(ref);
-
- // First find out if this variant is in the truth sets
- boolean isInTruthSet = false;
- boolean isTrueVariant = false;
- for ( VariantContext vc : VCs ) {
- if( vc != null && vc.isSNP() && !vc.isFiltered() ) {
- if( vc.getSource().toUpperCase().startsWith("TRUTH") ) {
- isInTruthSet = true;
- if( vc.isBiallelic() && vc.isVariant() ) {
- isTrueVariant = true;
- }
- }
- }
- }
-
- // Add each annotation in this VCF Record to the dataManager
- for ( VariantContext vc : VCs ) {
- if( vc != null && vc.isSNP() && vc.isBiallelic() && !vc.isFiltered() ) {
- if( !vc.getSource().toUpperCase().startsWith("TRUTH") ) {
- if( vc.isVariant() ) {
- dataManager.addAnnotations( vc, SAMPLE_NAME, isInTruthSet, isTrueVariant );
- }
- }
- }
- }
- }
-
- return 1; // This value isn't actually used for anything
- }
-
- //---------------------------------------------------------------------------------------------------------------
- //
- // reduce
- //
- //---------------------------------------------------------------------------------------------------------------
-
- public Integer reduceInit() {
- return 0; // Nothing to do here
- }
-
- public Integer reduce( Integer value, Integer sum ) {
- return 0; // Nothing to do here
- }
-
- public void onTraversalDone( Integer sum ) {
-
- // For each annotation, decide how to cut up the data, output intermediate cumulative p(true) tables, and call RScript to plot the tables
- dataManager.plotCumulativeTables(PATH_TO_RSCRIPT, PATH_TO_RESOURCES, OUTPUT_PREFIX, MIN_VARIANTS_PER_BIN, MAX_VARIANTS_PER_BIN);
- }
-}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnnotationDataManager.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnnotationDataManager.java
deleted file mode 100755
index 2c06b30d6..000000000
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnnotationDataManager.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package org.broadinstitute.sting.gatk.walkers.analyzeannotations;
-
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
-import org.broadinstitute.sting.utils.BaseUtils;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-
-import java.io.File;
-import java.util.*;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.FileNotFoundException;
-
-/*
- * Copyright (c) 2010 The Broad Institute
- *
- * 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.
- */
-
-/**
- * Created by IntelliJ IDEA.
- * User: rpoplin
- * Date: Jan 18, 2010
- */
-
-public class AnnotationDataManager {
-
- private final HashMap> data;
- private final HashMap nameMap;
- private final boolean INDICATE_MEAN_NUM_VARS;
-
- public AnnotationDataManager( HashMap _nameMap, boolean _INDICATE_MEAN_NUM_VARS ) {
- data = new HashMap>();
- nameMap = _nameMap;
- INDICATE_MEAN_NUM_VARS = _INDICATE_MEAN_NUM_VARS;
- }
-
- public void addAnnotations( final VariantContext vc, final String sampleName, final boolean isInTruthSet, final boolean isTrueVariant ) {
-
- if( sampleName != null ) { // Only process variants that are found in the sample with this sampleName
- if( vc.getGenotype(sampleName).isNoCall() ) { // This variant isn't found in this sample so break out
- return;
- }
- } // else, process all samples
-
- // Loop over each annotation in the vcf record
- final Map infoField = new HashMap(vc.getAttributes());
- infoField.put("QUAL", ((Double)vc.getPhredScaledQual()).toString() ); // add QUAL field to annotations
- for( Map.Entry annotation : infoField.entrySet() ) {
-
- float value;
- try {
- value = Float.parseFloat( annotation.getValue().toString() );
- } catch( NumberFormatException e ) {
- continue; // Skip over annotations that aren't floats, like "DB"
- }
-
- TreeSet treeSet = data.get( annotation.getKey() );
- if( treeSet == null ) { // This annotation hasn't been seen before
- treeSet = new TreeSet( new AnnotationDatum() ); // AnnotationDatum is a Comparator that orders variants by the value of the Annotation
- data.put( annotation.getKey(), treeSet );
- }
- AnnotationDatum datum = new AnnotationDatum( value );
- if( treeSet.contains(datum) ) { // contains() uses AnnotationDatum's equals function, so it only checks if the value field is already present
- datum = treeSet.tailSet(datum).first();
- } else {
- treeSet.add(datum);
- }
-
- final boolean isNovelVariant = !vc.hasID() || !vc.getID().contains("rs");
-
- // Decide if the variant is a transition or transversion
- if( VariantContextUtils.getSNPSubstitutionType(vc).compareTo(BaseUtils.BaseSubstitutionType.TRANSITION) == 0 ) {
- datum.incrementTi( isNovelVariant, isInTruthSet, isTrueVariant );
- } else {
- datum.incrementTv( isNovelVariant, isInTruthSet, isTrueVariant );
- }
- }
- }
-
- public void plotCumulativeTables( final String PATH_TO_RSCRIPT, final String PATH_TO_RESOURCES, final String OUTPUT_PREFIX,
- final int MIN_VARIANTS_PER_BIN, final int MAX_VARIANTS_PER_BIN ) {
-
- final AnnotationDatum thisAnnotationBin = new AnnotationDatum();
- System.out.println( "\nFinished reading variants into memory. Executing RScript commands:" );
-
- // For each annotation we've seen
- for( final String annotationKey : data.keySet() ) {
-
- String filename = OUTPUT_PREFIX + annotationKey + ".dat";
- PrintStream output;
- try {
- output = new PrintStream(filename); // Create the intermediate data file for this annotation
- } catch ( FileNotFoundException e ) {
- throw new UserException.CouldNotCreateOutputFile(new File(filename), "Can't create intermediate output annotation data file. Does the output directory exist?", e);
- }
-
- // Output a header line
- output.println("value\ttitv\tdbsnp\ttruePositive\tnumVariants\tcategory");
-
- // Bin SNPs and calculate truth metrics for each bin
- thisAnnotationBin.clearBin();
- for( final AnnotationDatum datum : data.get( annotationKey ) ) {
- thisAnnotationBin.combine( datum );
- if( thisAnnotationBin.numVariants( AnnotationDatum.FULL_SET ) >= MAX_VARIANTS_PER_BIN ) { // This annotation bin is full
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.FULL_SET ) + "\t" + thisAnnotationBin.calcDBsnpRate() + "\t" + thisAnnotationBin.calcTPrate() +
- "\t" + thisAnnotationBin.numVariants( AnnotationDatum.FULL_SET ) + "\tall");
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.NOVEL_SET ) + "\t-1\t-1\t" + thisAnnotationBin.numVariants( AnnotationDatum.NOVEL_SET ) + "\tnovel");
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.DBSNP_SET ) + "\t-1\t-1\t" + thisAnnotationBin.numVariants( AnnotationDatum.DBSNP_SET ) + "\tdbsnp");
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.TRUTH_SET ) + "\t-1\t-1\t" + thisAnnotationBin.numVariants( AnnotationDatum.TRUTH_SET ) + "\ttruth");
- thisAnnotationBin.clearBin();
- }
- // else, continue accumulating variants because this bin isn't full yet
- }
-
- // One final bin that may not have been dumped out
- if( thisAnnotationBin.numVariants( AnnotationDatum.FULL_SET ) != 0 ) {
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.FULL_SET ) + "\t" + thisAnnotationBin.calcDBsnpRate() + "\t" + thisAnnotationBin.calcTPrate() +
- "\t" + thisAnnotationBin.numVariants( AnnotationDatum.FULL_SET ) + "\tall");
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.NOVEL_SET ) + "\t-1\t-1\t" + thisAnnotationBin.numVariants( AnnotationDatum.NOVEL_SET ) + "\tnovel");
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.DBSNP_SET ) + "\t-1\t-1\t" + thisAnnotationBin.numVariants( AnnotationDatum.DBSNP_SET ) + "\tdbsnp");
- output.println( thisAnnotationBin.value + "\t" + thisAnnotationBin.calcTiTv( AnnotationDatum.TRUTH_SET ) + "\t-1\t-1\t" + thisAnnotationBin.numVariants( AnnotationDatum.TRUTH_SET ) + "\ttruth");
- thisAnnotationBin.clearBin();
- }
-
- // Close the PrintStream
- output.close();
-
- String annotationName = null;
- if( nameMap != null ) {
- annotationName = nameMap.get(annotationKey);
- }
- if( annotationName == null ) { // This annotation is not in the name map so use the key instead
- annotationName = annotationKey;
- }
-
- // Print out the command line to make it clear to the user what is being executed and how one might modify it
- final String rScriptCommandLine = PATH_TO_RSCRIPT + " " + PATH_TO_RESOURCES + "plot_Annotations_BinnedTruthMetrics.R" + " " +
- OUTPUT_PREFIX + annotationKey + ".dat" + " " + annotationName + " " + MIN_VARIANTS_PER_BIN + " " + INDICATE_MEAN_NUM_VARS;
- System.out.println( rScriptCommandLine );
-
- // Execute the RScript command to plot the table of truth values
- try {
- Runtime.getRuntime().exec( rScriptCommandLine );
- } catch ( IOException e ) {
- throw new UserException.CannotExecuteRScript( rScriptCommandLine, e );
- }
- }
- }
-}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnnotationDatum.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnnotationDatum.java
deleted file mode 100755
index 888eb7e6e..000000000
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/analyzeannotations/AnnotationDatum.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.broadinstitute.sting.gatk.walkers.analyzeannotations;
-
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-
-import java.util.Comparator;
-
-/*
- * Copyright (c) 2010 The Broad Institute
- *
- * 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.
- */
-
-/**
- * Created by IntelliJ IDEA.
- * User: rpoplin
- * Date: Jan 18, 2010
- */
-
-public class AnnotationDatum implements Comparator {
-
- public float value;
- private final int[] ti;
- private final int[] tv;
-
- public static final int FULL_SET = 0;
- public static final int NOVEL_SET = 1;
- public static final int DBSNP_SET = 2;
- public static final int TRUTH_SET = 3;
- public static final int TRUE_POSITIVE = 4;
- private static final int NUM_SETS = 5;
-
- public AnnotationDatum() {
-
- value = 0.0f;
- ti = new int[NUM_SETS];
- tv = new int[NUM_SETS];
- for( int iii = 0; iii < NUM_SETS; iii++ ) {
- ti[iii] = 0;
- tv[iii] = 0;
- }
- }
-
- public AnnotationDatum( final float _value ) {
-
- value = _value;
- ti = new int[NUM_SETS];
- tv = new int[NUM_SETS];
- for( int iii = 0; iii < NUM_SETS; iii++ ) {
- ti[iii] = 0;
- tv[iii] = 0;
- }
- }
-
- final public void incrementTi( final boolean isNovelVariant, final boolean isInTruthSet, final boolean isTrueVariant ) {
-
- ti[FULL_SET]++;
- if( isNovelVariant ) {
- ti[NOVEL_SET]++;
- } else { // Is known, in DBsnp
- ti[DBSNP_SET]++;
- }
- if( isInTruthSet ) {
- ti[TRUTH_SET]++;
- if( isTrueVariant ) {
- ti[TRUE_POSITIVE]++;
- }
- }
- }
-
- final public void incrementTv( final boolean isNovelVariant, final boolean isInTruthSet, final boolean isTrueVariant ) {
-
- tv[FULL_SET]++;
- if( isNovelVariant ) {
- tv[NOVEL_SET]++;
- } else { // Is known, in DBsnp
- tv[DBSNP_SET]++;
- }
- if( isInTruthSet ) {
- tv[TRUTH_SET]++;
- if( isTrueVariant ) {
- tv[TRUE_POSITIVE]++;
- }
- }
- }
-
- final public void combine( final AnnotationDatum that ) {
-
- for( int iii = 0; iii < NUM_SETS; iii++ ) {
- this.ti[iii] += that.ti[iii];
- this.tv[iii] += that.tv[iii];
- }
- this.value = that.value; // Overwrite this bin's value
- }
-
- final public float calcTiTv( final int INDEX ) {
-
- if( ti[INDEX] < 0 || tv[INDEX] < 0 ) {
- throw new ReviewedStingException( "Integer overflow detected! There are too many variants piled up in one annotation bin." );
- }
-
- if( tv[INDEX] == 0 ) { // Don't divide by zero
- return 0.0f;
- }
-
- return ((float) ti[INDEX]) / ((float) tv[INDEX]);
- }
-
- final public float calcDBsnpRate() {
-
- if( ti[FULL_SET] + tv[FULL_SET] == 0 ) { // Don't divide by zero
- return 0.0f;
- }
-
- return 100.0f * ((float) ti[DBSNP_SET] + tv[DBSNP_SET]) /
- ((float) ti[FULL_SET] + tv[FULL_SET]);
- }
-
- final public float calcTPrate() {
-
- if( ti[TRUTH_SET] + tv[TRUTH_SET] == 0 ) { // Don't divide by zero
- return 0.0f;
- }
-
- return 100.0f * ((float) ti[TRUE_POSITIVE] + tv[TRUE_POSITIVE]) /
- ((float) ti[TRUTH_SET] + tv[TRUTH_SET]);
- }
-
- final public int numVariants( final int INDEX ) {
- return ti[INDEX] + tv[INDEX];
- }
-
- final public void clearBin() {
- value = 0.0f;
- for( int iii = 0; iii < NUM_SETS; iii++ ) {
- ti[iii] = 0;
- tv[iii] = 0;
- }
- }
-
- public int compare( AnnotationDatum a1, AnnotationDatum a2 ) { // Function needed for this to be a Comparator
- if( a1.value < a2.value ) { return -1; }
- if( a1.value > a2.value ) { return 1; }
- return 0;
- }
-
- public int equals( AnnotationDatum that ) { // Function needed for this to be sorted correctly in a TreeSet
- if( this.value < that.value ) { return -1; }
- if( this.value > that.value ) { return 1; }
- return 0;
- }
-}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java
index b02dcd8e2..3144098a8 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalance.java
@@ -25,21 +25,21 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class AlleleBalance implements InfoFieldAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalanceBySample.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalanceBySample.java
index 0be737897..a99f87a70 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalanceBySample.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AlleleBalanceBySample.java
@@ -1,12 +1,16 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.ExperimentalAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
+import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.gatk.contexts.*;
-import org.broadinstitute.sting.utils.variantcontext.*;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
@@ -62,5 +66,5 @@ public class AlleleBalanceBySample implements GenotypeAnnotation, ExperimentalAn
public List getKeyNames() { return Arrays.asList("AB"); }
- public List getDescriptions() { return Arrays.asList(new VCFFormatHeaderLine(getKeyNames().get(0), -1, VCFHeaderLineType.Float, "Allele balance for each het genotype")); }
+ public List getDescriptions() { return Arrays.asList(new VCFFormatHeaderLine(getKeyNames().get(0), 1, VCFHeaderLineType.Float, "Allele balance for each het genotype")); }
}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AnnotationByDepth.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AnnotationByDepth.java
index 51b5381dc..6c14e7445 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AnnotationByDepth.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/AnnotationByDepth.java
@@ -1,8 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseCounts.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseCounts.java
index 244627154..66416ce11 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseCounts.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseCounts.java
@@ -31,19 +31,19 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class BaseCounts implements InfoFieldAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseQualityRankSumTest.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseQualityRankSumTest.java
index ff916bedd..2a5c996f7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseQualityRankSumTest.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/BaseQualityRankSumTest.java
@@ -1,16 +1,16 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
-import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Arrays;
public class BaseQualityRankSumTest extends RankSumTest {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ChromosomeCounts.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ChromosomeCounts.java
index 143722d7c..74f7f9d80 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ChromosomeCounts.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ChromosomeCounts.java
@@ -25,24 +25,29 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineCount;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class ChromosomeCounts implements InfoFieldAnnotation, StandardAnnotation {
private String[] keyNames = { VCFConstants.ALLELE_NUMBER_KEY, VCFConstants.ALLELE_COUNT_KEY, VCFConstants.ALLELE_FREQUENCY_KEY };
- private VCFInfoHeaderLine[] descriptions = { new VCFInfoHeaderLine(VCFConstants.ALLELE_FREQUENCY_KEY, -1, VCFHeaderLineType.Float, "Allele Frequency, for each ALT allele, in the same order as listed"),
- new VCFInfoHeaderLine(VCFConstants.ALLELE_COUNT_KEY, -1, VCFHeaderLineType.Integer, "Allele count in genotypes, for each ALT allele, in the same order as listed"),
+ private VCFInfoHeaderLine[] descriptions = { new VCFInfoHeaderLine(VCFConstants.ALLELE_FREQUENCY_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Float, "Allele Frequency, for each ALT allele, in the same order as listed"),
+ new VCFInfoHeaderLine(VCFConstants.ALLELE_COUNT_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Integer, "Allele count in genotypes, for each ALT allele, in the same order as listed"),
new VCFInfoHeaderLine(VCFConstants.ALLELE_NUMBER_KEY, 1, VCFHeaderLineType.Integer, "Total number of alleles in called genotypes") };
public Map annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, VariantContext vc) {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java
index e56825dbe..c384e0d09 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthOfCoverage.java
@@ -1,18 +1,19 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class DepthOfCoverage implements InfoFieldAnnotation, StandardAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthPerAlleleBySample.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthPerAlleleBySample.java
index 754d28dfd..e3e8bc258 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthPerAlleleBySample.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/DepthPerAlleleBySample.java
@@ -1,20 +1,20 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFCompoundHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
-import org.broadinstitute.sting.utils.pileup.PileupElement;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
-import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineCount;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
import org.broadinstitute.sting.utils.pileup.ExtendedEventPileupElement;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Arrays;
import java.util.HashMap;
@@ -142,5 +142,5 @@ public class DepthPerAlleleBySample implements GenotypeAnnotation, StandardAnnot
// public String getIndelBases()
public List getKeyNames() { return Arrays.asList("AD"); }
- public List getDescriptions() { return Arrays.asList(new VCFFormatHeaderLine(getKeyNames().get(0), VCFCompoundHeaderLine.UNBOUNDED, VCFHeaderLineType.Integer, "Allelic depths for the ref and alt alleles in the order listed")); }
+ public List getDescriptions() { return Arrays.asList(new VCFFormatHeaderLine(getKeyNames().get(0), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "Allelic depths for the ref and alt alleles in the order listed")); }
}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java
index 2115526a6..97ed221e7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/FisherStrand.java
@@ -24,20 +24,20 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
+import cern.jet.math.Arithmetic;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
-import org.broadinstitute.sting.utils.*;
-import org.broadinstitute.sting.utils.pileup.PileupElement;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import cern.jet.math.Arithmetic;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GCContent.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GCContent.java
index 5eaa30bf3..48677bbe5 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GCContent.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GCContent.java
@@ -1,18 +1,19 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.ExperimentalAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class GCContent implements InfoFieldAnnotation, ExperimentalAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GLstats.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GLstats.java
index 3a5db2884..cca0ad4bc 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GLstats.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/GLstats.java
@@ -1,19 +1,20 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HaplotypeScore.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HaplotypeScore.java
index bd8c51a41..b175579f1 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HaplotypeScore.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HaplotypeScore.java
@@ -24,25 +24,29 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
+import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.QualityUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.genotype.Haplotype;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.sam.AlignmentUtils;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
-import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
-import org.broadinstitute.sting.utils.*;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.genotype.Haplotype;
-import org.broadinstitute.sting.utils.pileup.*;
import java.util.*;
-import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.sam.AlignmentUtils;
public class HaplotypeScore implements InfoFieldAnnotation, StandardAnnotation {
private final static boolean DEBUG = false;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java
index ecebfbbd2..d86728d5e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HardyWeinberg.java
@@ -1,20 +1,21 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
import org.broad.tribble.util.popgen.HardyWeinbergCalculation;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.WorkInProgressAnnotation;
import org.broadinstitute.sting.utils.QualityUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class HardyWeinberg implements InfoFieldAnnotation, WorkInProgressAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java
index 099780fa7..02efd854c 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/HomopolymerRun.java
@@ -1,19 +1,19 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class HomopolymerRun implements InfoFieldAnnotation, StandardAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/IndelType.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/IndelType.java
index ee8b01d7d..12b48473d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/IndelType.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/IndelType.java
@@ -1,14 +1,14 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.ExperimentalAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.utils.IndelUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/LowMQ.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/LowMQ.java
index 33069f1f5..1d999c531 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/LowMQ.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/LowMQ.java
@@ -1,19 +1,19 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class LowMQ implements InfoFieldAnnotation {
@@ -42,5 +42,5 @@ public class LowMQ implements InfoFieldAnnotation {
public List getKeyNames() { return Arrays.asList("LowMQ"); }
- public List getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine(getKeyNames().get(0), 3, VCFHeaderLineType.Integer, "3-tuple: ,,")); }
+ public List getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine(getKeyNames().get(0), 3, VCFHeaderLineType.Float, "3-tuple: ,,")); }
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityRankSumTest.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityRankSumTest.java
index 11f86b972..cc62580a9 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityRankSumTest.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityRankSumTest.java
@@ -1,16 +1,17 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
+import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
-import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Arrays;
public class MappingQualityRankSumTest extends RankSumTest {
@@ -21,7 +22,7 @@ public class MappingQualityRankSumTest extends RankSumTest {
protected void fillQualsFromPileup(byte ref, byte alt, ReadBackedPileup pileup, List refQuals, List altQuals) {
for ( final PileupElement p : pileup ) {
- if( isUsableBase(p) && p.getMappingQual() < 254 ) { // 254 and 255 are special mapping qualities used as a code by aligners
+ if ( isUsableBase(p) ) {
if ( p.getBase() == ref ) {
refQuals.add((double)p.getMappingQual());
} else if ( p.getBase() == alt ) {
@@ -34,7 +35,7 @@ public class MappingQualityRankSumTest extends RankSumTest {
// equivalent is whether indel likelihoods for reads corresponding to ref allele are more likely than reads corresponding to alt allele ?
HashMap> indelLikelihoodMap = IndelGenotypeLikelihoodsCalculationModel.getIndelLikelihoodMap();
for (final PileupElement p: pileup) {
- if (indelLikelihoodMap.containsKey(p) && p.getMappingQual() < 254) {
+ if (indelLikelihoodMap.containsKey(p) && p.getMappingQual() != 0 && p.getMappingQual() != QualityUtils.MAPPING_QUALITY_UNAVAILABLE) {
// retrieve likelihood information corresponding to this read
LinkedHashMap el = indelLikelihoodMap.get(p);
// by design, first element in LinkedHashMap was ref allele
@@ -54,8 +55,6 @@ public class MappingQualityRankSumTest extends RankSumTest {
refQuals.add((double)p.getMappingQual());
else if (altLikelihood > refLikelihood + INDEL_LIKELIHOOD_THRESH)
altQuals.add((double)p.getMappingQual());
-
-
}
}
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java
index 25a7b286d..f240d02bc 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZero.java
@@ -1,16 +1,16 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroBySample.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroBySample.java
index 00cc30309..0ca53adf2 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroBySample.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroBySample.java
@@ -25,22 +25,22 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
-import org.broadinstitute.sting.utils.pileup.PileupElement;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroFraction.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroFraction.java
index dc4934ade..08a25a7e3 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroFraction.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/MappingQualityZeroFraction.java
@@ -1,15 +1,15 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.ExperimentalAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/NBaseCount.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/NBaseCount.java
index ba3e2cc8b..1c70a1b33 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/NBaseCount.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/NBaseCount.java
@@ -1,14 +1,14 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Arrays;
import java.util.HashMap;
@@ -47,5 +47,5 @@ public class NBaseCount implements InfoFieldAnnotation {
public List getKeyNames() { return Arrays.asList("PercentNBaseSolid"); }
- public List getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine("PercentNBaseSolid", 4, VCFHeaderLineType.Float, "Percentage of N bases in the pileup (counting only SOLiD reads)")); }
+ public List getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine("PercentNBaseSolid", 1, VCFHeaderLineType.Float, "Percentage of N bases in the pileup (counting only SOLiD reads)")); }
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java
index 720984835..2175d39e6 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/QualByDepth.java
@@ -1,19 +1,19 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
public class QualByDepth extends AnnotationByDepth implements InfoFieldAnnotation, StandardAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java
index 6e80c7555..d52f07b58 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RMSMappingQuality.java
@@ -1,19 +1,23 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.QualityUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class RMSMappingQuality implements InfoFieldAnnotation, StandardAnnotation {
@@ -38,8 +42,10 @@ public class RMSMappingQuality implements InfoFieldAnnotation, StandardAnnotatio
pileup = context.getBasePileup();
if (pileup != null) {
- for (PileupElement p : pileup )
- qualities[index++] = p.getRead().getMappingQuality();
+ for (PileupElement p : pileup ) {
+ if ( p.getMappingQual() != QualityUtils.MAPPING_QUALITY_UNAVAILABLE )
+ qualities[index++] = p.getMappingQual();
+ }
}
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java
index 1a967293f..5466828f6 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/RankSumTest.java
@@ -1,22 +1,23 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.MannWhitneyU;
+import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.List;
import java.util.ArrayList;
-import java.util.Map;
import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
@@ -106,6 +107,9 @@ public abstract class RankSumTest implements InfoFieldAnnotation, StandardAnnota
protected abstract void fillIndelQualsFromPileup(ReadBackedPileup pileup, List refQuals, List altQuals);
protected static boolean isUsableBase( final PileupElement p ) {
- return !( p.isDeletion() || p.getMappingQual() == 0 || ((int)p.getQual()) < 6 ); // need the unBAQed quality score here
+ return !( p.isDeletion() ||
+ p.getMappingQual() == 0 ||
+ p.getMappingQual() == QualityUtils.MAPPING_QUALITY_UNAVAILABLE ||
+ ((int)p.getQual()) < QualityUtils.MIN_USABLE_Q_SCORE ); // need the unBAQed quality score here
}
}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadDepthAndAllelicFractionBySample.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadDepthAndAllelicFractionBySample.java
index f287549bb..c56e2622d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadDepthAndAllelicFractionBySample.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadDepthAndAllelicFractionBySample.java
@@ -26,24 +26,24 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineCount;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.pileup.ExtendedEventPileupElement;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
-import org.broadinstitute.sting.utils.pileup.ExtendedEventPileupElement;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFCompoundHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
/**
* Created by IntelliJ IDEA.
@@ -200,8 +200,8 @@ public class ReadDepthAndAllelicFractionBySample implements GenotypeAnnotation {
1,
VCFHeaderLineType.Integer,
"Total read depth per sample, including MQ0"),
- new VCFFormatHeaderLine(getKeyNames().get(1),
- VCFCompoundHeaderLine.UNBOUNDED,
+ new VCFFormatHeaderLine(getKeyNames().get(1),
+ VCFHeaderLineCount.UNBOUNDED,
VCFHeaderLineType.Float,
"Fractions of reads (excluding MQ0 from both ref and alt) supporting each reported alternative allele, per sample"));
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadPosRankSumTest.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadPosRankSumTest.java
index 727904a3b..aabfb2970 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadPosRankSumTest.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/ReadPosRankSumTest.java
@@ -1,14 +1,17 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import net.sf.samtools.Cigar;
+import net.sf.samtools.CigarElement;
+import net.sf.samtools.CigarOperator;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.walkers.genotyper.IndelGenotypeLikelihoodsCalculationModel;
import org.broadinstitute.sting.gatk.walkers.indels.PairHMMIndelErrorModel;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.sam.AlignmentUtils;
-import net.sf.samtools.*;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SBByDepth.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SBByDepth.java
index fc769ac54..a5ebd8db2 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SBByDepth.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SBByDepth.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SampleList.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SampleList.java
index 82f16be42..ff9092a71 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SampleList.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SampleList.java
@@ -25,14 +25,15 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineCount;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Arrays;
import java.util.HashMap;
@@ -65,5 +66,5 @@ public class SampleList implements InfoFieldAnnotation {
public List getKeyNames() { return Arrays.asList("Samples"); }
- public List getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine("Samples", VCFInfoHeaderLine.UNBOUNDED, VCFHeaderLineType.String, "List of polymorphic samples")); }
+ public List getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine("Samples", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "List of polymorphic samples")); }
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java
index 0b6cbcc2e..a4668eeb6 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/SpanningDeletions.java
@@ -1,14 +1,14 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.StandardAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/TechnologyComposition.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/TechnologyComposition.java
new file mode 100755
index 000000000..b46d82d8b
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/TechnologyComposition.java
@@ -0,0 +1,79 @@
+package org.broadinstitute.sting.gatk.walkers.annotator;
+
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.ExperimentalAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.sam.ReadUtils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: delangel
+ * Date: 6/29/11
+ * Time: 3:14 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class TechnologyComposition implements ExperimentalAnnotation,InfoFieldAnnotation {
+ private String nSLX = "NumSLX";
+ private String n454 ="Num454";
+ private String nSolid = "NumSOLiD";
+ private String nOther = "NumOther";
+ public Map annotate(RefMetaDataTracker tracker, ReferenceContext ref, Map stratifiedContexts, VariantContext vc) {
+ if ( stratifiedContexts.size() == 0 )
+ return null;
+
+ int readsIllumina = 0;
+ int readsSolid = 0;
+ int reads454 = 0;
+ int readsOther = 0;
+
+ for ( Map.Entry sample : stratifiedContexts.entrySet() ) {
+ AlignmentContext context = sample.getValue();
+
+ ReadBackedPileup pileup = null;
+ if (context.hasExtendedEventPileup())
+ pileup = context.getExtendedEventPileup();
+ else if (context.hasBasePileup())
+ pileup = context.getBasePileup();
+
+ if (pileup != null) {
+ for (PileupElement p : pileup ) {
+ if(ReadUtils.is454Read(p.getRead()))
+ reads454++;
+ else if (ReadUtils.isSOLiDRead(p.getRead()))
+ readsSolid++;
+ else if (ReadUtils.isSLXRead(p.getRead()))
+ readsIllumina++;
+ else
+ readsOther++;
+ }
+ }
+ }
+
+ Map map = new HashMap();
+ map.put(nSLX, String.format("%d", readsIllumina));
+ map.put(n454, String.format("%d", reads454));
+ map.put(nSolid, String.format("%d", readsSolid));
+ map.put(nOther, String.format("%d", readsOther));
+ return map;
+ }
+
+ public List getKeyNames() { return Arrays.asList(nSLX,n454,nSolid,nOther); }
+
+ public List getDescriptions() { return Arrays.asList(new VCFInfoHeaderLine(nSLX, 1, VCFHeaderLineType.Integer, "Number of SLX reads"),
+ new VCFInfoHeaderLine(n454, 1, VCFHeaderLineType.Integer, "Number of 454 reads"),
+ new VCFInfoHeaderLine(nSolid, 1, VCFHeaderLineType.Integer, "Number of SOLiD reads"),
+ new VCFInfoHeaderLine(nOther, 1, VCFHeaderLineType.Integer, "Number of Other technology reads")); }
+
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java
index cd5b6694b..acbeee3b2 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java
@@ -25,24 +25,23 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Hidden;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.AnnotationType;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
import org.broadinstitute.sting.utils.BaseUtils;
-import org.broadinstitute.sting.utils.classloader.PluginManager;
import org.broadinstitute.sting.utils.SampleUtils;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.classloader.PluginManager;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotatorEngine.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotatorEngine.java
index 54c8be73a..fdf498a3d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotatorEngine.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotatorEngine.java
@@ -25,30 +25,27 @@
package org.broadinstitute.sting.gatk.walkers.annotator;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
-import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.*;
-import org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator.*;
+import org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator.GenomicAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator.JoinTable;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.AnnotationInterfaceManager;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.GenotypeAnnotation;
+import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+
+import java.util.*;
+import java.util.Map.Entry;
public class VariantAnnotatorEngine {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotation.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotation.java
index e02c62baf..05c1b3c52 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotation.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotation.java
@@ -25,13 +25,6 @@
package org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator;
-import java.util.*;
-import java.util.Map.Entry;
-
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
@@ -39,7 +32,14 @@ import org.broadinstitute.sting.gatk.refdata.features.annotator.AnnotatorInputTa
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.walkers.annotator.VariantAnnotatorEngine;
import org.broadinstitute.sting.gatk.walkers.annotator.interfaces.InfoFieldAnnotation;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLineType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+
+import java.util.*;
+import java.util.Map.Entry;
/**
* This plugin for {@link VariantAnnotatorEngine} serves as the core
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotator.java
index 69a35a584..b42310780 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/GenomicAnnotator.java
@@ -26,28 +26,28 @@
package org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator;
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-import java.util.Map.Entry;
-
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.features.annotator.AnnotatorInputTableCodec;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.gatk.walkers.annotator.VariantAnnotatorEngine;
import org.broadinstitute.sting.utils.SampleUtils;
-import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+import java.util.Map.Entry;
/**
* Annotates variant calls with information from user-specified tabular files.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTable.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTable.java
index c57aacb5b..714f374cf 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTable.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTable.java
@@ -25,6 +25,9 @@
package org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
@@ -33,9 +36,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-
/**
* This is a container that holds all data corresponding to a single join table as specified by one -J arg (ex: -J bindingName1,/path/to/file,bindingName1.columnName=bindingName2.columnName2).
* Some terminology:
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTableParser.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTableParser.java
index d3fcfd42a..3b6c87f90 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTableParser.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/JoinTableParser.java
@@ -25,16 +25,16 @@
package org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.Utils;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-
/**
* Used to parse files passed to the GenomicAnnotator via the -J arg.
* The files must be tab-delimited, and the first non-empty/non-commented line
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/TranscriptToGenomicInfo.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/TranscriptToGenomicInfo.java
index 0ed61fc48..0bbfa51b4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/TranscriptToGenomicInfo.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/genomicannotator/TranscriptToGenomicInfo.java
@@ -24,9 +24,6 @@
package org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator;
-import java.io.*;
-import java.util.*;
-
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
@@ -36,17 +33,15 @@ import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.features.annotator.AnnotatorInputTableCodec;
import org.broadinstitute.sting.gatk.refdata.features.annotator.AnnotatorInputTableFeature;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
-import org.broadinstitute.sting.gatk.walkers.By;
-import org.broadinstitute.sting.gatk.walkers.DataSource;
-import org.broadinstitute.sting.gatk.walkers.RMD;
-import org.broadinstitute.sting.gatk.walkers.Reference;
-import org.broadinstitute.sting.gatk.walkers.Requires;
-import org.broadinstitute.sting.gatk.walkers.RodWalker;
-import org.broadinstitute.sting.gatk.walkers.Window;
+import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.*;
+
/**
* Takes a table of transcripts (eg. UCSC refGene, knownGene, and CCDS tables) and generates the big table which contains
* annotations for each possible variant at each transcript position (eg. 4 variants at each genomic position).
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/GenotypeAnnotation.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/GenotypeAnnotation.java
index 29b256479..57bc44ab8 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/GenotypeAnnotation.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/GenotypeAnnotation.java
@@ -1,14 +1,14 @@
package org.broadinstitute.sting.gatk.walkers.annotator.interfaces;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFFormatHeaderLine;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import java.util.Map;
import java.util.List;
+import java.util.Map;
public interface GenotypeAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/InfoFieldAnnotation.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/InfoFieldAnnotation.java
index 5b33395b5..4e850d01b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/InfoFieldAnnotation.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/annotator/interfaces/InfoFieldAnnotation.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.walkers.annotator.interfaces;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFInfoHeaderLine;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.Map;
import java.util.List;
+import java.util.Map;
public interface InfoFieldAnnotation {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/BeagleOutputToVCFWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/BeagleOutputToVCFWalker.java
index aa23abc67..21c8ec430 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/BeagleOutputToVCFWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/BeagleOutputToVCFWalker.java
@@ -25,26 +25,26 @@
package org.broadinstitute.sting.gatk.walkers.beagle;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
-import org.broadinstitute.sting.gatk.refdata.features.beagle.BeagleFeature;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.RodWalker;
+import org.broadinstitute.sting.gatk.refdata.features.beagle.BeagleFeature;
import org.broadinstitute.sting.gatk.walkers.RMD;
import org.broadinstitute.sting.gatk.walkers.Requires;
+import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.SampleUtils;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
+
import static java.lang.Math.log10;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/ProduceBeagleInputWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/ProduceBeagleInputWalker.java
index 93ee0b085..3eed12992 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/ProduceBeagleInputWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/ProduceBeagleInputWalker.java
@@ -25,10 +25,6 @@
package org.broadinstitute.sting.gatk.walkers.beagle;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Hidden;
import org.broadinstitute.sting.commandline.Input;
@@ -36,17 +32,20 @@ import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.gatk.walkers.RMD;
import org.broadinstitute.sting.gatk.walkers.Requires;
+import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.gatk.walkers.variantrecalibration.VQSRCalibrationCurve;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.StingException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.File;
import java.io.PrintStream;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/VariantsToBeagleUnphasedWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/VariantsToBeagleUnphasedWalker.java
index 18aa3e257..f6cd1d636 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/VariantsToBeagleUnphasedWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/beagle/VariantsToBeagleUnphasedWalker.java
@@ -25,28 +25,29 @@
package org.broadinstitute.sting.gatk.walkers.beagle;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RMD;
import org.broadinstitute.sting.gatk.walkers.Requires;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.SampleUtils;
-import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.PrintStream;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Set;
/**
* Produces an input file to Beagle imputation engine, listing unphased, hard-called genotypes for a single sample
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CallableLociWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CallableLociWalker.java
index 2c67265d6..90e6fcd77 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CallableLociWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CallableLociWalker.java
@@ -22,6 +22,8 @@
package org.broadinstitute.sting.gatk.walkers.coverage;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
@@ -31,12 +33,10 @@ import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.utils.*;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.pileup.PileupElement;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
import java.io.File;
-import java.io.PrintStream;
import java.io.FileNotFoundException;
+import java.io.PrintStream;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoarseCoverageWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoarseCoverageWalker.java
index ae947eac1..405a44c29 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoarseCoverageWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoarseCoverageWalker.java
@@ -26,12 +26,11 @@
package org.broadinstitute.sting.gatk.walkers.coverage;
import net.sf.samtools.SAMRecord;
-
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.ReadWalker;
import java.io.PrintStream;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CompareCallableLociWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CompareCallableLociWalker.java
index 5a9c62b7f..6b91b0198 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CompareCallableLociWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CompareCallableLociWalker.java
@@ -22,19 +22,19 @@
package org.broadinstitute.sting.gatk.walkers.coverage;
+import org.broad.tribble.bed.FullBEDFeature;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
-import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
-import org.broad.tribble.bed.FullBEDFeature;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import java.util.*;
import java.io.PrintStream;
+import java.util.Arrays;
+import java.util.List;
/**
* Test routine for new VariantContext object
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoverageUtils.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoverageUtils.java
index 298aa90b9..a41e55166 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoverageUtils.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/CoverageUtils.java
@@ -8,7 +8,9 @@ import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.pileup.PileupElement;
-import java.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
/**
* IF THERE IS NO JAVADOC RIGHT HERE, YELL AT chartl
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/DepthOfCoverageWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/DepthOfCoverageWalker.java
index 91ae81cd5..c1956f1d7 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/DepthOfCoverageWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/coverage/DepthOfCoverageWalker.java
@@ -26,6 +26,8 @@
package org.broadinstitute.sting.gatk.walkers.coverage;
import net.sf.samtools.SAMReadGroupRecord;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
@@ -34,12 +36,13 @@ import org.broadinstitute.sting.gatk.refdata.features.refseq.RefSeqCodec;
import org.broadinstitute.sting.gatk.refdata.features.refseq.RefSeqFeature;
import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack;
import org.broadinstitute.sting.gatk.refdata.tracks.builders.RMDTrackBuilder;
-import org.broadinstitute.sting.gatk.refdata.utils.*;
+import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
+import org.broadinstitute.sting.gatk.refdata.utils.LocationAwareSeekableRODIterator;
+import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.collections.Pair;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/BAMDiffableReader.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/BAMDiffableReader.java
new file mode 100644
index 000000000..15b16ca6b
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/BAMDiffableReader.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+import net.sf.samtools.SAMFileReader;
+import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMRecordIterator;
+import net.sf.samtools.util.BlockCompressedInputStream;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Arrays;
+
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 1:09 PM
+ *
+ * Class implementing diffnode reader for VCF
+ */
+public class BAMDiffableReader implements DiffableReader {
+ @Override
+ public String getName() { return "BAM"; }
+
+ @Override
+ public DiffElement readFromFile(File file, int maxElementsToRead) {
+ final SAMFileReader reader = new SAMFileReader(file, null); // null because we don't want it to look for the index
+ reader.setValidationStringency(SAMFileReader.ValidationStringency.SILENT);
+
+ DiffNode root = DiffNode.rooted(file.getName());
+ SAMRecordIterator iterator = reader.iterator();
+
+ int count = 0;
+ while ( iterator.hasNext() ) {
+ if ( count++ > maxElementsToRead && maxElementsToRead != -1)
+ break;
+ final SAMRecord record = iterator.next();
+
+ // name is the read name + first of pair
+ String name = record.getReadName().replace('.', '_');
+ if ( record.getReadPairedFlag() ) {
+ name += record.getFirstOfPairFlag() ? "_1" : "_2";
+ }
+
+ DiffNode readRoot = DiffNode.empty(name, root);
+
+ // add fields
+ readRoot.add("NAME", record.getReadName());
+ readRoot.add("FLAGS", record.getFlags());
+ readRoot.add("RNAME", record.getReferenceName());
+ readRoot.add("POS", record.getAlignmentStart());
+ readRoot.add("MAPQ", record.getMappingQuality());
+ readRoot.add("CIGAR", record.getCigarString());
+ readRoot.add("RNEXT", record.getMateReferenceName());
+ readRoot.add("PNEXT", record.getMateAlignmentStart());
+ readRoot.add("TLEN", record.getInferredInsertSize());
+ readRoot.add("SEQ", record.getReadString());
+ readRoot.add("QUAL", record.getBaseQualityString());
+
+ for ( SAMRecord.SAMTagAndValue xt : record.getAttributes() ) {
+ readRoot.add(xt.tag, xt.value);
+ }
+
+ // add record to root
+ if ( ! root.hasElement(name) )
+ // protect ourselves from malformed files
+ root.add(readRoot);
+ }
+
+ reader.close();
+
+ return root.getBinding();
+ }
+
+ @Override
+ public boolean canRead(File file) {
+ final byte[] BAM_MAGIC = "BAM\1".getBytes();
+ final byte[] buffer = new byte[BAM_MAGIC.length];
+ try {
+ FileInputStream fstream = new FileInputStream(file);
+ new BlockCompressedInputStream(fstream).read(buffer,0,BAM_MAGIC.length);
+ return Arrays.equals(buffer, BAM_MAGIC);
+ } catch ( IOException e ) {
+ return false;
+ } catch ( net.sf.samtools.FileTruncatedException e ) {
+ return false;
+ }
+ }
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffElement.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffElement.java
new file mode 100644
index 000000000..eb8a71c2c
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffElement.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Invariant;
+import com.google.java.contract.Requires;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 12:55 PM
+ *
+ * An interface that must be implemented to allow us to calculate differences
+ * between structured objects
+ */
+@Invariant({
+ "name != null",
+ "value != null",
+ "parent != null || name.equals(\"ROOT\")",
+ "value == null || value.getBinding() == this"})
+public class DiffElement {
+ public final static DiffElement ROOT = new DiffElement();
+
+ final private String name;
+ final private DiffElement parent;
+ final private DiffValue value;
+
+ /**
+ * For ROOT only
+ */
+ private DiffElement() {
+ this.name = "ROOT";
+ this.parent = null;
+ this.value = new DiffValue(this, "ROOT");
+ }
+
+ @Requires({"name != null", "parent != null", "value != null"})
+ public DiffElement(String name, DiffElement parent, DiffValue value) {
+ if ( name.equals("ROOT") ) throw new IllegalArgumentException("Cannot use reserved name ROOT");
+ this.name = name;
+ this.parent = parent;
+ this.value = value;
+ this.value.setBinding(this);
+ }
+
+ @Ensures({"result != null"})
+ public String getName() {
+ return name;
+ }
+
+ public DiffElement getParent() {
+ return parent;
+ }
+
+ @Ensures({"result != null"})
+ public DiffValue getValue() {
+ return value;
+ }
+
+ public boolean isRoot() { return this == ROOT; }
+
+ @Ensures({"result != null"})
+ @Override
+ public String toString() {
+ return getName() + "=" + getValue().toString();
+ }
+
+ public String toString(int offset) {
+ return (offset > 0 ? Utils.dupString(' ', offset) : 0) + getName() + "=" + getValue().toString(offset);
+ }
+
+ @Ensures({"result != null"})
+ public final String fullyQualifiedName() {
+ if ( isRoot() )
+ return "";
+ else if ( parent.isRoot() )
+ return name;
+ else
+ return parent.fullyQualifiedName() + "." + name;
+ }
+
+ @Ensures({"result != null"})
+ public String toOneLineString() {
+ return getName() + "=" + getValue().toOneLineString();
+ }
+
+ @Ensures({"result != null"})
+ public DiffNode getValueAsNode() {
+ if ( getValue().isCompound() )
+ return (DiffNode)getValue();
+ else
+ throw new ReviewedStingException("Illegal request conversion of a DiffValue into a DiffNode: " + this);
+ }
+
+ public int size() {
+ return 1 + getValue().size();
+ }
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffEngine.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffEngine.java
new file mode 100644
index 000000000..2f87a900a
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffEngine.java
@@ -0,0 +1,360 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+import org.apache.log4j.Logger;
+import org.broadinstitute.sting.gatk.report.GATKReport;
+import org.broadinstitute.sting.gatk.report.GATKReportTable;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.classloader.PluginManager;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+
+import java.io.File;
+import java.io.PrintStream;
+import java.util.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 12:51 PM
+ * A generic engine for comparing tree-structured objects
+ */
+public class DiffEngine {
+ final protected static Logger logger = Logger.getLogger(DiffEngine.class);
+
+ private final Map readers = new HashMap();
+
+ public DiffEngine() {
+ loadDiffableReaders();
+ }
+
+ // --------------------------------------------------------------------------------
+ //
+ // difference calculation
+ //
+ // --------------------------------------------------------------------------------
+
+ public List diff(DiffElement master, DiffElement test) {
+ DiffValue masterValue = master.getValue();
+ DiffValue testValue = test.getValue();
+
+ if ( masterValue.isCompound() && masterValue.isCompound() ) {
+ return diff(master.getValueAsNode(), test.getValueAsNode());
+ } else if ( masterValue.isAtomic() && testValue.isAtomic() ) {
+ return diff(masterValue, testValue);
+ } else {
+ // structural difference in types. one is node, other is leaf
+ return Arrays.asList(new SpecificDifference(master, test));
+ }
+ }
+
+ public List diff(DiffNode master, DiffNode test) {
+ Set allNames = new HashSet(master.getElementNames());
+ allNames.addAll(test.getElementNames());
+ List diffs = new ArrayList();
+
+ for ( String name : allNames ) {
+ DiffElement masterElt = master.getElement(name);
+ DiffElement testElt = test.getElement(name);
+ if ( masterElt == null && testElt == null ) {
+ throw new ReviewedStingException("BUG: unexceptedly got two null elements for field: " + name);
+ } else if ( masterElt == null || testElt == null ) { // if either is null, we are missing a value
+ // todo -- should one of these be a special MISSING item?
+ diffs.add(new SpecificDifference(masterElt, testElt));
+ } else {
+ diffs.addAll(diff(masterElt, testElt));
+ }
+ }
+
+ return diffs;
+ }
+
+ public List diff(DiffValue master, DiffValue test) {
+ if ( master.getValue().equals(test.getValue()) ) {
+ return Collections.emptyList();
+ } else {
+ return Arrays.asList(new SpecificDifference(master.getBinding(), test.getBinding()));
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ //
+ // Summarizing differences
+ //
+ // --------------------------------------------------------------------------------
+
+ /**
+ * Emits a summary of the diffs to out. Suppose you have the following three differences:
+ *
+ * A.X.Z:1!=2
+ * A.Y.Z:3!=4
+ * B.X.Z:5!=6
+ *
+ * The above is the itemized list of the differences. The summary looks for common differences
+ * in the name hierarchy, counts those shared elements, and emits the differences that occur
+ * in order of decreasing counts.
+ *
+ * So, in the above example, what are the shared elements?
+ *
+ * A.X.Z and B.X.Z share X.Z, so there's a *.X.Z with count 2
+ * A.X.Z, A.Y.Z, and B.X.Z all share *.*.Z, with count 3
+ * Each of A.X.Z, A.Y.Z, and B.X.Z are individually unique, with count 1
+ *
+ * So we would emit the following summary:
+ *
+ * *.*.Z: 3
+ * *.X.Z: 2
+ * A.X.Z: 1 [specific difference: 1!=2]
+ * A.Y.Z: 1 [specific difference: 3!=4]
+ * B.X.Z: 1 [specific difference: 5!=6]
+ *
+ * The algorithm to accomplish this calculation is relatively simple. Start with all of the
+ * concrete differences. For each pair of differences A1.A2....AN and B1.B2....BN:
+ *
+ * find the longest common subsequence Si.Si+1...SN where Ai = Bi = Si
+ * If i == 0, then there's no shared substructure
+ * If i > 0, then generate the summarized value X = *.*...Si.Si+1...SN
+ * if X is a known summary, increment it's count, otherwise set its count to 1
+ *
+ * Not that only pairs of the same length are considered as potentially equivalent
+ *
+ * @param params determines how we display the items
+ * @param diffs
+ */
+ public void reportSummarizedDifferences(List diffs, SummaryReportParams params ) {
+ printSummaryReport(summarizeDifferences(diffs), params );
+ }
+
+ public List summarizeDifferences(List diffs) {
+ return summarizedDifferencesOfPaths(diffs);
+ }
+
+ final protected static String[] diffNameToPath(String diffName) {
+ return diffName.split("\\.");
+ }
+
+ protected List summarizedDifferencesOfPathsFromString(List singletonDiffs) {
+ List diffs = new ArrayList();
+
+ for ( String diff : singletonDiffs ) {
+ diffs.add(new Difference(diff));
+ }
+
+ return summarizedDifferencesOfPaths(diffs);
+ }
+
+ protected List summarizedDifferencesOfPaths(List extends Difference> singletonDiffs) {
+ Map summaries = new HashMap();
+
+ // create the initial set of differences
+ for ( int i = 0; i < singletonDiffs.size(); i++ ) {
+ for ( int j = 0; j <= i; j++ ) {
+ Difference diffPath1 = singletonDiffs.get(i);
+ Difference diffPath2 = singletonDiffs.get(j);
+ if ( diffPath1.length() == diffPath2.length() ) {
+ int lcp = longestCommonPostfix(diffPath1.getParts(), diffPath2.getParts());
+ String path = lcp > 0 ? summarizedPath(diffPath2.getParts(), lcp) : diffPath2.getPath();
+ addSummary(summaries, path, true);
+ }
+ }
+ }
+
+ // count differences
+ for ( Difference diffPath : singletonDiffs ) {
+ for ( Difference sumDiff : summaries.values() ) {
+ if ( sumDiff.matches(diffPath.getParts()) )
+ addSummary(summaries, sumDiff.getPath(), false);
+ }
+ }
+
+ List sortedSummaries = new ArrayList(summaries.values());
+ Collections.sort(sortedSummaries);
+ return sortedSummaries;
+ }
+
+ private static void addSummary(Map summaries, String path, boolean onlyCatalog) {
+ if ( summaries.containsKey(path) ) {
+ if ( ! onlyCatalog )
+ summaries.get(path).incCount();
+ } else {
+ Difference sumDiff = new Difference(path);
+ summaries.put(sumDiff.getPath(), sumDiff);
+ }
+ }
+
+ protected void printSummaryReport(List sortedSummaries, SummaryReportParams params ) {
+ GATKReport report = new GATKReport();
+ final String tableName = "diffences";
+ report.addTable(tableName, "Summarized differences between the master and test files.\nSee http://www.broadinstitute.org/gsa/wiki/index.php/DiffEngine for more information");
+ GATKReportTable table = report.getTable(tableName);
+ table.addPrimaryKey("Difference", true);
+ table.addColumn("NumberOfOccurrences", 0);
+
+ int count = 0, count1 = 0;
+ for ( Difference diff : sortedSummaries ) {
+ if ( diff.getCount() < params.minSumDiffToShow )
+ // in order, so break as soon as the count is too low
+ break;
+
+ if ( params.maxItemsToDisplay != 0 && count++ > params.maxItemsToDisplay )
+ break;
+
+ if ( diff.getCount() == 1 ) {
+ count1++;
+ if ( params.maxCountOneItems != 0 && count1 > params.maxCountOneItems )
+ break;
+ }
+
+ table.set(diff.getPath(), "NumberOfOccurrences", diff.getCount());
+ }
+
+ table.write(params.out);
+ }
+
+ protected static int longestCommonPostfix(String[] diffPath1, String[] diffPath2) {
+ int i = 0;
+ for ( ; i < diffPath1.length; i++ ) {
+ int j = diffPath1.length - i - 1;
+ if ( ! diffPath1[j].equals(diffPath2[j]) )
+ break;
+ }
+ return i;
+ }
+
+ /**
+ * parts is [A B C D]
+ * commonPostfixLength: how many parts are shared at the end, suppose its 2
+ * We want to create a string *.*.C.D
+ *
+ * @param parts
+ * @param commonPostfixLength
+ * @return
+ */
+ protected static String summarizedPath(String[] parts, int commonPostfixLength) {
+ int stop = parts.length - commonPostfixLength;
+ if ( stop > 0 ) parts = parts.clone();
+ for ( int i = 0; i < stop; i++ ) {
+ parts[i] = "*";
+ }
+ return Utils.join(".", parts);
+ }
+
+ // --------------------------------------------------------------------------------
+ //
+ // plugin manager
+ //
+ // --------------------------------------------------------------------------------
+
+ public void loadDiffableReaders() {
+ List> drClasses = new PluginManager( DiffableReader.class ).getPlugins();
+
+ logger.info("Loading diffable modules:");
+ for (Class extends DiffableReader> drClass : drClasses ) {
+ logger.info("\t" + drClass.getSimpleName());
+
+ try {
+ DiffableReader dr = drClass.newInstance();
+ readers.put(dr.getName(), dr);
+ } catch (InstantiationException e) {
+ throw new ReviewedStingException("Unable to instantiate module '" + drClass.getSimpleName() + "'");
+ } catch (IllegalAccessException e) {
+ throw new ReviewedStingException("Illegal access error when trying to instantiate '" + drClass.getSimpleName() + "'");
+ }
+ }
+ }
+
+ protected Map getReaders() {
+ return readers;
+ }
+
+ protected DiffableReader getReader(String name) {
+ return readers.get(name);
+ }
+
+ /**
+ * Returns a reader appropriate for this file, or null if no such reader exists
+ * @param file
+ * @return
+ */
+ public DiffableReader findReaderForFile(File file) {
+ for ( DiffableReader reader : readers.values() )
+ if (reader.canRead(file) )
+ return reader;
+
+ return null;
+ }
+
+ /**
+ * Returns true if reader appropriate for this file, or false if no such reader exists
+ * @param file
+ * @return
+ */
+ public boolean canRead(File file) {
+ return findReaderForFile(file) != null;
+ }
+
+
+ public DiffElement createDiffableFromFile(File file) {
+ return createDiffableFromFile(file, -1);
+ }
+
+ public DiffElement createDiffableFromFile(File file, int maxElementsToRead) {
+ DiffableReader reader = findReaderForFile(file);
+ if ( reader == null )
+ throw new UserException("Unsupported file type: " + file);
+ else
+ return reader.readFromFile(file, maxElementsToRead);
+ }
+
+ public static boolean simpleDiffFiles(File masterFile, File testFile, DiffEngine.SummaryReportParams params) {
+ DiffEngine diffEngine = new DiffEngine();
+
+ if ( diffEngine.canRead(masterFile) && diffEngine.canRead(testFile) ) {
+ DiffElement master = diffEngine.createDiffableFromFile(masterFile);
+ DiffElement test = diffEngine.createDiffableFromFile(testFile);
+ List diffs = diffEngine.diff(master, test);
+ diffEngine.reportSummarizedDifferences(diffs, params);
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public static class SummaryReportParams {
+ PrintStream out = System.out;
+ int maxItemsToDisplay = 0;
+ int maxCountOneItems = 0;
+ int minSumDiffToShow = 0;
+
+ public SummaryReportParams(PrintStream out, int maxItemsToDisplay, int maxCountOneItems, int minSumDiffToShow) {
+ this.out = out;
+ this.maxItemsToDisplay = maxItemsToDisplay;
+ this.maxCountOneItems = maxCountOneItems;
+ this.minSumDiffToShow = minSumDiffToShow;
+ }
+ }
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffNode.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffNode.java
new file mode 100644
index 000000000..2f48de2d3
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffNode.java
@@ -0,0 +1,248 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+import com.google.java.contract.Requires;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+
+import java.util.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 12:55 PM
+ *
+ * An interface that must be implemented to allow us to calculate differences
+ * between structured objects
+ */
+public class DiffNode extends DiffValue {
+ private Map getElementMap() {
+ return (Map)super.getValue();
+ }
+ private static Map emptyElements() { return new HashMap(); }
+
+ private DiffNode(Map elements) {
+ super(elements);
+ }
+
+ private DiffNode(DiffElement binding, Map elements) {
+ super(binding, elements);
+ }
+
+ // ---------------------------------------------------------------------------
+ //
+ // constructors
+ //
+ // ---------------------------------------------------------------------------
+
+ public static DiffNode rooted(String name) {
+ return empty(name, DiffElement.ROOT);
+ }
+
+ public static DiffNode empty(String name, DiffElement parent) {
+ DiffNode df = new DiffNode(emptyElements());
+ DiffElement elt = new DiffElement(name, parent, df);
+ df.setBinding(elt);
+ return df;
+ }
+
+ public static DiffNode empty(String name, DiffValue parent) {
+ return empty(name, parent.getBinding());
+ }
+
+ // ---------------------------------------------------------------------------
+ //
+ // accessors
+ //
+ // ---------------------------------------------------------------------------
+
+ @Override
+ public boolean isAtomic() { return false; }
+
+ public Collection getElementNames() {
+ return getElementMap().keySet();
+ }
+
+ public Collection getElements() {
+ return getElementMap().values();
+ }
+
+ private Collection getElements(boolean atomicOnly) {
+ List elts = new ArrayList();
+ for ( DiffElement elt : getElements() )
+ if ( (atomicOnly && elt.getValue().isAtomic()) || (! atomicOnly && elt.getValue().isCompound()))
+ elts.add(elt);
+ return elts;
+ }
+
+ public Collection getAtomicElements() {
+ return getElements(true);
+ }
+
+ public Collection getCompoundElements() {
+ return getElements(false);
+ }
+
+ /**
+ * Returns the element bound to name, or null if no such binding exists
+ * @param name
+ * @return
+ */
+ public DiffElement getElement(String name) {
+ return getElementMap().get(name);
+ }
+
+ /**
+ * Returns true if name is bound in this node
+ * @param name
+ * @return
+ */
+ public boolean hasElement(String name) {
+ return getElement(name) != null;
+ }
+
+ // ---------------------------------------------------------------------------
+ //
+ // add
+ //
+ // ---------------------------------------------------------------------------
+
+ @Requires("elt != null")
+ public void add(DiffElement elt) {
+ if ( getElementMap().containsKey(elt.getName()) )
+ throw new IllegalArgumentException("Attempting to rebind already existing binding: " + elt + " node=" + this);
+ getElementMap().put(elt.getName(), elt);
+ }
+
+ @Requires("elt != null")
+ public void add(DiffValue elt) {
+ add(elt.getBinding());
+ }
+
+ @Requires("elts != null")
+ public void add(Collection elts) {
+ for ( DiffElement e : elts )
+ add(e);
+ }
+
+ public void add(String name, Object value) {
+ add(new DiffElement(name, this.getBinding(), new DiffValue(value)));
+ }
+
+ public int size() {
+ int count = 0;
+ for ( DiffElement value : getElements() )
+ count += value.size();
+ return count;
+ }
+
+ // ---------------------------------------------------------------------------
+ //
+ // toString
+ //
+ // ---------------------------------------------------------------------------
+
+ @Override
+ public String toString() {
+ return toString(0);
+ }
+
+ @Override
+ public String toString(int offset) {
+ String off = offset > 0 ? Utils.dupString(' ', offset) : "";
+ StringBuilder b = new StringBuilder();
+
+ b.append("(").append("\n");
+ Collection atomicElts = getAtomicElements();
+ for ( DiffElement elt : atomicElts ) {
+ b.append(elt.toString(offset + 2)).append('\n');
+ }
+
+ for ( DiffElement elt : getCompoundElements() ) {
+ b.append(elt.toString(offset + 4)).append('\n');
+ }
+ b.append(off).append(")").append("\n");
+
+ return b.toString();
+ }
+
+ @Override
+ public String toOneLineString() {
+ StringBuilder b = new StringBuilder();
+
+ b.append('(');
+ List parts = new ArrayList();
+ for ( DiffElement elt : getElements() )
+ parts.add(elt.toOneLineString());
+ b.append(Utils.join(" ", parts));
+ b.append(')');
+
+ return b.toString();
+ }
+
+ // --------------------------------------------------------------------------------
+ //
+ // fromString and toOneLineString
+ //
+ // --------------------------------------------------------------------------------
+
+ public static DiffElement fromString(String tree) {
+ return fromString(tree, DiffElement.ROOT);
+ }
+
+ /**
+ * Doesn't support full tree structure parsing
+ * @param tree
+ * @param parent
+ * @return
+ */
+ private static DiffElement fromString(String tree, DiffElement parent) {
+ // X=(A=A B=B C=(D=D))
+ String[] parts = tree.split("=", 2);
+ if ( parts.length != 2 )
+ throw new ReviewedStingException("Unexpected tree structure: " + tree + " parts=" + parts);
+ String name = parts[0];
+ String value = parts[1];
+
+ if ( value.length() == 0 )
+ throw new ReviewedStingException("Illegal tree structure: " + value + " at " + tree);
+
+ if ( value.charAt(0) == '(' ) {
+ if ( ! value.endsWith(")") )
+ throw new ReviewedStingException("Illegal tree structure. Missing ): " + value + " at " + tree);
+ String subtree = value.substring(1, value.length()-1);
+ DiffNode rec = DiffNode.empty(name, parent);
+ String[] subParts = subtree.split(" ");
+ for ( String subPart : subParts ) {
+ rec.add(fromString(subPart, rec.getBinding()));
+ }
+ return rec.getBinding();
+ } else {
+ return new DiffValue(name, parent, value).getBinding();
+ }
+ }
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffObjectsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffObjectsWalker.java
new file mode 100644
index 000000000..ecb836af9
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffObjectsWalker.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.Requires;
+import org.broadinstitute.sting.gatk.walkers.RodWalker;
+
+import java.io.File;
+import java.io.PrintStream;
+import java.util.List;
+
+/**
+ * Compares two record-oriented files, itemizing specific difference between equivalent
+ * records in the two files. Reports both itemized and summarized differences.
+ * @author Mark DePristo
+ * @version 0.1
+ */
+@Requires(value={})
+public class DiffObjectsWalker extends RodWalker {
+ @Output(doc="File to which results should be written",required=true)
+ protected PrintStream out;
+
+ @Argument(fullName="maxObjectsToRead", shortName="motr", doc="Max. number of objects to read from the files. -1 [default] means unlimited", required=false)
+ int MAX_OBJECTS_TO_READ = -1;
+
+ @Argument(fullName="maxDiffs", shortName="M", doc="Max. number of diffs to process", required=false)
+ int MAX_DIFFS = 0;
+
+ @Argument(fullName="maxCount1Diffs", shortName="M1", doc="Max. number of diffs occuring exactly once in the file to process", required=false)
+ int MAX_COUNT1_DIFFS = 0;
+
+ @Argument(fullName="minCountForDiff", shortName="MCFD", doc="Min number of observations for a records to display", required=false)
+ int minCountForDiff = 1;
+
+ @Argument(fullName="showItemizedDifferences", shortName="SID", doc="Should we enumerate all differences between the files?", required=false)
+ boolean showItemizedDifferences = false;
+
+ @Argument(fullName="master", shortName="m", doc="Master file: expected results", required=true)
+ File masterFile;
+
+ @Argument(fullName="test", shortName="t", doc="Test file: new results to compare to the master file", required=true)
+ File testFile;
+
+ final DiffEngine diffEngine = new DiffEngine();
+
+ @Override
+ public void initialize() {
+
+ }
+
+ @Override
+ public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) {
+ return 0;
+ }
+
+ @Override
+ public Integer reduceInit() {
+ return 0;
+ }
+
+ @Override
+ public Integer reduce(Integer counter, Integer sum) {
+ return counter + sum;
+ }
+
+ @Override
+ public void onTraversalDone(Integer sum) {
+ out.printf("Reading master file %s%n", masterFile);
+ DiffElement master = diffEngine.createDiffableFromFile(masterFile, MAX_OBJECTS_TO_READ);
+ out.printf(" Read %d objects%n", master.size());
+ out.printf("Reading test file %s%n", testFile);
+ DiffElement test = diffEngine.createDiffableFromFile(testFile, MAX_OBJECTS_TO_READ);
+ out.printf(" Read %d objects%n", test.size());
+
+// out.printf("Master diff objects%n");
+// out.println(master.toString());
+// out.printf("Test diff objects%n");
+// out.println(test.toString());
+
+ List diffs = diffEngine.diff(master, test);
+ if ( showItemizedDifferences ) {
+ out.printf("Itemized results%n");
+ for ( SpecificDifference diff : diffs )
+ out.printf("DIFF: %s%n", diff.toString());
+ }
+
+ DiffEngine.SummaryReportParams params = new DiffEngine.SummaryReportParams(out, MAX_DIFFS, MAX_COUNT1_DIFFS, minCountForDiff);
+ diffEngine.reportSummarizedDifferences(diffs, params);
+ }
+}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffValue.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffValue.java
new file mode 100644
index 000000000..963191446
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffValue.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 12:55 PM
+ *
+ * An interface that must be implemented to allow us to calculate differences
+ * between structured objects
+ */
+public class DiffValue {
+ private DiffElement binding = null;
+ final private Object value;
+
+ public DiffValue(Object value) {
+ this.value = value;
+ }
+
+ public DiffValue(DiffElement binding, Object value) {
+ this.binding = binding;
+ this.value = value;
+ }
+
+ public DiffValue(DiffValue parent, Object value) {
+ this(parent.getBinding(), value);
+ }
+
+ public DiffValue(String name, DiffElement parent, Object value) {
+ this.binding = new DiffElement(name, parent, this);
+ this.value = value;
+ }
+
+ public DiffValue(String name, DiffValue parent, Object value) {
+ this(name, parent.getBinding(), value);
+ }
+
+ public DiffElement getBinding() {
+ return binding;
+ }
+
+ protected void setBinding(DiffElement binding) {
+ this.binding = binding;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public String toString() {
+ return getValue().toString();
+ }
+
+ public String toString(int offset) {
+ return toString();
+ }
+
+ public String toOneLineString() {
+ return getValue().toString();
+ }
+
+ public boolean isAtomic() { return true; }
+ public boolean isCompound() { return ! isAtomic(); }
+ public int size() { return 1; }
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffableReader.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffableReader.java
new file mode 100644
index 000000000..a117206f1
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/DiffableReader.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Requires;
+
+import java.io.File;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 1:09 PM
+ *
+ * Interface for readers creating diffable objects from a file
+ */
+public interface DiffableReader {
+ @Ensures("result != null")
+ /**
+ * Return the name of this DiffableReader type. For example, the VCF reader returns 'VCF' and the
+ * bam reader 'BAM'
+ */
+ public String getName();
+
+ @Ensures("result != null")
+ @Requires("file != null")
+ /**
+ * Read up to maxElementsToRead DiffElements from file, and return them.
+ */
+ public DiffElement readFromFile(File file, int maxElementsToRead);
+
+ /**
+ * Return true if the file can be read into DiffElement objects with this reader. This should
+ * be uniquely true/false for all readers, as the system will use the first reader that can read the
+ * file. This routine should never throw an exception. The VCF reader, for example, looks at the
+ * first line of the file for the ##format=VCF4.1 header, and the BAM reader for the BAM_MAGIC value
+ * @param file
+ * @return
+ */
+ @Requires("file != null")
+ public boolean canRead(File file);
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/Difference.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/Difference.java
new file mode 100644
index 000000000..efc6ef160
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/Difference.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+public class Difference implements Comparable {
+ final String path; // X.Y.Z
+ final String[] parts;
+ int count = 0;
+
+ public Difference(String path) {
+ this.path = path;
+ this.parts = DiffEngine.diffNameToPath(path);
+ }
+
+ public String[] getParts() {
+ return parts;
+ }
+
+ public void incCount() { count++; }
+
+ public int getCount() {
+ return count;
+ }
+
+ /**
+ * The fully qualified path object A.B.C etc
+ * @return
+ */
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * @return the length of the parts of this summary
+ */
+ public int length() {
+ return this.parts.length;
+ }
+
+ /**
+ * Returns true if the string parts matches this summary. Matches are
+ * must be equal() everywhere where this summary isn't *.
+ * @param otherParts
+ * @return
+ */
+ public boolean matches(String[] otherParts) {
+ if ( otherParts.length != length() )
+ return false;
+
+ // TODO optimization: can start at right most non-star element
+ for ( int i = 0; i < length(); i++ ) {
+ String part = parts[i];
+ if ( ! part.equals("*") && ! part.equals(otherParts[i]) )
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("%s:%d", getPath(), getCount());
+ }
+
+ @Override
+ public int compareTo(Difference other) {
+ // sort first highest to lowest count, then by lowest to highest path
+ int countCmp = Integer.valueOf(count).compareTo(other.count);
+ return countCmp != 0 ? -1 * countCmp : path.compareTo(other.path);
+ }
+
+
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/SpecificDifference.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/SpecificDifference.java
new file mode 100644
index 000000000..2fe9b47f8
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/SpecificDifference.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 12:53 PM
+ *
+ * Represents a specific difference between two specific DiffElements
+ */
+public class SpecificDifference extends Difference {
+ DiffElement master, test;
+
+ public SpecificDifference(DiffElement master, DiffElement test) {
+ super(createName(master, test));
+ if ( master == null && test == null ) throw new IllegalArgumentException("Master and test both cannot be null");
+ this.master = master;
+ this.test = test;
+ }
+
+ public String toString() {
+ return String.format("%s:%s!=%s",
+ getPath(),
+ getOneLineString(master),
+ getOneLineString(test));
+ }
+
+ private static String createName(DiffElement master, DiffElement test) {
+ return (master == null ? test : master).fullyQualifiedName();
+ }
+
+ private static String getOneLineString(DiffElement elt) {
+ return elt == null ? "MISSING" : elt.getValue().toOneLineString();
+ }
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/VCFDiffableReader.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/VCFDiffableReader.java
new file mode 100644
index 000000000..4e44578c7
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/diffengine/VCFDiffableReader.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2011, The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.diffengine;
+
+import org.broad.tribble.readers.AsciiLineReader;
+import org.broad.tribble.readers.LineReader;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Map;
+
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: depristo
+ * Date: 7/4/11
+ * Time: 1:09 PM
+ *
+ * Class implementing diffnode reader for VCF
+ */
+public class VCFDiffableReader implements DiffableReader {
+ @Override
+ public String getName() { return "VCF"; }
+
+ @Override
+ public DiffElement readFromFile(File file, int maxElementsToRead) {
+ DiffNode root = DiffNode.rooted(file.getName());
+ try {
+ LineReader lineReader = new AsciiLineReader(new FileInputStream(file));
+ VCFCodec vcfCodec = new VCFCodec();
+
+ // must be read as state is stored in reader itself
+ VCFHeader header = (VCFHeader)vcfCodec.readHeader(lineReader);
+ for ( VCFHeaderLine headerLine : header.getMetaData() ) {
+ String key = headerLine.getKey();
+ if ( headerLine instanceof VCFNamedHeaderLine )
+ key += "_" + ((VCFNamedHeaderLine) headerLine).getName();
+ root.add(key, headerLine.toString());
+ }
+
+ String line = lineReader.readLine();
+ int count = 0;
+ while ( line != null ) {
+ if ( count++ > maxElementsToRead && maxElementsToRead != -1)
+ break;
+
+ VariantContext vc = (VariantContext)vcfCodec.decode(line);
+ String name = vc.getChr() + ":" + vc.getStart();
+ DiffNode vcRoot = DiffNode.empty(name, root);
+
+ // add fields
+ vcRoot.add("CHROM", vc.getChr());
+ vcRoot.add("POS", vc.getStart());
+ vcRoot.add("ID", vc.hasID() ? vc.getID() : VCFConstants.MISSING_VALUE_v4);
+ vcRoot.add("REF", vc.getReference());
+ vcRoot.add("ALT", vc.getAlternateAlleles());
+ vcRoot.add("QUAL", vc.hasNegLog10PError() ? vc.getNegLog10PError() * 10 : VCFConstants.MISSING_VALUE_v4);
+ vcRoot.add("FILTER", vc.getFilters());
+
+ // add info fields
+ for (Map.Entry attribute : vc.getAttributes().entrySet()) {
+ if ( ! attribute.getKey().startsWith("_") && ! attribute.getKey().equals(VariantContext.ID_KEY))
+ vcRoot.add(attribute.getKey(), attribute.getValue());
+ }
+
+ for (Genotype g : vc.getGenotypes().values() ) {
+ DiffNode gRoot = DiffNode.empty(g.getSampleName(), vcRoot);
+ gRoot.add("GT", g.getGenotypeString());
+ gRoot.add("GQ", g.hasNegLog10PError() ? g.getNegLog10PError() * 10 : VCFConstants.MISSING_VALUE_v4 );
+
+ for (Map.Entry attribute : g.getAttributes().entrySet()) {
+ if ( ! attribute.getKey().startsWith("_") )
+ gRoot.add(attribute.getKey(), attribute.getValue());
+ }
+
+ vcRoot.add(gRoot);
+ }
+
+ root.add(vcRoot);
+ line = lineReader.readLine();
+ }
+
+ lineReader.close();
+ } catch ( IOException e ) {
+ return null;
+ }
+
+ return root.getBinding();
+ }
+
+ @Override
+ public boolean canRead(File file) {
+ try {
+ final String VCF4_HEADER = "##fileformat=VCFv4";
+ char[] buff = new char[VCF4_HEADER.length()];
+ new FileReader(file).read(buff, 0, VCF4_HEADER.length());
+ String firstLine = new String(buff);
+ return firstLine.startsWith(VCF4_HEADER);
+ } catch ( IOException e ) {
+ return false;
+ }
+ }
+}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaAlternateReferenceWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaAlternateReferenceWalker.java
index 828d39717..efc101618 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaAlternateReferenceWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaAlternateReferenceWalker.java
@@ -25,13 +25,13 @@
package org.broadinstitute.sting.gatk.walkers.fasta;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.collections.Pair;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.Collection;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaReferenceWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaReferenceWalker.java
index 6be2336c0..2dbfc76ff 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaReferenceWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/fasta/FastaReferenceWalker.java
@@ -25,16 +25,15 @@
package org.broadinstitute.sting.gatk.walkers.fasta;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RefWalker;
import org.broadinstitute.sting.gatk.walkers.WalkerName;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.collections.Pair;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
import java.io.PrintStream;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/ClusteredSnps.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/ClusteredSnps.java
index b31526987..2c009f7f2 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/ClusteredSnps.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/ClusteredSnps.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.filters;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
public class ClusteredSnps {
private GenomeLocParser genomeLocParser;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContext.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContext.java
index c3849e240..ede19746a 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContext.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContext.java
@@ -25,8 +25,8 @@
package org.broadinstitute.sting.gatk.walkers.filters;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
public class FiltrationContext {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContextWindow.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContextWindow.java
index 225cdecc3..d7c0dd4d5 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContextWindow.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/FiltrationContextWindow.java
@@ -27,7 +27,9 @@ package org.broadinstitute.sting.gatk.walkers.filters;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
/**
* A window of variants surrounding the current variant being investigated
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java
index 884d0ac24..6c023573a 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java
@@ -25,21 +25,20 @@
package org.broadinstitute.sting.gatk.walkers.filters;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/AlleleFrequencyCalculationModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/AlleleFrequencyCalculationModel.java
index 47be7e6fe..83a8ce7d7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/AlleleFrequencyCalculationModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/AlleleFrequencyCalculationModel.java
@@ -26,14 +26,15 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.PrintStream;
-import java.util.*;
+import java.util.Map;
+import java.util.Set;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidIndelGenotypePriors.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidIndelGenotypePriors.java
index 22c9dcf91..696a74de8 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidIndelGenotypePriors.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidIndelGenotypePriors.java
@@ -4,8 +4,6 @@ import org.broadinstitute.sting.gatk.walkers.indels.HaplotypeIndelErrorModel;
import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.genotype.DiploidGenotype;
-import java.util.Arrays;
-
/**
* Created by IntelliJ IDEA.
* User: delangel
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidSNPGenotypeLikelihoods.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidSNPGenotypeLikelihoods.java
index ab075eaf2..2014801e4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidSNPGenotypeLikelihoods.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidSNPGenotypeLikelihoods.java
@@ -26,13 +26,14 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
import net.sf.samtools.SAMUtils;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.pileup.FragmentPileup;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
-import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.genotype.DiploidGenotype;
-import org.broadinstitute.sting.utils.sam.ReadUtils;
+import org.broadinstitute.sting.utils.pileup.FragmentPileup;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import static java.lang.Math.log10;
import static java.lang.Math.pow;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/ExactAFCalculationModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/ExactAFCalculationModel.java
index 89504b371..5c27bc943 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/ExactAFCalculationModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/ExactAFCalculationModel.java
@@ -26,17 +26,22 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
import org.apache.log4j.Logger;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.SimpleTimer;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.*;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.utils.exceptions.UserException;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
-import java.util.*;
import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
public class ExactAFCalculationModel extends AlleleFrequencyCalculationModel {
//
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeLikelihoodsCalculationModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeLikelihoodsCalculationModel.java
index 3902a0b7f..8261cd588 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeLikelihoodsCalculationModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeLikelihoodsCalculationModel.java
@@ -30,11 +30,11 @@ import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GridSearchAFEstimation.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GridSearchAFEstimation.java
index c4e315f68..10b646d63 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GridSearchAFEstimation.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GridSearchAFEstimation.java
@@ -26,18 +26,18 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
import java.io.PrintStream;
+import java.util.*;
public class GridSearchAFEstimation extends AlleleFrequencyCalculationModel {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java
index 1f430548b..be2039780 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java
@@ -25,16 +25,14 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
-import net.sf.samtools.SAMRecord;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.indels.HaplotypeIndelErrorModel;
import org.broadinstitute.sting.gatk.walkers.indels.PairHMMIndelErrorModel;
-import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.StingException;
import org.broadinstitute.sting.utils.genotype.Haplotype;
@@ -42,11 +40,10 @@ import org.broadinstitute.sting.utils.pileup.ExtendedEventPileupElement;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
import org.broadinstitute.sting.utils.sam.ReadUtils;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/MultiallelicGenotypeLikelihoods.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/MultiallelicGenotypeLikelihoods.java
index 2cf149fd0..3652763de 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/MultiallelicGenotypeLikelihoods.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/MultiallelicGenotypeLikelihoods.java
@@ -1,7 +1,7 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.exceptions.StingException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
import java.util.ArrayList;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SNPGenotypeLikelihoodsCalculationModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SNPGenotypeLikelihoodsCalculationModel.java
index 9f4d4182f..3e3cd128b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SNPGenotypeLikelihoodsCalculationModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SNPGenotypeLikelihoodsCalculationModel.java
@@ -25,23 +25,25 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.baq.BAQ;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.StingException;
import org.broadinstitute.sting.utils.genotype.DiploidGenotype;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.pileup.PileupElement;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.apache.log4j.Logger;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
public class SNPGenotypeLikelihoodsCalculationModel extends GenotypeLikelihoodsCalculationModel {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCalcLikelihoods.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCalcLikelihoods.java
index cf1c57a05..22c3081a3 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCalcLikelihoods.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCalcLikelihoods.java
@@ -25,8 +25,6 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.commandline.ArgumentCollection;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.DownsampleType;
@@ -36,8 +34,12 @@ import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.SampleUtils;
import org.broadinstitute.sting.utils.baq.BAQ;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.TreeSet;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCallVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCallVariants.java
index 1533e8777..68d8f9b54 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCallVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UGCallVariants.java
@@ -24,19 +24,19 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.commandline.ArgumentCollection;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java
index 1045ca371..2b25df4aa 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java
@@ -27,7 +27,6 @@ package org.broadinstitute.sting.gatk.walkers.genotyper;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Hidden;
-import org.broadinstitute.sting.commandline.Input;
import java.io.File;
@@ -92,25 +91,31 @@ public class UnifiedArgumentCollection {
@Argument(fullName = "indel_heterozygosity", shortName = "indelHeterozygosity", doc = "Heterozygosity for indel calling", required = false)
public double INDEL_HETEROZYGOSITY = 1.0/8000;
+ @Hidden
@Argument(fullName = "indelGapContinuationPenalty", shortName = "indelGCP", doc = "Indel gap continuation penalty", required = false)
public double INDEL_GAP_CONTINUATION_PENALTY = 10.0;
+ @Hidden
@Argument(fullName = "indelGapOpenPenalty", shortName = "indelGOP", doc = "Indel gap open penalty", required = false)
public double INDEL_GAP_OPEN_PENALTY = 45.0;
+ @Hidden
@Argument(fullName = "indelHaplotypeSize", shortName = "indelHSize", doc = "Indel haplotype size", required = false)
public int INDEL_HAPLOTYPE_SIZE = 80;
+ @Hidden
@Argument(fullName = "doContextDependentGapPenalties", shortName = "doCDP", doc = "Vary gap penalties by context", required = false)
public boolean DO_CONTEXT_DEPENDENT_PENALTIES = true;
//gdebug+
- @Hidden
// experimental arguments, NOT TO BE USED BY ANYONE WHOSE INITIALS AREN'T GDA!!!
+ @Hidden
@Argument(fullName = "getGapPenaltiesFromData", shortName = "dataGP", doc = "Vary gap penalties by context - EXPERIMENTAL, DO NO USE", required = false)
public boolean GET_GAP_PENALTIES_FROM_DATA = false;
+ @Hidden
@Argument(fullName="indel_recal_file", shortName="recalFile", required=false, doc="Filename for the input covariates table recalibration .csv file - EXPERIMENTAL, DO NO USE")
public File INDEL_RECAL_FILE = new File("indel.recal_data.csv");
+ @Hidden
@Argument(fullName = "indelDebug", shortName = "indelDebug", doc = "Output indel debug info", required = false)
public boolean OUTPUT_DEBUG_INDEL_INFO = false;
@Hidden
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java
index 7a765c602..2a0338bca 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java
@@ -25,22 +25,25 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
-import org.broadinstitute.sting.gatk.contexts.*;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.ArgumentCollection;
+import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.DownsampleType;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.filters.BadMateFilter;
+import org.broadinstitute.sting.gatk.filters.MappingQualityUnavailableReadFilter;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.gatk.walkers.annotator.VariantAnnotatorEngine;
-import org.broadinstitute.sting.gatk.DownsampleType;
-import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.SampleUtils;
import org.broadinstitute.sting.utils.baq.BAQ;
-import org.broadinstitute.sting.commandline.*;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
-import java.util.*;
import java.io.PrintStream;
+import java.util.*;
/**
@@ -48,7 +51,7 @@ import java.io.PrintStream;
* multi-sample data. The user can choose from several different incorporated calculation models.
*/
@BAQMode(QualityMode = BAQ.QualityMode.ADD_TAG, ApplicationTime = BAQ.ApplicationTime.ON_INPUT)
-@ReadFilters( {BadMateFilter.class} )
+@ReadFilters( {BadMateFilter.class, MappingQualityUnavailableReadFilter.class} )
@Reference(window=@Window(start=-200,stop=200))
@By(DataSource.REFERENCE)
@Downsample(by=DownsampleType.BY_SAMPLE, toCoverage=250)
@@ -158,7 +161,7 @@ public class UnifiedGenotyper extends LocusWalker getSupportedHeaderStrings() {
+ Set result = new HashSet();
+ result.add(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_KEY, 1, VCFHeaderLineType.String, "Genotype"));
+ result.add(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_QUALITY_KEY, 1, VCFHeaderLineType.Float, "Genotype Quality"));
+ result.add(new VCFFormatHeaderLine(VCFConstants.DEPTH_KEY, 1, VCFHeaderLineType.Integer, "Read Depth (only filtered reads used for calling)"));
+ result.add(new VCFFormatHeaderLine(VCFConstants.PHRED_GENOTYPE_LIKELIHOODS_KEY, VCFHeaderLineCount.G, VCFHeaderLineType.Integer, "Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification"));
+
+ return result;
+ }
+
/**
* Compute at a given locus.
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java
index 4c9080884..a10897172 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyperEngine.java
@@ -25,22 +25,24 @@
package org.broadinstitute.sting.gatk.walkers.genotyper;
+import com.google.java.contract.Requires;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.GenotypeLikelihoods;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.annotator.VariantAnnotatorEngine;
import org.broadinstitute.sting.utils.*;
import org.broadinstitute.sting.utils.baq.BAQ;
-import org.broadinstitute.sting.utils.pileup.*;
import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
-import com.google.java.contract.*;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.GenotypeLikelihoods;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.PrintStream;
import java.util.*;
@@ -634,17 +636,27 @@ public class UnifiedGenotyperEngine {
if (vcInput == null)
return null;
- if (vcInput.isSNP() && ( UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.BOTH || UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.SNP))
- return GenotypeLikelihoodsCalculationModel.Model.SNP;
+ // todo - no support to genotype MNP's yet
+ if (vcInput.isMNP())
+ return null;
+
+ if (vcInput.isSNP()) {
+ if (( UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.BOTH || UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.SNP))
+ return GenotypeLikelihoodsCalculationModel.Model.SNP;
+ else
+ // ignore SNP's if user chose INDEL mode
+ return null;
+ }
else if ((vcInput.isIndel() || vcInput.isMixed()) && (UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.BOTH || UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.INDEL))
return GenotypeLikelihoodsCalculationModel.Model.INDEL;
- } else {
+ }
+ else {
// todo - this assumes SNP's take priority when BOTH is selected, should do a smarter way once extended events are removed
if( UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.BOTH || UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.SNP)
return GenotypeLikelihoodsCalculationModel.Model.SNP;
else if (UAC.GLmodel == GenotypeLikelihoodsCalculationModel.Model.INDEL)
return GenotypeLikelihoodsCalculationModel.Model.INDEL;
- }
+ }
}
return null;
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/ConstrainedMateFixingManager.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/ConstrainedMateFixingManager.java
index aebb0e3eb..adb7c4c38 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/ConstrainedMateFixingManager.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/ConstrainedMateFixingManager.java
@@ -1,7 +1,10 @@
package org.broadinstitute.sting.gatk.walkers.indels;
import net.sf.picard.sam.SamPairUtil;
-import net.sf.samtools.*;
+import net.sf.samtools.SAMFileWriter;
+import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMRecordComparator;
+import net.sf.samtools.SAMRecordCoordinateComparator;
import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
@@ -113,9 +116,10 @@ public class ConstrainedMateFixingManager {
HashMap forMateMatching = new HashMap();
TreeSet waitingReads = new TreeSet(comparer);
- private T remove(TreeSet treeSet) {
- final T first = treeSet.first();
- treeSet.remove(first);
+ private SAMRecord remove(TreeSet treeSet) {
+ final SAMRecord first = treeSet.first();
+ if ( !treeSet.remove(first) )
+ throw new UserException("Error caching SAM record " + first.getReadName() + ", which is usually caused by malformed SAM/BAM files in which multiple identical copies of a read are present.");
return first;
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/HaplotypeIndelErrorModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/HaplotypeIndelErrorModel.java
index 7617aa9de..e68aa31e0 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/HaplotypeIndelErrorModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/HaplotypeIndelErrorModel.java
@@ -25,21 +25,16 @@
package org.broadinstitute.sting.gatk.walkers.indels;
-import net.sf.samtools.AlignmentBlock;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.gatk.walkers.genotyper.ExactAFCalculationModel;
import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.QualityUtils;
-import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.genotype.Haplotype;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.sam.ReadUtils;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
import java.util.Arrays;
import java.util.HashMap;
-import java.util.List;
public class HaplotypeIndelErrorModel {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java
index a53665d64..61f21c488 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java
@@ -25,39 +25,41 @@
package org.broadinstitute.sting.gatk.walkers.indels;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
import net.sf.samtools.*;
import net.sf.samtools.util.RuntimeIOException;
-import net.sf.samtools.util.StringUtil;
import net.sf.samtools.util.SequenceUtil;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.commandline.*;
+import net.sf.samtools.util.StringUtil;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Hidden;
+import org.broadinstitute.sting.commandline.Input;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.arguments.ValidationExclusion;
-import org.broadinstitute.sting.gatk.datasources.reads.SAMReaderID;
-import org.broadinstitute.sting.gatk.io.stubs.SAMFileWriterStub;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.exceptions.StingException;
-import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
-import org.broadinstitute.sting.utils.interval.IntervalUtils;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.refdata.*;
-import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
-import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.walkers.BAQMode;
import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.gatk.refdata.VariantContextAdaptors;
+import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
+import org.broadinstitute.sting.gatk.walkers.BAQMode;
+import org.broadinstitute.sting.gatk.walkers.ReadWalker;
import org.broadinstitute.sting.utils.*;
import org.broadinstitute.sting.utils.baq.BAQ;
+import org.broadinstitute.sting.utils.collections.Pair;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.StingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.fasta.CachingIndexedFastaSequenceFile;
import org.broadinstitute.sting.utils.interval.IntervalFileMergingIterator;
+import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
+import org.broadinstitute.sting.utils.interval.IntervalUtils;
import org.broadinstitute.sting.utils.interval.NwayIntervalMergingIterator;
+import org.broadinstitute.sting.utils.sam.AlignmentUtils;
import org.broadinstitute.sting.utils.sam.NWaySAMFileWriter;
+import org.broadinstitute.sting.utils.sam.ReadUtils;
import org.broadinstitute.sting.utils.text.TextFormattingUtils;
import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.utils.sam.AlignmentUtils;
-import org.broadinstitute.sting.utils.sam.ReadUtils;
-import org.broadinstitute.sting.utils.collections.Pair;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/LeftAlignIndels.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/LeftAlignIndels.java
index 010e0cf6f..af8051334 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/LeftAlignIndels.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/LeftAlignIndels.java
@@ -25,8 +25,10 @@
package org.broadinstitute.sting.gatk.walkers.indels;
-import net.sf.samtools.*;
-import org.broadinstitute.sting.commandline.*;
+import net.sf.samtools.Cigar;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/PairHMMIndelErrorModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/PairHMMIndelErrorModel.java
index ab7ae4184..60262d6f4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/PairHMMIndelErrorModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/PairHMMIndelErrorModel.java
@@ -28,30 +28,25 @@ package org.broadinstitute.sting.gatk.walkers.indels;
import net.sf.samtools.Cigar;
import net.sf.samtools.CigarElement;
import net.sf.samtools.CigarOperator;
-import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-/*import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.Covariate;
-import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.RecalDataManager;
-import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.RecalDatum;
-import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.RecalibrationArgumentCollection;
-*/import org.broadinstitute.sting.utils.MathUtils;
-import org.broadinstitute.sting.utils.QualityUtils;
-import org.broadinstitute.sting.utils.classloader.PluginManager;
-import org.broadinstitute.sting.utils.collections.NestedHashMap;
-import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.genotype.Haplotype;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
import org.broadinstitute.sting.utils.sam.ReadUtils;
-import org.broadinstitute.sting.utils.text.XReadLines;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.*;
-import java.util.regex.Pattern;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+
+/*import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.Covariate;
+import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.RecalDataManager;
+import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.RecalDatum;
+import org.broadinstitute.sting.oneoffprojects.walkers.IndelCountCovariates.RecalibrationArgumentCollection;
+*/
public class PairHMMIndelErrorModel {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignedReadCounter.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignedReadCounter.java
index fc196e712..2c89b907b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignedReadCounter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignedReadCounter.java
@@ -25,19 +25,23 @@
package org.broadinstitute.sting.gatk.walkers.indels;
-import net.sf.samtools.*;
-import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.refdata.*;
-import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.gatk.filters.BadMateFilter;
-import org.broadinstitute.sting.utils.*;
-import org.broadinstitute.sting.utils.interval.IntervalFileMergingIterator;
-import org.broadinstitute.sting.utils.sam.ReadUtils;
+import net.sf.samtools.CigarElement;
+import net.sf.samtools.CigarOperator;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.filters.BadMateFilter;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.By;
+import org.broadinstitute.sting.gatk.walkers.DataSource;
+import org.broadinstitute.sting.gatk.walkers.ReadWalker;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.interval.IntervalFileMergingIterator;
+import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
+import org.broadinstitute.sting.utils.sam.ReadUtils;
import java.io.File;
-import java.util.*;
+import java.util.Iterator;
@By(DataSource.READS)
// walker to count realigned reads
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignerTargetCreator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignerTargetCreator.java
index 048dbd8cb..488e37f26 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignerTargetCreator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/RealignerTargetCreator.java
@@ -25,32 +25,32 @@
package org.broadinstitute.sting.gatk.walkers.indels;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.filters.BadCigarFilter;
-import org.broadinstitute.sting.gatk.filters.Platform454Filter;
-import org.broadinstitute.sting.gatk.filters.ZeroMappingQualityReadFilter;
import org.broadinstitute.sting.gatk.filters.BadMateFilter;
+import org.broadinstitute.sting.gatk.filters.MappingQualityZeroReadFilter;
+import org.broadinstitute.sting.gatk.filters.Platform454Filter;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.baq.BAQ;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.pileup.ExtendedEventPileupElement;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedExtendedEventPileup;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.ArrayList;
import java.io.PrintStream;
+import java.util.ArrayList;
/**
* Emits intervals for the Local Indel Realigner to target for cleaning. Ignores 454 reads, MQ0 reads, and reads with consecutive indel operators in the CIGAR string.
*/
-@ReadFilters({Platform454Filter.class, ZeroMappingQualityReadFilter.class, BadCigarFilter.class})
+@ReadFilters({Platform454Filter.class, MappingQualityZeroReadFilter.class, BadCigarFilter.class})
@Reference(window=@Window(start=-1,stop=50))
@Allows(value={DataSource.READS, DataSource.REFERENCE})
@By(DataSource.REFERENCE)
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SAMRecordCoordinateComparatorWithUnmappedReads.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SAMRecordCoordinateComparatorWithUnmappedReads.java
index 1fe3fdd04..3854a4a8c 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SAMRecordCoordinateComparatorWithUnmappedReads.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SAMRecordCoordinateComparatorWithUnmappedReads.java
@@ -23,7 +23,8 @@
*/
package org.broadinstitute.sting.gatk.walkers.indels;
-import net.sf.samtools.*;
+import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMRecordCoordinateComparator;
/**
* Extends Picard's Comparator for sorting SAMRecords by coordinate. This one actually deals with unmapped reads
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SomaticIndelDetectorWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SomaticIndelDetectorWalker.java
index c2953d1d7..443e6e9f2 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SomaticIndelDetectorWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/indels/SomaticIndelDetectorWalker.java
@@ -25,15 +25,21 @@
package org.broadinstitute.sting.gatk.walkers.indels;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
+import net.sf.samtools.*;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Hidden;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.commandline.Tags;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.datasources.reads.SAMReaderID;
import org.broadinstitute.sting.gatk.datasources.reference.ReferenceDataSource;
-import org.broadinstitute.sting.gatk.filters.*;
-import org.broadinstitute.sting.gatk.refdata.*;
+import org.broadinstitute.sting.gatk.filters.MappingQualityZeroReadFilter;
+import org.broadinstitute.sting.gatk.filters.Platform454Filter;
+import org.broadinstitute.sting.gatk.filters.PlatformUnitFilter;
+import org.broadinstitute.sting.gatk.filters.PlatformUnitFilterHelper;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.gatk.refdata.SeekableRODIterator;
+import org.broadinstitute.sting.gatk.refdata.Transcript;
import org.broadinstitute.sting.gatk.refdata.features.refseq.RefSeqCodec;
import org.broadinstitute.sting.gatk.refdata.features.refseq.RefSeqFeature;
import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack;
@@ -42,22 +48,22 @@ import org.broadinstitute.sting.gatk.refdata.utils.LocationAwareSeekableRODItera
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
import org.broadinstitute.sting.gatk.walkers.ReadFilters;
import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.*;
-import org.broadinstitute.sting.utils.interval.IntervalUtils;
-import org.broadinstitute.sting.utils.interval.IntervalFileMergingIterator;
-import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
-import org.broadinstitute.sting.utils.interval.OverlappingIntervalIterator;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.exceptions.StingException;
-import org.broadinstitute.sting.utils.sam.AlignmentUtils;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocSortedSet;
+import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.collections.CircularArray;
import org.broadinstitute.sting.utils.collections.PrimitivePair;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
-import org.broadinstitute.sting.commandline.Hidden;
-
-import net.sf.samtools.*;
+import org.broadinstitute.sting.utils.exceptions.StingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.interval.IntervalFileMergingIterator;
+import org.broadinstitute.sting.utils.interval.IntervalMergingRule;
+import org.broadinstitute.sting.utils.interval.IntervalUtils;
+import org.broadinstitute.sting.utils.interval.OverlappingIntervalIterator;
+import org.broadinstitute.sting.utils.sam.AlignmentUtils;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.*;
import java.util.*;
@@ -72,7 +78,7 @@ import java.util.*;
* if first bam has coverage at the site but no indication for an indel. In the --somatic mode, BED output contains
* only somatic calls, while --verbose output contains all calls annotated with GERMLINE/SOMATIC keywords.
*/
-@ReadFilters({Platform454Filter.class, ZeroMappingQualityReadFilter.class, PlatformUnitFilter.class})
+@ReadFilters({Platform454Filter.class, MappingQualityZeroReadFilter.class, PlatformUnitFilter.class})
public class SomaticIndelDetectorWalker extends ReadWalker {
// @Output
// PrintStream out;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AllelePair.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AllelePair.java
index 869edf784..cb123c868 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AllelePair.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AllelePair.java
@@ -23,9 +23,9 @@
*/
package org.broadinstitute.sting.gatk.walkers.phasing;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.ArrayList;
import java.util.List;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AnnotateMNPsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AnnotateMNPsWalker.java
index 81d9b4ddb..9aa370d3f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AnnotateMNPsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/AnnotateMNPsWalker.java
@@ -24,14 +24,10 @@
package org.broadinstitute.sting.gatk.walkers.phasing;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.features.annotator.AnnotatorInputTableFeature;
@@ -41,9 +37,12 @@ import org.broadinstitute.sting.gatk.walkers.annotator.genomicannotator.AminoAci
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeMNPsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeMNPsWalker.java
index 709bc44ce..5bd438605 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeMNPsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeMNPsWalker.java
@@ -24,10 +24,6 @@
package org.broadinstitute.sting.gatk.walkers.phasing;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
@@ -35,7 +31,11 @@ import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.walkers.*;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesVCFWriter.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesVCFWriter.java
index abced442e..b0491a281 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesVCFWriter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesVCFWriter.java
@@ -24,20 +24,19 @@
package org.broadinstitute.sting.gatk.walkers.phasing;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
import net.sf.picard.reference.ReferenceSequenceFile;
import org.apache.log4j.Logger;
+import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.fasta.CachingIndexedFastaSequenceFile;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.MathUtils;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.fasta.CachingIndexedFastaSequenceFile;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesWalker.java
index ec6f5c648..be15d4541 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/MergeSegregatingAlternateAllelesWalker.java
@@ -24,20 +24,22 @@
package org.broadinstitute.sting.gatk.walkers.phasing;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Hidden;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java
index e59b29502..9702fd18c 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/ReadBackedPhasingWalker.java
@@ -23,27 +23,28 @@
*/
package org.broadinstitute.sting.gatk.walkers.phasing;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Hidden;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
-import org.broadinstitute.sting.gatk.filters.ZeroMappingQualityReadFilter;
+import org.broadinstitute.sting.gatk.filters.MappingQualityZeroReadFilter;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.DisjointSet;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.HasGenomeLocation;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.codecs.vcf.SortingVCFWriter;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
import org.broadinstitute.sting.utils.pileup.PileupElement;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.*;
import java.util.*;
@@ -58,7 +59,7 @@ import static org.broadinstitute.sting.utils.codecs.vcf.VCFUtils.getVCFHeadersFr
@Requires(value = {DataSource.READS, DataSource.REFERENCE}, referenceMetaData = @RMD(name = "variant", type = ReferenceOrderedDatum.class))
@By(DataSource.READS)
-@ReadFilters({ZeroMappingQualityReadFilter.class})
+@ReadFilters({MappingQualityZeroReadFilter.class})
// Filter out all reads with zero mapping quality
public class ReadBackedPhasingWalker extends RodWalker {
@@ -220,6 +221,9 @@ public class ReadBackedPhasingWalker extends RodWalker KEYS_TO_KEEP_IN_REDUCED_VCF = new HashSet(Arrays.asList(PQ_KEY));
private VariantContext reduceVCToSamples(VariantContext vc, List samplesToPhase) {
// for ( String sample : samplesToPhase )
@@ -1105,7 +1109,7 @@ public class ReadBackedPhasingWalker extends RodWalker(vc.getGenotypes()); // since vc.getGenotypes() is unmodifiable
this.negLog10PError = vc.getNegLog10PError();
- this.filters = vc.getFilters();
+ this.filters = vc.filtersWereApplied() ? vc.getFilters() : null;
this.attributes = new HashMap(vc.getAttributes());
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/SNPallelePair.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/SNPallelePair.java
index db1f888a1..153c4a23f 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/SNPallelePair.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/SNPallelePair.java
@@ -23,10 +23,10 @@
*/
package org.broadinstitute.sting.gatk.walkers.phasing;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
public class SNPallelePair extends AllelePair {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/WriteVCF.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/WriteVCF.java
index f82e48abd..2851ace0d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/WriteVCF.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/phasing/WriteVCF.java
@@ -24,9 +24,9 @@
package org.broadinstitute.sting.gatk.walkers.phasing;
import org.apache.log4j.Logger;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
public class WriteVCF {
public static void writeVCF(VariantContext vc, VCFWriter writer, Logger logger) {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountIntervals.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountIntervals.java
index feb5f62af..2bdd4558f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountIntervals.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountIntervals.java
@@ -6,14 +6,12 @@ import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
-import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.walkers.RefWalker;
-import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.collections.Pair;
-import java.util.List;
import java.io.PrintStream;
+import java.util.List;
/**
* Counts the number of contiguous regions the walker traverses over. Slower than it needs to be, but
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountLociWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountLociWalker.java
index ef6ff04f2..0d68c8493 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountLociWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountLociWalker.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk.walkers.qc;
-import net.sf.samtools.SAMFileWriter;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountPairsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountPairsWalker.java
index cece04fcf..df89efe6d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountPairsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountPairsWalker.java
@@ -25,14 +25,14 @@
package org.broadinstitute.sting.gatk.walkers.qc;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.walkers.ReadPairWalker;
import org.broadinstitute.sting.utils.collections.ExpandingArrayList;
-import org.broadinstitute.sting.commandline.Output;
-import net.sf.samtools.SAMRecord;
+import java.io.PrintStream;
import java.util.Collection;
import java.util.List;
-import java.io.PrintStream;
/**
* Counts the number of read pairs encountered in a file sorted in
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountReadsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountReadsWalker.java
index 74f63aa2f..87c0409b9 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountReadsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountReadsWalker.java
@@ -1,11 +1,11 @@
package org.broadinstitute.sting.gatk.walkers.qc;
import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.Requires;
import org.broadinstitute.sting.gatk.walkers.DataSource;
import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.walkers.Requires;
/**
* Walks over the input data set, calculating the number of reads seen for diagnostic purposes.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodByRefWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodByRefWalker.java
index a4e80138f..d1545f159 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodByRefWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodByRefWalker.java
@@ -25,13 +25,13 @@
package org.broadinstitute.sting.gatk.walkers.qc;
+import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RefWalker;
import org.broadinstitute.sting.utils.collections.ExpandingArrayList;
import org.broadinstitute.sting.utils.collections.Pair;
-import org.broadinstitute.sting.commandline.Argument;
/**
* Prints out counts of the number of reference ordered data objects are
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodWalker.java
index 92867e1a9..8a03dea44 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CountRodWalker.java
@@ -27,23 +27,24 @@ package org.broadinstitute.sting.gatk.walkers.qc;
import net.sf.samtools.SAMSequenceDictionary;
import net.sf.samtools.SAMSequenceRecord;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.gatk.walkers.TreeReducible;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.collections.ExpandingArrayList;
import org.broadinstitute.sting.utils.collections.Pair;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
+import java.io.PrintStream;
import java.util.ArrayList;
-import java.util.List;
import java.util.Collection;
import java.util.LinkedList;
-import java.io.PrintStream;
+import java.util.List;
/**
* Prints out counts of the number of reference ordered data objects are
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CycleQualityWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CycleQualityWalker.java
index 5ae35416a..b5f5442cd 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CycleQualityWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/CycleQualityWalker.java
@@ -25,22 +25,22 @@
package org.broadinstitute.sting.gatk.walkers.qc;
-import org.broadinstitute.sting.gatk.walkers.Requires;
-import org.broadinstitute.sting.gatk.walkers.DataSource;
-import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.collections.PrimitivePair;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.sam.AlignmentUtils;
+import net.sf.samtools.SAMReadGroupRecord;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMReadGroupRecord;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.DataSource;
+import org.broadinstitute.sting.gatk.walkers.ReadWalker;
+import org.broadinstitute.sting.gatk.walkers.Requires;
+import org.broadinstitute.sting.utils.collections.PrimitivePair;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.sam.AlignmentUtils;
-import java.util.*;
import java.io.*;
+import java.util.*;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/PrintLocusContextWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/PrintLocusContextWalker.java
index 39b69ba29..d3b992cb5 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/PrintLocusContextWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/PrintLocusContextWalker.java
@@ -1,16 +1,16 @@
package org.broadinstitute.sting.gatk.walkers.qc;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.walkers.LocusWalker;
+import org.broadinstitute.sting.gatk.walkers.TreeReducible;
-import java.util.List;
-import java.util.Arrays;
import java.io.PrintStream;
-
-import net.sf.samtools.SAMRecord;
+import java.util.Arrays;
+import java.util.List;
/**
* At each locus in the input data set, prints the reference base, genomic location, and
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadClippingStatsWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadClippingStatsWalker.java
index 2f1773d01..908e389a8 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadClippingStatsWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadClippingStatsWalker.java
@@ -22,21 +22,24 @@
package org.broadinstitute.sting.gatk.walkers.qc;
-import org.broadinstitute.sting.gatk.walkers.Requires;
-import org.broadinstitute.sting.gatk.walkers.DataSource;
-import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.Utils;
-import org.broadinstitute.sting.utils.MathUtils;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.sam.AlignmentUtils;
+import net.sf.samtools.CigarElement;
+import net.sf.samtools.CigarOperator;
+import net.sf.samtools.SAMReadGroupRecord;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
-import net.sf.samtools.*;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.DataSource;
+import org.broadinstitute.sting.gatk.walkers.ReadWalker;
+import org.broadinstitute.sting.gatk.walkers.Requires;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.sam.AlignmentUtils;
-import java.util.*;
-import java.io.*;
+import java.io.PrintStream;
+import java.util.Arrays;
/**
* User: depristo
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadValidationWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadValidationWalker.java
index 6ad0340a4..fa1bb4d55 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadValidationWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ReadValidationWalker.java
@@ -1,16 +1,16 @@
package org.broadinstitute.sting.gatk.walkers.qc;
+import net.sf.samtools.SAMFileWriter;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMFileWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
/*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/RodSystemValidationWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/RodSystemValidationWalker.java
index 9cb715507..170630b77 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/RodSystemValidationWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/RodSystemValidationWalker.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk.walkers.qc;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
@@ -8,8 +7,11 @@ import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
-import org.broadinstitute.sting.gatk.walkers.*;
+import org.broadinstitute.sting.gatk.walkers.Reference;
+import org.broadinstitute.sting.gatk.walkers.RodWalker;
+import org.broadinstitute.sting.gatk.walkers.Window;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.*;
import java.math.BigInteger;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ValidatingPileupWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ValidatingPileupWalker.java
index bc68be592..e1e6c4b69 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ValidatingPileupWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/qc/ValidatingPileupWalker.java
@@ -25,20 +25,20 @@
package org.broadinstitute.sting.gatk.walkers.qc;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.features.sampileup.SAMPileupFeature;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.utils.*;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
-import java.util.Arrays;
import java.io.PrintStream;
+import java.util.Arrays;
/**
* At every locus in the input set, compares the pileup data (reference base, aligned base from
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesGatherer.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesGatherer.java
index 568e1b638..fc6b3daee 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesGatherer.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesGatherer.java
@@ -7,7 +7,6 @@ import org.broadinstitute.sting.utils.text.XReadLines;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Pattern;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesWalker.java
index ee504b6e7..8c6539f8d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CountCovariatesWalker.java
@@ -27,23 +27,25 @@ package org.broadinstitute.sting.gatk.walkers.recalibration;
import org.broad.tribble.bed.BEDCodec;
import org.broad.tribble.dbsnp.DbSNPCodec;
-import org.broadinstitute.sting.utils.codecs.vcf.VCF3Codec;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFCodec;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.ArgumentCollection;
import org.broadinstitute.sting.commandline.Gather;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
-import org.broadinstitute.sting.gatk.filters.ZeroMappingQualityReadFilter;
+import org.broadinstitute.sting.gatk.filters.MappingQualityUnavailableReadFilter;
+import org.broadinstitute.sting.gatk.filters.MappingQualityZeroReadFilter;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.baq.BAQ;
import org.broadinstitute.sting.utils.classloader.PluginManager;
+import org.broadinstitute.sting.utils.codecs.vcf.VCF3Codec;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFCodec;
import org.broadinstitute.sting.utils.collections.NestedHashMap;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.ArgumentCollection;
import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.pileup.PileupElement;
@@ -75,7 +77,7 @@ import java.util.Map;
@BAQMode(ApplicationTime = BAQ.ApplicationTime.FORBIDDEN)
@By( DataSource.READS ) // Only look at covered loci, not every loci of the reference file
-@ReadFilters( {ZeroMappingQualityReadFilter.class} ) // Filter out all reads with zero mapping quality
+@ReadFilters( {MappingQualityZeroReadFilter.class, MappingQualityUnavailableReadFilter.class} ) // Filter out all reads with zero or unavailable mapping quality
@Requires( {DataSource.READS, DataSource.REFERENCE, DataSource.REFERENCE_BASES} ) // This walker requires both -I input.bam and -R reference.fasta
@PartitionBy(PartitionType.LOCUS)
public class CountCovariatesWalker extends LocusWalker implements TreeReducible {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java
index 64e0864c0..945d02837 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CycleCovariate.java
@@ -1,7 +1,6 @@
package org.broadinstitute.sting.gatk.walkers.recalibration;
import net.sf.samtools.SAMRecord;
-
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.exceptions.UserException;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java
index 0de6897d0..a7717161a 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/DinucCovariate.java
@@ -1,11 +1,10 @@
package org.broadinstitute.sting.gatk.walkers.recalibration;
-import java.util.HashMap;
-
import net.sf.samtools.SAMRecord;
-
import org.broadinstitute.sting.utils.BaseUtils;
+import java.util.HashMap;
+
/*
* Copyright (c) 2009 The Broad Institute
*
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java
index fdbeb6a31..e6d0b306c 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDataManager.java
@@ -25,19 +25,21 @@
package org.broadinstitute.sting.gatk.walkers.recalibration;
+import net.sf.samtools.SAMReadGroupRecord;
+import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMUtils;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.collections.NestedHashMap;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
import org.broadinstitute.sting.utils.sam.AlignmentUtils;
-import org.broadinstitute.sting.utils.*;
-import org.broadinstitute.sting.utils.collections.NestedHashMap;
+import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
-import java.util.*;
-
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMUtils;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDatumOptimized.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDatumOptimized.java
index 7ba441ccc..f04989fa5 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDatumOptimized.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/RecalDatumOptimized.java
@@ -3,7 +3,7 @@ package org.broadinstitute.sting.gatk.walkers.recalibration;
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.QualityUtils;
-import java.util.*;
+import java.util.List;
/*
* Copyright (c) 2010 The Broad Institute
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java
index 0eaa1245e..0277fda0d 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java
@@ -25,31 +25,33 @@
package org.broadinstitute.sting.gatk.walkers.recalibration;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.*;
-import java.util.regex.Pattern;
-
import net.sf.samtools.*;
import net.sf.samtools.util.SequenceUtil;
-
+import org.broadinstitute.sting.commandline.*;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.classloader.PluginManager;
-import org.broadinstitute.sting.utils.collections.NestedHashMap;
import org.broadinstitute.sting.utils.QualityUtils;
-import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.text.TextFormattingUtils;
import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.baq.BAQ;
-import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.commandline.*;
+import org.broadinstitute.sting.utils.classloader.PluginManager;
+import org.broadinstitute.sting.utils.collections.NestedHashMap;
+import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
+import org.broadinstitute.sting.utils.text.TextFormattingUtils;
+import org.broadinstitute.sting.utils.text.XReadLines;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.regex.Pattern;
/**
* This walker is designed to work as the second pass in a two-pass processing step, doing a by-read traversal.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/CreateSequenomMask.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/CreateSequenomMask.java
index c1c17bda5..b3b63bb96 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/CreateSequenomMask.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/CreateSequenomMask.java
@@ -1,12 +1,12 @@
package org.broadinstitute.sting.gatk.walkers.sequenom;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
-import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.PrintStream;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/PickSequenomProbes.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/PickSequenomProbes.java
index fde233b5d..b877ff70b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/PickSequenomProbes.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/sequenom/PickSequenomProbes.java
@@ -25,29 +25,27 @@
package org.broadinstitute.sting.gatk.walkers.sequenom;
-import net.sf.samtools.util.CloseableIterator;
import org.broad.tribble.bed.BEDCodec;
-import org.broad.tribble.dbsnp.DbSNPCodec;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.refdata.*;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
+import org.broadinstitute.sting.gatk.refdata.SeekableRODIterator;
import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack;
import org.broadinstitute.sting.gatk.refdata.tracks.builders.RMDTrackBuilder;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.refdata.utils.LocationAwareSeekableRODIterator;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
-import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
-import java.util.*;
import java.io.PrintStream;
+import java.util.*;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java
index 15d808ebe..fe3173506 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java
@@ -1,14 +1,12 @@
package org.broadinstitute.sting.gatk.walkers.varianteval;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
import net.sf.samtools.SAMSequenceRecord;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
@@ -20,23 +18,21 @@ import org.broadinstitute.sting.gatk.walkers.TreeReducible;
import org.broadinstitute.sting.gatk.walkers.Window;
import org.broadinstitute.sting.gatk.walkers.varianteval.evaluators.VariantEvaluator;
import org.broadinstitute.sting.gatk.walkers.varianteval.stratifications.VariantStratifier;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.*;
import org.broadinstitute.sting.gatk.walkers.variantrecalibration.Tranche;
import org.broadinstitute.sting.gatk.walkers.variantrecalibration.VariantRecalibrator;
import org.broadinstitute.sting.utils.SampleUtils;
import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.StingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
-import net.sf.picard.reference.FastaSequenceFile;
-import net.sf.picard.reference.IndexedFastaSequenceFile;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import net.sf.picard.reference.ReferenceSequence;
-import java.io.FileNotFoundException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.lang.reflect.Field;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompEvalGenotypes.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompEvalGenotypes.java
index 787dbe9af..925bff9c0 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompEvalGenotypes.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompEvalGenotypes.java
@@ -1,7 +1,7 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
class NewCompEvalGenotypes {
private GenomeLoc loc;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompOverlap.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompOverlap.java
index 76db330ed..255a54737 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompOverlap.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CompOverlap.java
@@ -1,12 +1,12 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
/**
* The Broad Institute
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CountVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CountVariants.java
index c4277adc9..8c281b2f8 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CountVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/CountVariants.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
@Analysis(description = "Counts different classes of variants in the sample")
public class CountVariants extends VariantEvaluator implements StandardEval {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java
index 4b56cf130..bbd3f5f54 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java
@@ -1,18 +1,18 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.StingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypePhasingEvaluator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypePhasingEvaluator.java
index 3d14dd0e5..a476a2680 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypePhasingEvaluator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypePhasingEvaluator.java
@@ -1,20 +1,20 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.phasing.AllelePair;
import org.broadinstitute.sting.gatk.walkers.phasing.ReadBackedPhasingWalker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.NewEvaluationContext;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.HashMap;
import java.util.HashSet;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java
index 5daf33a9f..77def0f30 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelLengthHistogram.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
/**
* IF THERE IS NO JAVADOC RIGHT HERE, YELL AT chartl
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelMetricsByAC.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelMetricsByAC.java
index eca6c5193..6e1b76acd 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelMetricsByAC.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelMetricsByAC.java
@@ -1,14 +1,14 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelStatistics.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelStatistics.java
index 48b06d532..d99196ecf 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelStatistics.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/IndelStatistics.java
@@ -1,15 +1,15 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
import org.broadinstitute.sting.utils.IndelUtils;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/MendelianViolationEvaluator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/MendelianViolationEvaluator.java
index 85e0b5889..a0cc393d9 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/MendelianViolationEvaluator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/MendelianViolationEvaluator.java
@@ -1,21 +1,15 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.utils.MendelianViolation;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
/**
* Mendelian violation detection and counting
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/PrintMissingComp.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/PrintMissingComp.java
index 7d54d0df8..b209ee13d 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/PrintMissingComp.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/PrintMissingComp.java
@@ -24,12 +24,12 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
@Analysis(name = "PrintMissingComp", description = "the overlap between eval and comp sites")
public class PrintMissingComp extends VariantEvaluator {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SamplePreviousGenotypes.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SamplePreviousGenotypes.java
index 5f3e6b0fa..751f61a97 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SamplePreviousGenotypes.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SamplePreviousGenotypes.java
@@ -1,7 +1,7 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SimpleMetricsByAC.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SimpleMetricsByAC.java
index deed05508..d466645ea 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SimpleMetricsByAC.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/SimpleMetricsByAC.java
@@ -1,18 +1,18 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
import org.broadinstitute.sting.gatk.walkers.varianteval.stratifications.Degeneracy;
import org.broadinstitute.sting.gatk.walkers.varianteval.stratifications.Sample;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.StateKey;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.ArrayList;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ThetaVariantEvaluator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ThetaVariantEvaluator.java
index 89c67cfe9..ec43cbd55 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ThetaVariantEvaluator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ThetaVariantEvaluator.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/TiTvVariantEvaluator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/TiTvVariantEvaluator.java
index 8811dc001..be957abd7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/TiTvVariantEvaluator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/TiTvVariantEvaluator.java
@@ -1,13 +1,13 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
@Analysis(description = "Ti/Tv Variant Evaluator")
public class TiTvVariantEvaluator extends VariantEvaluator implements StandardEval {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ValidationReport.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ValidationReport.java
index 405f35635..9c331b577 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ValidationReport.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/ValidationReport.java
@@ -1,17 +1,16 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
+import java.util.Set;
/**
* The Broad Institute
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantEvaluator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantEvaluator.java
index 6017ecca3..e29e7ed50 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantEvaluator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantEvaluator.java
@@ -1,12 +1,12 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.NewEvaluationContext;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.StateKey;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
public abstract class VariantEvaluator {
public void initialize(VariantEvalWalker walker) {}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantQualityScore.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantQualityScore.java
index 4af14810b..b6ad55b18 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantQualityScore.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/VariantQualityScore.java
@@ -25,16 +25,16 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.evaluators;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.Analysis;
+import org.broadinstitute.sting.gatk.walkers.varianteval.util.DataPoint;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.TableType;
import org.broadinstitute.sting.utils.collections.Pair;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleCount.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleCount.java
index ff59c9e29..411493d4f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleCount.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleCount.java
@@ -1,12 +1,11 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
-import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
@@ -43,9 +42,9 @@ public class AlleleCount extends VariantStratifier {
if (eval != null) {
int AC = -1;
- if ( eval.hasAttribute("AC") )
+ if ( eval.hasAttribute("AC") && eval.getAttribute("AC") instanceof Integer ) {
AC = eval.getAttributeAsInt("AC");
- else if ( eval.isVariant() ) {
+ } else if ( eval.isVariant() ) {
for (Allele allele : eval.getAlternateAlleles())
AC = Math.max(AC, eval.getChromosomeCount(allele));
} else
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java
index 48b4ffa91..2ffc7716c 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/AlleleFrequency.java
@@ -1,10 +1,10 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CompRod.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CompRod.java
index 9942ba8d6..c6975808f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CompRod.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CompRod.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Contig.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Contig.java
index 1a9d31085..c14355035 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Contig.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Contig.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CpG.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CpG.java
index 15b1d41c1..3e8a6ed17 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CpG.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/CpG.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Degeneracy.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Degeneracy.java
index 65af6090c..155a66186 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Degeneracy.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Degeneracy.java
@@ -1,14 +1,14 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Set;
import java.util.HashSet;
+import java.util.Set;
public class Degeneracy extends VariantStratifier {
private ArrayList states;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/EvalRod.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/EvalRod.java
index 7bd15a974..40f952fd2 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/EvalRod.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/EvalRod.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Filter.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Filter.java
index 8d8782ab7..3b7a419f2 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Filter.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Filter.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/FunctionalClass.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/FunctionalClass.java
index fd724d6d1..c6c094f8e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/FunctionalClass.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/FunctionalClass.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/JexlExpression.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/JexlExpression.java
index a7ccd3182..76efedbf4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/JexlExpression.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/JexlExpression.java
@@ -1,10 +1,10 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Novelty.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Novelty.java
index 39d2e6b4d..a0973a088 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Novelty.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Novelty.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Sample.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Sample.java
index f909de4f3..a2a3eb3fb 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Sample.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/Sample.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/VariantStratifier.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/VariantStratifier.java
index 218cb23ca..2c4b8bc46 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/VariantStratifier.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/stratifications/VariantStratifier.java
@@ -1,11 +1,10 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.stratifications;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
import org.broadinstitute.sting.gatk.walkers.varianteval.util.SortableJexlVCMatchExp;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/tags/Analysis.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/Analysis.java
similarity index 80%
rename from public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/tags/Analysis.java
rename to public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/Analysis.java
index 129d5a95d..2b37ce210 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/tags/Analysis.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/Analysis.java
@@ -1,4 +1,4 @@
-package org.broadinstitute.sting.gatk.walkers.varianteval.tags;
+package org.broadinstitute.sting.gatk.walkers.varianteval.util;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/AnalysisModuleScanner.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/AnalysisModuleScanner.java
index c8d917040..db44e9e28 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/AnalysisModuleScanner.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/AnalysisModuleScanner.java
@@ -23,8 +23,6 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.util;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.lang.annotation.Annotation;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/tags/DataPoint.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/DataPoint.java
similarity index 77%
rename from public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/tags/DataPoint.java
rename to public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/DataPoint.java
index 3ba448049..396843252 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/tags/DataPoint.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/DataPoint.java
@@ -1,4 +1,4 @@
-package org.broadinstitute.sting.gatk.walkers.varianteval.tags;
+package org.broadinstitute.sting.gatk.walkers.varianteval.util;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/NewEvaluationContext.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/NewEvaluationContext.java
index 3208c26bb..8112ae97f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/NewEvaluationContext.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/NewEvaluationContext.java
@@ -1,6 +1,5 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.util;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
@@ -9,6 +8,7 @@ import org.broadinstitute.sting.gatk.walkers.varianteval.evaluators.VariantEvalu
import org.broadinstitute.sting.gatk.walkers.varianteval.stratifications.VariantStratifier;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.StingException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.HashMap;
import java.util.Set;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/SortableJexlVCMatchExp.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/SortableJexlVCMatchExp.java
index 0281653af..38f7a7f40 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/SortableJexlVCMatchExp.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/SortableJexlVCMatchExp.java
@@ -1,6 +1,6 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.util;
-import org.apache.commons.jexl2.*;
+import org.apache.commons.jexl2.Expression;
import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
public class SortableJexlVCMatchExp extends VariantContextUtils.JexlVCMatchExp implements Comparable {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java
index b8e45e462..0a915db37 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java
@@ -1,24 +1,21 @@
package org.broadinstitute.sting.gatk.walkers.varianteval.util;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.report.GATKReport;
import org.broadinstitute.sting.gatk.report.GATKReportTable;
-import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.gatk.walkers.varianteval.VariantEvalWalker;
import org.broadinstitute.sting.gatk.walkers.varianteval.evaluators.StandardEval;
import org.broadinstitute.sting.gatk.walkers.varianteval.evaluators.VariantEvaluator;
import org.broadinstitute.sting.gatk.walkers.varianteval.stratifications.RequiredStratification;
import org.broadinstitute.sting.gatk.walkers.varianteval.stratifications.StandardStratification;
import org.broadinstitute.sting.gatk.walkers.varianteval.stratifications.VariantStratifier;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.Analysis;
-import org.broadinstitute.sting.gatk.walkers.varianteval.tags.DataPoint;
import org.broadinstitute.sting.utils.classloader.PluginManager;
import org.broadinstitute.sting.utils.exceptions.StingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.lang.reflect.Field;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyRecalibration.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyRecalibration.java
index 9877781d1..403c67d3e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyRecalibration.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyRecalibration.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010 The Broad Institute
+ * Copyright (c) 2011 The Broad Institute
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
@@ -25,23 +25,23 @@
package org.broadinstitute.sting.gatk.walkers.variantrecalibration;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
-import org.broadinstitute.sting.commandline.*;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Input;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.collections.NestedHashMap;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
import java.io.FileNotFoundException;
-import java.lang.Double;
import java.util.*;
/**
@@ -55,7 +55,6 @@ import java.util.*;
public class ApplyRecalibration extends RodWalker {
-
/////////////////////////////
// Inputs
/////////////////////////////
@@ -86,6 +85,7 @@ public class ApplyRecalibration extends RodWalker {
final private List tranches = new ArrayList();
final private Set inputNames = new HashSet();
final private NestedHashMap lodMap = new NestedHashMap();
+ final private NestedHashMap annotationMap = new NestedHashMap();
final private Set ignoreInputFilterSet = new TreeSet();
//---------------------------------------------------------------------------------------------------------------
@@ -124,6 +124,7 @@ public class ApplyRecalibration extends RodWalker {
final Set hInfo = new HashSet();
hInfo.addAll(VCFUtils.getHeaderFields(getToolkit(), inputNames));
hInfo.add(new VCFInfoHeaderLine(VariantRecalibrator.VQS_LOD_KEY, 1, VCFHeaderLineType.Float, "Log odds ratio of being a true variant versus being false under the trained gaussian mixture model"));
+ hInfo.add(new VCFInfoHeaderLine(VariantRecalibrator.CULPRIT_KEY, 1, VCFHeaderLineType.String, "The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out"));
final TreeSet samples = new TreeSet();
samples.addAll(SampleUtils.getUniqueSamplesFromRods(getToolkit(), inputNames));
@@ -149,6 +150,7 @@ public class ApplyRecalibration extends RodWalker {
for ( final String line : new XReadLines( RECAL_FILE ) ) {
final String[] vals = line.split(",");
lodMap.put( Double.parseDouble(vals[3]), vals[0], Integer.parseInt(vals[1]), Integer.parseInt(vals[2]) ); // value comes before the keys
+ annotationMap.put( vals[4], vals[0], Integer.parseInt(vals[1]), Integer.parseInt(vals[2]) ); // value comes before the keys
}
} catch ( FileNotFoundException e ) {
throw new UserException.CouldNotReadInputFile(RECAL_FILE, e);
@@ -174,11 +176,15 @@ public class ApplyRecalibration extends RodWalker {
String filterString = null;
final Map attrs = new HashMap(vc.getAttributes());
final Double lod = (Double) lodMap.get( vc.getChr(), vc.getStart(), vc.getEnd() );
+ final String worstAnnotation = (String) annotationMap.get( vc.getChr(), vc.getStart(), vc.getEnd() );
if( lod == null ) {
throw new UserException("Encountered input variant which isn't found in the input recal file. Please make sure VariantRecalibrator and ApplyRecalibration were run on the same set of input variants. First seen at: " + vc );
}
+ // Annotate the new record with its VQSLOD and the worst performing annotation
attrs.put(VariantRecalibrator.VQS_LOD_KEY, String.format("%.4f", lod));
+ attrs.put(VariantRecalibrator.CULPRIT_KEY, worstAnnotation);
+
for( int i = tranches.size() - 1; i >= 0; i-- ) {
final Tranche tranche = tranches.get(i);
if( lod >= tranche.minVQSLod ) {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/GaussianMixtureModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/GaussianMixtureModel.java
index 9ffe7be7a..17461de2f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/GaussianMixtureModel.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/GaussianMixtureModel.java
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.variantrecalibration;
import Jama.Matrix;
@@ -72,7 +97,7 @@ public class GaussianMixtureModel {
int ttt = 0;
while( ttt++ < numIterations ) {
- // Estep: assign each variant to the nearest cluster
+ // E step: assign each variant to the nearest cluster
for( final VariantDatum datum : data ) {
double minDistance = Double.MAX_VALUE;
MultivariateGaussian minGaussian = null;
@@ -87,7 +112,7 @@ public class GaussianMixtureModel {
datum.assignment = minGaussian;
}
- // Mstep: update gaussian means based on assigned variants
+ // M step: update gaussian means based on assigned variants
for( final MultivariateGaussian gaussian : gaussians ) {
gaussian.zeroOutMu();
int numAssigned = 0;
@@ -190,27 +215,43 @@ public class GaussianMixtureModel {
return MathUtils.log10sumLog10(pVarInGaussianLog10); // Sum(pi_k * p(v|n,k))
}
- public double evaluateDatumMarginalized( final VariantDatum datum ) {
- int numVals = 0;
- double sumPVarInGaussian = 0.0;
- int numIter = 10;
- final double[] pVarInGaussianLog10 = new double[gaussians.size()];
- for( int iii = 0; iii < datum.annotations.length; iii++ ) {
- // marginalize over the missing dimension by drawing X random values for the missing annotation and averaging the lod
- if( datum.isNull[iii] ) {
- for( int ttt = 0; ttt < numIter; ttt++ ) {
- datum.annotations[iii] = Normal.staticNextDouble(0.0, 1.0);
+ public Double evaluateDatumInOneDimension( final VariantDatum datum, final int iii ) {
+ if(datum.isNull[iii]) { return null; }
+ final Normal normal = new Normal(0.0, 1.0, null);
+ final double[] pVarInGaussianLog10 = new double[gaussians.size()];
+ int gaussianIndex = 0;
+ for( final MultivariateGaussian gaussian : gaussians ) {
+ normal.setState( gaussian.mu[iii], gaussian.sigma.get(iii, iii) );
+ pVarInGaussianLog10[gaussianIndex++] = gaussian.pMixtureLog10 + Math.log10( normal.pdf( datum.annotations[iii] ) );
+ }
+ return MathUtils.log10sumLog10(pVarInGaussianLog10); // Sum(pi_k * p(v|n,k))
+ }
+
+ public double evaluateDatumMarginalized( final VariantDatum datum ) {
+ int numSamples = 0;
+ double sumPVarInGaussian = 0.0;
+ final int numIterPerMissingAnnotation = 10; // Trade off here between speed of computation and accuracy of the marginalization
+ final double[] pVarInGaussianLog10 = new double[gaussians.size()];
+ // for each dimension
+ for( int iii = 0; iii < datum.annotations.length; iii++ ) {
+ // if it is missing marginalize over the missing dimension by drawing X random values for the missing annotation and averaging the lod
+ if( datum.isNull[iii] ) {
+ for( int ttt = 0; ttt < numIterPerMissingAnnotation; ttt++ ) {
+ datum.annotations[iii] = GenomeAnalysisEngine.getRandomGenerator().nextGaussian(); // draw a random sample from the standard normal distribution
+
+ // evaluate this random data point
int gaussianIndex = 0;
for( final MultivariateGaussian gaussian : gaussians ) {
pVarInGaussianLog10[gaussianIndex++] = gaussian.pMixtureLog10 + gaussian.evaluateDatumLog10( datum );
}
- sumPVarInGaussian += Math.pow(10.0, MathUtils.log10sumLog10(pVarInGaussianLog10));
- numVals++;
+ // add this sample's probability to the pile in order to take an average in the end
+ sumPVarInGaussian += Math.pow(10.0, MathUtils.log10sumLog10(pVarInGaussianLog10)); // p = 10 ^ Sum(pi_k * p(v|n,k))
+ numSamples++;
}
}
}
- return Math.log10( sumPVarInGaussian / ((double) numVals) );
+ return Math.log10( sumPVarInGaussian / ((double) numSamples) );
}
}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/MultivariateGaussian.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/MultivariateGaussian.java
index 0b2edfd10..d077af78e 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/MultivariateGaussian.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/MultivariateGaussian.java
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.variantrecalibration;
import Jama.Matrix;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrainingSet.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrainingSet.java
index f3677421e..6c1a7ddbc 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrainingSet.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrainingSet.java
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.variantrecalibration;
import org.apache.log4j.Logger;
@@ -14,6 +39,7 @@ public class TrainingSet {
public String name;
public boolean isKnown = false;
public boolean isTraining = false;
+ public boolean isAntiTraining = false;
public boolean isTruth = false;
public boolean isConsensus = false;
public double prior = 0.0;
@@ -22,17 +48,24 @@ public class TrainingSet {
public TrainingSet( final String name, final Tags tags ) {
this.name = name;
+
+ // Parse the tags to decide which tracks have which properties
if( tags != null ) {
isKnown = tags.containsKey("known") && tags.getValue("known").equals("true");
isTraining = tags.containsKey("training") && tags.getValue("training").equals("true");
+ isAntiTraining = tags.containsKey("bad") && tags.getValue("bad").equals("true");
isTruth = tags.containsKey("truth") && tags.getValue("truth").equals("true");
isConsensus = tags.containsKey("consensus") && tags.getValue("consensus").equals("true");
prior = ( tags.containsKey("prior") ? Double.parseDouble(tags.getValue("prior")) : prior );
}
- if( !isConsensus ) {
+
+ // Report back to the user which tracks were found and the properties that were detected
+ if( !isConsensus && !isAntiTraining ) {
logger.info( String.format( "Found %s track: \tKnown = %s \tTraining = %s \tTruth = %s \tPrior = Q%.1f", this.name, isKnown, isTraining, isTruth, prior) );
- } else {
+ } else if( isConsensus ) {
logger.info( String.format( "Found consensus track: %s", this.name) );
+ } else {
+ logger.info( String.format( "Found bad sites training track: %s", this.name) );
}
}
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/Tranche.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/Tranche.java
index fbee64fe2..15424f0f7 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/Tranche.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/Tranche.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010 The Broad Institute
+ * Copyright (c) 2011 The Broad Institute
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
@@ -25,11 +25,14 @@
package org.broadinstitute.sting.gatk.walkers.variantrecalibration;
-import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.XReadLines;
-import java.io.*;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintStream;
import java.util.*;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrancheManager.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrancheManager.java
index 08388db21..19c6d501b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrancheManager.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/TrancheManager.java
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.variantrecalibration;
import org.apache.log4j.Logger;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VQSRCalibrationCurve.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VQSRCalibrationCurve.java
index 2914385a4..bc7252ec2 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VQSRCalibrationCurve.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VQSRCalibrationCurve.java
@@ -1,11 +1,35 @@
+/*
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.variantrecalibration;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.gatk.walkers.varianteval.evaluators.VariantQualityScore;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.XReadLines;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java
index 2fd1326fe..67d54a408 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java
@@ -1,8 +1,31 @@
+/*
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.variantrecalibration;
-import cern.jet.random.Normal;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
@@ -10,9 +33,12 @@ import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.utils.MathUtils;
import org.broadinstitute.sting.utils.collections.ExpandingArrayList;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.PrintStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
/**
* Created by IntelliJ IDEA.
@@ -58,19 +84,11 @@ public class VariantDataManager {
}
foundZeroVarianceAnnotation = foundZeroVarianceAnnotation || (theSTD < 1E-6);
- if( annotationKeys.get(iii).toLowerCase().contains("ranksum") ) { // BUGBUG: to clean up
- for( final VariantDatum datum : data ) {
- if( datum.annotations[iii] > 0.0 ) { datum.annotations[iii] /= 3.0; }
- }
- }
meanVector[iii] = theMean;
varianceVector[iii] = theSTD;
for( final VariantDatum datum : data ) {
- datum.annotations[iii] = ( datum.isNull[iii] ? Normal.staticNextDouble(0.0, 1.0) : ( datum.annotations[iii] - theMean ) / theSTD );
- // Each data point is now [ (x - mean) / standard deviation ]
- if( annotationKeys.get(iii).toLowerCase().contains("ranksum") && datum.isNull[iii] && datum.annotations[iii] > 0.0 ) {
- datum.annotations[iii] /= 3.0;
- }
+ // Transform each data point via: (x - mean) / standard deviation
+ datum.annotations[iii] = ( datum.isNull[iii] ? GenomeAnalysisEngine.getRandomGenerator().nextGaussian() : ( datum.annotations[iii] - theMean ) / theSTD );
}
}
if( foundZeroVarianceAnnotation ) {
@@ -84,7 +102,6 @@ public class VariantDataManager {
remove = remove || (Math.abs(val) > VRAC.STD_THRESHOLD);
}
datum.failingSTDThreshold = remove;
- datum.usedForTraining = 0;
}
}
@@ -118,38 +135,47 @@ public class VariantDataManager {
for( final VariantDatum datum : data ) {
if( datum.atTrainingSite && !datum.failingSTDThreshold && datum.originalQual > VRAC.QUAL_THRESHOLD ) {
trainingData.add( datum );
- datum.usedForTraining = 1;
}
}
logger.info( "Training with " + trainingData.size() + " variants after standard deviation thresholding." );
if( trainingData.size() < VRAC.MIN_NUM_BAD_VARIANTS ) {
- logger.warn("WARNING: Training with very few variant sites! Please check the model reporting PDF to ensure the quality of the model is reliable.");
+ logger.warn( "WARNING: Training with very few variant sites! Please check the model reporting PDF to ensure the quality of the model is reliable." );
}
return trainingData;
}
public ExpandingArrayList selectWorstVariants( double bottomPercentage, final int minimumNumber ) {
- Collections.sort( data );
+ // The return value is the list of training variants
final ExpandingArrayList trainingData = new ExpandingArrayList();
- final int numToAdd = Math.max( minimumNumber, Math.round((float)bottomPercentage * data.size()) );
- if( numToAdd > data.size() ) {
- throw new UserException.BadInput("Error during negative model training. Minimum number of variants to use in training is larger than the whole call set. One can attempt to lower the --minNumBadVariants arugment but this is unsafe.");
+
+ // First add to the training list all sites overlapping any bad sites training tracks
+ for( final VariantDatum datum : data ) {
+ if( datum.atAntiTrainingSite && !datum.failingSTDThreshold && !Double.isInfinite(datum.lod) ) {
+ trainingData.add( datum );
+ }
}
- if( numToAdd == minimumNumber ) {
- logger.warn("WARNING: Training with very few variant sites! Please check the model reporting PDF to ensure the quality of the model is reliable.");
+ final int numBadSitesAdded = trainingData.size();
+ logger.info( "Found " + numBadSitesAdded + " variants overlapping bad sites training tracks." );
+
+ // Next sort the variants by the LOD coming from the positive model and add to the list the bottom X percent of variants
+ Collections.sort( data );
+ final int numToAdd = Math.max( minimumNumber - trainingData.size(), Math.round((float)bottomPercentage * data.size()) );
+ if( numToAdd > data.size() ) {
+ throw new UserException.BadInput( "Error during negative model training. Minimum number of variants to use in training is larger than the whole call set. One can attempt to lower the --minNumBadVariants arugment but this is unsafe." );
+ } else if( numToAdd == minimumNumber - trainingData.size() ) {
+ logger.warn( "WARNING: Training with very few variant sites! Please check the model reporting PDF to ensure the quality of the model is reliable." );
bottomPercentage = ((float) numToAdd) / ((float) data.size());
}
- int index = 0;
- int numAdded = 0;
+ int index = 0, numAdded = 0;
while( numAdded < numToAdd ) {
final VariantDatum datum = data.get(index++);
- if( !datum.failingSTDThreshold && !Double.isInfinite(datum.lod) ) {
+ if( !datum.atAntiTrainingSite && !datum.failingSTDThreshold && !Double.isInfinite(datum.lod) ) {
+ datum.atAntiTrainingSite = true;
trainingData.add( datum );
- datum.usedForTraining = -1;
numAdded++;
}
}
- logger.info("Training with worst " + (float) bottomPercentage * 100.0f + "% of passing data --> " + trainingData.size() + " variants with LOD <= " + String.format("%.4f", data.get(index).lod) + ".");
+ logger.info( "Additionally training with worst " + String.format("%.3f", (float) bottomPercentage * 100.0f) + "% of passing data --> " + (trainingData.size() - numBadSitesAdded) + " variants with LOD <= " + String.format("%.4f", data.get(index).lod) + "." );
return trainingData;
}
@@ -162,10 +188,11 @@ public class VariantDataManager {
returnData.add(datum);
}
}
- // add an extra 5% of points from bad training set, since that set is small but interesting
+
+ // Add an extra 5% of points from bad training set, since that set is small but interesting
for( int iii = 0; iii < Math.floor(0.05*numToAdd); iii++) {
final VariantDatum datum = data.get(GenomeAnalysisEngine.getRandomGenerator().nextInt(data.size()));
- if( datum.usedForTraining == -1 && !datum.failingSTDThreshold ) { returnData.add(datum); }
+ if( datum.atAntiTrainingSite && !datum.failingSTDThreshold ) { returnData.add(datum); }
else { iii--; }
}
@@ -208,23 +235,15 @@ public class VariantDataManager {
double value;
try {
- if( annotationKey.equalsIgnoreCase("QUAL") ) {
- value = vc.getPhredScaledQual();
- } else if( annotationKey.equalsIgnoreCase("DP") ) {
- value = Double.parseDouble( (String)vc.getAttribute( "DP" ) ) / Double.parseDouble( (String)vc.getAttribute( "AN" ) );
- } else {
- value = Double.parseDouble( (String)vc.getAttribute( annotationKey ) );
- if( Double.isInfinite(value) ) { value = Double.NaN; }
- if( annotationKey.equalsIgnoreCase("InbreedingCoeff") && value > 0.05 ) { value = Double.NaN; }
- if( jitter && annotationKey.equalsIgnoreCase("HRUN") ) { // Integer valued annotations must be jittered a bit to work in this GMM
- value += -0.25 + 0.5 * GenomeAnalysisEngine.getRandomGenerator().nextDouble();
- }
- if( annotationKey.equalsIgnoreCase("HaplotypeScore") && MathUtils.compareDoubles(value, 0.0, 0.0001) == 0 ) { value = -0.2 + 0.4*GenomeAnalysisEngine.getRandomGenerator().nextDouble(); }
- if( annotationKey.equalsIgnoreCase("FS") && MathUtils.compareDoubles(value, 0.0, 0.01) == 0 ) { value = -0.2 + 0.4*GenomeAnalysisEngine.getRandomGenerator().nextDouble(); }
+ value = Double.parseDouble( (String)vc.getAttribute( annotationKey ) );
+ if( Double.isInfinite(value) ) { value = Double.NaN; }
+ if( jitter && annotationKey.equalsIgnoreCase("HRUN") ) { // Integer valued annotations must be jittered a bit to work in this GMM
+ value += -0.25 + 0.5 * GenomeAnalysisEngine.getRandomGenerator().nextDouble();
}
-
+ if( jitter && annotationKey.equalsIgnoreCase("HaplotypeScore") && MathUtils.compareDoubles(value, 0.0, 0.0001) == 0 ) { value = -0.2 + 0.4*GenomeAnalysisEngine.getRandomGenerator().nextDouble(); }
+ if( jitter && annotationKey.equalsIgnoreCase("FS") && MathUtils.compareDoubles(value, 0.0, 0.001) == 0 ) { value = -0.2 + 0.4*GenomeAnalysisEngine.getRandomGenerator().nextDouble(); }
} catch( Exception e ) {
- value = Double.NaN; // The VQSR works with missing data now by marginalizing over the missing dimension when evaluating Gaussians
+ value = Double.NaN; // The VQSR works with missing data by marginalizing over the missing dimension when evaluating the Gaussian mixture model
}
return value;
@@ -234,8 +253,10 @@ public class VariantDataManager {
datum.isKnown = false;
datum.atTruthSite = false;
datum.atTrainingSite = false;
+ datum.atAntiTrainingSite = false;
datum.prior = 2.0;
datum.consensusCount = 0;
+
for( final TrainingSet trainingSet : trainingSets ) {
for( final VariantContext trainVC : tracker.getVariantContexts( ref, trainingSet.name, null, context.getLocation(), false, false ) ) {
if( trainVC != null && trainVC.isNotFiltered() && trainVC.isVariant() &&
@@ -248,13 +269,19 @@ public class VariantDataManager {
datum.prior = Math.max( datum.prior, trainingSet.prior );
datum.consensusCount += ( trainingSet.isConsensus ? 1 : 0 );
}
+ if( trainVC != null ) {
+ datum.atAntiTrainingSite = datum.atAntiTrainingSite || trainingSet.isAntiTraining;
+ }
+
}
}
}
public void writeOutRecalibrationTable( final PrintStream RECAL_FILE ) {
for( final VariantDatum datum : data ) {
- RECAL_FILE.println(String.format("%s,%d,%d,%.4f", datum.contig, datum.start, datum.stop, datum.lod));
+ RECAL_FILE.println(String.format("%s,%d,%d,%.4f,%s",
+ datum.contig, datum.start, datum.stop, datum.lod,
+ (datum.worstAnnotation != -1 ? annotationKeys.get(datum.worstAnnotation) : "NULL")));
}
}
}
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDatum.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDatum.java
index ac875b645..eb9e98fcb 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDatum.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDatum.java
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * 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 org.broadinstitute.sting.gatk.walkers.variantrecalibration;
/**
@@ -14,16 +39,17 @@ public class VariantDatum implements Comparable {
public double lod;
public boolean atTruthSite;
public boolean atTrainingSite;
+ public boolean atAntiTrainingSite;
public boolean isTransition;
public boolean isSNP;
public boolean failingSTDThreshold;
public double originalQual;
public double prior;
public int consensusCount;
- public int usedForTraining;
public String contig;
public int start;
public int stop;
+ public int worstAnnotation;
public MultivariateGaussian assignment; // used in K-means implementation
public int compareTo( final VariantDatum other ) {
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java
index e651b62e0..8179463eb 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java
@@ -25,14 +25,12 @@
package org.broadinstitute.sting.gatk.walkers.variantrecalibration;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.ArgumentCollection;
import org.broadinstitute.sting.commandline.Hidden;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
@@ -42,6 +40,8 @@ import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.collections.ExpandingArrayList;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.File;
import java.io.FileNotFoundException;
@@ -60,6 +60,7 @@ import java.util.*;
public class VariantRecalibrator extends RodWalker, ExpandingArrayList> implements TreeReducible> {
public static final String VQS_LOD_KEY = "VQSLOD";
+ public static final String CULPRIT_KEY = "culprit";
@ArgumentCollection private VariantRecalibratorArgumentCollection VRAC = new VariantRecalibratorArgumentCollection();
@@ -87,7 +88,7 @@ public class VariantRecalibrator extends RodWalker(Arrays.asList(USE_ANNOTATIONS)), VRAC );
if( IGNORE_INPUT_FILTERS != null ) {
@@ -174,7 +176,6 @@ public class VariantRecalibrator extends RodWalker reduceSum ) {
dataManager.setData( reduceSum );
dataManager.normalizeData(); // Each data point is now (x - mean) / standard deviation
+
+ // Generate the positive model using the training data and evaluate each variant
final GaussianMixtureModel goodModel = engine.generateModel( dataManager.getTrainingData() );
engine.evaluateData( dataManager.getData(), goodModel, false );
+
+ // Generate the negative model using the worst performing data and evaluate each variant contrastively
final GaussianMixtureModel badModel = engine.generateModel( dataManager.selectWorstVariants( VRAC.PERCENT_BAD_VARIANTS, VRAC.MIN_NUM_BAD_VARIANTS ) );
engine.evaluateData( dataManager.getData(), badModel, true );
+ engine.calculateWorstPerformingAnnotation( dataManager.getData(), goodModel, badModel );
- final ExpandingArrayList randomData = dataManager.getRandomDataForPlotting( 6000 );
-
+ // Find the VQSLOD cutoff values which correspond to the various tranches of calls requested by the user
final int nCallsAtTruth = TrancheManager.countCallsAtTruth( dataManager.getData(), Double.NEGATIVE_INFINITY );
final TrancheManager.SelectionMetric metric = new TrancheManager.TruthSensitivityMetric( nCallsAtTruth );
final List tranches = TrancheManager.findTranches( dataManager.getData(), TS_TRANCHES, metric );
tranchesStream.print(Tranche.tranchesString( tranches ));
+ // Find the filtering lodCutoff for display on the model PDFs. Red variants are those which were below the cutoff and filtered out of the final callset.
double lodCutoff = 0.0;
for( final Tranche tranche : tranches ) {
if( MathUtils.compareDoubles(tranche.ts, TS_FILTER_LEVEL, 0.0001)==0 ) {
@@ -251,7 +257,7 @@ public class VariantRecalibrator extends RodWalker data, final GaussianMixtureModel goodModel, final GaussianMixtureModel badModel ) {
+ for( final VariantDatum datum : data ) {
+ int worstAnnotation = -1;
+ double minProb = Double.MAX_VALUE;
+ for( int iii = 0; iii < datum.annotations.length; iii++ ) {
+ final Double goodProbLog10 = goodModel.evaluateDatumInOneDimension(datum, iii);
+ final Double badProbLog10 = badModel.evaluateDatumInOneDimension(datum, iii);
+ if( goodProbLog10 != null && badProbLog10 != null ) {
+ final double prob = goodProbLog10 - badProbLog10;
+ if(prob < minProb) { minProb = prob; worstAnnotation = iii; }
+ }
+ }
+ datum.worstAnnotation = worstAnnotation;
+ }
+ }
+
+
/////////////////////////////
// Private Methods used for generating a GaussianMixtureModel
/////////////////////////////
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java
index 597a54dc1..837f352f8 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java
@@ -25,12 +25,12 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Hidden;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
+import org.broadinstitute.sting.gatk.io.stubs.VCFWriterStub;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.Reference;
import org.broadinstitute.sting.gatk.walkers.Requires;
@@ -38,11 +38,10 @@ import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.gatk.walkers.Window;
import org.broadinstitute.sting.utils.SampleUtils;
import org.broadinstitute.sting.utils.Utils;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
-import org.broadinstitute.sting.gatk.io.stubs.VCFWriterStub;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java
index ba6f5e513..b45ee1b67 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java
@@ -24,18 +24,21 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
-import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.utils.SampleUtils;
import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
/**
* Filters a lifted-over VCF file for ref bases that have been changed.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java
index d9dd85f0c..2ebd183f4 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java
@@ -28,21 +28,17 @@ package org.broadinstitute.sting.gatk.walkers.variantutils;
import net.sf.samtools.Cigar;
import net.sf.samtools.CigarElement;
import net.sf.samtools.CigarOperator;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.SortingVCFWriter;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.sam.AlignmentUtils;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java
index 7eda54387..4f05c8aac 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java
@@ -24,27 +24,27 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
-import org.broadinstitute.sting.utils.SampleUtils;
-import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
-import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
-
-import java.io.File;
-import java.util.*;
-
import net.sf.picard.PicardException;
import net.sf.picard.liftover.LiftOver;
import net.sf.picard.util.Interval;
import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMFileReader;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.walkers.RMD;
+import org.broadinstitute.sting.gatk.walkers.Requires;
+import org.broadinstitute.sting.gatk.walkers.RodWalker;
+import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
+
+import java.io.File;
+import java.util.*;
/**
* Lifts a VCF file over from one build to another. Note that the resulting VCF could be mis-sorted.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/RandomlySplitVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/RandomlySplitVariants.java
index 0c41a9728..f0756d884 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/RandomlySplitVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/RandomlySplitVariants.java
@@ -24,11 +24,6 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.StandardVCFWriter;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
@@ -39,11 +34,15 @@ import org.broadinstitute.sting.gatk.walkers.RMD;
import org.broadinstitute.sting.gatk.walkers.Requires;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
/**
* Takes a VCF file, randomly splits variants into two different sets, and outputs 2 new VCFs with the results.
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java
index 963aa0ce5..1db692e9f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java
@@ -24,25 +24,24 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.*;
-import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.utils.MendelianViolation;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeaderLine;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Hidden;
import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.RMD;
import org.broadinstitute.sting.gatk.walkers.Requires;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
+import org.broadinstitute.sting.utils.MathUtils;
+import org.broadinstitute.sting.utils.MendelianViolation;
import org.broadinstitute.sting.utils.SampleUtils;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.File;
import java.util.*;
@@ -75,12 +74,24 @@ public class SelectVariants extends RodWalker {
@Argument(fullName="excludeFiltered", shortName="ef", doc="Don't include filtered loci in the analysis.", required=false)
private boolean EXCLUDE_FILTERED = false;
+ @Argument(fullName="keepOriginalAC", shortName="keepOriginalAC", doc="Don't include filtered loci.", required=false)
+ private boolean KEEP_ORIGINAL_CHR_COUNTS = false;
+
@Argument(fullName="discordance", shortName = "disc", doc="Output variants that were not called on a ROD comparison track. Use -disc ROD_NAME", required=false)
private String discordanceRodName = "";
@Argument(fullName="concordance", shortName = "conc", doc="Output variants that were also called on a ROD comparison track. Use -conc ROD_NAME", required=false)
private String concordanceRodName = "";
+ @Hidden
+ @Argument(fullName="inputAF", shortName = "inputAF", doc="", required=false)
+ private String inputAFRodName = "";
+
+ @Hidden
+ @Argument(fullName="keepAFSpectrum", shortName="keepAF", doc="Don't include loci found to be non-variant after the subsetting procedure.", required=false)
+ private boolean KEEP_AF_SPECTRUM = false;
+
+
@Argument(fullName="family_structure", shortName="family", doc="USE YAML FILE INSTEAD (-SM) !!! string formatted as dad+mom=child where these parameters determine which sample names are examined", required=false)
private String FAMILY_STRUCTURE = "";
@@ -178,6 +189,12 @@ public class SelectVariants extends RodWalker {
// Initialize VCF header
Set headerLines = VCFUtils.smartMergeHeaders(vcfRods.values(), logger);
headerLines.add(new VCFHeaderLine("source", "SelectVariants"));
+
+ if (KEEP_ORIGINAL_CHR_COUNTS) {
+ headerLines.add(new VCFFormatHeaderLine("AC_Orig", 1, VCFHeaderLineType.Integer, "Original AC"));
+ headerLines.add(new VCFFormatHeaderLine("AF_Orig", 1, VCFHeaderLineType.Float, "Original AF"));
+ headerLines.add(new VCFFormatHeaderLine("AN_Orig", 1, VCFHeaderLineType.Integer, "Original AN"));
+ }
vcfWriter.writeHeader(new VCFHeader(headerLines, samples));
for (int i = 0; i < SELECT_EXPRESSIONS.size(); i++) {
@@ -269,6 +286,45 @@ public class SelectVariants extends RodWalker {
else if (!SELECT_RANDOM_FRACTION || GenomeAnalysisEngine.getRandomGenerator().nextDouble() < fractionRandom) {
vcfWriter.add(sub, ref.getBase());
}
+ else {
+ if (SELECT_RANDOM_FRACTION && KEEP_AF_SPECTRUM ) {
+ Collection compVCs = tracker.getVariantContexts(ref, inputAFRodName, null, context.getLocation(), true, false);
+ if (compVCs.isEmpty())
+ return 0;
+
+ // ok we have a comp VC and we need to match the AF spectrum of inputAFRodName.
+ // We then pick a variant with probablity AF*desiredFraction
+ for (VariantContext compVC : compVCs) {
+ if ( compVC.hasAttribute(VCFConstants.ALLELE_FREQUENCY_KEY) ) {
+ String afo = compVC.getAttributeAsString(VCFConstants.ALLELE_FREQUENCY_KEY);
+
+ double af;
+ if (afo.contains(",")) {
+ String[] afs = afo.split(",");
+ afs[0] = afs[0].substring(1,afs[0].length());
+ afs[afs.length-1] = afs[afs.length-1].substring(0,afs[afs.length-1].length()-1);
+
+ double[] afd = new double[afs.length];
+
+ for (int k=0; k < afd.length; k++)
+ afd[k] = Double.valueOf(afs[k]);
+
+ af = MathUtils.arrayMax(afd);
+ //af = Double.valueOf(afs[0]);
+
+ }
+ else
+ af = Double.valueOf(afo);
+
+ //System.out.format("%s .. %4.4f\n",afo.toString(), af);
+ if (GenomeAnalysisEngine.getRandomGenerator().nextDouble() < fractionRandom * af)
+ vcfWriter.add(sub, ref.getBase());
+ }
+ break; // do only one vc
+ }
+
+ }
+ }
}
}
@@ -413,6 +469,16 @@ public class SelectVariants extends RodWalker {
}
+ if (KEEP_ORIGINAL_CHR_COUNTS) {
+ if ( attributes.containsKey(VCFConstants.ALLELE_COUNT_KEY) )
+ attributes.put("AC_Orig",attributes.get(VCFConstants.ALLELE_COUNT_KEY));
+ if ( attributes.containsKey(VCFConstants.ALLELE_FREQUENCY_KEY) )
+ attributes.put("AF_Orig",attributes.get(VCFConstants.ALLELE_FREQUENCY_KEY));
+ if ( attributes.containsKey(VCFConstants.ALLELE_NUMBER_KEY) )
+ attributes.put("AN_Orig",attributes.get(VCFConstants.ALLELE_NUMBER_KEY));
+
+ }
+
VariantContextUtils.calculateChromosomeCounts(sub,attributes,false);
attributes.put("DP", depth);
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java
index 1bd73414c..0644c669b 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java
@@ -25,22 +25,25 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broad.tribble.dbsnp.DbSNPFeature;
import org.broad.tribble.TribbleException;
+import org.broad.tribble.dbsnp.DbSNPFeature;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Hidden;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Hidden;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
import java.io.File;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
/**
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantValidationAssessor.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantValidationAssessor.java
index 482679593..86bb3b0e8 100644
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantValidationAssessor.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantValidationAssessor.java
@@ -25,20 +25,19 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.commandline.Argument;
+import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.SampleUtils;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.collections.Pair;
-import org.broadinstitute.sting.commandline.Argument;
-import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToTable.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToTable.java
index 71dd5df3f..8d90af65a 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToTable.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToTable.java
@@ -24,18 +24,17 @@
package org.broadinstitute.sting.gatk.walkers.variantutils;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.Requires;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
-import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.PrintStream;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToVCF.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToVCF.java
index 7eb49da34..aa0e5987f 100755
--- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToVCF.java
+++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/VariantsToVCF.java
@@ -28,26 +28,26 @@ package org.broadinstitute.sting.gatk.walkers.variantutils;
import net.sf.samtools.util.CloseableIterator;
import org.broad.tribble.dbsnp.DbSNPCodec;
import org.broad.tribble.dbsnp.DbSNPFeature;
-import org.broadinstitute.sting.utils.codecs.hapmap.HapMapFeature;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.codecs.vcf.*;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
-import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
-import org.broadinstitute.sting.gatk.refdata.*;
import org.broadinstitute.sting.commandline.Argument;
import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
+import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
+import org.broadinstitute.sting.gatk.refdata.VariantContextAdaptors;
import org.broadinstitute.sting.gatk.refdata.tracks.builders.RMDTrackBuilder;
import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
import org.broadinstitute.sting.gatk.walkers.*;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.SampleUtils;
+import org.broadinstitute.sting.utils.codecs.hapmap.HapMapFeature;
+import org.broadinstitute.sting.utils.codecs.vcf.*;
+import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.util.*;
@@ -199,8 +199,8 @@ public class VariantsToVCF extends RodWalker {
// setup the header fields
Set hInfo = new HashSet();
hInfo.addAll(VCFUtils.getHeaderFields(getToolkit()));
- hInfo.add(new VCFHeaderLine("source", "VariantsToVCF"));
- hInfo.add(new VCFHeaderLine("reference", getToolkit().getArguments().referenceFile.getName()));
+ //hInfo.add(new VCFHeaderLine("source", "VariantsToVCF"));
+ //hInfo.add(new VCFHeaderLine("reference", getToolkit().getArguments().referenceFile.getName()));
allowedGenotypeFormatStrings.add(VCFConstants.GENOTYPE_KEY);
for ( VCFHeaderLine field : hInfo ) {
diff --git a/public/java/src/org/broadinstitute/sting/jna/clibrary/LibC.java b/public/java/src/org/broadinstitute/sting/jna/clibrary/LibC.java
index b01533ee6..b5efcc153 100644
--- a/public/java/src/org/broadinstitute/sting/jna/clibrary/LibC.java
+++ b/public/java/src/org/broadinstitute/sting/jna/clibrary/LibC.java
@@ -24,7 +24,10 @@
package org.broadinstitute.sting.jna.clibrary;
-import com.sun.jna.*;
+import com.sun.jna.LastErrorException;
+import com.sun.jna.Native;
+import com.sun.jna.NativeLong;
+import com.sun.jna.Structure;
import com.sun.jna.ptr.NativeLongByReference;
/**
diff --git a/public/java/src/org/broadinstitute/sting/jna/lsf/v7_0_6/LibLsf.java b/public/java/src/org/broadinstitute/sting/jna/lsf/v7_0_6/LibLsf.java
index 0c0579d6f..c7b3de6cf 100644
--- a/public/java/src/org/broadinstitute/sting/jna/lsf/v7_0_6/LibLsf.java
+++ b/public/java/src/org/broadinstitute/sting/jna/lsf/v7_0_6/LibLsf.java
@@ -29,7 +29,7 @@ import com.sun.jna.ptr.FloatByReference;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.PointerByReference;
import org.broadinstitute.sting.jna.clibrary.JNAUtils;
-import org.broadinstitute.sting.jna.clibrary.LibC.*;
+import org.broadinstitute.sting.jna.clibrary.LibC.timeval;
/*
NOTE: This library uses Pointer for some Struct.ByReference members going
diff --git a/public/java/src/org/broadinstitute/sting/datasources/pipeline/Pipeline.java b/public/java/src/org/broadinstitute/sting/pipeline/Pipeline.java
similarity index 97%
rename from public/java/src/org/broadinstitute/sting/datasources/pipeline/Pipeline.java
rename to public/java/src/org/broadinstitute/sting/pipeline/Pipeline.java
index f8f8b2d29..e0e75c353 100644
--- a/public/java/src/org/broadinstitute/sting/datasources/pipeline/Pipeline.java
+++ b/public/java/src/org/broadinstitute/sting/pipeline/Pipeline.java
@@ -22,7 +22,7 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
-package org.broadinstitute.sting.datasources.pipeline;
+package org.broadinstitute.sting.pipeline;
import java.util.ArrayList;
import java.util.List;
diff --git a/public/java/src/org/broadinstitute/sting/datasources/pipeline/PipelineProject.java b/public/java/src/org/broadinstitute/sting/pipeline/PipelineProject.java
similarity index 98%
rename from public/java/src/org/broadinstitute/sting/datasources/pipeline/PipelineProject.java
rename to public/java/src/org/broadinstitute/sting/pipeline/PipelineProject.java
index 7967ba5df..8d33047bf 100644
--- a/public/java/src/org/broadinstitute/sting/datasources/pipeline/PipelineProject.java
+++ b/public/java/src/org/broadinstitute/sting/pipeline/PipelineProject.java
@@ -22,7 +22,7 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
-package org.broadinstitute.sting.datasources.pipeline;
+package org.broadinstitute.sting.pipeline;
import java.io.File;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/datasources/pipeline/PipelineSample.java b/public/java/src/org/broadinstitute/sting/pipeline/PipelineSample.java
similarity index 97%
rename from public/java/src/org/broadinstitute/sting/datasources/pipeline/PipelineSample.java
rename to public/java/src/org/broadinstitute/sting/pipeline/PipelineSample.java
index 701841302..7cd25fed5 100644
--- a/public/java/src/org/broadinstitute/sting/datasources/pipeline/PipelineSample.java
+++ b/public/java/src/org/broadinstitute/sting/pipeline/PipelineSample.java
@@ -22,7 +22,7 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
-package org.broadinstitute.sting.datasources.pipeline;
+package org.broadinstitute.sting.pipeline;
import java.io.File;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentDefinitionField.java b/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentDefinitionField.java
index fe6758e76..c09c4037e 100644
--- a/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentDefinitionField.java
+++ b/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentDefinitionField.java
@@ -27,13 +27,16 @@ package org.broadinstitute.sting.queue.extensions.gatk;
import net.sf.samtools.BAMIndex;
import net.sf.samtools.SAMFileWriter;
import org.broad.tribble.Tribble;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import org.broadinstitute.sting.commandline.*;
import org.broadinstitute.sting.gatk.io.stubs.SAMFileWriterArgumentTypeDescriptor;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFWriter;
import java.io.File;
import java.lang.annotation.Annotation;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
public abstract class ArgumentDefinitionField extends ArgumentField {
diff --git a/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentField.java b/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentField.java
index 2da427d44..e90933504 100644
--- a/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentField.java
+++ b/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/ArgumentField.java
@@ -35,7 +35,10 @@ import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
public abstract class ArgumentField {
diff --git a/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/GATKExtensionsGenerator.java b/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/GATKExtensionsGenerator.java
index 21fb44733..5095bd6e5 100644
--- a/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/GATKExtensionsGenerator.java
+++ b/public/java/src/org/broadinstitute/sting/queue/extensions/gatk/GATKExtensionsGenerator.java
@@ -27,17 +27,20 @@ package org.broadinstitute.sting.queue.extensions.gatk;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.commandline.*;
+import org.broadinstitute.sting.commandline.ArgumentTypeDescriptor;
+import org.broadinstitute.sting.commandline.CommandLineProgram;
+import org.broadinstitute.sting.commandline.Output;
+import org.broadinstitute.sting.commandline.ParsingEngine;
import org.broadinstitute.sting.gatk.CommandLineGATK;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.WalkerManager;
import org.broadinstitute.sting.gatk.arguments.ValidationExclusion;
import org.broadinstitute.sting.gatk.filters.FilterManager;
import org.broadinstitute.sting.gatk.filters.ReadFilter;
-import org.broadinstitute.sting.gatk.io.stubs.VCFWriterArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.io.stubs.OutputStreamArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.io.stubs.SAMFileReaderArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.io.stubs.SAMFileWriterArgumentTypeDescriptor;
+import org.broadinstitute.sting.gatk.io.stubs.VCFWriterArgumentTypeDescriptor;
import org.broadinstitute.sting.gatk.refdata.tracks.builders.RMDTrackBuilder;
import org.broadinstitute.sting.gatk.walkers.PartitionBy;
import org.broadinstitute.sting.gatk.walkers.PartitionType;
diff --git a/public/java/src/org/broadinstitute/sting/utils/DisjointSet.java b/public/java/src/org/broadinstitute/sting/utils/DisjointSet.java
index 5f68d3414..52c18e6d6 100644
--- a/public/java/src/org/broadinstitute/sting/utils/DisjointSet.java
+++ b/public/java/src/org/broadinstitute/sting/utils/DisjointSet.java
@@ -23,7 +23,9 @@
*/
package org.broadinstitute.sting.utils;
-import java.util.*;
+import java.util.Collection;
+import java.util.Set;
+import java.util.TreeSet;
public class DisjointSet {
private ItemNode[] nodes;
diff --git a/public/java/src/org/broadinstitute/sting/utils/GenomeLoc.java b/public/java/src/org/broadinstitute/sting/utils/GenomeLoc.java
index 1f8800542..b96923589 100644
--- a/public/java/src/org/broadinstitute/sting/utils/GenomeLoc.java
+++ b/public/java/src/org/broadinstitute/sting/utils/GenomeLoc.java
@@ -2,7 +2,6 @@ package org.broadinstitute.sting.utils;
import com.google.java.contract.Ensures;
import com.google.java.contract.Requires;
-import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.io.Serializable;
diff --git a/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java b/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java
index 18a1e7ffd..a5c6e0537 100644
--- a/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java
+++ b/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java
@@ -25,12 +25,14 @@
package org.broadinstitute.sting.utils;
-import com.google.java.contract.*;
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Invariant;
+import com.google.java.contract.Requires;
+import com.google.java.contract.ThrowEnsures;
import net.sf.picard.reference.ReferenceSequenceFile;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMSequenceDictionary;
import net.sf.samtools.SAMSequenceRecord;
-
import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
diff --git a/public/java/src/org/broadinstitute/sting/utils/IndelUtils.java b/public/java/src/org/broadinstitute/sting/utils/IndelUtils.java
index 30e1a3f5b..af69ebca6 100755
--- a/public/java/src/org/broadinstitute/sting/utils/IndelUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/IndelUtils.java
@@ -1,8 +1,8 @@
package org.broadinstitute.sting.utils;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/public/java/src/org/broadinstitute/sting/utils/MathUtils.java b/public/java/src/org/broadinstitute/sting/utils/MathUtils.java
index 50aa0f707..36ed506aa 100755
--- a/public/java/src/org/broadinstitute/sting/utils/MathUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/MathUtils.java
@@ -25,17 +25,14 @@
package org.broadinstitute.sting.utils;
-import cern.jet.math.Arithmetic;
-
-import java.math.BigDecimal;
-import java.util.*;
-
import com.google.java.contract.Requires;
import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.utils.collections.PrimitivePair;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import java.math.BigDecimal;
+import java.util.*;
+
/**
* MathUtils is a static class (no instantiation allowed!) with some useful math methods.
*
diff --git a/public/java/src/org/broadinstitute/sting/utils/MendelianViolation.java b/public/java/src/org/broadinstitute/sting/utils/MendelianViolation.java
index a8089ffe8..c6a07b5ce 100755
--- a/public/java/src/org/broadinstitute/sting/utils/MendelianViolation.java
+++ b/public/java/src/org/broadinstitute/sting/utils/MendelianViolation.java
@@ -1,12 +1,13 @@
package org.broadinstitute.sting.utils;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.util.*;
+import java.util.Collection;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/public/java/src/org/broadinstitute/sting/utils/PathUtils.java b/public/java/src/org/broadinstitute/sting/utils/PathUtils.java
index 47466be20..822d04dfd 100755
--- a/public/java/src/org/broadinstitute/sting/utils/PathUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/PathUtils.java
@@ -2,10 +2,10 @@ package org.broadinstitute.sting.utils;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.List;
-import java.util.ArrayList;
import java.io.File;
import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.List;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/utils/QualityUtils.java b/public/java/src/org/broadinstitute/sting/utils/QualityUtils.java
index 23054e95f..fad2320fc 100755
--- a/public/java/src/org/broadinstitute/sting/utils/QualityUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/QualityUtils.java
@@ -9,9 +9,13 @@ import net.sf.samtools.SAMUtils;
* @author Kiran Garimella
*/
public class QualityUtils {
+
public final static byte MAX_QUAL_SCORE = SAMUtils.MAX_PHRED_SCORE;
public final static double MIN_REASONABLE_ERROR = 0.0001;
public final static byte MAX_REASONABLE_Q_SCORE = 40;
+ public final static byte MIN_USABLE_Q_SCORE = 6;
+
+ public final static int MAPPING_QUALITY_UNAVAILABLE = 255;
/**
* Private constructor. No instantiating this class!
diff --git a/public/java/src/org/broadinstitute/sting/utils/ReservoirDownsampler.java b/public/java/src/org/broadinstitute/sting/utils/ReservoirDownsampler.java
index 30257d967..a758df431 100644
--- a/public/java/src/org/broadinstitute/sting/utils/ReservoirDownsampler.java
+++ b/public/java/src/org/broadinstitute/sting/utils/ReservoirDownsampler.java
@@ -3,7 +3,9 @@ package org.broadinstitute.sting.utils;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
/**
* Randomly downsample from a stream of elements. This algorithm is a direct,
diff --git a/public/java/src/org/broadinstitute/sting/utils/SWPairwiseAlignment.java b/public/java/src/org/broadinstitute/sting/utils/SWPairwiseAlignment.java
index 4b7fa3e41..92d73a5ce 100755
--- a/public/java/src/org/broadinstitute/sting/utils/SWPairwiseAlignment.java
+++ b/public/java/src/org/broadinstitute/sting/utils/SWPairwiseAlignment.java
@@ -24,15 +24,14 @@
package org.broadinstitute.sting.utils;
+import net.sf.samtools.Cigar;
import net.sf.samtools.CigarElement;
import net.sf.samtools.CigarOperator;
-import net.sf.samtools.Cigar;
-
-import java.util.*;
-
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.StingException;
+import java.util.*;
+
/**
* Created by IntelliJ IDEA.
* User: asivache
diff --git a/public/java/src/org/broadinstitute/sting/utils/SampleUtils.java b/public/java/src/org/broadinstitute/sting/utils/SampleUtils.java
index c0370064d..f9997bfd8 100755
--- a/public/java/src/org/broadinstitute/sting/utils/SampleUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/SampleUtils.java
@@ -27,12 +27,12 @@ package org.broadinstitute.sting.utils;
import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMReadGroupRecord;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
+import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/public/java/src/org/broadinstitute/sting/utils/SimpleTimer.java b/public/java/src/org/broadinstitute/sting/utils/SimpleTimer.java
index a59c5134a..342087b41 100644
--- a/public/java/src/org/broadinstitute/sting/utils/SimpleTimer.java
+++ b/public/java/src/org/broadinstitute/sting/utils/SimpleTimer.java
@@ -1,7 +1,10 @@
package org.broadinstitute.sting.utils;
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Invariant;
+import com.google.java.contract.Requires;
+
import java.io.PrintStream;
-import com.google.java.contract.*;
/**
* A useful simple system for timing code. This code is not thread safe!
diff --git a/public/java/src/org/broadinstitute/sting/utils/Utils.java b/public/java/src/org/broadinstitute/sting/utils/Utils.java
index 4c13d8b18..6a50badce 100755
--- a/public/java/src/org/broadinstitute/sting/utils/Utils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/Utils.java
@@ -25,13 +25,12 @@
package org.broadinstitute.sting.utils;
-import java.util.*;
-
import net.sf.samtools.util.StringUtil;
-
import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.collections.Pair;
+import java.util.*;
+
/**
* Created by IntelliJ IDEA.
* User: depristo
diff --git a/public/java/src/org/broadinstitute/sting/utils/baq/BAQ.java b/public/java/src/org/broadinstitute/sting/utils/baq/BAQ.java
index 456f0fa0f..ef7cf751e 100644
--- a/public/java/src/org/broadinstitute/sting/utils/baq/BAQ.java
+++ b/public/java/src/org/broadinstitute/sting/utils/baq/BAQ.java
@@ -1,10 +1,10 @@
package org.broadinstitute.sting.utils.baq;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.CigarElement;
-import net.sf.samtools.CigarOperator;
import net.sf.picard.reference.IndexedFastaSequenceFile;
import net.sf.picard.reference.ReferenceSequence;
+import net.sf.samtools.CigarElement;
+import net.sf.samtools.CigarOperator;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
diff --git a/public/java/src/org/broadinstitute/sting/utils/baq/BAQSamIterator.java b/public/java/src/org/broadinstitute/sting/utils/baq/BAQSamIterator.java
index 24d4152a5..26356a4a4 100644
--- a/public/java/src/org/broadinstitute/sting/utils/baq/BAQSamIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/baq/BAQSamIterator.java
@@ -2,11 +2,10 @@ package org.broadinstitute.sting.utils.baq;
import com.google.java.contract.Ensures;
import com.google.java.contract.Requires;
-import net.sf.samtools.SAMRecord;
import net.sf.picard.reference.IndexedFastaSequenceFile;
-import org.broadinstitute.sting.utils.baq.BAQ;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.Iterator;
diff --git a/public/java/src/org/broadinstitute/sting/utils/bed/BedParser.java b/public/java/src/org/broadinstitute/sting/utils/bed/BedParser.java
index abcae066f..b95165841 100644
--- a/public/java/src/org/broadinstitute/sting/utils/bed/BedParser.java
+++ b/public/java/src/org/broadinstitute/sting/utils/bed/BedParser.java
@@ -1,11 +1,12 @@
package org.broadinstitute.sting.utils.bed;
-import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.*;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/utils/broad/PicardAggregationUtils.java b/public/java/src/org/broadinstitute/sting/utils/broad/PicardAggregationUtils.java
deleted file mode 100755
index 8f3ffd741..000000000
--- a/public/java/src/org/broadinstitute/sting/utils/broad/PicardAggregationUtils.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2011, The Broad Institute
- *
- * 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 org.broadinstitute.sting.utils.broad;
-
-import org.apache.commons.io.filefilter.RegexFileFilter;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileNotFoundException;
-import java.util.Arrays;
-
-public class PicardAggregationUtils {
- public static final String PICARD_AGGREGATION_DIR = "/seq/picard_aggregation/";
-
- /**
- * Returns the path to the sample BAM.
- * @param project Project
- * @param sample Sample
- * @param version Version
- * @return The path to the sample BAM.
- */
- public static String getSampleBam(String project, String sample, int version) {
- return getSampleDir(project, sample, version) + sample + ".bam";
- }
-
- /**
- * Returns the path to the latest BAM.
- * @param project Project
- * @param sample Sample
- * @return The path to the latest BAM.
- * @throws FileNotFoundException If a finished directory cannot be found for a sample.
- */
- public static String getSampleBam(String project, String sample) throws FileNotFoundException {
- return getSampleDir(project, sample) + sample + ".bam";
- }
-
- /**
- * Returns the sample directory.
- * @param project Project
- * @param sample Sample
- * @param version Version
- * @return the sample directory.
- */
- public static String getSampleDir(String project, String sample, int version) {
- return PICARD_AGGREGATION_DIR + String.format("%s/%s/v%d/", project, sample, version);
- }
-
- /**
- * Returns the latest finished directory for this project sample.
- * @param project Project
- * @param sample Sample
- * @return The path to the latest finished directory.
- * @throws FileNotFoundException If a finished directory cannot be found for a sample.
- */
- public static String getSampleDir(String project, String sample) throws FileNotFoundException {
- int latestVersion = getLatestVersion(project, sample);
- if (latestVersion == 0)
- throw new FileNotFoundException("Unable to find a finished directory for project sample " + project + "/" + sample);
- return getSampleDir(project, sample, latestVersion);
- }
-
- /**
- * Returns the latest finished version directory.
- * Because isilon metadata operations are relatively slow this method
- * tries not to look for every possible versioned directory.
- * @param project Project
- * @param sample Sample
- * @return The highest finished version directory or 0 if a finished directory was not found.
- */
- public static int getLatestVersion(String project, String sample) {
- return getLatestVersion(project, sample, 0);
- }
-
- /**
- * Returns the latest finished version directory after startVersion.
- * Because isilon metadata operations are relatively slow this method
- * tries not to look for every possible versioned directory.
- * @param project Project
- * @param sample Sample
- * @param startVersion minimum version to return
- * @return The highest finished version directory after startVersion
- */
- public static int getLatestVersion(String project, String sample, int startVersion) {
- int version = Math.max(0, startVersion);
- boolean nextExists = true;
- while (nextExists) {
- nextExists = false;
- for (int next = 3; next > 0; next--)
- if (isFinished(project, sample, version + next)) {
- version += next;
- nextExists = true;
- break;
- }
- }
- // Special case when the version is 0
- // Because isilon storage takes a while to do meta data operations only look through every file if we have to.
- if (version == 0) {
- File sampleDir = new File(PICARD_AGGREGATION_DIR + project + "/" + sample);
- if (sampleDir.exists()) {
- FileFilter filter = new RegexFileFilter("v\\d+");
- File[] files = sampleDir.listFiles(filter);
- int[] versions = new int[files.length];
- for (int i = 0; i < files.length; i++)
- versions[i] = Integer.parseInt(files[i].getName().substring(1));
- Arrays.sort(versions);
- for (int i = versions.length - 1; i >= 0; i--) {
- if (isFinished(project, sample, versions[i])) {
- version = versions[i];
- break;
- }
- }
- }
- }
- return version == 0 ? startVersion : version;
- }
-
- /**
- * Returns true if the project sample directory contains a finished.txt
- * @param project Project
- * @param sample Sample
- * @param version Version
- * @return true if the project sample directory contains a finished.txt
- */
- public static boolean isFinished(String project, String sample, int version) {
- return new File(getSampleDir(project, sample, version), "finished.txt").exists();
- }
-}
diff --git a/public/java/src/org/broadinstitute/sting/utils/broad/PicardAnalysisFiles.java b/public/java/src/org/broadinstitute/sting/utils/broad/PicardAnalysisFiles.java
deleted file mode 100755
index 02381916e..000000000
--- a/public/java/src/org/broadinstitute/sting/utils/broad/PicardAnalysisFiles.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2011, The Broad Institute
- *
- * 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 org.broadinstitute.sting.utils.broad;
-
-import org.apache.commons.lang.ArrayUtils;
-import org.broadinstitute.sting.utils.exceptions.StingException;
-import org.broadinstitute.sting.utils.text.XReadLines;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-public class PicardAnalysisFiles {
- private static final String REFERENCE_SEQUENCE_HEADER = "REFERENCE_SEQUENCE";
- private static final String TARGET_INTERVALS_HEADER = "TARGET_INTERVALS";
- private static final String BAIT_INTERVALS_HEADER = "BAIT_INTERVALS";
- private static final String[] ANALYSIS_HEADERS = {REFERENCE_SEQUENCE_HEADER, TARGET_INTERVALS_HEADER, BAIT_INTERVALS_HEADER};
- private static final String ANALYSIS_FILES = "analysis_files.txt";
-
- private String path;
- private Map> headerValues = new HashMap>();
-
- public PicardAnalysisFiles(String project, String sample) throws FileNotFoundException {
- this(PicardAggregationUtils.getSampleDir(project, sample) + ANALYSIS_FILES);
- }
-
- public PicardAnalysisFiles(String project, String sample, int version) throws FileNotFoundException {
- this(PicardAggregationUtils.getSampleDir(project, sample, version) + ANALYSIS_FILES);
- }
-
- public PicardAnalysisFiles(String path) throws FileNotFoundException {
- this.path = path;
- HashMap headerIndexes = null;
- for (String line: new XReadLines(new File(path))) {
- if (line.startsWith("#"))
- continue;
- String[] values = line.split("\t");
- if (headerIndexes == null) {
- headerIndexes = new HashMap();
- for (String header: ANALYSIS_HEADERS) {
- headerIndexes.put(header, ArrayUtils.indexOf(values, header));
- headerValues.put(header, new HashSet());
- }
- } else {
- for (String header: ANALYSIS_HEADERS) {
- int index = headerIndexes.get(header);
- if (values.length <= index)
- throw new StingException(String.format("Unable to parse line in %s: %n%s", path, line));
- String value = values[index];
- headerValues.get(header).add(value);
- }
- }
- }
- }
-
- public String getPath() {
- return path;
- }
-
- public String getReferenceSequence() {
- return getSingle(REFERENCE_SEQUENCE_HEADER);
- }
-
- public String getTargetIntervals() {
- return getSingle(TARGET_INTERVALS_HEADER);
- }
-
- public String getBaitIntervals() {
- return getSingle(BAIT_INTERVALS_HEADER);
- }
-
- private String getSingle(String header) {
- Set values = headerValues.get(header);
- if (values.size() > 1) {
- throw new UnsupportedOperationException(path + " contains more than one value for " + header + ": " + values);
- } else if (values.size() == 0) {
- return null;
- } else {
- String value = values.iterator().next();
- return "null".equals(value) ? null : value;
- }
- }
-}
diff --git a/public/java/src/org/broadinstitute/sting/utils/broad/PicardPipeline.java b/public/java/src/org/broadinstitute/sting/utils/broad/PicardPipeline.java
deleted file mode 100755
index 96bbb2455..000000000
--- a/public/java/src/org/broadinstitute/sting/utils/broad/PicardPipeline.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2011, The Broad Institute
- *
- * 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 org.broadinstitute.sting.utils.broad;
-
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang.NullArgumentException;
-import org.broadinstitute.sting.datasources.pipeline.Pipeline;
-import org.broadinstitute.sting.datasources.pipeline.PipelineProject;
-import org.broadinstitute.sting.datasources.pipeline.PipelineSample;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.utils.yaml.YamlUtils;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-
-/**
- * Automatically gets the latest version using PicardAggregationUtils.
- */
-public class PicardPipeline {
-
- protected static final String PROJECT_TAG = "SQUIDProject";
- protected static final String SAMPLE_TAG = "CollaboratorID";
- protected static final String PICARD_BAM_TYPE = "cleaned";
-
- private PicardPipeline() {}
-
- /**
- * Creates a new PicardPipeline
- * @param path Path to a tsv with project [tab] sample on each line or a pipeline yaml.
- * @return a new Picard
- * @throws FileNotFoundException when unable to find the file or any supporting files.
- */
- public static Pipeline parse(File path) throws FileNotFoundException {
- if (path == null)
- throw new NullArgumentException("path");
-
- Pipeline pipeline;
- if (path.getName().endsWith(".tsv")) {
- pipeline = new Pipeline();
- pipeline.getProject().setName(FilenameUtils.getBaseName(path.getPath()));
- for (String line: new XReadLines(path)) {
- String[] projectSample = line.split("\t");
- addSample(pipeline, projectSample[0], projectSample[1]);
- }
- } else if (path.getName().endsWith(".yaml")) {
- pipeline = YamlUtils.load(Pipeline.class, path);
- } else {
- throw new UserException.BadInput("Path does not end with .tsv or .yaml: " + path.getPath());
- }
-
- update(pipeline);
- return pipeline;
- }
-
- private static void update(Pipeline pipeline) throws FileNotFoundException {
- for (PipelineSample sample: pipeline.getSamples())
- updateSample(pipeline.getProject(), sample);
- }
-
- private static void addSample(Pipeline pipeline, String project, String sample) {
- PipelineSample pipelineSample = new PipelineSample();
- pipelineSample.getTags().put(PROJECT_TAG, project);
- pipelineSample.getTags().put(SAMPLE_TAG, sample);
- pipeline.getSamples().add(pipelineSample);
- }
-
- private static void updateSample(PipelineProject pipelineProject, PipelineSample pipelineSample) throws FileNotFoundException {
- if (!pipelineSample.getTags().containsKey(PROJECT_TAG) && !pipelineSample.getTags().containsKey(SAMPLE_TAG))
- return;
- String project = pipelineSample.getTags().get(PROJECT_TAG);
- String sample = pipelineSample.getTags().get(SAMPLE_TAG);
- int version = PicardAggregationUtils.getLatestVersion(project, sample);
- if (version <= 0)
- throw new UserException.BadInput("Project sample not found: " + project + "/" + sample);
- String bam = PicardAggregationUtils.getSampleBam(project, sample, version);
- if (pipelineSample.getId() == null)
- pipelineSample.setId(project + "_" + sample);
- pipelineSample.getBamFiles().put(PICARD_BAM_TYPE, new File(bam));
-
- PicardAnalysisFiles analysis = new PicardAnalysisFiles(project, sample, version);
- if (pipelineProject.getReferenceFile() == null) {
- String referenceSequence = analysis.getReferenceSequence();
- ReferenceData referenceData = ReferenceData.getByReference(referenceSequence);
- pipelineProject.setReferenceFile(new File(referenceData.getReference()));
- pipelineProject.setRefseqTable(new File(referenceData.getRefseq()));
- if (analysis.getTargetIntervals() != null)
- pipelineProject.setIntervalList(new File(analysis.getTargetIntervals()));
- pipelineProject.setEvalDbsnp(new File(referenceData.getDbsnp(129)));
- if (referenceData.getDbsnpVersions().contains(132)) {
- pipelineProject.setGenotypeDbsnp(new File(referenceData.getDbsnp(132)));
- } else {
- pipelineProject.setGenotypeDbsnp(new File(referenceData.getDbsnp(129)));
- }
- } else {
- String referenceSequence = analysis.getReferenceSequence();
- if (!pipelineProject.getReferenceFile().getPath().equals(referenceSequence))
- throw new UserException.BadInput("Samples sequenced with different references");
- }
- }
-}
diff --git a/public/java/src/org/broadinstitute/sting/utils/broad/ReferenceData.java b/public/java/src/org/broadinstitute/sting/utils/broad/ReferenceData.java
deleted file mode 100755
index 36a59ec70..000000000
--- a/public/java/src/org/broadinstitute/sting/utils/broad/ReferenceData.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2011, The Broad Institute
- *
- * 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 org.broadinstitute.sting.utils.broad;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-
-/**
- * Tracks data related to reference files at the Broad.
- */
-public enum ReferenceData {
- /**
- * HG18 reference data
- */
- HG18("hg18"),
-
- /**
- * HG19 reference data
- */
- HG19("hg19");
-
- private static final String REFSEQ_DIR = "/humgen/gsa-hpprojects/GATK/data/Annotations/refseq/";
- private static final String DBSNP_DIR = "/humgen/gsa-hpprojects/GATK/data/";
-
- private final String name;
- private final String reference;
- private final String refseq;
- private final Map dbsnps;
-
- ReferenceData(String name) {
- this.name = name;
- Map dbsnps = new TreeMap();
- if ("hg18".equals(name)) {
- this.reference = "/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta";
- this.refseq = REFSEQ_DIR + "refGene-big-table-hg18.txt";
- dbsnps.put(129, DBSNP_DIR + "dbsnp_129_hg18.rod");
- } else if ("hg19".equals(name)) {
- this.reference = "/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta";
- this.refseq = REFSEQ_DIR + "refGene-big-table-hg19.txt";
- dbsnps.put(129, DBSNP_DIR + "dbsnp_129_b37.vcf");
- dbsnps.put(132, DBSNP_DIR + "dbsnp_132_b37.vcf");
- } else
- throw new UnsupportedOperationException("Unknown reference: " + name);
- this.dbsnps = Collections.unmodifiableMap(dbsnps);
- }
-
- /**
- * Returns the name of the reference.
- * @return the name of the reference.
- */
- public String getName() {
- return name;
- }
-
- /**
- * Returns the path to the fasta.
- * @return the path to the fasta.
- */
- public String getReference() {
- return reference;
- }
-
- /**
- * Returns the path to the refseq table.
- * @return the path to the refseq table.
- */
- public String getRefseq() {
- return refseq;
- }
-
- /**
- * Returns the dbsnp versions available.
- * @return the dbsnp versions available.
- */
- public Set getDbsnpVersions() {
- return dbsnps.keySet();
- }
-
- /**
- * Returns the dbsnp path for the version.
- * @param version version from getDbsnpVersions()
- * @return the dbsnp path for the version.
- */
- public String getDbsnp(int version) {
- return dbsnps.get(version);
- }
-
- /**
- * Returns the dbsnp type for the version, "VCF" or "DBSNP".
- * @param version version from getDbsnpVersions()
- * @return the dbsnp type for the version, "VCF" or "DBSNP".
- */
- public String getDbsnpType(int version) {
- String dbsnp = getDbsnp(version);
- if (dbsnp == null)
- return null;
- return dbsnp.toLowerCase().endsWith(".vcf") ? "VCF" : "DBSNP";
- }
-
- /**
- * Returns the reference data based on the path or null.
- * @param reference path to the reference
- * @return the reference data based on the path or null.
- */
- public static ReferenceData getByReference(String reference) {
- for (ReferenceData data: ReferenceData.values())
- if (data.reference.equals(reference))
- return data;
- return null;
- }
-}
diff --git a/public/java/src/org/broadinstitute/sting/utils/classloader/JVMUtils.java b/public/java/src/org/broadinstitute/sting/utils/classloader/JVMUtils.java
index 404bd80b6..e65b8f921 100755
--- a/public/java/src/org/broadinstitute/sting/utils/classloader/JVMUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/classloader/JVMUtils.java
@@ -29,9 +29,9 @@ import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.StingException;
import org.reflections.util.ClasspathHelper;
-import java.lang.reflect.*;
import java.io.File;
import java.io.IOException;
+import java.lang.reflect.*;
import java.net.URL;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/utils/clipreads/ClippingOp.java b/public/java/src/org/broadinstitute/sting/utils/clipreads/ClippingOp.java
index 95f3e160c..5449906b2 100644
--- a/public/java/src/org/broadinstitute/sting/utils/clipreads/ClippingOp.java
+++ b/public/java/src/org/broadinstitute/sting/utils/clipreads/ClippingOp.java
@@ -4,9 +4,6 @@ import net.sf.samtools.Cigar;
import net.sf.samtools.CigarElement;
import net.sf.samtools.CigarOperator;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.gatk.walkers.ClipReadsWalker;
-import org.broadinstitute.sting.gatk.walkers.Walker;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.sam.ReadUtils;
import java.util.Vector;
diff --git a/public/java/src/org/broadinstitute/sting/utils/clipreads/ReadClipper.java b/public/java/src/org/broadinstitute/sting/utils/clipreads/ReadClipper.java
index 031467ed9..988d297f6 100644
--- a/public/java/src/org/broadinstitute/sting/utils/clipreads/ReadClipper.java
+++ b/public/java/src/org/broadinstitute/sting/utils/clipreads/ReadClipper.java
@@ -1,7 +1,6 @@
package org.broadinstitute.sting.utils.clipreads;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.gatk.walkers.ClipReadsWalker;
import java.util.ArrayList;
import java.util.List;
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/completegenomics/CGVarCodec.java b/public/java/src/org/broadinstitute/sting/utils/codecs/completegenomics/CGVarCodec.java
index a286ce789..fef6c4ea0 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/completegenomics/CGVarCodec.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/completegenomics/CGVarCodec.java
@@ -30,7 +30,6 @@ import org.broad.tribble.readers.LineReader;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.regex.Matcher;
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/soapsnp/SoapSNPCodec.java b/public/java/src/org/broadinstitute/sting/utils/codecs/soapsnp/SoapSNPCodec.java
index 618d9ce79..e169dbdfc 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/soapsnp/SoapSNPCodec.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/soapsnp/SoapSNPCodec.java
@@ -4,11 +4,11 @@ import org.broad.tribble.Feature;
import org.broad.tribble.FeatureCodec;
import org.broad.tribble.NameAwareCodec;
import org.broad.tribble.TribbleException;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broad.tribble.exception.CodecLineParsingException;
import org.broad.tribble.readers.LineReader;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
+import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java
index cd0f52c68..710127f7a 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/AbstractVCFCodec.java
@@ -7,6 +7,8 @@ import org.broad.tribble.NameAwareCodec;
import org.broad.tribble.TribbleException;
import org.broad.tribble.readers.LineReader;
import org.broad.tribble.util.ParsingUtils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
@@ -96,6 +98,9 @@ public abstract class AbstractVCFCodec implements FeatureCodec, NameAwareCodec,
for ( String str : headerStrings ) {
if ( !str.startsWith(VCFHeader.METADATA_INDICATOR) ) {
String[] strings = str.substring(1).split(VCFConstants.FIELD_SEPARATOR);
+ if ( strings.length < VCFHeader.HEADER_FIELDS.values().length )
+ throw new TribbleException.InvalidHeader("there are not enough columns present in the header line: " + str);
+
int arrayIndex = 0;
for (VCFHeader.HEADER_FIELDS field : VCFHeader.HEADER_FIELDS.values()) {
try {
@@ -159,12 +164,11 @@ public abstract class AbstractVCFCodec implements FeatureCodec, NameAwareCodec,
}
private Feature reallyDecode(String line) {
- try {
// the same line reader is not used for parsing the header and parsing lines, if we see a #, we've seen a header line
if (line.startsWith(VCFHeader.HEADER_INDICATOR)) return null;
// our header cannot be null, we need the genotype sample names and counts
- if (header == null) throw new IllegalStateException("VCF Header cannot be null when decoding a record");
+ if (header == null) throw new ReviewedStingException("VCF Header cannot be null when decoding a record");
if (parts == null)
parts = new String[Math.min(header.getColumnCount(), NUM_STANDARD_FIELDS+1)];
@@ -174,17 +178,18 @@ public abstract class AbstractVCFCodec implements FeatureCodec, NameAwareCodec,
// if we have don't have a header, or we have a header with no genotyping data check that we have eight columns. Otherwise check that we have nine (normal colummns + genotyping data)
if (( (header == null || (header != null && !header.hasGenotypingData())) && nParts != NUM_STANDARD_FIELDS) ||
(header != null && header.hasGenotypingData() && nParts != (NUM_STANDARD_FIELDS + 1)) )
- throw new IllegalArgumentException("There aren't enough columns for line " + line + " (we expected " + (header == null ? NUM_STANDARD_FIELDS : NUM_STANDARD_FIELDS + 1) +
- " tokens, and saw " + nParts + " )");
+ throw new UserException.MalformedVCF("there aren't enough columns for line " + line + " (we expected " + (header == null ? NUM_STANDARD_FIELDS : NUM_STANDARD_FIELDS + 1) +
+ " tokens, and saw " + nParts + " )", lineNo);
return parseVCFLine(parts);
- } catch (TribbleException e) {
- throw new TribbleException.InvalidDecodeLine(e.getMessage(), line);
- }
}
protected void generateException(String message) {
- throw new TribbleException.InvalidDecodeLine(message, lineNo);
+ throw new UserException.MalformedVCF(message, lineNo);
+ }
+
+ private static void generateException(String message, int lineNo) {
+ throw new UserException.MalformedVCF(message, lineNo);
}
/**
@@ -225,7 +230,7 @@ public abstract class AbstractVCFCodec implements FeatureCodec, NameAwareCodec,
loc = pos + alleles.get(0).length() - 1;
} else if ( !isSingleNucleotideEvent(alleles) ) {
ArrayList newAlleles = new ArrayList();
- loc = clipAlleles(pos, ref, alleles, newAlleles);
+ loc = clipAlleles(pos, ref, alleles, newAlleles, lineNo);
alleles = newAlleles;
}
@@ -472,10 +477,6 @@ public abstract class AbstractVCFCodec implements FeatureCodec, NameAwareCodec,
return true;
}
- private static void generateException(String message, int lineNo) {
- throw new TribbleException.InvalidDecodeLine(message, lineNo);
- }
-
private static int computeForwardClipping(List unclippedAlleles, String ref) {
boolean clipping = true;
// Note that the computation of forward clipping here is meant only to see whether there is a common
@@ -504,7 +505,7 @@ public abstract class AbstractVCFCodec implements FeatureCodec, NameAwareCodec,
* @param clippedAlleles output list of clipped alleles
* @return a list of alleles, clipped to the reference
*/
- protected static long clipAlleles(long position, String ref, List unclippedAlleles, List clippedAlleles) {
+ protected static long clipAlleles(long position, String ref, List unclippedAlleles, List clippedAlleles, int lineNo) {
// Note that the computation of forward clipping here is meant only to see whether there is a common
// base to all alleles, and to correctly compute reverse clipping,
@@ -522,6 +523,8 @@ public abstract class AbstractVCFCodec implements FeatureCodec, NameAwareCodec,
}
if (a.length() - reverseClipped <= forwardClipping || a.length() - forwardClipping == 0)
clipping = false;
+ else if (ref.length() == reverseClipped)
+ generateException("bad alleles encountered", lineNo);
else if (a.getBases()[a.length()-reverseClipped-1] != ref.getBytes()[ref.length()-reverseClipped-1])
clipping = false;
}
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/StandardVCFWriter.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/StandardVCFWriter.java
index 31251c089..b7f4be39a 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/StandardVCFWriter.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/StandardVCFWriter.java
@@ -32,13 +32,14 @@ import org.broad.tribble.index.IndexFactory;
import org.broad.tribble.util.LittleEndianOutputStream;
import org.broad.tribble.util.ParsingUtils;
import org.broad.tribble.util.PositionalStream;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.*;
-import java.util.*;
import java.lang.reflect.Array;
+import java.util.*;
/**
* this class writes VCF files
@@ -123,12 +124,10 @@ public class StandardVCFWriter implements VCFWriter {
try {
// the file format field needs to be written first
- mWriter.write(VCFHeader.METADATA_INDICATOR + VCFHeaderVersion.VCF4_0.getFormatString() + "=" + VCFHeaderVersion.VCF4_0.getVersionString() + "\n");
+ mWriter.write(VCFHeader.METADATA_INDICATOR + VCFHeaderVersion.VCF4_1.getFormatString() + "=" + VCFHeaderVersion.VCF4_1.getVersionString() + "\n");
for ( VCFHeaderLine line : mHeader.getMetaData() ) {
- if ( line.getKey().equals(VCFHeaderVersion.VCF4_0.getFormatString()) ||
- line.getKey().equals(VCFHeaderVersion.VCF3_3.getFormatString()) ||
- line.getKey().equals(VCFHeaderVersion.VCF3_2.getFormatString()) )
+ if ( VCFHeaderVersion.isFormatString(line.getKey()) )
continue;
// are the records filtered (so we know what to put in the FILTER column of passing records) ?
@@ -302,10 +301,7 @@ public class StandardVCFWriter implements VCFWriter {
} else {
List genotypeAttributeKeys = new ArrayList();
if ( vc.hasGenotypes() ) {
- genotypeAttributeKeys.add(VCFConstants.GENOTYPE_KEY);
- for ( String key : calcVCFGenotypeKeys(vc) ) {
- genotypeAttributeKeys.add(key);
- }
+ genotypeAttributeKeys.addAll(calcVCFGenotypeKeys(vc));
} else if ( mHeader.hasGenotypingData() ) {
// this needs to be done in case all samples are no-calls
genotypeAttributeKeys.add(VCFConstants.GENOTYPE_KEY);
@@ -358,16 +354,8 @@ public class StandardVCFWriter implements VCFWriter {
mWriter.write(key);
if ( !entry.getValue().equals("") ) {
- int numVals = 1;
VCFInfoHeaderLine metaData = mHeader.getInfoHeaderLine(key);
- if ( metaData != null )
- numVals = metaData.getCount();
-
- // take care of unbounded encoding
- if ( numVals == VCFInfoHeaderLine.UNBOUNDED )
- numVals = 1;
-
- if ( numVals > 0 ) {
+ if ( metaData == null || metaData.getCountType() != VCFHeaderLineCount.INTEGER || metaData.getCount() != 0 ) {
mWriter.write("=");
mWriter.write(entry.getValue());
}
@@ -397,16 +385,22 @@ public class StandardVCFWriter implements VCFWriter {
continue;
}
- writeAllele(g.getAllele(0), alleleMap);
- for (int i = 1; i < g.getPloidy(); i++) {
- mWriter.write(g.isPhased() ? VCFConstants.PHASED : VCFConstants.UNPHASED);
- writeAllele(g.getAllele(i), alleleMap);
- }
-
List attrs = new ArrayList(genotypeFormatKeys.size());
for ( String key : genotypeFormatKeys ) {
- if ( key.equals(VCFConstants.GENOTYPE_KEY) )
+
+ if ( key.equals(VCFConstants.GENOTYPE_KEY) ) {
+ if ( !g.isAvailable() ) {
+ throw new ReviewedStingException("GTs cannot be missing for some samples if they are available for others in the record");
+ }
+
+ writeAllele(g.getAllele(0), alleleMap);
+ for (int i = 1; i < g.getPloidy(); i++) {
+ mWriter.write(g.isPhased() ? VCFConstants.PHASED : VCFConstants.UNPHASED);
+ writeAllele(g.getAllele(i), alleleMap);
+ }
+
continue;
+ }
Object val = g.hasAttribute(key) ? g.getAttribute(key) : VCFConstants.MISSING_VALUE_v4;
@@ -423,7 +417,7 @@ public class StandardVCFWriter implements VCFWriter {
VCFFormatHeaderLine metaData = mHeader.getFormatHeaderLine(key);
if ( metaData != null ) {
- int numInFormatField = metaData.getCount();
+ int numInFormatField = metaData.getCount(vc.getAlternateAlleles().size());
if ( numInFormatField > 1 && val.equals(VCFConstants.MISSING_VALUE_v4) ) {
// If we have a missing field but multiple values are expected, we need to construct a new string with all fields.
// For example, if Number=2, the string has to be ".,."
@@ -450,9 +444,10 @@ public class StandardVCFWriter implements VCFWriter {
break;
}
- for (String s : attrs ) {
- mWriter.write(VCFConstants.GENOTYPE_FIELD_SEPARATOR);
- mWriter.write(s);
+ for (int i = 0; i < attrs.size(); i++) {
+ if ( i > 0 || genotypeFormatKeys.contains(VCFConstants.GENOTYPE_KEY) )
+ mWriter.write(VCFConstants.GENOTYPE_FIELD_SEPARATOR);
+ mWriter.write(attrs.get(i));
}
}
}
@@ -498,10 +493,13 @@ public class StandardVCFWriter implements VCFWriter {
private static List calcVCFGenotypeKeys(VariantContext vc) {
Set keys = new HashSet();
+ boolean sawGoodGT = false;
boolean sawGoodQual = false;
boolean sawGenotypeFilter = false;
for ( Genotype g : vc.getGenotypes().values() ) {
keys.addAll(g.getAttributes().keySet());
+ if ( g.isAvailable() )
+ sawGoodGT = true;
if ( g.hasNegLog10PError() )
sawGoodQual = true;
if (g.isFiltered() && g.isCalled())
@@ -514,7 +512,17 @@ public class StandardVCFWriter implements VCFWriter {
if (sawGenotypeFilter)
keys.add(VCFConstants.GENOTYPE_FILTER_KEY);
- return ParsingUtils.sortList(new ArrayList(keys));
+ List sortedList = ParsingUtils.sortList(new ArrayList(keys));
+
+ // make sure the GT is first
+ if ( sawGoodGT ) {
+ List newList = new ArrayList(sortedList.size()+1);
+ newList.add(VCFConstants.GENOTYPE_KEY);
+ newList.addAll(sortedList);
+ sortedList = newList;
+ }
+
+ return sortedList;
}
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCF3Codec.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCF3Codec.java
index f3c99e963..c29f2ba8b 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCF3Codec.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCF3Codec.java
@@ -141,8 +141,6 @@ public class VCF3Codec extends AbstractVCFCodec {
boolean missing = i >= GTValueSplitSize;
if (gtKey.equals(VCFConstants.GENOTYPE_KEY)) {
- if (i != 0)
- generateException("Saw GT at position " + i + ", but it must be at the first position for genotypes");
genotypeAlleleLocation = i;
} else if (gtKey.equals(VCFConstants.GENOTYPE_QUALITY_KEY)) {
GTQual = missing ? parseQual(VCFConstants.MISSING_VALUE_v4) : parseQual(GTValueArray[i]);
@@ -156,12 +154,13 @@ public class VCF3Codec extends AbstractVCFCodec {
}
}
- // check to make sure we found a gentoype field
- if (genotypeAlleleLocation < 0) generateException("Unable to find required field GT for the record; we don't yet support a missing GT field");
+ // check to make sure we found a genotype field
+ if ( genotypeAlleleLocation < 0 )
+ generateException("Unable to find the GT field for the record; the GT field is required");
+ if ( genotypeAlleleLocation > 0 )
+ generateException("Saw GT field at position " + genotypeAlleleLocation + ", but it must be at the first position for genotypes");
- // todo -- assuming allele list length in the single digits is bad. Fix me.
- // Check for > 1 for haploid genotypes
- boolean phased = GTValueArray[genotypeAlleleLocation].length() > 1 && GTValueArray[genotypeAlleleLocation].charAt(1) == '|';
+ boolean phased = GTValueArray[genotypeAlleleLocation].indexOf(VCFConstants.PHASED) != -1;
// add it to the list
try {
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFAltHeaderLine.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFAltHeaderLine.java
new file mode 100644
index 000000000..a9de949d8
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFAltHeaderLine.java
@@ -0,0 +1,28 @@
+package org.broadinstitute.sting.utils.codecs.vcf;
+
+/**
+ * @author ebanks
+ * A class representing a key=value entry for ALT fields in the VCF header
+ */
+public class VCFAltHeaderLine extends VCFSimpleHeaderLine {
+
+ /**
+ * create a VCF filter header line
+ *
+ * @param name the name for this header line
+ * @param description the description for this header line
+ */
+ public VCFAltHeaderLine(String name, String description) {
+ super(name, description, SupportedHeaderLineType.ALT);
+ }
+
+ /**
+ * create a VCF info header line
+ *
+ * @param line the header line
+ * @param version the vcf header version
+ */
+ protected VCFAltHeaderLine(String line, VCFHeaderVersion version) {
+ super(line, version, SupportedHeaderLineType.ALT);
+ }
+}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCodec.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCodec.java
index 0fb2940bb..05fff5d9e 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCodec.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCodec.java
@@ -145,8 +145,6 @@ public class VCFCodec extends AbstractVCFCodec {
// todo -- all of these on the fly parsing of the missing value should be static constants
if (gtKey.equals(VCFConstants.GENOTYPE_KEY)) {
- if (i != 0)
- generateException("Saw GT at position " + i + ", but it must be at the first position for genotypes");
genotypeAlleleLocation = i;
} else if (gtKey.equals(VCFConstants.GENOTYPE_QUALITY_KEY)) {
GTQual = missing ? parseQual(VCFConstants.MISSING_VALUE_v4) : parseQual(GTValueArray[i]);
@@ -160,22 +158,24 @@ public class VCFCodec extends AbstractVCFCodec {
}
}
- // check to make sure we found a gentoype field
- // TODO -- This is no longer required in v4.1
- if (genotypeAlleleLocation < 0) generateException("Unable to find required field GT for the record; we don't yet support a missing GT field");
+ // check to make sure we found a genotype field if we are a VCF4.0 file
+ if ( version == VCFHeaderVersion.VCF4_0 && genotypeAlleleLocation == -1 )
+ generateException("Unable to find the GT field for the record; the GT field is required in VCF4.0");
+ if ( genotypeAlleleLocation > 0 )
+ generateException("Saw GT field at position " + genotypeAlleleLocation + ", but it must be at the first position for genotypes when present");
- // todo -- assuming allele list length in the single digits is bad. Fix me.
- // Check for > 1 for haploid genotypes
- boolean phased = GTValueArray[genotypeAlleleLocation].length() > 1 && GTValueArray[genotypeAlleleLocation].charAt(1) == '|';
+ List GTalleles = (genotypeAlleleLocation == -1 ? null : parseGenotypeAlleles(GTValueArray[genotypeAlleleLocation], alleles, alleleMap));
+ boolean phased = genotypeAlleleLocation != -1 && GTValueArray[genotypeAlleleLocation].indexOf(VCFConstants.PHASED) != -1;
// add it to the list
try {
- genotypes.put(sampleName, new Genotype(sampleName,
- parseGenotypeAlleles(GTValueArray[genotypeAlleleLocation], alleles, alleleMap),
- GTQual,
- genotypeFilters,
- gtAttributes,
- phased));
+ genotypes.put(sampleName,
+ new Genotype(sampleName,
+ GTalleles,
+ GTQual,
+ genotypeFilters,
+ gtAttributes,
+ phased));
} catch (TribbleException e) {
throw new TribbleException.InternalCodecException(e.getMessage() + ", at position " + chr+":"+pos);
}
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCompoundHeaderLine.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCompoundHeaderLine.java
index a799161ad..bb822f2ed 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCompoundHeaderLine.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFCompoundHeaderLine.java
@@ -24,6 +24,8 @@
package org.broadinstitute.sting.utils.codecs.vcf;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -43,26 +45,43 @@ public abstract class VCFCompoundHeaderLine extends VCFHeaderLine implements VCF
// the field types
private String name;
- private int count;
+ private int count = -1;
+ private VCFHeaderLineCount countType;
private String description;
private VCFHeaderLineType type;
// access methods
public String getName() { return name; }
- public int getCount() { return count; }
public String getDescription() { return description; }
public VCFHeaderLineType getType() { return type; }
+ public VCFHeaderLineCount getCountType() { return countType; }
+ public int getCount() {
+ if ( countType != VCFHeaderLineCount.INTEGER )
+ throw new ReviewedStingException("Asking for header line count when type is not an integer");
+ return count;
+ }
- //
- public void setNumberToUnbounded() { this.count = UNBOUNDED; }
+ // utility method
+ public int getCount(int numAltAlleles) {
+ int myCount;
+ switch ( countType ) {
+ case INTEGER: myCount = count; break;
+ case UNBOUNDED: myCount = -1; break;
+ case A: myCount = numAltAlleles; break;
+ case G: myCount = ((numAltAlleles + 1) * (numAltAlleles + 2) / 2); break;
+ default: throw new ReviewedStingException("Unknown count type: " + countType);
+ }
+ return myCount;
+ }
+
+ public void setNumberToUnbounded() {
+ countType = VCFHeaderLineCount.UNBOUNDED;
+ count = -1;
+ }
// our type of line, i.e. format, info, etc
private final SupportedHeaderLineType lineType;
- // line numerical values are allowed to be unbounded (or unknown), which is
- // marked with a dot (.)
- public static final int UNBOUNDED = -1; // the value we store internally for unbounded types
-
/**
* create a VCF format header line
*
@@ -70,10 +89,12 @@ public abstract class VCFCompoundHeaderLine extends VCFHeaderLine implements VCF
* @param count the count for this header line
* @param type the type for this header line
* @param description the description for this header line
+ * @param lineType the header line type
*/
protected VCFCompoundHeaderLine(String name, int count, VCFHeaderLineType type, String description, SupportedHeaderLineType lineType) {
super(lineType.toString(), "");
this.name = name;
+ this.countType = VCFHeaderLineCount.INTEGER;
this.count = count;
this.type = type;
this.description = description;
@@ -81,20 +102,53 @@ public abstract class VCFCompoundHeaderLine extends VCFHeaderLine implements VCF
validate();
}
+ /**
+ * create a VCF format header line
+ *
+ * @param name the name for this header line
+ * @param count the count type for this header line
+ * @param type the type for this header line
+ * @param description the description for this header line
+ * @param lineType the header line type
+ */
+ protected VCFCompoundHeaderLine(String name, VCFHeaderLineCount count, VCFHeaderLineType type, String description, SupportedHeaderLineType lineType) {
+ super(lineType.toString(), "");
+ this.name = name;
+ this.countType = count;
+ this.type = type;
+ this.description = description;
+ this.lineType = lineType;
+ validate();
+ }
+
/**
* create a VCF format header line
*
* @param line the header line
* @param version the VCF header version
+ * @param lineType the header line type
*
*/
protected VCFCompoundHeaderLine(String line, VCFHeaderVersion version, SupportedHeaderLineType lineType) {
super(lineType.toString(), "");
Map mapping = VCFHeaderLineTranslator.parseLine(version,line, Arrays.asList("ID","Number","Type","Description"));
name = mapping.get("ID");
- count = (version == VCFHeaderVersion.VCF4_0 || version == VCFHeaderVersion.VCF4_1) ?
- mapping.get("Number").equals(VCFConstants.UNBOUNDED_ENCODING_v4) ? UNBOUNDED : Integer.valueOf(mapping.get("Number")) :
- mapping.get("Number").equals(VCFConstants.UNBOUNDED_ENCODING_v3) ? UNBOUNDED : Integer.valueOf(mapping.get("Number"));
+ count = -1;
+ final String numberStr = mapping.get("Number");
+ if ( numberStr.equals(VCFConstants.PER_ALLELE_COUNT) ) {
+ countType = VCFHeaderLineCount.A;
+ } else if ( numberStr.equals(VCFConstants.PER_GENOTYPE_COUNT) ) {
+ countType = VCFHeaderLineCount.G;
+ } else if ( ((version == VCFHeaderVersion.VCF4_0 || version == VCFHeaderVersion.VCF4_1) &&
+ numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v4)) ||
+ ((version == VCFHeaderVersion.VCF3_2 || version == VCFHeaderVersion.VCF3_3) &&
+ numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v3)) ) {
+ countType = VCFHeaderLineCount.UNBOUNDED;
+ } else {
+ countType = VCFHeaderLineCount.INTEGER;
+ count = Integer.valueOf(numberStr);
+
+ }
type = VCFHeaderLineType.valueOf(mapping.get("Type"));
if (type == VCFHeaderLineType.Flag && !allowFlagValues())
throw new IllegalArgumentException("Flag is an unsupported type for this kind of field");
@@ -121,7 +175,15 @@ public abstract class VCFCompoundHeaderLine extends VCFHeaderLine implements VCF
protected String toStringEncoding() {
Map map = new LinkedHashMap();
map.put("ID", name);
- map.put("Number", count == UNBOUNDED ? VCFConstants.UNBOUNDED_ENCODING_v4 : count);
+ Object number;
+ switch ( countType ) {
+ case A: number = VCFConstants.PER_ALLELE_COUNT; break;
+ case G: number = VCFConstants.PER_GENOTYPE_COUNT; break;
+ case UNBOUNDED: number = VCFConstants.UNBOUNDED_ENCODING_v4; break;
+ case INTEGER:
+ default: number = count;
+ }
+ map.put("Number", number);
map.put("Type", type);
map.put("Description", description);
return lineType.toString() + "=" + VCFHeaderLine.toStringEncoding(map);
@@ -136,15 +198,13 @@ public abstract class VCFCompoundHeaderLine extends VCFHeaderLine implements VCF
if ( !(o instanceof VCFCompoundHeaderLine) )
return false;
VCFCompoundHeaderLine other = (VCFCompoundHeaderLine)o;
- return name.equals(other.name) &&
- count == other.count &&
- description.equals(other.description) &&
- type == other.type &&
- lineType == other.lineType;
+ return equalsExcludingDescription(other) &&
+ description.equals(other.description);
}
public boolean equalsExcludingDescription(VCFCompoundHeaderLine other) {
return count == other.count &&
+ countType == other.countType &&
type == other.type &&
lineType == other.lineType &&
name.equals(other.name);
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFConstants.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFConstants.java
index 695c46c27..91cf86c70 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFConstants.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFConstants.java
@@ -99,6 +99,8 @@ public final class VCFConstants {
public static final String MISSING_DEPTH_v3 = "-1";
public static final String UNBOUNDED_ENCODING_v4 = ".";
public static final String UNBOUNDED_ENCODING_v3 = "-1";
+ public static final String PER_ALLELE_COUNT = "A";
+ public static final String PER_GENOTYPE_COUNT = "G";
public static final String EMPTY_ALLELE = ".";
public static final String EMPTY_GENOTYPE = "./.";
public static final double MAX_GENOTYPE_QUAL = 99.0;
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFilterHeaderLine.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFilterHeaderLine.java
index 9176fc16e..418b80074 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFilterHeaderLine.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFilterHeaderLine.java
@@ -1,19 +1,10 @@
package org.broadinstitute.sting.utils.codecs.vcf;
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-
/**
* @author ebanks
* A class representing a key=value entry for FILTER fields in the VCF header
*/
-public class VCFFilterHeaderLine extends VCFHeaderLine implements VCFNamedHeaderLine {
-
- private String name;
- private String description;
-
+public class VCFFilterHeaderLine extends VCFSimpleHeaderLine {
/**
* create a VCF filter header line
@@ -22,12 +13,7 @@ public class VCFFilterHeaderLine extends VCFHeaderLine implements VCFNamedHeader
* @param description the description for this header line
*/
public VCFFilterHeaderLine(String name, String description) {
- super("FILTER", "");
- this.name = name;
- this.description = description;
-
- if ( name == null || description == null )
- throw new IllegalArgumentException(String.format("Invalid VCFCompoundHeaderLine: key=%s name=%s desc=%s", super.getKey(), name, description ));
+ super(name, description, SupportedHeaderLineType.FILTER);
}
/**
@@ -37,34 +23,6 @@ public class VCFFilterHeaderLine extends VCFHeaderLine implements VCFNamedHeader
* @param version the vcf header version
*/
protected VCFFilterHeaderLine(String line, VCFHeaderVersion version) {
- super("FILTER", "");
- Map mapping = VCFHeaderLineTranslator.parseLine(version,line, Arrays.asList("ID","Description"));
- name = mapping.get("ID");
- description = mapping.get("Description");
- if ( description == null && ALLOW_UNBOUND_DESCRIPTIONS ) // handle the case where there's no description provided
- description = UNBOUND_DESCRIPTION;
- }
-
- protected String toStringEncoding() {
- Map map = new LinkedHashMap();
- map.put("ID", name);
- map.put("Description", description);
- return "FILTER=" + VCFHeaderLine.toStringEncoding(map);
- }
-
- public boolean equals(Object o) {
- if ( !(o instanceof VCFFilterHeaderLine) )
- return false;
- VCFFilterHeaderLine other = (VCFFilterHeaderLine)o;
- return name.equals(other.name) &&
- description.equals(other.description);
- }
-
- public String getName() {
- return name;
- }
-
- public String getDescription() {
- return description;
+ super(line, version, SupportedHeaderLineType.FILTER);
}
}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFormatHeaderLine.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFormatHeaderLine.java
index 352be3e97..474c8dd14 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFormatHeaderLine.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFFormatHeaderLine.java
@@ -16,6 +16,10 @@ public class VCFFormatHeaderLine extends VCFCompoundHeaderLine {
throw new IllegalArgumentException("Flag is an unsupported type for format fields");
}
+ public VCFFormatHeaderLine(String name, VCFHeaderLineCount count, VCFHeaderLineType type, String description) {
+ super(name, count, type, description, SupportedHeaderLineType.FORMAT);
+ }
+
protected VCFFormatHeaderLine(String line, VCFHeaderVersion version) {
super(line, version, SupportedHeaderLineType.FORMAT);
}
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFHeaderLineCount.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFHeaderLineCount.java
new file mode 100644
index 000000000..d615c7c78
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFHeaderLineCount.java
@@ -0,0 +1,8 @@
+package org.broadinstitute.sting.utils.codecs.vcf;
+
+/**
+ * the count encodings we use for fields in VCF header lines
+ */
+public enum VCFHeaderLineCount {
+ INTEGER, A, G, UNBOUNDED;
+}
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFInfoHeaderLine.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFInfoHeaderLine.java
index 135a5c1a1..9b20f38a1 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFInfoHeaderLine.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFInfoHeaderLine.java
@@ -13,6 +13,10 @@ public class VCFInfoHeaderLine extends VCFCompoundHeaderLine {
super(name, count, type, description, SupportedHeaderLineType.INFO);
}
+ public VCFInfoHeaderLine(String name, VCFHeaderLineCount count, VCFHeaderLineType type, String description) {
+ super(name, count, type, description, SupportedHeaderLineType.INFO);
+ }
+
protected VCFInfoHeaderLine(String line, VCFHeaderVersion version) {
super(line, version, SupportedHeaderLineType.INFO);
}
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFParser.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFParser.java
index dac996494..1dba351e2 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFParser.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFParser.java
@@ -2,7 +2,9 @@ package org.broadinstitute.sting.utils.codecs.vcf;
import org.broadinstitute.sting.utils.variantcontext.Allele;
import org.broadinstitute.sting.utils.variantcontext.Genotype;
-import java.util.*;
+
+import java.util.List;
+import java.util.Map;
/**
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFSimpleHeaderLine.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFSimpleHeaderLine.java
new file mode 100644
index 000000000..152043f28
--- /dev/null
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFSimpleHeaderLine.java
@@ -0,0 +1,81 @@
+package org.broadinstitute.sting.utils.codecs.vcf;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+
+/**
+ * @author ebanks
+ * A class representing a key=value entry for simple VCF header types
+ */
+public abstract class VCFSimpleHeaderLine extends VCFHeaderLine implements VCFNamedHeaderLine {
+
+ public enum SupportedHeaderLineType {
+ FILTER, ALT;
+ }
+
+ private String name;
+ private String description;
+
+ // our type of line, i.e. filter, alt, etc
+ private final SupportedHeaderLineType lineType;
+
+
+ /**
+ * create a VCF filter header line
+ *
+ * @param name the name for this header line
+ * @param description the description for this header line
+ * @param lineType the header line type
+ */
+ public VCFSimpleHeaderLine(String name, String description, SupportedHeaderLineType lineType) {
+ super(lineType.toString(), "");
+ this.lineType = lineType;
+ this.name = name;
+ this.description = description;
+
+ if ( name == null || description == null )
+ throw new IllegalArgumentException(String.format("Invalid VCFSimpleHeaderLine: key=%s name=%s desc=%s", super.getKey(), name, description ));
+ }
+
+ /**
+ * create a VCF info header line
+ *
+ * @param line the header line
+ * @param version the vcf header version
+ * @param lineType the header line type
+ */
+ protected VCFSimpleHeaderLine(String line, VCFHeaderVersion version, SupportedHeaderLineType lineType) {
+ super(lineType.toString(), "");
+ this.lineType = lineType;
+ Map mapping = VCFHeaderLineTranslator.parseLine(version,line, Arrays.asList("ID","Description"));
+ name = mapping.get("ID");
+ description = mapping.get("Description");
+ if ( description == null && ALLOW_UNBOUND_DESCRIPTIONS ) // handle the case where there's no description provided
+ description = UNBOUND_DESCRIPTION;
+ }
+
+ protected String toStringEncoding() {
+ Map map = new LinkedHashMap();
+ map.put("ID", name);
+ map.put("Description", description);
+ return lineType.toString() + "=" + VCFHeaderLine.toStringEncoding(map);
+ }
+
+ public boolean equals(Object o) {
+ if ( !(o instanceof VCFSimpleHeaderLine) )
+ return false;
+ VCFSimpleHeaderLine other = (VCFSimpleHeaderLine)o;
+ return name.equals(other.name) &&
+ description.equals(other.description);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFUtils.java b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFUtils.java
index ecede068e..f43891e77 100755
--- a/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/codecs/vcf/VCFUtils.java
@@ -25,10 +25,10 @@
package org.broadinstitute.sting.utils.codecs.vcf;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
+import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
-import org.apache.log4j.Logger;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.util.*;
@@ -180,19 +180,4 @@ public class VCFUtils {
return new HashSet(map.values());
}
-
- /**
- * return a set of supported format lines; what we currently support for output in the genotype fields of a VCF
- * @return a set of VCF format lines
- */
- public static Set getSupportedHeaderStrings() {
- Set result = new HashSet();
- result.add(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_KEY, 1, VCFHeaderLineType.String, "Genotype"));
- result.add(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_QUALITY_KEY, 1, VCFHeaderLineType.Float, "Genotype Quality"));
- result.add(new VCFFormatHeaderLine(VCFConstants.DEPTH_KEY, 1, VCFHeaderLineType.Integer, "Read Depth (only filtered reads used for calling)"));
- result.add(new VCFFormatHeaderLine(VCFConstants.PHRED_GENOTYPE_LIKELIHOODS_KEY, -1, VCFHeaderLineType.Float, "Normalized, Phred-scaled likelihoods for AA,AB,BB genotypes where A=ref and B=alt; if site is not biallelic, number of likelihoods if n*(n+1)/2"));
-
- return result;
- }
-
}
\ No newline at end of file
diff --git a/public/java/src/org/broadinstitute/sting/utils/collections/NestedHashMap.java b/public/java/src/org/broadinstitute/sting/utils/collections/NestedHashMap.java
index a36ed9ac6..d280ac804 100755
--- a/public/java/src/org/broadinstitute/sting/utils/collections/NestedHashMap.java
+++ b/public/java/src/org/broadinstitute/sting/utils/collections/NestedHashMap.java
@@ -25,7 +25,8 @@
package org.broadinstitute.sting.utils.collections;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/utils/collections/RODMergingIterator.java b/public/java/src/org/broadinstitute/sting/utils/collections/RODMergingIterator.java
index 3a731c2fd..6d6cb8272 100644
--- a/public/java/src/org/broadinstitute/sting/utils/collections/RODMergingIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/collections/RODMergingIterator.java
@@ -27,10 +27,13 @@ package org.broadinstitute.sting.utils.collections;
import org.broadinstitute.sting.gatk.refdata.utils.LocationAwareSeekableRODIterator;
import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.*;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.PriorityQueue;
public class RODMergingIterator implements Iterator, Iterable {
PriorityQueue queue = new PriorityQueue();
diff --git a/public/java/src/org/broadinstitute/sting/utils/duplicates/DupUtils.java b/public/java/src/org/broadinstitute/sting/utils/duplicates/DupUtils.java
index 41de5ef96..bba47c76c 100644
--- a/public/java/src/org/broadinstitute/sting/utils/duplicates/DupUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/duplicates/DupUtils.java
@@ -26,15 +26,18 @@
package org.broadinstitute.sting.utils.duplicates;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.QualityUtils;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl;
-import java.util.List;
import java.util.Arrays;
+import java.util.List;
public class DupUtils {
private static SAMRecord tmpCopyRead(SAMRecord read) {
diff --git a/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java b/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java
index 0be4bec91..7eab6f6c9 100755
--- a/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java
+++ b/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java
@@ -28,9 +28,8 @@ import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMSequenceDictionary;
import net.sf.samtools.SAMSequenceRecord;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
-import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
import java.util.Arrays;
@@ -154,6 +153,16 @@ public class UserException extends ReviewedStingException {
}
}
+ public static class MalformedVCF extends UserException {
+ public MalformedVCF(String message, String line) {
+ super(String.format("The provided VCF file is malformed at line %s: %s", line, message));
+ }
+
+ public MalformedVCF(String message, int lineNo) {
+ super(String.format("The provided VCF file is malformed at line nmber %d: %s", lineNo, message));
+ }
+ }
+
public static class ReadMissingReadGroup extends MalformedBAM {
public ReadMissingReadGroup(SAMRecord read) {
super(read, String.format("Read %s is either missing the read group or its read group is not defined in the BAM header, both of which are required by the GATK. Please use http://www.broadinstitute.org/gsa/wiki/index.php/ReplaceReadGroups to fix this problem", read.getReadName()));
diff --git a/public/java/src/org/broadinstitute/sting/utils/fasta/CachingIndexedFastaSequenceFile.java b/public/java/src/org/broadinstitute/sting/utils/fasta/CachingIndexedFastaSequenceFile.java
index bda52dd4e..43ef4aa74 100644
--- a/public/java/src/org/broadinstitute/sting/utils/fasta/CachingIndexedFastaSequenceFile.java
+++ b/public/java/src/org/broadinstitute/sting/utils/fasta/CachingIndexedFastaSequenceFile.java
@@ -25,15 +25,16 @@
package org.broadinstitute.sting.utils.fasta;
import net.sf.picard.PicardException;
-import net.sf.picard.reference.*;
+import net.sf.picard.reference.FastaSequenceIndex;
+import net.sf.picard.reference.IndexedFastaSequenceFile;
+import net.sf.picard.reference.ReferenceSequence;
import net.sf.samtools.SAMSequenceRecord;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-
/**
* A caching version of the IndexedFastaSequenceFile that avoids going to disk as often as the raw indexer.
*
@@ -68,13 +69,13 @@ public class CachingIndexedFastaSequenceFile extends IndexedFastaSequenceFile {
ReferenceSequence seq = null;
}
- private static ThreadLocal cache;
+ private ThreadLocal cache;
- static {
+ {
resetThreadLocalCache();
- };
+ }
- protected static void resetThreadLocalCache() {
+ protected void resetThreadLocalCache() {
cache = new ThreadLocal () {
@Override protected Cache initialValue() {
return new Cache();
diff --git a/public/java/src/org/broadinstitute/sting/utils/genotype/DiploidGenotype.java b/public/java/src/org/broadinstitute/sting/utils/genotype/DiploidGenotype.java
index cbfba848c..1c2cfe2e1 100755
--- a/public/java/src/org/broadinstitute/sting/utils/genotype/DiploidGenotype.java
+++ b/public/java/src/org/broadinstitute/sting/utils/genotype/DiploidGenotype.java
@@ -26,7 +26,6 @@
package org.broadinstitute.sting.utils.genotype;
import org.broadinstitute.sting.utils.BaseUtils;
-import org.broadinstitute.sting.utils.MathUtils;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/utils/genotype/Haplotype.java b/public/java/src/org/broadinstitute/sting/utils/genotype/Haplotype.java
index cb6557408..a17e81461 100755
--- a/public/java/src/org/broadinstitute/sting/utils/genotype/Haplotype.java
+++ b/public/java/src/org/broadinstitute/sting/utils/genotype/Haplotype.java
@@ -24,14 +24,14 @@
package org.broadinstitute.sting.utils.genotype;
-import org.broadinstitute.sting.utils.variantcontext.Allele;
-import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.variantcontext.Allele;
-import java.util.*;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
public class Haplotype {
protected byte[] bases = null;
@@ -133,8 +133,12 @@ public class Haplotype {
byte[] basesBeforeVariant = Arrays.copyOfRange(refBases,startIdxInReference,startIdxInReference+numPrefBases);
+ int startAfter = startIdxInReference+numPrefBases+ refAllele.getBases().length;
+ // protect against long events that overrun available reference context
+ if (startAfter > refBases.length)
+ startAfter = refBases.length;
byte[] basesAfterVariant = Arrays.copyOfRange(refBases,
- startIdxInReference+numPrefBases+ refAllele.getBases().length, refBases.length);
+ startAfter, refBases.length);
// Create location for all haplotypes
diff --git a/public/java/src/org/broadinstitute/sting/utils/help/ApplicationDetails.java b/public/java/src/org/broadinstitute/sting/utils/help/ApplicationDetails.java
index d9e74640f..483c874dc 100644
--- a/public/java/src/org/broadinstitute/sting/utils/help/ApplicationDetails.java
+++ b/public/java/src/org/broadinstitute/sting/utils/help/ApplicationDetails.java
@@ -25,13 +25,13 @@
package org.broadinstitute.sting.utils.help;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.classloader.JVMUtils;
import org.broadinstitute.sting.commandline.CommandLineProgram;
+import org.broadinstitute.sting.utils.classloader.JVMUtils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.List;
-import java.util.Collections;
import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
/**
* Contains details additional details that the program can
diff --git a/public/java/src/org/broadinstitute/sting/utils/help/DescriptionTaglet.java b/public/java/src/org/broadinstitute/sting/utils/help/DescriptionTaglet.java
index 68633a2b3..65c332048 100644
--- a/public/java/src/org/broadinstitute/sting/utils/help/DescriptionTaglet.java
+++ b/public/java/src/org/broadinstitute/sting/utils/help/DescriptionTaglet.java
@@ -1,7 +1,6 @@
package org.broadinstitute.sting.utils.help;
import com.sun.tools.doclets.Taglet;
-import com.sun.javadoc.Tag;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/utils/help/DisplayNameTaglet.java b/public/java/src/org/broadinstitute/sting/utils/help/DisplayNameTaglet.java
index be6f7f3eb..6c6dad736 100644
--- a/public/java/src/org/broadinstitute/sting/utils/help/DisplayNameTaglet.java
+++ b/public/java/src/org/broadinstitute/sting/utils/help/DisplayNameTaglet.java
@@ -1,7 +1,6 @@
package org.broadinstitute.sting.utils.help;
import com.sun.tools.doclets.Taglet;
-import com.sun.javadoc.Tag;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/utils/help/HelpFormatter.java b/public/java/src/org/broadinstitute/sting/utils/help/HelpFormatter.java
index 493f26e76..a9d71ef98 100755
--- a/public/java/src/org/broadinstitute/sting/utils/help/HelpFormatter.java
+++ b/public/java/src/org/broadinstitute/sting/utils/help/HelpFormatter.java
@@ -25,22 +25,16 @@
package org.broadinstitute.sting.utils.help;
+import org.apache.log4j.Logger;
import org.broadinstitute.sting.commandline.ArgumentDefinition;
import org.broadinstitute.sting.commandline.ArgumentDefinitionGroup;
import org.broadinstitute.sting.commandline.ArgumentDefinitions;
-import org.broadinstitute.sting.utils.text.TextFormattingUtils;
import org.broadinstitute.sting.utils.Utils;
-import org.apache.log4j.Logger;
+import org.broadinstitute.sting.utils.text.TextFormattingUtils;
-import java.util.Formatter;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Comparator;
-import java.util.Collection;
-import java.util.Collections;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.*;
/**
* Print out help for Sting command-line applications.
*/
diff --git a/public/java/src/org/broadinstitute/sting/utils/help/HelpTaglet.java b/public/java/src/org/broadinstitute/sting/utils/help/HelpTaglet.java
index b962664eb..b350b1a29 100644
--- a/public/java/src/org/broadinstitute/sting/utils/help/HelpTaglet.java
+++ b/public/java/src/org/broadinstitute/sting/utils/help/HelpTaglet.java
@@ -1,9 +1,7 @@
package org.broadinstitute.sting.utils.help;
-import com.sun.tools.doclets.Taglet;
import com.sun.javadoc.Tag;
-
-import java.util.Map;
+import com.sun.tools.doclets.Taglet;
/**
* Basic functionality for the help taglet.
diff --git a/public/java/src/org/broadinstitute/sting/utils/help/ResourceBundleExtractorDoclet.java b/public/java/src/org/broadinstitute/sting/utils/help/ResourceBundleExtractorDoclet.java
index 4afac69c3..6ee12d42e 100644
--- a/public/java/src/org/broadinstitute/sting/utils/help/ResourceBundleExtractorDoclet.java
+++ b/public/java/src/org/broadinstitute/sting/utils/help/ResourceBundleExtractorDoclet.java
@@ -26,14 +26,16 @@
package org.broadinstitute.sting.utils.help;
import com.sun.javadoc.*;
+import org.broadinstitute.sting.gatk.walkers.Walker;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.classloader.JVMUtils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.io.*;
-import java.util.*;
-
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.classloader.JVMUtils;
-import org.broadinstitute.sting.utils.Utils;
-import org.broadinstitute.sting.gatk.walkers.Walker;
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Scanner;
+import java.util.Set;
/**
* Extracts certain types of javadoc (specifically package and class descriptions) and makes them available
diff --git a/public/java/src/org/broadinstitute/sting/utils/help/SummaryTaglet.java b/public/java/src/org/broadinstitute/sting/utils/help/SummaryTaglet.java
index 036bbec4f..db8b55940 100644
--- a/public/java/src/org/broadinstitute/sting/utils/help/SummaryTaglet.java
+++ b/public/java/src/org/broadinstitute/sting/utils/help/SummaryTaglet.java
@@ -1,7 +1,6 @@
package org.broadinstitute.sting.utils.help;
import com.sun.tools.doclets.Taglet;
-import com.sun.javadoc.Tag;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/utils/instrumentation/Sizeof.java b/public/java/src/org/broadinstitute/sting/utils/instrumentation/Sizeof.java
index 3420c9876..73a29ba4f 100644
--- a/public/java/src/org/broadinstitute/sting/utils/instrumentation/Sizeof.java
+++ b/public/java/src/org/broadinstitute/sting/utils/instrumentation/Sizeof.java
@@ -27,9 +27,9 @@ package org.broadinstitute.sting.utils.instrumentation;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.lang.instrument.Instrumentation;
+import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
-import java.lang.reflect.Array;
import java.util.IdentityHashMap;
/**
diff --git a/public/java/src/org/broadinstitute/sting/utils/interval/IntervalFileMergingIterator.java b/public/java/src/org/broadinstitute/sting/utils/interval/IntervalFileMergingIterator.java
index e722ac196..988240ef9 100644
--- a/public/java/src/org/broadinstitute/sting/utils/interval/IntervalFileMergingIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/interval/IntervalFileMergingIterator.java
@@ -25,16 +25,16 @@
package org.broadinstitute.sting.utils.interval;
+import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
+import org.broadinstitute.sting.gatk.refdata.utils.StringToGenomeLocIteratorAdapter;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.XReadLines;
-import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
-import org.broadinstitute.sting.gatk.refdata.utils.StringToGenomeLocIteratorAdapter;
-import java.util.Iterator;
import java.io.File;
import java.io.FileNotFoundException;
+import java.util.Iterator;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/utils/interval/IntervalUtils.java b/public/java/src/org/broadinstitute/sting/utils/interval/IntervalUtils.java
index 80dc35455..f551e1368 100644
--- a/public/java/src/org/broadinstitute/sting/utils/interval/IntervalUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/interval/IntervalUtils.java
@@ -5,17 +5,17 @@ import net.sf.picard.util.IntervalList;
import net.sf.samtools.SAMFileHeader;
import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.datasources.reference.ReferenceDataSource;
-import org.broadinstitute.sting.utils.GenomeLocSortedSet;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.GenomeLocSortedSet;
import org.broadinstitute.sting.utils.bed.BedParser;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.UserException;
import org.broadinstitute.sting.utils.text.XReadLines;
+import java.io.File;
import java.io.IOException;
import java.util.*;
-import java.io.File;
/**
* Parse text representations of interval strings that
diff --git a/public/java/src/org/broadinstitute/sting/utils/interval/NwayIntervalMergingIterator.java b/public/java/src/org/broadinstitute/sting/utils/interval/NwayIntervalMergingIterator.java
index 31a2f41fb..7e87ce8b5 100644
--- a/public/java/src/org/broadinstitute/sting/utils/interval/NwayIntervalMergingIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/interval/NwayIntervalMergingIterator.java
@@ -26,11 +26,10 @@
package org.broadinstitute.sting.utils.interval;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.exceptions.StingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import java.util.PriorityQueue;
import java.util.Iterator;
+import java.util.PriorityQueue;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/utils/interval/OverlappingIntervalIterator.java b/public/java/src/org/broadinstitute/sting/utils/interval/OverlappingIntervalIterator.java
index 0b63d582e..29ffb13e4 100755
--- a/public/java/src/org/broadinstitute/sting/utils/interval/OverlappingIntervalIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/interval/OverlappingIntervalIterator.java
@@ -25,9 +25,8 @@
package org.broadinstitute.sting.utils.interval;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocSortedSet;
import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
+import org.broadinstitute.sting.utils.GenomeLoc;
import java.util.Iterator;
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java b/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java
index 543302446..3821c9c8a 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/AbstractReadBackedPileup.java
@@ -24,19 +24,16 @@
package org.broadinstitute.sting.utils.pileup;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
-import org.broadinstitute.sting.utils.HasGenomeLocation;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.BaseUtils;
-import org.broadinstitute.sting.gatk.iterators.IterableIterator;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.exceptions.StingException;
import java.util.*;
-import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.exceptions.StingException;
-
/**
* A generic implementation of read-backed pileups.
*
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/ExtendedEventPileupElement.java b/public/java/src/org/broadinstitute/sting/utils/pileup/ExtendedEventPileupElement.java
index b6f3e9f09..26e66014c 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/ExtendedEventPileupElement.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/ExtendedEventPileupElement.java
@@ -1,8 +1,5 @@
package org.broadinstitute.sting.utils.pileup;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.BaseUtils;
import net.sf.samtools.SAMRecord;
import java.util.Arrays;
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/FragmentPileup.java b/public/java/src/org/broadinstitute/sting/utils/pileup/FragmentPileup.java
index 6c855c1c7..f7d237401 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/FragmentPileup.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/FragmentPileup.java
@@ -1,6 +1,9 @@
package org.broadinstitute.sting.utils.pileup;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
/**
* An easy to access fragment-based pileup, which contains two separate pileups. The first
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/MergingPileupElementIterator.java b/public/java/src/org/broadinstitute/sting/utils/pileup/MergingPileupElementIterator.java
index d8af2ea8f..7005cf869 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/MergingPileupElementIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/MergingPileupElementIterator.java
@@ -27,9 +27,9 @@ package org.broadinstitute.sting.utils.pileup;
import net.sf.picard.util.PeekableIterator;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
-import java.util.PriorityQueue;
import java.util.Comparator;
import java.util.Iterator;
+import java.util.PriorityQueue;
/**
* Merges multiple pileups broken down by sample.
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/PileupElement.java b/public/java/src/org/broadinstitute/sting/utils/pileup/PileupElement.java
index 51e02bf74..66e1afecb 100755
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/PileupElement.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/PileupElement.java
@@ -1,9 +1,10 @@
package org.broadinstitute.sting.utils.pileup;
-import org.broadinstitute.sting.utils.*;
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Requires;
import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.sam.ReadUtils;
-import com.google.java.contract.*;
/**
* Created by IntelliJ IDEA.
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileup.java b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileup.java
index a32aa5645..8d43a368a 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileup.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileup.java
@@ -24,15 +24,13 @@
package org.broadinstitute.sting.utils.pileup;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.collections.Pair;
-import java.util.Iterator;
-import java.util.List;
import java.util.Collection;
-
-import net.sf.samtools.SAMRecord;
+import java.util.List;
/**
* A clean interface for working with extended event pileups.
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileupImpl.java b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileupImpl.java
index a1a08c95f..31d29430a 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileupImpl.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedExtendedEventPileupImpl.java
@@ -23,15 +23,14 @@
*/
package org.broadinstitute.sting.utils.pileup;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.collections.Pair;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.*;
-import net.sf.samtools.SAMRecord;
-
public class ReadBackedExtendedEventPileupImpl extends AbstractReadBackedPileup implements ReadBackedExtendedEventPileup {
private int nInsertions;
private int maxDeletionLength; // cached value of the length of the longest deletion observed at the site
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileup.java b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileup.java
index c52cc0b52..36b8a8c65 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileup.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileup.java
@@ -24,14 +24,13 @@
package org.broadinstitute.sting.utils.pileup;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.gatk.iterators.IterableIterator;
-import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.utils.HasGenomeLocation;
-import java.util.List;
import java.util.Collection;
+import java.util.List;
/**
* A data retrieval interface for accessing parts of the pileup.
diff --git a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileupImpl.java b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileupImpl.java
index 70eba577c..e5b054961 100644
--- a/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileupImpl.java
+++ b/public/java/src/org/broadinstitute/sting/utils/pileup/ReadBackedPileupImpl.java
@@ -23,9 +23,9 @@
*/
package org.broadinstitute.sting.utils.pileup;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.datasources.sample.Sample;
import org.broadinstitute.sting.utils.GenomeLoc;
-import net.sf.samtools.SAMRecord;
import java.util.List;
import java.util.Map;
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java b/public/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java
index 4e4294b20..344eccb83 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java
@@ -25,15 +25,16 @@
package org.broadinstitute.sting.utils.sam;
-import net.sf.samtools.CigarOperator;
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.Cigar;
import net.sf.samtools.CigarElement;
+import net.sf.samtools.CigarOperator;
+import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.utils.BaseUtils;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.pileup.*;
import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+import org.broadinstitute.sting.utils.pileup.PileupElement;
+import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java
index 5812c9aec..5f7db458a 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java
@@ -1,15 +1,13 @@
package org.broadinstitute.sting.utils.sam;
-import org.broadinstitute.sting.gatk.traversals.TraversalEngine;
-import org.broadinstitute.sting.gatk.walkers.Walker;
-import org.broadinstitute.sting.gatk.walkers.ReadWalker;
-import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
-import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
-import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
-import org.apache.log4j.Logger;
-
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMFileHeader;
+import net.sf.samtools.SAMRecord;
+import org.apache.log4j.Logger;
+import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
+import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider;
+import org.broadinstitute.sting.gatk.traversals.TraversalEngine;
+import org.broadinstitute.sting.gatk.walkers.ReadWalker;
+import org.broadinstitute.sting.gatk.walkers.Walker;
/*
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMFileReader.java b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMFileReader.java
index ce6ca570c..adf60b16b 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMFileReader.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMFileReader.java
@@ -1,15 +1,17 @@
package org.broadinstitute.sting.utils.sam;
import net.sf.samtools.*;
-
-import java.io.InputStream;
-import java.io.ByteArrayInputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.*;
-
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
/**
* User: hanna
* Date: Jun 11, 2009
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMIterator.java b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMIterator.java
index b683f5247..62e371bc0 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMIterator.java
@@ -1,9 +1,8 @@
package org.broadinstitute.sting.utils.sam;
-import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
-import org.broadinstitute.sting.gatk.ReadProperties;
-import net.sf.samtools.SAMRecord;
import net.sf.samtools.SAMFileHeader;
+import net.sf.samtools.SAMRecord;
+import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
import java.util.Iterator;
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMQueryIterator.java b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMQueryIterator.java
index 4f5dcca61..2b359fe6a 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMQueryIterator.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/ArtificialSAMQueryIterator.java
@@ -1,13 +1,12 @@
package org.broadinstitute.sting.utils.sam;
import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMSequenceRecord;
import net.sf.samtools.SAMRecord;
+import net.sf.samtools.SAMSequenceRecord;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.List;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-
/*
* Copyright (c) 2009 The Broad Institute
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/ComparableSAMRecord.java b/public/java/src/org/broadinstitute/sting/utils/sam/ComparableSAMRecord.java
index 01f1dfe96..31deb7535 100755
--- a/public/java/src/org/broadinstitute/sting/utils/sam/ComparableSAMRecord.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/ComparableSAMRecord.java
@@ -26,8 +26,6 @@
package org.broadinstitute.sting.utils.sam;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
public class ComparableSAMRecord implements Comparable {
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMReadGroupRecord.java b/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMReadGroupRecord.java
index 2b8ac387c..c7ffcab0c 100755
--- a/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMReadGroupRecord.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMReadGroupRecord.java
@@ -1,6 +1,6 @@
package org.broadinstitute.sting.utils.sam;
-import net.sf.samtools.*;
+import net.sf.samtools.SAMReadGroupRecord;
/**
* @author ebanks
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java b/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java
index f3d9edab9..517f9f75d 100755
--- a/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java
@@ -1,12 +1,14 @@
package org.broadinstitute.sting.utils.sam;
-import java.lang.reflect.Method;
-import java.util.*;
-
import net.sf.samtools.*;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
/**
* @author ebanks
* GATKSAMRecord
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/ReadUtils.java b/public/java/src/org/broadinstitute/sting/utils/sam/ReadUtils.java
index 080762039..6c15910b1 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/ReadUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/ReadUtils.java
@@ -25,13 +25,14 @@
package org.broadinstitute.sting.utils.sam;
-import com.google.java.contract.*;
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Requires;
import net.sf.samtools.*;
import org.broadinstitute.sting.utils.collections.Pair;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.*;
import java.io.File;
+import java.util.*;
/**
* A miscellaneous collection of utilities for working with SAM files, headers, etc.
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/SAMFileReaderBuilder.java b/public/java/src/org/broadinstitute/sting/utils/sam/SAMFileReaderBuilder.java
index f8a0ca6a7..bb9db5d98 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/SAMFileReaderBuilder.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/SAMFileReaderBuilder.java
@@ -26,11 +26,10 @@
package org.broadinstitute.sting.utils.sam;
import net.sf.samtools.SAMFileReader;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.io.File;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-
/**
* Allows the user to steadily accumulate information about what
* components go into a SAM file writer, ultimately using this
diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/SimplifyingSAMFileWriter.java b/public/java/src/org/broadinstitute/sting/utils/sam/SimplifyingSAMFileWriter.java
index df2010e8b..60e1d9948 100644
--- a/public/java/src/org/broadinstitute/sting/utils/sam/SimplifyingSAMFileWriter.java
+++ b/public/java/src/org/broadinstitute/sting/utils/sam/SimplifyingSAMFileWriter.java
@@ -3,13 +3,6 @@ package org.broadinstitute.sting.utils.sam;
import net.sf.samtools.SAMFileHeader;
import net.sf.samtools.SAMFileWriter;
import net.sf.samtools.SAMRecord;
-import org.broadinstitute.sting.gatk.iterators.StingSAMIterator;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.GenomeLocParser;
-import org.broadinstitute.sting.utils.exceptions.UserException;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
/**
* XXX
diff --git a/public/java/src/org/broadinstitute/sting/utils/text/ListFileUtils.java b/public/java/src/org/broadinstitute/sting/utils/text/ListFileUtils.java
index 9beb7895b..f6aa882ad 100644
--- a/public/java/src/org/broadinstitute/sting/utils/text/ListFileUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/text/ListFileUtils.java
@@ -26,7 +26,6 @@ package org.broadinstitute.sting.utils.text;
import org.broadinstitute.sting.commandline.ParsingEngine;
import org.broadinstitute.sting.commandline.Tags;
-import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection;
import org.broadinstitute.sting.gatk.datasources.reads.SAMReaderID;
import org.broadinstitute.sting.gatk.refdata.utils.RMDTriplet;
import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper;
diff --git a/public/java/src/org/broadinstitute/sting/utils/text/TextFormattingUtils.java b/public/java/src/org/broadinstitute/sting/utils/text/TextFormattingUtils.java
index 803d6ac0f..1d4251542 100644
--- a/public/java/src/org/broadinstitute/sting/utils/text/TextFormattingUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/text/TextFormattingUtils.java
@@ -28,11 +28,11 @@ package org.broadinstitute.sting.utils.text;
import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import java.util.*;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
-import java.io.StringReader;
import java.io.IOException;
+import java.io.StringReader;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* Common utilities for dealing with text formatting.
diff --git a/public/java/src/org/broadinstitute/sting/utils/text/XReadLines.java b/public/java/src/org/broadinstitute/sting/utils/text/XReadLines.java
index 064256388..52b6f3b01 100644
--- a/public/java/src/org/broadinstitute/sting/utils/text/XReadLines.java
+++ b/public/java/src/org/broadinstitute/sting/utils/text/XReadLines.java
@@ -25,10 +25,10 @@
package org.broadinstitute.sting.utils.text;
-import java.util.Iterator;
-import java.util.List;
-import java.util.LinkedList;
import java.io.*;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
/**
* Support for Python-like xreadlines() function as a class. This is an iterator and iterable over
diff --git a/public/java/src/org/broadinstitute/sting/utils/threading/FileBackedGenomeLocProcessingTracker.java b/public/java/src/org/broadinstitute/sting/utils/threading/FileBackedGenomeLocProcessingTracker.java
index cae099eeb..3763ec67d 100644
--- a/public/java/src/org/broadinstitute/sting/utils/threading/FileBackedGenomeLocProcessingTracker.java
+++ b/public/java/src/org/broadinstitute/sting/utils/threading/FileBackedGenomeLocProcessingTracker.java
@@ -1,18 +1,14 @@
package org.broadinstitute.sting.utils.threading;
import org.apache.log4j.Logger;
-import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.*;
-import java.nio.ByteBuffer;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.List;
-import java.util.concurrent.locks.ReentrantLock;
/**
* Keeps a copy of the processing locks in a file
diff --git a/public/java/src/org/broadinstitute/sting/utils/threading/NoOpGenomeLocProcessingTracker.java b/public/java/src/org/broadinstitute/sting/utils/threading/NoOpGenomeLocProcessingTracker.java
index 4e61ef9e1..ad2a6d31b 100644
--- a/public/java/src/org/broadinstitute/sting/utils/threading/NoOpGenomeLocProcessingTracker.java
+++ b/public/java/src/org/broadinstitute/sting/utils/threading/NoOpGenomeLocProcessingTracker.java
@@ -1,9 +1,5 @@
package org.broadinstitute.sting.utils.threading;
-import org.broadinstitute.sting.utils.GenomeLoc;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
diff --git a/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileLock.java b/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileLock.java
index 3eb2be96b..0f47da413 100644
--- a/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileLock.java
+++ b/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileLock.java
@@ -6,10 +6,7 @@ import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.channels.*;
/**
* User: depristo
diff --git a/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileThreadSafeLock.java b/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileThreadSafeLock.java
index dec69f7c2..d70879a0a 100644
--- a/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileThreadSafeLock.java
+++ b/public/java/src/org/broadinstitute/sting/utils/threading/SharedFileThreadSafeLock.java
@@ -2,13 +2,8 @@ package org.broadinstitute.sting.utils.threading;
import org.apache.log4j.Logger;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
-import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.channels.*;
/**
* User: depristo
diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/Allele.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/Allele.java
index a9ba46159..c3f437f11 100755
--- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/Allele.java
+++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/Allele.java
@@ -1,9 +1,9 @@
package org.broadinstitute.sting.utils.variantcontext;
-import java.util.Arrays;
-import java.util.List;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.List;
/**
* Immutable representation of an allele
@@ -108,7 +108,7 @@ public class Allele implements Comparable {
this.bases = bases;
if ( ! acceptableAlleleBases(bases) )
- throw new IllegalArgumentException("Unexpected base in allele bases " + new String(bases));
+ throw new IllegalArgumentException("Unexpected base in allele bases \'" + new String(bases)+"\'");
}
private Allele(String bases, boolean isRef) {
diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/Genotype.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/Genotype.java
index 3a87f1196..0b5976c3c 100755
--- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/Genotype.java
+++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/Genotype.java
@@ -3,6 +3,7 @@ package org.broadinstitute.sting.utils.variantcontext;
import org.broad.tribble.util.ParsingUtils;
import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import java.util.*;
@@ -19,12 +20,14 @@ public class Genotype {
protected InferredGeneticContext commonInfo;
public final static double NO_NEG_LOG_10PERROR = InferredGeneticContext.NO_NEG_LOG_10PERROR;
protected List alleles = null; // new ArrayList();
+ protected Type type = null;
protected boolean isPhased = false;
- private boolean filtersWereAppliedToContext;
+ protected boolean filtersWereAppliedToContext;
public Genotype(String sampleName, List alleles, double negLog10PError, Set filters, Map attributes, boolean isPhased) {
- this.alleles = Collections.unmodifiableList(alleles);
+ if ( alleles != null )
+ this.alleles = Collections.unmodifiableList(alleles);
commonInfo = new InferredGeneticContext(sampleName, negLog10PError, filters, attributes);
filtersWereAppliedToContext = filters != null;
this.isPhased = isPhased;
@@ -66,6 +69,9 @@ public class Genotype {
}
public List getAlleles(Allele allele) {
+ if ( getType() == Type.UNAVAILABLE )
+ throw new ReviewedStingException("Requesting alleles for an UNAVAILABLE genotype");
+
List al = new ArrayList();
for ( Allele a : alleles )
if ( a.equals(allele) )
@@ -75,6 +81,8 @@ public class Genotype {
}
public Allele getAllele(int i) {
+ if ( getType() == Type.UNAVAILABLE )
+ throw new ReviewedStingException("Requesting alleles for an UNAVAILABLE genotype");
return alleles.get(i);
}
@@ -89,10 +97,21 @@ public class Genotype {
NO_CALL,
HOM_REF,
HET,
- HOM_VAR
+ HOM_VAR,
+ UNAVAILABLE
}
public Type getType() {
+ if ( type == null ) {
+ type = determineType();
+ }
+ return type;
+ }
+
+ protected Type determineType() {
+ if ( alleles == null )
+ return Type.UNAVAILABLE;
+
Allele firstAllele = alleles.get(0);
if ( firstAllele.isNoCall() ) {
@@ -122,7 +141,8 @@ public class Genotype {
* @return true if this genotype is not actually a genotype but a "no call" (e.g. './.' in VCF)
*/
public boolean isNoCall() { return getType() == Type.NO_CALL; }
- public boolean isCalled() { return getType() != Type.NO_CALL; }
+ public boolean isCalled() { return getType() != Type.NO_CALL && getType() != Type.UNAVAILABLE; }
+ public boolean isAvailable() { return getType() != Type.UNAVAILABLE; }
//
// Useful methods for getting genotype likelihoods for a genotype object, if present
@@ -157,8 +177,8 @@ public class Genotype {
}
public void validate() {
- if ( alleles == null ) throw new IllegalArgumentException("BUG: alleles cannot be null in setAlleles");
- if ( alleles.size() == 0) throw new IllegalArgumentException("BUG: alleles cannot be of size 0 in setAlleles");
+ if ( alleles == null ) return;
+ if ( alleles.size() == 0) throw new IllegalArgumentException("BUG: alleles cannot be of size 0");
int nNoCalls = 0;
for ( Allele allele : alleles ) {
@@ -175,6 +195,9 @@ public class Genotype {
}
public String getGenotypeString(boolean ignoreRefState) {
+ if ( alleles == null )
+ return null;
+
// Notes:
// 1. Make sure to use the appropriate separator depending on whether the genotype is phased
// 2. If ignoreRefState is true, then we want just the bases of the Alleles (ignoring the '*' indicating a ref Allele)
diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/GenotypeLikelihoods.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/GenotypeLikelihoods.java
index 3feaf5e1c..dba16cf86 100755
--- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/GenotypeLikelihoods.java
+++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/GenotypeLikelihoods.java
@@ -24,8 +24,8 @@
package org.broadinstitute.sting.utils.variantcontext;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broad.tribble.TribbleException;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
public class GenotypeLikelihoods {
public static final boolean CAP_PLS = false;
diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/MutableVariantContext.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/MutableVariantContext.java
index 4efba8825..a191670a4 100755
--- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/MutableVariantContext.java
+++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/MutableVariantContext.java
@@ -1,7 +1,10 @@
package org.broadinstitute.sting.utils.variantcontext;
-import java.util.*;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
/**
* Mutable version of VariantContext
diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java
index 3d375aba2..eab392c4d 100755
--- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java
+++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java
@@ -2,8 +2,8 @@ package org.broadinstitute.sting.utils.variantcontext;
import org.broad.tribble.Feature;
import org.broad.tribble.TribbleException;
-import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broad.tribble.util.ParsingUtils;
+import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.utils.codecs.vcf.VCFParser;
import java.util.*;
@@ -867,7 +867,10 @@ public class VariantContext implements Feature { // to enable tribble intergrati
for ( String name : sampleNames ) {
if ( map.containsKey(name) ) throw new IllegalArgumentException("Duplicate names detected in requested samples " + sampleNames);
- map.put(name, getGenotype(name));
+ final Genotype g = getGenotype(name);
+ if ( g != null ) {
+ map.put(name, g);
+ }
}
return map;
@@ -1203,9 +1206,11 @@ public class VariantContext implements Feature { // to enable tribble intergrati
if ( ! name.equals(g.getSampleName()) ) throw new IllegalStateException("Bound sample name " + name + " does not equal the name of the genotype " + g.getSampleName());
- for ( Allele gAllele : g.getAlleles() ) {
- if ( ! hasAllele(gAllele) && gAllele.isCalled() )
- throw new IllegalStateException("Allele in genotype " + gAllele + " not in the variant context " + alleles);
+ if ( g.isAvailable() ) {
+ for ( Allele gAllele : g.getAlleles() ) {
+ if ( ! hasAllele(gAllele) && gAllele.isCalled() )
+ throw new IllegalStateException("Allele in genotype " + gAllele + " not in the variant context " + alleles);
+ }
}
}
}
@@ -1343,6 +1348,15 @@ public class VariantContext implements Feature { // to enable tribble intergrati
return (int)stop;
}
+ private boolean hasSymbolicAlleles() {
+ for (Allele a: getAlleles()) {
+ if (a.isSymbolic()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public static VariantContext createVariantContextWithPaddedAlleles(VariantContext inputVC, byte inputRefBase, boolean refBaseShouldBeAppliedToEndOfAlleles) {
Allele refAllele = inputVC.getReference();
@@ -1352,7 +1366,9 @@ public class VariantContext implements Feature { // to enable tribble intergrati
// We need to pad a VC with a common base if the length of the reference allele is less than the length of the VariantContext.
// This happens because the position of e.g. an indel is always one before the actual event (as per VCF convention).
long locLength = (inputVC.getEnd() - inputVC.getStart()) + 1;
- if (refAllele.length() == locLength)
+ if (inputVC.hasSymbolicAlleles())
+ padVC = true;
+ else if (refAllele.length() == locLength)
padVC = false;
else if (refAllele.length() == locLength-1)
padVC = true;
diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContextUtils.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContextUtils.java
index 5d58954aa..5a5671056 100755
--- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContextUtils.java
+++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContextUtils.java
@@ -23,21 +23,26 @@
package org.broadinstitute.sting.utils.variantcontext;
-import java.io.Serializable;
-import java.util.*;
-
-import com.google.java.contract.*;
+import com.google.java.contract.Ensures;
+import com.google.java.contract.Requires;
import net.sf.picard.reference.ReferenceSequenceFile;
import net.sf.samtools.util.StringUtil;
-import org.apache.commons.jexl2.*;
+import org.apache.commons.jexl2.Expression;
+import org.apache.commons.jexl2.JexlEngine;
import org.broad.tribble.util.popgen.HardyWeinbergCalculation;
-import org.broadinstitute.sting.utils.codecs.vcf.AbstractVCFCodec;
import org.broadinstitute.sting.gatk.walkers.phasing.ReadBackedPhasingWalker;
-import org.broadinstitute.sting.utils.*;
+import org.broadinstitute.sting.utils.BaseUtils;
+import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.GenomeLocParser;
+import org.broadinstitute.sting.utils.Utils;
+import org.broadinstitute.sting.utils.codecs.vcf.AbstractVCFCodec;
import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
+import java.io.Serializable;
+import java.util.*;
+
public class VariantContextUtils {
final public static JexlEngine engine = new JexlEngine();
static {
diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantJEXLContext.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantJEXLContext.java
index c5a3b6f2a..a59ed7abe 100644
--- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantJEXLContext.java
+++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantJEXLContext.java
@@ -29,7 +29,10 @@ import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.codecs.vcf.VCFConstants;
import org.broadinstitute.sting.utils.exceptions.UserException;
-import java.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
/**
*
diff --git a/public/java/src/org/broadinstitute/sting/utils/wiggle/WiggleWriter.java b/public/java/src/org/broadinstitute/sting/utils/wiggle/WiggleWriter.java
index ab91d0e2e..5782c2704 100755
--- a/public/java/src/org/broadinstitute/sting/utils/wiggle/WiggleWriter.java
+++ b/public/java/src/org/broadinstitute/sting/utils/wiggle/WiggleWriter.java
@@ -1,7 +1,7 @@
package org.broadinstitute.sting.utils.wiggle;
-import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.GenomeLoc;
+import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException;
import java.io.*;
diff --git a/public/java/test/org/broadinstitute/sting/BaseTest.java b/public/java/test/org/broadinstitute/sting/BaseTest.java
index 61bb8b34b..b3e422ba9 100755
--- a/public/java/test/org/broadinstitute/sting/BaseTest.java
+++ b/public/java/test/org/broadinstitute/sting/BaseTest.java
@@ -4,6 +4,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.log4j.*;
import org.apache.log4j.spi.LoggingEvent;
import org.broadinstitute.sting.commandline.CommandLineUtils;
+import org.broadinstitute.sting.gatk.walkers.diffengine.DiffEngine;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.testng.Assert;
@@ -12,6 +13,10 @@ import java.io.*;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
*
@@ -107,6 +112,57 @@ public abstract class BaseTest {
}
}
+ /**
+ * Simple generic utility class to creating TestNG data providers:
+ *
+ * 1: inherit this class, as in
+ *
+ * private class SummarizeDifferenceTest extends TestDataProvider {
+ * public SummarizeDifferenceTest() {
+ * super(SummarizeDifferenceTest.class);
+ * }
+ * ...
+ * }
+ *
+ * Provide a reference to your class to the TestDataProvider constructor.
+ *
+ * 2: Create instances of your subclass. Return from it the call to getTests, providing
+ * the class type of your test
+ *
+ * @DataProvider(name = "summaries")
+ * public Object[][] createSummaries() {
+ * new SummarizeDifferenceTest().addDiff("A", "A").addSummary("A:2");
+ * new SummarizeDifferenceTest().addDiff("A", "B").addSummary("A:1", "B:1");
+ * return SummarizeDifferenceTest.getTests(SummarizeDifferenceTest.class);
+ * }
+ *
+ * This class magically tracks created objects of this
+ */
+ public static class TestDataProvider {
+ private static final Map> tests = new HashMap>();
+
+ /**
+ * Create a new TestDataProvider instance bound to the class variable C
+ * @param c
+ */
+ public TestDataProvider(Class c) {
+ if ( ! tests.containsKey(c) )
+ tests.put(c, new ArrayList