diff --git a/build.xml b/build.xml
index a79c4dbe9..9cada6c4a 100644
--- a/build.xml
+++ b/build.xml
@@ -8,9 +8,6 @@
-
-
-
@@ -297,7 +294,9 @@
-
+
+
+
@@ -307,67 +306,63 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
- * Class TrivalInstrumenter
- *
- * A simple instrumentation class, that adds information to our test cases.
- */
-
-/** A trivial example program that basically just says hello! */
-@Ignore
-public class TrivialInstrumenter implements ClassFileTransformer {
- public static void premain(String options, Instrumentation ins) {
- if (options != null) {
- System.out.printf(" I've been called with options: \"%s\"\n", options);
- } else
- ins.addTransformer(new TrivialInstrumenter());
- }
-
- public byte[] transform(ClassLoader loader,
- String className,
- Class cBR, java.security.ProtectionDomain pD,
- byte[] classfileBuffer)
- throws IllegalClassFormatException {
- int size = classfileBuffer.length;
-
- if (className.contains("broadinstitute") &&
- className.endsWith("Test") &&
- !(className.endsWith("BaseTest"))) {
- ClassPool pool = ClassPool.getDefault();
- CtClass cl = null;
-
- try {
- cl = pool.makeClass(new java.io.ByteArrayInputStream(classfileBuffer));
- if (cl.isInterface() == false) {
- for (CtBehavior meth : cl.getDeclaredMethods()) {
-
- if (meth.isEmpty() == false) {
- Object anns[] = meth.getAvailableAnnotations();
- boolean weAreAJunitTest = false;
- for (Object obj : anns) {
- if (obj instanceof org.junit.Test) {
- weAreAJunitTest = true;
- }
- }
- if (weAreAJunitTest) {
- addAnnouncement(meth, cl);
- }
- }
- }
- classfileBuffer = cl.toBytecode();
- return classfileBuffer;
- }
-
- // baseTearDown
- } catch (NotFoundException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- } catch (IOException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- } catch (CannotCompileException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- } finally {
- if (cl != null) {
- cl.detach();
- }
- }
-
- }
- return null;
- }
-
- private static void addTiming(CtClass clas, String mname)
- throws NotFoundException, CannotCompileException {
-
- // get the method information (throws exception if method with
- // given name is not declared directly by this class, returns
- // arbitrary choice if more than one with the given name)
- CtMethod mold = clas.getDeclaredMethod(mname);
-
- // rename old method to synthetic name, then duplicate the
- // method with original name for use as interceptor
- String nname = mname + "$impl";
- mold.setName(nname);
- CtMethod mnew = CtNewMethod.copy(mold, mname, clas, null);
-
- // start the body text generation by saving the start time
- // to a local variable, then call the timed method; the
- // actual code generated needs to depend on whether the
- // timed method returns a value
- String type = mold.getReturnType().getName();
- StringBuffer body = new StringBuffer();
- body.append("{\nlong start = System.currentTimeMillis();\n");
- if (!"void".equals(type)) {
- body.append(type + " result = ");
- }
- body.append(nname + "($$);\n");
-
- // finish body text generation with call to print the timing
- // information, and return saved value (if not void)
- body.append("System.out.println(\"Call to method " + mname +
- " took \" +\n (System.currentTimeMillis()-start) + " +
- "\" ms.\");\n");
- if (!"void".equals(type)) {
- body.append("return result;\n");
- }
- body.append("}");
-
- // replace the body of the interceptor method with generated
- // code block and add it to class
- mnew.setBody(body.toString());
- clas.addMethod(mnew);
-
- // print the generated code block just to show what was done
- //System.out.println("Interceptor method body:");
- //System.out.println(body.toString());
- }
-
- private void addAnnouncement(CtBehavior method, CtClass cl)
- throws NotFoundException, CannotCompileException {
- String name = method.getName();
- method.insertAfter("logger.warn(\"\");");
- }
-}
-
-
diff --git a/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalPerformanceTest.java b/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalPerformanceTest.java
new file mode 100644
index 000000000..ec057b7a2
--- /dev/null
+++ b/java/test/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalPerformanceTest.java
@@ -0,0 +1,222 @@
+package org.broadinstitute.sting.gatk.walkers.varianteval;
+
+import org.broadinstitute.sting.WalkerTest;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.*;
+
+
+/**
+ *
+ * @author aaron
+ *
+ * Class VariantEvalPerformanceTest
+ *
+ * TODO: remove me Eric
+ */
+public class VariantEvalPerformanceTest extends WalkerTest {
+
+ @Test
+ public void testEvalVariantROD() {
+ HashMap md5 = new HashMap();
+ md5.put("", "9cfda40f521d75a3e8bafc44a663c14a");
+ md5.put("-A", "8fea7cc25f551ce170636fc35c5ae0fe");
+
+ /**
+ * the above MD5 was calculated from running the following command:
+ *
+ * java -jar ./dist/GenomeAnalysisTK.jar \
+ * -R /broad/1KG/reference/human_b36_both.fasta \
+ * -T VariantEval \
+ * --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod \
+ * -L 1:10,000,000-11,000,000 \
+ * --outerr myVariantEval \
+ * --supressDateInformation \
+ * --rodBind eval,Variants,/humgen/gsa-scr1/GATK_Data/Validation_Data/NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.variants.geli.calls
+ *
+ */
+ for ( Map.Entry e : md5.entrySet() ) {
+ WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
+ "-R " + oneKGLocation + "reference/human_b36_both.fasta" +
+ " --rodBind eval,Variants," + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.variants.geli.calls" +
+ " -T VariantEval" +
+ " --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod" +
+ " -L 1:10,000,000-11,000,000" +
+ " --outerr %s" +
+ " --supressDateInformation " + e.getKey(),
+ 1, // just one output file
+ Arrays.asList(e.getValue()));
+ List result = executeTest("testEvalVariantROD", spec).getFirst();
+ }
+ }
+
+ @Test
+ public void testEvalVariantRODConfSix() {
+ List md5 = new ArrayList();
+ md5.add("11d636d105f902680c46b9f2e330d922");
+
+ /**
+ * the above MD5 was calculated from running the following command:
+ *
+ * java -jar ./dist/GenomeAnalysisTK.jar \
+ * -R /broad/1KG/reference/human_b36_both.fasta \
+ * -T VariantEval \
+ * --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod \
+ * -L 1:10,000,000-11,000,000 \
+ * --outerr myVariantEval \
+ * --supressDateInformation \
+ * --rodBind eval,Variants,/humgen/gsa-scr1/GATK_Data/Validation_Data/NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.variants.geli.calls \
+ * -minConfidenceScore 6
+ */
+ WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
+ "-R " + oneKGLocation + "reference/human_b36_both.fasta" +
+ " --rodBind eval,Variants," + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.variants.geli.calls" +
+ " -T VariantEval" +
+ " --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod" +
+ " -L 1:10,000,000-11,000,000" +
+ " --outerr %s" +
+ " --supressDateInformation" +
+ " -minPhredConfidenceScore 60",
+ 1, // just one output file
+ md5);
+ List result = executeTest("testEvalVariantRODConfSixty", spec).getFirst();
+ }
+
+ @Test
+ public void testEvalVariantRODOutputViolations() {
+ List md5 = new ArrayList();
+ md5.add("12ecd457d62329e9d4e593de904a457d");
+
+ /**
+ * the above MD5 was calculated from running the following command:
+ *
+ * java -jar ./dist/GenomeAnalysisTK.jar \
+ * -R /broad/1KG/reference/human_b36_both.fasta \
+ * -T VariantEval \
+ * --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod \
+ * -L 1:10,000,000-11,000,000 \
+ * --outerr myVariantEval \
+ * --supressDateInformation \
+ * --rodBind eval,Variants,/humgen/gsa-scr1/GATK_Data/Validation_Data/NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.variants.geli.calls \
+ * --includeViolations
+ */
+ WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
+ "-R " + oneKGLocation + "reference/human_b36_both.fasta" +
+ " --rodBind eval,Variants," + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.variants.geli.calls" +
+ " -T VariantEval" +
+ " --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod" +
+ " -L 1:10,000,000-11,000,000" +
+ " --outerr %s" +
+ " --supressDateInformation" +
+ " --includeViolations",
+ 1, // just one output file
+ md5);
+ List result = executeTest("testEvalVariantRODOutputViolations", spec).getFirst();
+ }
+
+ @Test
+ public void testEvalGenotypeROD() {
+ List md5 = new ArrayList();
+ md5.add("6ed44fd586c89dafd40cb8e0194dc456");
+ /**
+ * the above MD5 was calculated after running the following command:
+ *
+ * java -jar ./dist/GenomeAnalysisTK.jar \
+ * -R /broad/1KG/reference/human_b36_both.fasta \
+ * -T VariantEval \
+ * --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod \
+ * -L 1:10,000,000-11,000,000 \
+ * --outerr myVariantEval \
+ * --supressDateInformation \
+ * --evalContainsGenotypes \
+ * --rodBind eval,Variants,/humgen/gsa-scr1/GATK_Data/Validation_Data/NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.genotypes.geli.calls \
+ * --rodBind hapmap-chip,GFF,/humgen/gsa-scr1/GATK_Data/1KG_gffs/NA12878.1kg.gff
+ */
+
+ WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
+ "-R " + oneKGLocation + "reference/human_b36_both.fasta" +
+ " --rodBind eval,Variants," + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.lod5.genotypes.geli.calls" +
+ " -T VariantEval" +
+ " --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod" +
+ " -L 1:10,000,000-11,000,000" +
+ " --outerr %s" +
+ " --supressDateInformation" +
+ " --evalContainsGenotypes" +
+ " --rodBind hapmap-chip,GFF,/humgen/gsa-scr1/GATK_Data/1KG_gffs/NA12878.1kg.gff",
+ 1, // just one output file
+ md5);
+ List result = executeTest("testEvalGenotypeROD", spec).getFirst();
+ }
+
+ @Test
+ public void testEvalMarksGenotypingExample() {
+ List md5 = new ArrayList();
+ md5.add("c0396cfe89a63948aebbbae0a0e06678");
+ /**
+ * Run with the following commands:
+ *
+ * java -Xmx2048m -jar /humgen/gsa-hphome1/depristo/dev/GenomeAnalysisTK/trunk/dist/GenomeAnalysisTK.jar
+ * -T VariantEval -R /broad/1KG/reference/human_b36_both.fasta -l INFO
+ * -B eval,Variants,/humgen/gsa-scr1/ebanks/concordanceForMark/UMichVsBroad.venn.set1Only.calls
+ * -D /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod -hc /humgen/gsa-scr1/GATK_Data/1KG_gffs/NA12878.1kg.gff
+ * -G -L 1 -o /humgen/gsa-scr1/ebanks/concordanceForMark/UMichVsBroad.venn.set1Only.calls.eval
+ */
+
+ WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
+ "-T VariantEval -R " + oneKGLocation + "reference/human_b36_both.fasta " +
+ "-B eval,Variants," + validationDataLocation + "UMichVsBroad.venn.set1Only.calls " +
+ "-D /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod -hc /humgen/gsa-scr1/GATK_Data/1KG_gffs/NA12878.1kg.gff " +
+ "-G " +
+ "--supressDateInformation " +
+ "-L 1:1-10,000,000 " +
+ "--outerr %s",
+ 1, // just one output file
+ md5);
+ List result = executeTest("testEvalMarksGenotypingExample", spec).getFirst();
+ }
+
+ @Test
+ public void testEvalRuntimeWithLotsOfIntervals() {
+ List md5 = new ArrayList();
+ md5.add("6a90341517fc3c5026529301d9970c7b");
+ WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
+ "-T VariantEval -R " + oneKGLocation + "reference/human_b36_both.fasta " +
+ "-B eval,Variants," + validationDataLocation + "NA12878.pilot_3.all.geli.calls " +
+ "-D /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod " +
+ "--supressDateInformation " +
+ "-L /humgen/gsa-scr1/GATK_Data/thousand_genomes_alpha_redesign.targets.b36.interval_list " +
+ "--outerr %s",
+ 1, // just one output file
+ md5);
+ List result = executeTest("testEvalRuntimeWithLotsOfIntervals", spec).getFirst();
+ }
+
+ @Test
+ public void testVCFVariantEvals() {
+ HashMap md5 = new HashMap();
+ md5.put("", "ee6b096169d6c5e2ce49d394fbec799b");
+ md5.put("-A", "a443193c0810363f85278b1cfaed2fff");
+ md5.put("-A --includeFilteredRecords", "812d7f2ecac28b1be7e7028af17df9c0");
+ md5.put("-A --sampleName NA12878", "a443193c0810363f85278b1cfaed2fff");
+ md5.put("-A -vcfInfoSelector AF=0.50", "afed4bf0c9f11b86f6e5356012f9cf2d");
+
+ for ( Map.Entry e : md5.entrySet() ) {
+ WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
+ "-R " + oneKGLocation + "reference/human_b36_both.fasta" +
+ " --rodBind eval,VCF," + validationDataLocation + "NA12878.example1.vcf" +
+ " -T VariantEval" +
+ " --DBSNP /humgen/gsa-scr1/GATK_Data/dbsnp_129_b36.rod" +
+ " -hc /humgen/gsa-scr1/GATK_Data/1KG_gffs/NA12878.1kg.gff" +
+ " -G" +
+ " -L 1:1-10,000" +
+ " --outerr %s" +
+ " --supressDateInformation " + e.getKey(),
+ 1, // just one output file
+ Arrays.asList(e.getValue()));
+ List result = executeTest("testVCFVariantEvals", spec).getFirst();
+ }
+ }
+
+
+}