45 lines
1.4 KiB
Scala
45 lines
1.4 KiB
Scala
package org.broadinstitute.sting.queue.pipeline
|
|
|
|
import java.io.File
|
|
|
|
/**
|
|
* Data validations to evaluate on a VCF using VariantEval.
|
|
*/
|
|
class PipelineTestEvalSpec {
|
|
// TODO: Reuse the Project "YAML" object for reference, intervals, etc.
|
|
|
|
/** VCF to eval */
|
|
var vcf: File = _
|
|
|
|
/** Reference for the VCF */
|
|
var reference: File = _
|
|
|
|
/** Intervals for the VCF */
|
|
var intervals: File = _
|
|
|
|
/** DBSNP to use for comparisons, via -B:dbsnp,VCF or -D */
|
|
var dbsnp: File = _
|
|
|
|
/** List of eval modules to output. */
|
|
var evalModules = List("CompOverlap", "CountFunctionalClasses", "CountVariants", "SimpleMetricsBySample", "TiTvVariantEvaluator")
|
|
|
|
/** Validations to assert. */
|
|
var validations: List[PipelineValidation] = Nil
|
|
}
|
|
|
|
/** A VariantEval JEXL and range of values to validate. */
|
|
class PipelineValidation(val metric: String, val min: String, val max: String) {
|
|
}
|
|
|
|
/** A VariantEval JEXL and target to validate within a 1% tolerance. */
|
|
class IntegerValidation(metric: String, target: Int)
|
|
extends PipelineValidation(metric,
|
|
(target * .99).floor.toInt.toString, (target * 1.01).ceil.toInt.toString) {
|
|
}
|
|
|
|
/** A VariantEval JEXL and target to validate within a 1% tolerance. */
|
|
class DoubleValidation(metric: String, target: Double)
|
|
extends PipelineValidation(metric,
|
|
"%.2f".format((target * 99).floor / 100), "%.2f".format((target * 101).ceil / 100)) {
|
|
}
|