diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypeCalculationModel.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypeCalculationModel.java index 94b2f71ea..fe9089486 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypeCalculationModel.java @@ -74,7 +74,7 @@ public class DiploidGenotypeCalculationModel extends JointEstimateGenotypeCalcul ReadBackedPileup pileup = context.getContext(contextType).getBasePileup(); // create the GenotypeLikelihoods object - GenotypeLikelihoods GL = new GenotypeLikelihoods(baseModel, priors, defaultPlatform); + GenotypeLikelihoods GL = new GenotypeLikelihoods(UAC.baseModel, priors, UAC.defaultPlatform); GL.add(pileup, true); GLs.put(sample, GL); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypePriors.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypePriors.java index 045e5a3e7..4ba3ef5ed 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypePriors.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/DiploidGenotypePriors.java @@ -25,7 +25,6 @@ package org.broadinstitute.sting.gatk.walkers.genotyper; -import org.broadinstitute.sting.utils.Utils; import org.broadinstitute.sting.utils.MathUtils; import org.broadinstitute.sting.utils.genotype.DiploidGenotype; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeCalculationModel.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeCalculationModel.java index 7e1027823..485ad3793 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/GenotypeCalculationModel.java @@ -25,18 +25,10 @@ public abstract class GenotypeCalculationModel implements Cloneable { INDELS } - protected BaseMismatchModel baseModel; + protected UnifiedArgumentCollection UAC; protected Set samples; protected Logger logger; - protected double heterozygosity; - protected EmpiricalSubstitutionProbabilities.SequencerPlatform defaultPlatform; protected GenotypeWriterFactory.GENOTYPE_FORMAT OUTPUT_FORMAT; - protected boolean ALL_BASE_MODE; - protected boolean GENOTYPE_MODE; - protected int POOL_SIZE; - protected double CONFIDENCE_THRESHOLD; - protected double MINIMUM_ALLELE_FREQUENCY; - protected boolean REPORT_SLOD; protected PrintStream verboseWriter; protected PrintStream beagleWriter; @@ -62,17 +54,10 @@ public abstract class GenotypeCalculationModel implements Cloneable { GenotypeWriterFactory.GENOTYPE_FORMAT outputFormat, PrintStream verboseWriter, PrintStream beagleWriter) { + this.UAC = UAC.clone(); this.samples = new TreeSet(samples); - this.logger = logger; - baseModel = UAC.baseModel; - heterozygosity = UAC.heterozygosity; - defaultPlatform = UAC.defaultPlatform; OUTPUT_FORMAT = outputFormat; - ALL_BASE_MODE = UAC.ALL_BASES; - GENOTYPE_MODE = UAC.GENOTYPE; - POOL_SIZE = UAC.POOLSIZE; - CONFIDENCE_THRESHOLD = UAC.CONFIDENCE_THRESHOLD; - REPORT_SLOD = ! UAC.NO_SLOD; + this.logger = logger; this.verboseWriter = verboseWriter; this.beagleWriter = beagleWriter; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java index bf9f0dc78..fae3d37ef 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/JointEstimateGenotypeCalculationModel.java @@ -60,7 +60,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc // if there are no non-ref bases... if ( bestAlternateAllele == null ) { // if we don't want all bases, then we don't need to calculate genotype likelihoods - if ( !triggerTrack && !ALL_BASE_MODE && !GENOTYPE_MODE ) { + if ( !triggerTrack && !UAC.ALL_BASES_MODE && !UAC.GENOTYPE_MODE ) { VariantCallContext vcc = new VariantCallContext(false); estimateReferenceConfidence(vcc, contexts, DiploidGenotypePriors.HUMAN_HETEROZYGOSITY, false); return vcc; @@ -152,7 +152,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc sigma_1_over_I += 1.0 / (double)i; // delta = theta / sum(1/i) - double delta = heterozygosity / sigma_1_over_I; + double delta = UAC.heterozygosity / sigma_1_over_I; // calculate the null allele frequencies for 1-N AFs = new double[N]; @@ -190,7 +190,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc P_of_ref *= 1.0 - (theta / 2.0) * MathUtils.binomialProbability(0, depth, 0.5); } - vcc.confidentlyCalled = QualityUtils.phredScaleErrorRate(1.0 - P_of_ref) >= CONFIDENCE_THRESHOLD; + vcc.confidentlyCalled = QualityUtils.phredScaleErrorRate(1.0 - P_of_ref) >= UAC.CONFIDENCE_THRESHOLD; } protected void calculateAlleleFrequencyPosteriors(char ref, int frequencyEstimationPoints, Map contexts, StratifiedAlignmentContext.StratifiedContextType contextType) { @@ -350,8 +350,8 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc } // return a null call if we don't pass the confidence cutoff or the most likely allele frequency is zero - if ( !triggerTrack && !ALL_BASE_MODE && ((!GENOTYPE_MODE && bestAFguess == 0) || phredScaledConfidence < CONFIDENCE_THRESHOLD) ) - return new VariantCallContext(phredScaledConfidence >= CONFIDENCE_THRESHOLD); + if ( !triggerTrack && !UAC.ALL_BASES_MODE && ((!UAC.GENOTYPE_MODE && bestAFguess == 0) || phredScaledConfidence < UAC.CONFIDENCE_THRESHOLD) ) + return new VariantCallContext(phredScaledConfidence >= UAC.CONFIDENCE_THRESHOLD); // output to beagle file if requested if ( beagleWriter != null ) { @@ -384,7 +384,7 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc if ( dbsnp != null ) attributes.put("ID", dbsnp.getRS_ID()); - if ( REPORT_SLOD ) { + if ( !UAC.NO_SLOD ) { // the overall lod double overallLog10PofNull = log10AlleleFrequencyPriors[0] + log10PofDgivenAFi[indexOfMax][0]; double overallLog10PofF = log10AlleleFrequencyPriors[bestAFguess] + log10PofDgivenAFi[indexOfMax][bestAFguess]; @@ -422,6 +422,6 @@ public abstract class JointEstimateGenotypeCalculationModel extends GenotypeCalc VariantContext vc = new VariantContext("UG_SNP_call", loc, alleles, genotypes, phredScaledConfidence/10.0, null, attributes); - return new VariantCallContext(vc, phredScaledConfidence >= CONFIDENCE_THRESHOLD); + return new VariantCallContext(vc, phredScaledConfidence >= UAC.CONFIDENCE_THRESHOLD); } } \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SimpleIndelCalculationModel.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SimpleIndelCalculationModel.java index aad911231..019c44ed5 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SimpleIndelCalculationModel.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/SimpleIndelCalculationModel.java @@ -1,11 +1,9 @@ package org.broadinstitute.sting.gatk.walkers.genotyper; import org.broadinstitute.sting.utils.*; -import org.broadinstitute.sting.utils.genotype.vcf.VCFRecord; import org.broadinstitute.sting.utils.collections.Pair; import org.broadinstitute.sting.utils.pileup.*; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.refdata.rodDbSNP; import org.broadinstitute.sting.gatk.contexts.*; import org.broadinstitute.sting.gatk.contexts.variantcontext.*; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java index bedf35ed1..1b06f3ff3 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedArgumentCollection.java @@ -45,10 +45,10 @@ public class UnifiedArgumentCollection { // control the output @Argument(fullName = "genotype", shortName = "genotype", doc = "Should we output confident genotypes (i.e. including ref calls) or just the variants?", required = false) - public boolean GENOTYPE = false; + public boolean GENOTYPE_MODE = false; @Argument(fullName = "output_all_callable_bases", shortName = "all_bases", doc = "Should we output all callable bases?", required = false) - public boolean ALL_BASES = false; + public boolean ALL_BASES_MODE = false; @Argument(fullName = "noSLOD", shortName = "nsl", doc = "If provided, we will not calculate the SLOD", required = false) public boolean NO_SLOD = false; @@ -80,4 +80,28 @@ public class UnifiedArgumentCollection { @Argument(fullName = "max_deletion_fraction", shortName = "deletions", doc = "Maximum fraction of reads with deletions spanning this locus for it to be callable [to disable, set to < 0 or > 1; default:0.05]", required = false) public Double MAX_DELETION_FRACTION = 0.05; + + + public UnifiedArgumentCollection clone() { + UnifiedArgumentCollection uac = new UnifiedArgumentCollection(); + + uac.genotypeModel = genotypeModel; + uac.baseModel = baseModel; + uac.heterozygosity = heterozygosity; + uac.GENOTYPE_MODE = GENOTYPE_MODE; + uac.ALL_BASES_MODE = ALL_BASES_MODE; + uac.NO_SLOD = NO_SLOD; + uac.ASSUME_SINGLE_SAMPLE = ASSUME_SINGLE_SAMPLE; + uac.defaultPlatform = defaultPlatform; + uac.CONFIDENCE_THRESHOLD = CONFIDENCE_THRESHOLD; + uac.MIN_BASE_QUALTY_SCORE = MIN_BASE_QUALTY_SCORE; + uac.MIN_MAPPING_QUALTY_SCORE = MIN_MAPPING_QUALTY_SCORE; + uac.MAX_MISMATCHES = MAX_MISMATCHES; + uac.USE_BADLY_MATED_READS = USE_BADLY_MATED_READS; + uac.MAX_DELETION_FRACTION = MAX_DELETION_FRACTION; + + return uac; + } + + } diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/BaseTransitionTableCalculatorJavaWalker.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/BaseTransitionTableCalculatorJavaWalker.java index 283f8d9bf..99eabb5a8 100644 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/BaseTransitionTableCalculatorJavaWalker.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/BaseTransitionTableCalculatorJavaWalker.java @@ -85,7 +85,7 @@ public class BaseTransitionTableCalculatorJavaWalker extends LocusWalker(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java index c16080332..2c328a123 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java @@ -77,7 +77,7 @@ public class LocusMismatchWalker extends LocusWalker implements public void initialize() { UnifiedArgumentCollection uac = new UnifiedArgumentCollection(); uac.baseModel = BaseMismatchModel.THREE_STATE; - uac.ALL_BASES = true; + uac.ALL_BASES_MODE = true; ug = new UnifiedGenotyperEngine(getToolkit(), uac); // print the header diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SnpCallRateByCoverageWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SnpCallRateByCoverageWalker.java index 8e81422ea..03e7b5beb 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SnpCallRateByCoverageWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SnpCallRateByCoverageWalker.java @@ -61,7 +61,7 @@ public class SnpCallRateByCoverageWalker extends LocusWalker, Strin public void initialize() { UnifiedArgumentCollection uac = new UnifiedArgumentCollection(); uac.CONFIDENCE_THRESHOLD = confidence; - uac.ALL_BASES = true; + uac.ALL_BASES_MODE = true; UG = new UnifiedGenotyperEngine(getToolkit(), uac); out.println("#locus\tid\tdownsampled_coverage\tpct_coverage\titeration\tref\teval_call\tcomp_call\tvariant_concordance\tgenotype_concordance"); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/secondaryBases/SecondaryBaseTransitionTableWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/secondaryBases/SecondaryBaseTransitionTableWalker.java index 1b4f7927e..412e92f00 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/secondaryBases/SecondaryBaseTransitionTableWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/secondaryBases/SecondaryBaseTransitionTableWalker.java @@ -32,7 +32,7 @@ public class SecondaryBaseTransitionTableWalker extends LocusWalker