It compiles, and produces results!
fixed NPE when normal contains no reads first integration test (micro) and unit tests, also rename of MuTectHC -> M2 adding in standard GATK license terms incorporated HOSTILE mode to PCR Error Correction removed tumor and normal name parameters and cleaned up internal name handling changes to allow for calling without a matched normal (technically, not true 'tumor-only' calling). Used for panel-of-normals creation additional regression tests, based on DREAM data. Removed accidental addition of TandemRepeatAnnotator to default annotations updated MD5 based on run from GSA4 to fix bamboo issue reverted unneeded visibility changes
This commit is contained in:
parent
1d39ed9156
commit
ab1053e83c
|
|
@ -72,7 +72,7 @@ import java.util.*;
|
|||
*
|
||||
* @author Valentin Ruano-Rubio <valentin@broadinstitute.org>
|
||||
*/
|
||||
class ActiveRegionTrimmer {
|
||||
public class ActiveRegionTrimmer {
|
||||
|
||||
/**
|
||||
* Genome location parser use in order to create and manipulate genomic intervals.
|
||||
|
|
@ -115,11 +115,11 @@ class ActiveRegionTrimmer {
|
|||
*/
|
||||
@Hidden
|
||||
@Argument(fullName="paddingAroundIndels", shortName="paddingAroundIndels", doc = "Include at least this many bases around an event for calling indels", required=false)
|
||||
protected int indelPadding = 150;
|
||||
public int indelPadding = 150;
|
||||
|
||||
@Hidden
|
||||
@Argument(fullName="paddingAroundSNPs", shortName="paddingAroundSNPs", doc = "Include at least this many bases around an event for calling snps", required=false)
|
||||
protected int snpPadding = 20;
|
||||
public int snpPadding = 20;
|
||||
|
||||
/**
|
||||
* Holds a reference the trimmer logger.
|
||||
|
|
@ -143,7 +143,7 @@ class ActiveRegionTrimmer {
|
|||
* @throws IllegalArgumentException if the input location parser is {@code null}.
|
||||
* @throws UserException.BadArgumentValue if any of the user argument values is invalid.
|
||||
*/
|
||||
void initialize(final GenomeLocParser glp, final boolean debug, final boolean isGGA, final boolean emitReferenceConfidence) {
|
||||
public void initialize(final GenomeLocParser glp, final boolean debug, final boolean isGGA, final boolean emitReferenceConfidence) {
|
||||
if (locParser != null)
|
||||
throw new IllegalStateException(getClass().getSimpleName() + " instance initialized twice");
|
||||
if (glp == null)
|
||||
|
|
|
|||
|
|
@ -1360,7 +1360,7 @@ public class HaplotypeCaller extends ActiveRegionWalker<List<VariantContext>, In
|
|||
return splitReadsBySample(samplesList, reads);
|
||||
}
|
||||
|
||||
private static Map<String, List<GATKSAMRecord>> splitReadsBySample( final SampleList samplesList, final Collection<GATKSAMRecord> reads ) {
|
||||
public static Map<String, List<GATKSAMRecord>> splitReadsBySample( final SampleList samplesList, final Collection<GATKSAMRecord> reads ) {
|
||||
final Map<String, List<GATKSAMRecord>> returnMap = new HashMap<>();
|
||||
final int sampleCount = samplesList.sampleCount();
|
||||
for (int i = 0; i < sampleCount; i++)
|
||||
|
|
|
|||
|
|
@ -64,11 +64,11 @@ public class HaplotypeCallerArgumentCollection extends StandardCallerArgumentCol
|
|||
|
||||
@Advanced
|
||||
@Argument(fullName="debug", shortName="debug", doc="Print out very verbose debug information about each triggering active region", required = false)
|
||||
protected boolean DEBUG;
|
||||
public boolean DEBUG;
|
||||
|
||||
@Advanced
|
||||
@Argument(fullName="useFilteredReadsForAnnotations", shortName="useFilteredReadsForAnnotations", doc = "Use the contamination-filtered read maps for the purposes of annotating variants", required=false)
|
||||
protected boolean USE_FILTERED_READ_MAP_FOR_ANNOTATIONS = false;
|
||||
public boolean USE_FILTERED_READ_MAP_FOR_ANNOTATIONS = false;
|
||||
|
||||
/**
|
||||
* The reference confidence mode makes it possible to emit a per-bp or summarized confidence estimate for a site being strictly homozygous-reference.
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ import java.util.*;
|
|||
*/
|
||||
public class HaplotypeCallerGenotypingEngine extends GenotypingEngine<HaplotypeCallerArgumentCollection> {
|
||||
|
||||
private static final int ALLELE_EXTENSION = 2;
|
||||
protected static final int ALLELE_EXTENSION = 2;
|
||||
private static final String phase01 = "0|1";
|
||||
private static final String phase10 = "1|0";
|
||||
|
||||
|
|
@ -139,7 +139,7 @@ public class HaplotypeCallerGenotypingEngine extends GenotypingEngine<HaplotypeC
|
|||
private final List<VariantContext> calls;
|
||||
private final Set<Haplotype> calledHaplotypes;
|
||||
|
||||
protected CalledHaplotypes(final List<VariantContext> calls, final Set<Haplotype> calledHaplotypes) {
|
||||
public CalledHaplotypes(final List<VariantContext> calls, final Set<Haplotype> calledHaplotypes) {
|
||||
if ( calls == null ) throw new IllegalArgumentException("calls cannot be null");
|
||||
if ( calledHaplotypes == null ) throw new IllegalArgumentException("calledHaplotypes cannot be null");
|
||||
if ( Utils.xor(calls.isEmpty(), calledHaplotypes.isEmpty()) )
|
||||
|
|
@ -531,7 +531,7 @@ public class HaplotypeCallerGenotypingEngine extends GenotypingEngine<HaplotypeC
|
|||
|
||||
// Builds the read-likelihoods collection to use for annotation considering user arguments and the collection
|
||||
// used for genotyping.
|
||||
private ReadLikelihoods<Allele> prepareReadAlleleLikelihoodsForAnnotation(
|
||||
protected ReadLikelihoods<Allele> prepareReadAlleleLikelihoodsForAnnotation(
|
||||
final ReadLikelihoods<Haplotype> readHaplotypeLikelihoods,
|
||||
final Map<String, List<GATKSAMRecord>> perSampleFilteredReadList,
|
||||
final GenomeLocParser genomeLocParser,
|
||||
|
|
@ -596,7 +596,7 @@ public class HaplotypeCallerGenotypingEngine extends GenotypingEngine<HaplotypeC
|
|||
* @param activeAllelesToGenotype alleles we want to ensure are scheduled for genotyping (GGA mode)
|
||||
* @return never {@code null} but perhaps an empty list if there is no variants to report.
|
||||
*/
|
||||
private TreeSet<Integer> decomposeHaplotypesIntoVariantContexts(final List<Haplotype> haplotypes,
|
||||
protected TreeSet<Integer> decomposeHaplotypesIntoVariantContexts(final List<Haplotype> haplotypes,
|
||||
final ReadLikelihoods readLikelihoods,
|
||||
final byte[] ref,
|
||||
final GenomeLoc refLoc,
|
||||
|
|
@ -628,13 +628,13 @@ public class HaplotypeCallerGenotypingEngine extends GenotypingEngine<HaplotypeC
|
|||
* @param vcs a list of variant contexts
|
||||
* @return the list of the sources of vcs in the same order
|
||||
*/
|
||||
private List<String> makePriorityList(final List<VariantContext> vcs) {
|
||||
protected List<String> makePriorityList(final List<VariantContext> vcs) {
|
||||
final List<String> priorityList = new LinkedList<>();
|
||||
for ( final VariantContext vc : vcs ) priorityList.add(vc.getSource());
|
||||
return priorityList;
|
||||
}
|
||||
|
||||
private List<VariantContext> getVCsAtThisLocation(final List<Haplotype> haplotypes,
|
||||
protected List<VariantContext> getVCsAtThisLocation(final List<Haplotype> haplotypes,
|
||||
final int loc,
|
||||
final List<VariantContext> activeAllelesToGenotype) {
|
||||
// the overlapping events to merge into a common reference view
|
||||
|
|
@ -687,7 +687,7 @@ public class HaplotypeCallerGenotypingEngine extends GenotypingEngine<HaplotypeC
|
|||
*/
|
||||
@Requires({"readLikelihoods!= null", "mergedVC != null"})
|
||||
@Ensures("result != null")
|
||||
private GenotypesContext calculateGLsForThisEvent( final ReadLikelihoods<Allele> readLikelihoods, final VariantContext mergedVC, final List<Allele> noCallAlleles ) {
|
||||
protected GenotypesContext calculateGLsForThisEvent( final ReadLikelihoods<Allele> readLikelihoods, final VariantContext mergedVC, final List<Allele> noCallAlleles ) {
|
||||
final List<Allele> vcAlleles = mergedVC.getAlleles();
|
||||
final AlleleList<Allele> alleleList = readLikelihoods.alleleCount() == vcAlleles.size() ? readLikelihoods : new IndexedAlleleList<>(vcAlleles);
|
||||
final GenotypingLikelihoods<Allele> likelihoods = genotypingModel.calculateLikelihoods(alleleList,new GenotypingData<>(ploidyModel,readLikelihoods));
|
||||
|
|
|
|||
|
|
@ -129,11 +129,22 @@ public class PairHMMLikelihoodCalculationEngine implements ReadLikelihoodCalcula
|
|||
|
||||
public enum PCR_ERROR_MODEL {
|
||||
/** no specialized PCR error model will be applied; if base insertion/deletion qualities are present they will be used */
|
||||
NONE,
|
||||
NONE(null),
|
||||
/** a most aggressive model will be applied that sacrifices true positives in order to remove more false positives */
|
||||
HOSTILE(1.0),
|
||||
/** a more aggressive model will be applied that sacrifices true positives in order to remove more false positives */
|
||||
AGGRESSIVE,
|
||||
AGGRESSIVE(2.0),
|
||||
/** a less aggressive model will be applied that tries to maintain a high true positive rate at the expense of allowing more false positives */
|
||||
CONSERVATIVE
|
||||
CONSERVATIVE(3.0);
|
||||
|
||||
private final Double rateFactor;
|
||||
|
||||
/** rate factor is applied to the PCR error model. Can be null to imply no correction */
|
||||
PCR_ERROR_MODEL(Double rateFactor) {
|
||||
this.rateFactor = rateFactor;
|
||||
}
|
||||
private Double getRateFactor() { return rateFactor; }
|
||||
private boolean hasRateFactor() { return rateFactor != null; }
|
||||
}
|
||||
|
||||
private final PCR_ERROR_MODEL pcrErrorModel;
|
||||
|
|
@ -421,14 +432,14 @@ public class PairHMMLikelihoodCalculationEngine implements ReadLikelihoodCalcula
|
|||
private final RepeatCovariate repeatCovariate = new RepeatLengthCovariate();
|
||||
|
||||
private void initializePCRErrorModel() {
|
||||
if ( pcrErrorModel == PCR_ERROR_MODEL.NONE )
|
||||
if ( pcrErrorModel == PCR_ERROR_MODEL.NONE || !pcrErrorModel.hasRateFactor() )
|
||||
return;
|
||||
|
||||
repeatCovariate.initialize(MAX_STR_UNIT_LENGTH, MAX_REPEAT_LENGTH);
|
||||
|
||||
pcrIndelErrorModelCache = new byte[MAX_REPEAT_LENGTH + 1];
|
||||
|
||||
final double rateFactor = pcrErrorModel == PCR_ERROR_MODEL.AGGRESSIVE ? 2.0 : 3.0;
|
||||
final double rateFactor = pcrErrorModel.getRateFactor();
|
||||
|
||||
for( int iii = 0; iii <= MAX_REPEAT_LENGTH; iii++ )
|
||||
pcrIndelErrorModelCache[iii] = getErrorModelAdjustedQual(iii, rateFactor);
|
||||
|
|
|
|||
Loading…
Reference in New Issue