Consensus mode and new RodBinding framework.

The DPP was not using the parameter correctly. It didn't matter for the default option (which is the only one we have been testing) but it would not work for knowns only or smith waterman. It is fixed now.

It now complies with the new rod binding framework.
This commit is contained in:
Mauricio Carneiro 2011-08-22 14:05:13 -04:00
parent 85c5a6f890
commit caebc88e9a
1 changed files with 19 additions and 13 deletions

View File

@ -84,12 +84,6 @@ class DataProcessingPipeline extends QScript {
var nContigs: Int = 0 // Use the number of contigs for scatter gathering jobs var nContigs: Int = 0 // Use the number of contigs for scatter gathering jobs
var cleanModelEnum: ConsensusDeterminationModel = ConsensusDeterminationModel.USE_READS var cleanModelEnum: ConsensusDeterminationModel = ConsensusDeterminationModel.USE_READS
if (cleaningModel == "KNOWNS_ONLY") {
cleanModelEnum = ConsensusDeterminationModel.KNOWNS_ONLY
}
else if (cleaningModel == "USE_SW") {
cleanModelEnum = ConsensusDeterminationModel.USE_SW
}
@ -200,6 +194,15 @@ class DataProcessingPipeline extends QScript {
return realignedBams return realignedBams
} }
def getIndelCleaningModel(): ConsensusDeterminationModel = {
if (cleaningModel == "KNOWNS_ONLY")
ConsensusDeterminationModel.KNOWNS_ONLY
else if (cleaningModel == "USE_SW")
ConsensusDeterminationModel.USE_SW
else
ConsensusDeterminationModel.USE_READS
}
/**************************************************************************** /****************************************************************************
* Main script * Main script
@ -208,6 +211,8 @@ class DataProcessingPipeline extends QScript {
def script = { def script = {
cleanModelEnum = getIndelCleaningModel()
// keep a record of the number of contigs in the first bam file in the list // keep a record of the number of contigs in the first bam file in the list
val bams = QScriptUtils.createListFromFile(input) val bams = QScriptUtils.createListFromFile(input)
nContigs = QScriptUtils.getNumberOfContigs(bams(0)) nContigs = QScriptUtils.getNumberOfContigs(bams(0))
@ -300,13 +305,13 @@ class DataProcessingPipeline extends QScript {
} }
case class target (inBams: File, outIntervals: File) extends RealignerTargetCreator with CommandLineGATKArgs { case class target (inBams: File, outIntervals: File) extends RealignerTargetCreator with CommandLineGATKArgs {
if (cleaningModel != ConsensusDeterminationModel.KNOWNS_ONLY) if (cleanModelEnum != ConsensusDeterminationModel.KNOWNS_ONLY)
this.input_file :+= inBams this.input_file :+= inBams
this.out = outIntervals this.out = outIntervals
this.mismatchFraction = 0.0 this.mismatchFraction = 0.0
this.rodBind :+= RodBind("dbsnp", "VCF", dbSNP) this.known :+= qscript.dbSNP
if (indels != null) if (indels != null)
this.rodBind :+= RodBind("indels", "VCF", indels) this.known :+= qscript.indels
this.scatterCount = nContigs this.scatterCount = nContigs
this.analysisName = queueLogDir + outIntervals + ".target" this.analysisName = queueLogDir + outIntervals + ".target"
this.jobName = queueLogDir + outIntervals + ".target" this.jobName = queueLogDir + outIntervals + ".target"
@ -317,10 +322,10 @@ class DataProcessingPipeline extends QScript {
this.input_file :+= inBams this.input_file :+= inBams
this.targetIntervals = tIntervals this.targetIntervals = tIntervals
this.out = outBam this.out = outBam
this.rodBind :+= RodBind("dbsnp", "VCF", dbSNP) this.known :+= qscript.dbSNP
if (qscript.indels != null) if (qscript.indels != null)
this.rodBind :+= RodBind("indels", "VCF", qscript.indels) this.known :+= qscript.indels
this.consensusDeterminationModel = consensusDeterminationModel this.consensusDeterminationModel = cleanModelEnum
this.compress = 0 this.compress = 0
this.scatterCount = nContigs this.scatterCount = nContigs
this.analysisName = queueLogDir + outBam + ".clean" this.analysisName = queueLogDir + outBam + ".clean"
@ -328,7 +333,7 @@ class DataProcessingPipeline extends QScript {
} }
case class cov (inBam: File, outRecalFile: File) extends CountCovariates with CommandLineGATKArgs { case class cov (inBam: File, outRecalFile: File) extends CountCovariates with CommandLineGATKArgs {
this.rodBind :+= RodBind("dbsnp", "VCF", dbSNP) this.knownSites :+= qscript.dbSNP
this.covariate ++= List("ReadGroupCovariate", "QualityScoreCovariate", "CycleCovariate", "DinucCovariate") this.covariate ++= List("ReadGroupCovariate", "QualityScoreCovariate", "CycleCovariate", "DinucCovariate")
this.input_file :+= inBam this.input_file :+= inBam
this.recal_file = outRecalFile this.recal_file = outRecalFile
@ -372,6 +377,7 @@ class DataProcessingPipeline extends QScript {
this.input = List(inBam) this.input = List(inBam)
this.output = outBam this.output = outBam
this.metrics = metricsFile this.metrics = metricsFile
this.memoryLimit = 16
this.analysisName = queueLogDir + outBam + ".dedup" this.analysisName = queueLogDir + outBam + ".dedup"
this.jobName = queueLogDir + outBam + ".dedup" this.jobName = queueLogDir + outBam + ".dedup"
} }