Added @Hidden option for GSA production use to cap the max alleles for indels at a lower number than for SNPs
This commit is contained in:
parent
e57cd78bba
commit
666862af19
|
|
@ -52,17 +52,17 @@ public abstract class AlleleFrequencyCalculationModel implements Cloneable {
|
||||||
|
|
||||||
protected int N;
|
protected int N;
|
||||||
protected int MAX_ALTERNATE_ALLELES_TO_GENOTYPE;
|
protected int MAX_ALTERNATE_ALLELES_TO_GENOTYPE;
|
||||||
|
protected boolean CAP_MAX_ALTERNATE_ALLELES_FOR_INDELS;
|
||||||
|
|
||||||
protected Logger logger;
|
protected Logger logger;
|
||||||
protected PrintStream verboseWriter;
|
protected PrintStream verboseWriter;
|
||||||
|
|
||||||
protected enum GenotypeType { AA, AB, BB }
|
|
||||||
|
|
||||||
protected static final double VALUE_NOT_CALCULATED = Double.NEGATIVE_INFINITY;
|
protected static final double VALUE_NOT_CALCULATED = Double.NEGATIVE_INFINITY;
|
||||||
|
|
||||||
protected AlleleFrequencyCalculationModel(final UnifiedArgumentCollection UAC, final int N, final Logger logger, final PrintStream verboseWriter) {
|
protected AlleleFrequencyCalculationModel(final UnifiedArgumentCollection UAC, final int N, final Logger logger, final PrintStream verboseWriter) {
|
||||||
this.N = N;
|
this.N = N;
|
||||||
this.MAX_ALTERNATE_ALLELES_TO_GENOTYPE = UAC.MAX_ALTERNATE_ALLELES;
|
this.MAX_ALTERNATE_ALLELES_TO_GENOTYPE = UAC.MAX_ALTERNATE_ALLELES;
|
||||||
|
this.CAP_MAX_ALTERNATE_ALLELES_FOR_INDELS = UAC.CAP_MAX_ALTERNATE_ALLELES_FOR_INDELS;
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
this.verboseWriter = verboseWriter;
|
this.verboseWriter = verboseWriter;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,13 +49,15 @@ public class ExactAFCalculationModel extends AlleleFrequencyCalculationModel {
|
||||||
GenotypesContext GLs = vc.getGenotypes();
|
GenotypesContext GLs = vc.getGenotypes();
|
||||||
List<Allele> alleles = vc.getAlleles();
|
List<Allele> alleles = vc.getAlleles();
|
||||||
|
|
||||||
// don't try to genotype too many alternate alleles
|
final int myMaxAltAllelesToGenotype = CAP_MAX_ALTERNATE_ALLELES_FOR_INDELS && vc.getType().equals(VariantContext.Type.INDEL) ? 2 : MAX_ALTERNATE_ALLELES_TO_GENOTYPE;
|
||||||
if ( vc.getAlternateAlleles().size() > MAX_ALTERNATE_ALLELES_TO_GENOTYPE ) {
|
|
||||||
logger.warn("this tool is currently set to genotype at most " + MAX_ALTERNATE_ALLELES_TO_GENOTYPE + " alternate alleles in a given context, but the context at " + vc.getChr() + ":" + vc.getStart() + " has " + (vc.getAlternateAlleles().size()) + " alternate alleles so only the top alleles will be used; see the --max_alternate_alleles argument");
|
|
||||||
|
|
||||||
alleles = new ArrayList<Allele>(MAX_ALTERNATE_ALLELES_TO_GENOTYPE + 1);
|
// don't try to genotype too many alternate alleles
|
||||||
|
if ( vc.getAlternateAlleles().size() > myMaxAltAllelesToGenotype ) {
|
||||||
|
logger.warn("this tool is currently set to genotype at most " + myMaxAltAllelesToGenotype + " alternate alleles in a given context, but the context at " + vc.getChr() + ":" + vc.getStart() + " has " + (vc.getAlternateAlleles().size()) + " alternate alleles so only the top alleles will be used; see the --max_alternate_alleles argument");
|
||||||
|
|
||||||
|
alleles = new ArrayList<Allele>(myMaxAltAllelesToGenotype + 1);
|
||||||
alleles.add(vc.getReference());
|
alleles.add(vc.getReference());
|
||||||
alleles.addAll(chooseMostLikelyAlternateAlleles(vc, MAX_ALTERNATE_ALLELES_TO_GENOTYPE));
|
alleles.addAll(chooseMostLikelyAlternateAlleles(vc, myMaxAltAllelesToGenotype));
|
||||||
GLs = VariantContextUtils.subsetDiploidAlleles(vc, alleles, false);
|
GLs = VariantContextUtils.subsetDiploidAlleles(vc, alleles, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,10 @@ public class UnifiedArgumentCollection {
|
||||||
@Argument(fullName = "max_alternate_alleles", shortName = "maxAlleles", doc = "Maximum number of alternate alleles to genotype", required = false)
|
@Argument(fullName = "max_alternate_alleles", shortName = "maxAlleles", doc = "Maximum number of alternate alleles to genotype", required = false)
|
||||||
public int MAX_ALTERNATE_ALLELES = 3;
|
public int MAX_ALTERNATE_ALLELES = 3;
|
||||||
|
|
||||||
|
@Hidden
|
||||||
|
@Argument(fullName = "cap_max_alternate_alleles_for_indels", shortName = "capMaxAllelesForIndels", doc = "Cap the maximum number of alternate alleles to genotype for indel calls at 2; overrides the --max_alternate_alleles argument; GSA production use only", required = false)
|
||||||
|
public boolean CAP_MAX_ALTERNATE_ALLELES_FOR_INDELS = false;
|
||||||
|
|
||||||
// indel-related arguments
|
// indel-related arguments
|
||||||
/**
|
/**
|
||||||
* A candidate indel is genotyped (and potentially called) if there are this number of reads with a consensus indel at a site.
|
* A candidate indel is genotyped (and potentially called) if there are this number of reads with a consensus indel at a site.
|
||||||
|
|
@ -192,6 +196,7 @@ public class UnifiedArgumentCollection {
|
||||||
uac.INDEL_HAPLOTYPE_SIZE = INDEL_HAPLOTYPE_SIZE;
|
uac.INDEL_HAPLOTYPE_SIZE = INDEL_HAPLOTYPE_SIZE;
|
||||||
uac.alleles = alleles;
|
uac.alleles = alleles;
|
||||||
uac.MAX_ALTERNATE_ALLELES = MAX_ALTERNATE_ALLELES;
|
uac.MAX_ALTERNATE_ALLELES = MAX_ALTERNATE_ALLELES;
|
||||||
|
uac.CAP_MAX_ALTERNATE_ALLELES_FOR_INDELS = CAP_MAX_ALTERNATE_ALLELES_FOR_INDELS;
|
||||||
|
|
||||||
// todo- arguments to remove
|
// todo- arguments to remove
|
||||||
uac.IGNORE_SNP_ALLELES = IGNORE_SNP_ALLELES;
|
uac.IGNORE_SNP_ALLELES = IGNORE_SNP_ALLELES;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue