Minor UG Engine refactoring/cleanup: instead of passing in the # of samples separately from sample set, pass in ploidy instead and compute # of chromosomes internally - will help later on with code clarity
This commit is contained in:
parent
a0843f125e
commit
c9c3f6b0fc
|
|
@ -222,7 +222,7 @@ public class UnifiedGenotyper extends LocusWalker<VariantCallContext, UnifiedGen
|
||||||
verboseWriter.println("AFINFO\tLOC\tREF\tALT\tMAF\tF\tAFprior\tMLE\tMAP");
|
verboseWriter.println("AFINFO\tLOC\tREF\tALT\tMAF\tF\tAFprior\tMLE\tMAP");
|
||||||
|
|
||||||
annotationEngine = new VariantAnnotatorEngine(Arrays.asList(annotationClassesToUse), annotationsToUse, annotationsToExclude, this, getToolkit());
|
annotationEngine = new VariantAnnotatorEngine(Arrays.asList(annotationClassesToUse), annotationsToUse, annotationsToExclude, this, getToolkit());
|
||||||
UG_engine = new UnifiedGenotyperEngine(getToolkit(), UAC, logger, verboseWriter, annotationEngine, samples, 2*samples.size());
|
UG_engine = new UnifiedGenotyperEngine(getToolkit(), UAC, logger, verboseWriter, annotationEngine, samples, UnifiedGenotyperEngine.DEFAULT_PLOIDY);
|
||||||
|
|
||||||
// initialize the header
|
// initialize the header
|
||||||
Set<VCFHeaderLine> headerInfo = getHeaderInfo();
|
Set<VCFHeaderLine> headerInfo = getHeaderInfo();
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,8 @@ import java.util.*;
|
||||||
public class UnifiedGenotyperEngine {
|
public class UnifiedGenotyperEngine {
|
||||||
public static final String LOW_QUAL_FILTER_NAME = "LowQual";
|
public static final String LOW_QUAL_FILTER_NAME = "LowQual";
|
||||||
|
|
||||||
|
public static final int DEFAULT_PLOIDY = 2;
|
||||||
|
|
||||||
public enum OUTPUT_MODE {
|
public enum OUTPUT_MODE {
|
||||||
/** produces calls only at variant sites */
|
/** produces calls only at variant sites */
|
||||||
EMIT_VARIANTS_ONLY,
|
EMIT_VARIANTS_ONLY,
|
||||||
|
|
@ -98,7 +100,8 @@ public class UnifiedGenotyperEngine {
|
||||||
private final Logger logger;
|
private final Logger logger;
|
||||||
private final PrintStream verboseWriter;
|
private final PrintStream verboseWriter;
|
||||||
|
|
||||||
// number of chromosomes (2 * samples) in input
|
// number of chromosomes (ploidy * samples) in input
|
||||||
|
private final int ploidy;
|
||||||
private final int N;
|
private final int N;
|
||||||
|
|
||||||
// the standard filter to use for calls below the confidence threshold but above the emit threshold
|
// the standard filter to use for calls below the confidence threshold but above the emit threshold
|
||||||
|
|
@ -115,11 +118,11 @@ public class UnifiedGenotyperEngine {
|
||||||
// ---------------------------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------------------------
|
||||||
@Requires({"toolkit != null", "UAC != null"})
|
@Requires({"toolkit != null", "UAC != null"})
|
||||||
public UnifiedGenotyperEngine(GenomeAnalysisEngine toolkit, UnifiedArgumentCollection UAC) {
|
public UnifiedGenotyperEngine(GenomeAnalysisEngine toolkit, UnifiedArgumentCollection UAC) {
|
||||||
this(toolkit, UAC, Logger.getLogger(UnifiedGenotyperEngine.class), null, null, SampleUtils.getSAMFileSamples(toolkit.getSAMFileHeader()), 2*(SampleUtils.getSAMFileSamples(toolkit.getSAMFileHeader()).size()));
|
this(toolkit, UAC, Logger.getLogger(UnifiedGenotyperEngine.class), null, null, SampleUtils.getSAMFileSamples(toolkit.getSAMFileHeader()), DEFAULT_PLOIDY*(SampleUtils.getSAMFileSamples(toolkit.getSAMFileHeader()).size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Requires({"toolkit != null", "UAC != null", "logger != null", "samples != null && samples.size() > 0","N>0"})
|
@Requires({"toolkit != null", "UAC != null", "logger != null", "samples != null && samples.size() > 0","ploidy>0"})
|
||||||
public UnifiedGenotyperEngine(GenomeAnalysisEngine toolkit, UnifiedArgumentCollection UAC, Logger logger, PrintStream verboseWriter, VariantAnnotatorEngine engine, Set<String> samples, int N) {
|
public UnifiedGenotyperEngine(GenomeAnalysisEngine toolkit, UnifiedArgumentCollection UAC, Logger logger, PrintStream verboseWriter, VariantAnnotatorEngine engine, Set<String> samples, int ploidy) {
|
||||||
this.BAQEnabledOnCMDLine = toolkit.getArguments().BAQMode != BAQ.CalculationMode.OFF;
|
this.BAQEnabledOnCMDLine = toolkit.getArguments().BAQMode != BAQ.CalculationMode.OFF;
|
||||||
genomeLocParser = toolkit.getGenomeLocParser();
|
genomeLocParser = toolkit.getGenomeLocParser();
|
||||||
this.samples = new TreeSet<String>(samples);
|
this.samples = new TreeSet<String>(samples);
|
||||||
|
|
@ -130,7 +133,8 @@ public class UnifiedGenotyperEngine {
|
||||||
this.verboseWriter = verboseWriter;
|
this.verboseWriter = verboseWriter;
|
||||||
this.annotationEngine = engine;
|
this.annotationEngine = engine;
|
||||||
|
|
||||||
this.N = N;
|
this.ploidy = ploidy;
|
||||||
|
this.N = samples.size() * ploidy;
|
||||||
log10AlleleFrequencyPriorsSNPs = new double[N+1];
|
log10AlleleFrequencyPriorsSNPs = new double[N+1];
|
||||||
log10AlleleFrequencyPriorsIndels = new double[N+1];
|
log10AlleleFrequencyPriorsIndels = new double[N+1];
|
||||||
computeAlleleFrequencyPriors(N, log10AlleleFrequencyPriorsSNPs, UAC.heterozygosity);
|
computeAlleleFrequencyPriors(N, log10AlleleFrequencyPriorsSNPs, UAC.heterozygosity);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue