Collapse the PerReadAlleleLikelihoodMap classes into 1 now that Lite is gone
This commit is contained in:
parent
35d9bd377c
commit
a0219acfaa
|
|
@ -60,7 +60,7 @@ public class ErrorModel {
|
||||||
|
|
||||||
boolean hasCalledAlleles = false;
|
boolean hasCalledAlleles = false;
|
||||||
|
|
||||||
final PerReadAlleleLikelihoodMap perReadAlleleLikelihoodMap = PerReadAlleleLikelihoodMap.getBestAvailablePerReadAlleleLikelihoodMap();
|
final PerReadAlleleLikelihoodMap perReadAlleleLikelihoodMap = new PerReadAlleleLikelihoodMap();
|
||||||
if (refSampleVC != null) {
|
if (refSampleVC != null) {
|
||||||
|
|
||||||
for (Allele allele : refSampleVC.getAlleles()) {
|
for (Allele allele : refSampleVC.getAlleles()) {
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
|
||||||
import org.broadinstitute.sting.utils.GenomeLoc;
|
import org.broadinstitute.sting.utils.GenomeLoc;
|
||||||
import org.broadinstitute.sting.utils.GenomeLocParser;
|
import org.broadinstitute.sting.utils.GenomeLocParser;
|
||||||
import org.broadinstitute.sting.utils.MathUtils;
|
import org.broadinstitute.sting.utils.MathUtils;
|
||||||
|
import org.broadinstitute.sting.utils.genotyper.PerReadAlleleLikelihoodMap;
|
||||||
import org.broadinstitute.variant.vcf.VCFConstants;
|
import org.broadinstitute.variant.vcf.VCFConstants;
|
||||||
import org.broadinstitute.sting.utils.collections.Pair;
|
import org.broadinstitute.sting.utils.collections.Pair;
|
||||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||||
|
|
@ -231,7 +232,7 @@ public abstract class GeneralPloidyGenotypeLikelihoodsCalculationModel extends G
|
||||||
ReadBackedPileup pileup = AlignmentContextUtils.stratify(sample.getValue(), contextType).getBasePileup();
|
ReadBackedPileup pileup = AlignmentContextUtils.stratify(sample.getValue(), contextType).getBasePileup();
|
||||||
if (!perReadAlleleLikelihoodMap.containsKey(sample.getKey())){
|
if (!perReadAlleleLikelihoodMap.containsKey(sample.getKey())){
|
||||||
// no likelihoods have been computed for this sample at this site
|
// no likelihoods have been computed for this sample at this site
|
||||||
perReadAlleleLikelihoodMap.put(sample.getKey(), org.broadinstitute.sting.utils.genotyper.PerReadAlleleLikelihoodMap.getBestAvailablePerReadAlleleLikelihoodMap());
|
perReadAlleleLikelihoodMap.put(sample.getKey(), new PerReadAlleleLikelihoodMap());
|
||||||
}
|
}
|
||||||
|
|
||||||
// create the GenotypeLikelihoods object
|
// create the GenotypeLikelihoods object
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood
|
||||||
|
|
||||||
if (!perReadAlleleLikelihoodMap.containsKey(sample.getKey())){
|
if (!perReadAlleleLikelihoodMap.containsKey(sample.getKey())){
|
||||||
// no likelihoods have been computed for this sample at this site
|
// no likelihoods have been computed for this sample at this site
|
||||||
perReadAlleleLikelihoodMap.put(sample.getKey(), PerReadAlleleLikelihoodMap.getBestAvailablePerReadAlleleLikelihoodMap());
|
perReadAlleleLikelihoodMap.put(sample.getKey(), new PerReadAlleleLikelihoodMap());
|
||||||
}
|
}
|
||||||
final ReadBackedPileup pileup = context.getBasePileup();
|
final ReadBackedPileup pileup = context.getBasePileup();
|
||||||
if (pileup != null) {
|
if (pileup != null) {
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ public class SNPGenotypeLikelihoodsCalculationModel extends GenotypeLikelihoodsC
|
||||||
protected SNPGenotypeLikelihoodsCalculationModel(UnifiedArgumentCollection UAC, Logger logger) {
|
protected SNPGenotypeLikelihoodsCalculationModel(UnifiedArgumentCollection UAC, Logger logger) {
|
||||||
super(UAC, logger);
|
super(UAC, logger);
|
||||||
useAlleleFromVCF = UAC.GenotypingMode == GENOTYPING_MODE.GENOTYPE_GIVEN_ALLELES;
|
useAlleleFromVCF = UAC.GenotypingMode == GENOTYPING_MODE.GENOTYPE_GIVEN_ALLELES;
|
||||||
perReadAlleleLikelihoodMap = PerReadAlleleLikelihoodMap.getBestAvailablePerReadAlleleLikelihoodMap();
|
perReadAlleleLikelihoodMap = new PerReadAlleleLikelihoodMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
public VariantContext getLikelihoods(final RefMetaDataTracker tracker,
|
public VariantContext getLikelihoods(final RefMetaDataTracker tracker,
|
||||||
|
|
|
||||||
|
|
@ -223,7 +223,7 @@ public class GenotypingEngine {
|
||||||
final Map<String, PerReadAlleleLikelihoodMap> returnMap = new HashMap<String, PerReadAlleleLikelihoodMap>();
|
final Map<String, PerReadAlleleLikelihoodMap> returnMap = new HashMap<String, PerReadAlleleLikelihoodMap>();
|
||||||
final GenomeLoc callLoc = parser.createGenomeLoc(call);
|
final GenomeLoc callLoc = parser.createGenomeLoc(call);
|
||||||
for( final Map.Entry<String, PerReadAlleleLikelihoodMap> sample : perSampleReadMap.entrySet() ) {
|
for( final Map.Entry<String, PerReadAlleleLikelihoodMap> sample : perSampleReadMap.entrySet() ) {
|
||||||
final PerReadAlleleLikelihoodMap likelihoodMap = PerReadAlleleLikelihoodMap.getBestAvailablePerReadAlleleLikelihoodMap();
|
final PerReadAlleleLikelihoodMap likelihoodMap = new PerReadAlleleLikelihoodMap();
|
||||||
|
|
||||||
for( final Map.Entry<GATKSAMRecord,Map<Allele,Double>> mapEntry : sample.getValue().getLikelihoodReadMap().entrySet() ) {
|
for( final Map.Entry<GATKSAMRecord,Map<Allele,Double>> mapEntry : sample.getValue().getLikelihoodReadMap().entrySet() ) {
|
||||||
// only count the read if it overlaps the event, otherwise it is not added to the output read list at all
|
// only count the read if it overlaps the event, otherwise it is not added to the output read list at all
|
||||||
|
|
@ -277,7 +277,7 @@ public class GenotypingEngine {
|
||||||
|
|
||||||
final Map<String, PerReadAlleleLikelihoodMap> alleleReadMap = new HashMap<String, PerReadAlleleLikelihoodMap>();
|
final Map<String, PerReadAlleleLikelihoodMap> alleleReadMap = new HashMap<String, PerReadAlleleLikelihoodMap>();
|
||||||
for( final Map.Entry<String, PerReadAlleleLikelihoodMap> haplotypeReadMapEntry : haplotypeReadMap.entrySet() ) { // for each sample
|
for( final Map.Entry<String, PerReadAlleleLikelihoodMap> haplotypeReadMapEntry : haplotypeReadMap.entrySet() ) { // for each sample
|
||||||
final PerReadAlleleLikelihoodMap perReadAlleleLikelihoodMap = PerReadAlleleLikelihoodMap.getBestAvailablePerReadAlleleLikelihoodMap();
|
final PerReadAlleleLikelihoodMap perReadAlleleLikelihoodMap = new PerReadAlleleLikelihoodMap();
|
||||||
for( final Map.Entry<Allele, List<Haplotype>> alleleMapperEntry : alleleMapper.entrySet() ) { // for each output allele
|
for( final Map.Entry<Allele, List<Haplotype>> alleleMapperEntry : alleleMapper.entrySet() ) { // for each output allele
|
||||||
final List<Haplotype> mappedHaplotypes = alleleMapperEntry.getValue();
|
final List<Haplotype> mappedHaplotypes = alleleMapperEntry.getValue();
|
||||||
for( final Map.Entry<GATKSAMRecord, Map<Allele,Double>> readEntry : haplotypeReadMapEntry.getValue().getLikelihoodReadMap().entrySet() ) { // for each read
|
for( final Map.Entry<GATKSAMRecord, Map<Allele,Double>> readEntry : haplotypeReadMapEntry.getValue().getLikelihoodReadMap().entrySet() ) { // for each read
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ public class LikelihoodCalculationEngine {
|
||||||
|
|
||||||
private PerReadAlleleLikelihoodMap computeReadLikelihoods( final ArrayList<Haplotype> haplotypes, final ArrayList<GATKSAMRecord> reads) {
|
private PerReadAlleleLikelihoodMap computeReadLikelihoods( final ArrayList<Haplotype> haplotypes, final ArrayList<GATKSAMRecord> reads) {
|
||||||
|
|
||||||
final PerReadAlleleLikelihoodMap perReadAlleleLikelihoodMap = PerReadAlleleLikelihoodMap.getBestAvailablePerReadAlleleLikelihoodMap();
|
final PerReadAlleleLikelihoodMap perReadAlleleLikelihoodMap = new PerReadAlleleLikelihoodMap();
|
||||||
final int numHaplotypes = haplotypes.size();
|
final int numHaplotypes = haplotypes.size();
|
||||||
for( final GATKSAMRecord read : reads ) {
|
for( final GATKSAMRecord read : reads ) {
|
||||||
final byte[] overallGCP = new byte[read.getReadLength()];
|
final byte[] overallGCP = new byte[read.getReadLength()];
|
||||||
|
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2011 The Broad Institute
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person
|
|
||||||
* obtaining a copy of this software and associated documentation
|
|
||||||
* files (the "Software"), to deal in the Software without
|
|
||||||
* restriction, including without limitation the rights to use,
|
|
||||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following
|
|
||||||
* conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
||||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
||||||
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
package org.broadinstitute.sting.utils.genotyper;
|
|
||||||
|
|
||||||
|
|
||||||
import org.broadinstitute.sting.gatk.downsampling.AlleleBiasedDownsamplingUtils;
|
|
||||||
import org.broadinstitute.sting.utils.classloader.ProtectedPackageSource;
|
|
||||||
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
|
|
||||||
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
|
|
||||||
import org.broadinstitute.variant.variantcontext.Allele;
|
|
||||||
|
|
||||||
import java.io.PrintStream;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class AdvancedPerReadAlleleLikelihoodMap extends StandardPerReadAlleleLikelihoodMap implements ProtectedPackageSource {
|
|
||||||
|
|
||||||
public ReadBackedPileup createPerAlleleDownsampledBasePileup(final ReadBackedPileup pileup, final double downsamplingFraction, final PrintStream log) {
|
|
||||||
return AlleleBiasedDownsamplingUtils.createAlleleBiasedBasePileup(pileup, downsamplingFraction, log);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void performPerAlleleDownsampling(final double downsamplingFraction, final PrintStream log) {
|
|
||||||
// special case removal of all or no reads
|
|
||||||
if ( downsamplingFraction <= 0.0 )
|
|
||||||
return;
|
|
||||||
if ( downsamplingFraction >= 1.0 ) {
|
|
||||||
likelihoodReadMap.clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// start by stratifying the reads by the alleles they represent at this position
|
|
||||||
final Map<Allele, List<GATKSAMRecord>> alleleReadMap = new HashMap<Allele, List<GATKSAMRecord>>(alleles.size());
|
|
||||||
for ( Allele allele : alleles )
|
|
||||||
alleleReadMap.put(allele, new ArrayList<GATKSAMRecord>());
|
|
||||||
|
|
||||||
for ( Map.Entry<GATKSAMRecord, Map<Allele, Double>> entry : likelihoodReadMap.entrySet() ) {
|
|
||||||
// do not remove reduced reads!
|
|
||||||
if ( !entry.getKey().isReducedRead() ) {
|
|
||||||
final Allele bestAllele = getMostLikelyAllele(entry.getValue());
|
|
||||||
if ( bestAllele != Allele.NO_CALL )
|
|
||||||
alleleReadMap.get(bestAllele).add(entry.getKey());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// compute the reads to remove and actually remove them
|
|
||||||
final List<GATKSAMRecord> readsToRemove = AlleleBiasedDownsamplingUtils.selectAlleleBiasedReads(alleleReadMap, downsamplingFraction, log);
|
|
||||||
for ( final GATKSAMRecord read : readsToRemove )
|
|
||||||
likelihoodReadMap.remove(read);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -25,26 +25,23 @@
|
||||||
package org.broadinstitute.sting.utils.genotyper;
|
package org.broadinstitute.sting.utils.genotyper;
|
||||||
|
|
||||||
|
|
||||||
import org.broadinstitute.sting.utils.classloader.GATKLiteUtils;
|
import org.broadinstitute.sting.gatk.downsampling.AlleleBiasedDownsamplingUtils;
|
||||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
|
||||||
import org.broadinstitute.sting.utils.pileup.PileupElement;
|
import org.broadinstitute.sting.utils.pileup.PileupElement;
|
||||||
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
|
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
|
||||||
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
|
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
|
||||||
import org.broadinstitute.variant.variantcontext.Allele;
|
import org.broadinstitute.variant.variantcontext.Allele;
|
||||||
|
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.lang.reflect.Constructor;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public abstract class PerReadAlleleLikelihoodMap {
|
public class PerReadAlleleLikelihoodMap {
|
||||||
|
|
||||||
public static final double INFORMATIVE_LIKELIHOOD_THRESHOLD = 0.2;
|
public static final double INFORMATIVE_LIKELIHOOD_THRESHOLD = 0.2;
|
||||||
|
|
||||||
protected List<Allele> alleles;
|
protected List<Allele> alleles;
|
||||||
protected Map<GATKSAMRecord, Map<Allele, Double>> likelihoodReadMap;
|
protected Map<GATKSAMRecord, Map<Allele, Double>> likelihoodReadMap;
|
||||||
|
|
||||||
public abstract void performPerAlleleDownsampling(final double downsamplingFraction, final PrintStream log);
|
public PerReadAlleleLikelihoodMap() {}
|
||||||
public abstract ReadBackedPileup createPerAlleleDownsampledBasePileup(final ReadBackedPileup pileup, final double downsamplingFraction, final PrintStream log);
|
|
||||||
|
|
||||||
public void add(GATKSAMRecord read, Allele a, Double likelihood) {
|
public void add(GATKSAMRecord read, Allele a, Double likelihood) {
|
||||||
Map<Allele,Double> likelihoodMap;
|
Map<Allele,Double> likelihoodMap;
|
||||||
|
|
@ -63,6 +60,39 @@ public abstract class PerReadAlleleLikelihoodMap {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ReadBackedPileup createPerAlleleDownsampledBasePileup(final ReadBackedPileup pileup, final double downsamplingFraction, final PrintStream log) {
|
||||||
|
return AlleleBiasedDownsamplingUtils.createAlleleBiasedBasePileup(pileup, downsamplingFraction, log);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void performPerAlleleDownsampling(final double downsamplingFraction, final PrintStream log) {
|
||||||
|
// special case removal of all or no reads
|
||||||
|
if ( downsamplingFraction <= 0.0 )
|
||||||
|
return;
|
||||||
|
if ( downsamplingFraction >= 1.0 ) {
|
||||||
|
likelihoodReadMap.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// start by stratifying the reads by the alleles they represent at this position
|
||||||
|
final Map<Allele, List<GATKSAMRecord>> alleleReadMap = new HashMap<Allele, List<GATKSAMRecord>>(alleles.size());
|
||||||
|
for ( Allele allele : alleles )
|
||||||
|
alleleReadMap.put(allele, new ArrayList<GATKSAMRecord>());
|
||||||
|
|
||||||
|
for ( Map.Entry<GATKSAMRecord, Map<Allele, Double>> entry : likelihoodReadMap.entrySet() ) {
|
||||||
|
// do not remove reduced reads!
|
||||||
|
if ( !entry.getKey().isReducedRead() ) {
|
||||||
|
final Allele bestAllele = getMostLikelyAllele(entry.getValue());
|
||||||
|
if ( bestAllele != Allele.NO_CALL )
|
||||||
|
alleleReadMap.get(bestAllele).add(entry.getKey());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// compute the reads to remove and actually remove them
|
||||||
|
final List<GATKSAMRecord> readsToRemove = AlleleBiasedDownsamplingUtils.selectAlleleBiasedReads(alleleReadMap, downsamplingFraction, log);
|
||||||
|
for ( final GATKSAMRecord read : readsToRemove )
|
||||||
|
likelihoodReadMap.remove(read);
|
||||||
|
}
|
||||||
|
|
||||||
public int size() {
|
public int size() {
|
||||||
return likelihoodReadMap.size();
|
return likelihoodReadMap.size();
|
||||||
}
|
}
|
||||||
|
|
@ -122,16 +152,4 @@ public abstract class PerReadAlleleLikelihoodMap {
|
||||||
}
|
}
|
||||||
return (maxLike - prevMaxLike > INFORMATIVE_LIKELIHOOD_THRESHOLD ? mostLikelyAllele : Allele.NO_CALL );
|
return (maxLike - prevMaxLike > INFORMATIVE_LIKELIHOOD_THRESHOLD ? mostLikelyAllele : Allele.NO_CALL );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PerReadAlleleLikelihoodMap getBestAvailablePerReadAlleleLikelihoodMap() {
|
|
||||||
final Class PerReadAlleleLikelihoodMapClass = GATKLiteUtils.getProtectedClassIfAvailable(PerReadAlleleLikelihoodMap.class);
|
|
||||||
try {
|
|
||||||
final Constructor constructor = PerReadAlleleLikelihoodMapClass.getDeclaredConstructor((Class[])null);
|
|
||||||
constructor.setAccessible(true);
|
|
||||||
return (PerReadAlleleLikelihoodMap)constructor.newInstance();
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
throw new ReviewedStingException("Unable to create RecalibrationEngine class instance " + PerReadAlleleLikelihoodMapClass.getSimpleName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2011 The Broad Institute
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person
|
|
||||||
* obtaining a copy of this software and associated documentation
|
|
||||||
* files (the "Software"), to deal in the Software without
|
|
||||||
* restriction, including without limitation the rights to use,
|
|
||||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following
|
|
||||||
* conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
||||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
||||||
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
package org.broadinstitute.sting.utils.genotyper;
|
|
||||||
|
|
||||||
|
|
||||||
import org.broadinstitute.sting.utils.classloader.PublicPackageSource;
|
|
||||||
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
|
|
||||||
import org.broadinstitute.sting.utils.sam.GATKSAMRecord;
|
|
||||||
import org.broadinstitute.variant.variantcontext.Allele;
|
|
||||||
|
|
||||||
import java.io.PrintStream;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class StandardPerReadAlleleLikelihoodMap extends PerReadAlleleLikelihoodMap implements PublicPackageSource {
|
|
||||||
|
|
||||||
public StandardPerReadAlleleLikelihoodMap() {
|
|
||||||
likelihoodReadMap = new LinkedHashMap<GATKSAMRecord,Map<Allele,Double>>();
|
|
||||||
alleles = new ArrayList<Allele>();
|
|
||||||
}
|
|
||||||
|
|
||||||
// not implemented in the standard version
|
|
||||||
public void performPerAlleleDownsampling(final double downsamplingFraction, final PrintStream log) {}
|
|
||||||
public ReadBackedPileup createPerAlleleDownsampledBasePileup(final ReadBackedPileup pileup, final double downsamplingFraction, final PrintStream log) { return pileup; }
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue