Merge pull request #1168 from broadinstitute/knoblett
Implemented MetricsCollection evaluation module
This commit is contained in:
commit
071dbf29dd
|
|
@ -335,7 +335,7 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
||||||
" --eval " + validationDataLocation + "yri.trio.gatk_glftrio.intersection.annotated.filtered.chr1.vcf" +
|
" --eval " + validationDataLocation + "yri.trio.gatk_glftrio.intersection.annotated.filtered.chr1.vcf" +
|
||||||
" --comp:comp_genotypes " + privateTestDir + "yri.trio.gatk.ug.head.vcf";
|
" --comp:comp_genotypes " + privateTestDir + "yri.trio.gatk.ug.head.vcf";
|
||||||
WalkerTestSpec spec = new WalkerTestSpec(withSelect(tests, "DP < 50", "DP50") + " " + extraArgs + " -ST CpG -o %s",
|
WalkerTestSpec spec = new WalkerTestSpec(withSelect(tests, "DP < 50", "DP50") + " " + extraArgs + " -ST CpG -o %s",
|
||||||
1, Arrays.asList("4b9dcbce0717285e3c0c736c1bed744c"));
|
1, Arrays.asList("eaa3708d9db22fca0844a652bb73b82f"));
|
||||||
executeTestParallel("testSelect1", spec);
|
executeTestParallel("testSelect1", spec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -377,7 +377,7 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
||||||
" --dbsnp " + b37dbSNP132 +
|
" --dbsnp " + b37dbSNP132 +
|
||||||
" --eval:evalBI " + variantEvalTestDataRoot + "ALL.20100201.chr20.bi.sites.vcf" +
|
" --eval:evalBI " + variantEvalTestDataRoot + "ALL.20100201.chr20.bi.sites.vcf" +
|
||||||
" -noST -ST Novelty -o %s";
|
" -noST -ST Novelty -o %s";
|
||||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("112bb3221688acad83f29542bfb33151"));
|
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("fe9dcf4933a645f55be1cb0e33497e49"));
|
||||||
executeTestParallel("testEvalTrackWithoutGenotypes",spec);
|
executeTestParallel("testEvalTrackWithoutGenotypes",spec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -404,7 +404,7 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
||||||
" --eval:evalBI " + variantEvalTestDataRoot + "ALL.20100201.chr20.bi.sites.vcf" +
|
" --eval:evalBI " + variantEvalTestDataRoot + "ALL.20100201.chr20.bi.sites.vcf" +
|
||||||
" --eval:evalBC " + variantEvalTestDataRoot + "ALL.20100201.chr20.bc.sites.vcf" +
|
" --eval:evalBC " + variantEvalTestDataRoot + "ALL.20100201.chr20.bc.sites.vcf" +
|
||||||
" -noST -ST Novelty -o %s";
|
" -noST -ST Novelty -o %s";
|
||||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("81dcdde458c1ebb9aa35289ea8f12bc8"));
|
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("8dfdec264fcff9472bdee7d223fdb3ca"));
|
||||||
executeTestParallel("testMultipleEvalTracksWithoutGenotypes",spec);
|
executeTestParallel("testMultipleEvalTracksWithoutGenotypes",spec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -586,7 +586,7 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
||||||
"-o %s"
|
"-o %s"
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
Arrays.asList("f8460af997436a5ce4407fefb0e2724d")
|
Arrays.asList("af317f1ea1b80e5d4bc4f2d8523ef73d")
|
||||||
);
|
);
|
||||||
executeTest("testModernVCFWithLargeIndels", spec);
|
executeTest("testModernVCFWithLargeIndels", spec);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ import htsjdk.samtools.SAMSequenceRecord;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import htsjdk.tribble.Feature;
|
import htsjdk.tribble.Feature;
|
||||||
import org.broadinstitute.gatk.engine.walkers.*;
|
import org.broadinstitute.gatk.engine.walkers.*;
|
||||||
|
import org.broadinstitute.gatk.tools.walkers.varianteval.evaluators.*;
|
||||||
import org.broadinstitute.gatk.utils.commandline.*;
|
import org.broadinstitute.gatk.utils.commandline.*;
|
||||||
import org.broadinstitute.gatk.engine.CommandLineGATK;
|
import org.broadinstitute.gatk.engine.CommandLineGATK;
|
||||||
import org.broadinstitute.gatk.engine.GenomeAnalysisEngine;
|
import org.broadinstitute.gatk.engine.GenomeAnalysisEngine;
|
||||||
|
|
@ -39,7 +40,6 @@ import org.broadinstitute.gatk.engine.arguments.DbsnpArgumentCollection;
|
||||||
import org.broadinstitute.gatk.utils.contexts.AlignmentContext;
|
import org.broadinstitute.gatk.utils.contexts.AlignmentContext;
|
||||||
import org.broadinstitute.gatk.utils.contexts.ReferenceContext;
|
import org.broadinstitute.gatk.utils.contexts.ReferenceContext;
|
||||||
import org.broadinstitute.gatk.utils.refdata.RefMetaDataTracker;
|
import org.broadinstitute.gatk.utils.refdata.RefMetaDataTracker;
|
||||||
import org.broadinstitute.gatk.tools.walkers.varianteval.evaluators.VariantEvaluator;
|
|
||||||
import org.broadinstitute.gatk.tools.walkers.varianteval.stratifications.IntervalStratification;
|
import org.broadinstitute.gatk.tools.walkers.varianteval.stratifications.IntervalStratification;
|
||||||
import org.broadinstitute.gatk.tools.walkers.varianteval.stratifications.VariantStratifier;
|
import org.broadinstitute.gatk.tools.walkers.varianteval.stratifications.VariantStratifier;
|
||||||
import org.broadinstitute.gatk.tools.walkers.varianteval.stratifications.manager.StratificationManager;
|
import org.broadinstitute.gatk.tools.walkers.varianteval.stratifications.manager.StratificationManager;
|
||||||
|
|
@ -609,7 +609,34 @@ public class VariantEval extends RodWalker<Integer, Integer> implements TreeRedu
|
||||||
for ( final EvaluationContext nec : stratManager.values() )
|
for ( final EvaluationContext nec : stratManager.values() )
|
||||||
for ( final VariantEvaluator ve : nec.getVariantEvaluators() )
|
for ( final VariantEvaluator ve : nec.getVariantEvaluators() )
|
||||||
ve.finalizeEvaluation();
|
ve.finalizeEvaluation();
|
||||||
|
|
||||||
|
//send data to MetricsCollection
|
||||||
|
CompOverlap compOverlap = null;
|
||||||
|
IndelSummary indelSummary = null;
|
||||||
|
CountVariants countVariants = null;
|
||||||
|
MultiallelicSummary multiallelicSummary = null;
|
||||||
|
TiTvVariantEvaluator tiTvVariantEvaluator = null;
|
||||||
|
MetricsCollection metricsCollection = null;
|
||||||
|
for(final EvaluationContext nec: stratManager.values()) {
|
||||||
|
for(final VariantEvaluator ve : nec.getVariantEvaluators()) {
|
||||||
|
if (ve instanceof CompOverlap)
|
||||||
|
compOverlap = (CompOverlap) ve;
|
||||||
|
else if (ve instanceof IndelSummary)
|
||||||
|
indelSummary = (IndelSummary) ve;
|
||||||
|
else if (ve instanceof CountVariants)
|
||||||
|
countVariants = (CountVariants) ve;
|
||||||
|
else if (ve instanceof MultiallelicSummary)
|
||||||
|
multiallelicSummary = (MultiallelicSummary) ve;
|
||||||
|
else if (ve instanceof TiTvVariantEvaluator)
|
||||||
|
tiTvVariantEvaluator = (TiTvVariantEvaluator) ve;
|
||||||
|
else if (ve instanceof MetricsCollection)
|
||||||
|
metricsCollection = (MetricsCollection) ve;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(metricsCollection != null)
|
||||||
|
metricsCollection.setData(compOverlap.concordantRate, indelSummary.n_SNPs, countVariants.nSNPs, indelSummary.n_indels, multiallelicSummary.nIndels, indelSummary.insertion_to_deletion_ratio, countVariants.insertionDeletionRatio, tiTvVariantEvaluator.tiTvRatio);
|
||||||
|
}
|
||||||
|
|
||||||
VariantEvalReportWriter.writeReport(out, stratManager, stratManager.getStratifiers(), stratManager.get(0).getVariantEvaluators());
|
VariantEvalReportWriter.writeReport(out, stratManager, stratManager.getStratifiers(), stratManager.get(0).getVariantEvaluators());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2012-2015 Broad Institute, Inc.
|
||||||
|
*
|
||||||
|
* 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.gatk.tools.walkers.varianteval.evaluators;
|
||||||
|
|
||||||
|
import org.broadinstitute.gatk.tools.walkers.varianteval.util.Analysis;
|
||||||
|
import org.broadinstitute.gatk.tools.walkers.varianteval.util.DataPoint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by knoblett on 9/15/15.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Analysis(description = "Metrics Collection")
|
||||||
|
public class MetricsCollection extends VariantEvaluator {
|
||||||
|
|
||||||
|
@DataPoint(description = "The concordance rate from CompOverlap", format = "%.2f")
|
||||||
|
public double concordantRate;
|
||||||
|
@DataPoint(description = "Number of SNPs from IndelSummary", format = "%d")
|
||||||
|
public int nSNPs;
|
||||||
|
@DataPoint(description = "Number of SNP loci from CountVariants", format = "%d")
|
||||||
|
public long nSNPloci;
|
||||||
|
@DataPoint(description = "Number of indels from IndelSummary", format = "%d")
|
||||||
|
public int nIndels;
|
||||||
|
@DataPoint(description = "Number of indel loci from MultiallelicSummary", format = "%d")
|
||||||
|
public int nIndelLoci;
|
||||||
|
@DataPoint(description = "Insertion to deletion ratio from IndelSummary")
|
||||||
|
public String indelRatio;
|
||||||
|
@DataPoint(description = "Insertion to deletion ratio from CountVariants", format = "%.2f")
|
||||||
|
public double indelRatioLociBased;
|
||||||
|
@DataPoint(description = "The transition to transversion ratio from TiTvVariantEvaluator", format = "%.2f")
|
||||||
|
public double tiTvRatio;
|
||||||
|
|
||||||
|
public int getComparisonOrder() {return 2;}
|
||||||
|
|
||||||
|
public void setData(double concordantRate, int nSNPs, long nSNPloci, int nIndels, int nIndelLoci, String indelRatio, double indelRatioLociBased, double tiTvRatio){
|
||||||
|
this.concordantRate = concordantRate;
|
||||||
|
this.nSNPs = nSNPs;
|
||||||
|
this.nSNPloci = nSNPloci;
|
||||||
|
this.nIndels = nIndels;
|
||||||
|
this.nIndelLoci = nIndelLoci;
|
||||||
|
this.indelRatio = indelRatio;
|
||||||
|
this.indelRatioLociBased = indelRatioLociBased;
|
||||||
|
this.tiTvRatio = tiTvRatio;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -176,6 +176,11 @@ public class VariantEvalUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//add MetricsCollection if required modules are included
|
||||||
|
|
||||||
|
if(evals.contains(classMap.get("CompOverlap")) && evals.contains(classMap.get("IndelSummary")) && evals.contains(classMap.get("TiTvVariantEvaluator")) && evals.contains(classMap.get("CountVariants")) && evals.contains(classMap.get("MultiallelicSummary")) )
|
||||||
|
evals.add(classMap.get("MetricsCollection"));
|
||||||
|
|
||||||
return evals;
|
return evals;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue