Minor tweaks

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2699 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
chartl 2010-01-27 04:17:47 +00:00
parent bbddeb693f
commit df112e64b8
1 changed files with 19 additions and 11 deletions

View File

@ -5,19 +5,13 @@ import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.contexts.StratifiedAlignmentContext; import org.broadinstitute.sting.gatk.contexts.StratifiedAlignmentContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.RodVCF; import org.broadinstitute.sting.gatk.refdata.RodVCF;
import org.broadinstitute.sting.gatk.walkers.DataSource; import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.gatk.walkers.RMD;
import org.broadinstitute.sting.gatk.walkers.Requires;
import org.broadinstitute.sting.gatk.walkers.RodWalker;
import org.broadinstitute.sting.utils.BaseUtils; import org.broadinstitute.sting.utils.BaseUtils;
import org.broadinstitute.sting.utils.genotype.vcf.VCFGenotypeRecord; import org.broadinstitute.sting.utils.genotype.vcf.VCFGenotypeRecord;
import org.broadinstitute.sting.utils.genotype.vcf.VCFRecord; import org.broadinstitute.sting.utils.genotype.vcf.VCFRecord;
import org.broadinstitute.sting.utils.pileup.PileupElement; import org.broadinstitute.sting.utils.pileup.PileupElement;
import java.util.HashMap; import java.util.*;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@ -27,7 +21,7 @@ import java.util.Set;
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
@Requires(value= DataSource.REFERENCE,referenceMetaData = {@RMD(name="variants",type= RodVCF.class)}) @Requires(value= DataSource.REFERENCE,referenceMetaData = {@RMD(name="variants",type= RodVCF.class)})
public class AlleleBalanceHistogramWalker extends RodWalker<Map<String,Double>, Map<String,Set<Double>>> { public class AlleleBalanceHistogramWalker extends LocusWalker<Map<String,Double>, Map<String,Set<Double>>> {
public Map<String,Set<Double>> reduceInit() { public Map<String,Set<Double>> reduceInit() {
@ -38,7 +32,11 @@ public class AlleleBalanceHistogramWalker extends RodWalker<Map<String,Double>,
if ( alleleBalances != null ) { if ( alleleBalances != null ) {
for ( String name : alleleBalances.keySet() ) { for ( String name : alleleBalances.keySet() ) {
if ( alleleBalances.get(name) != null ) { if ( alleleBalances.get(name) != null ) {
if ( aggregateBalances.get(name) != null ) {
aggregateBalances.get(name).add(alleleBalances.get(name)); aggregateBalances.get(name).add(alleleBalances.get(name));
} else {
aggregateBalances.put(name,new HashSet<Double>( Arrays.asList(alleleBalances.get(name) ) ) );
}
} }
} }
} }
@ -78,9 +76,19 @@ public class AlleleBalanceHistogramWalker extends RodWalker<Map<String,Double>,
} }
private Double getAlleleBalance(ReferenceContext ref, StratifiedAlignmentContext context, VCFGenotypeRecord vcf) { private Double getAlleleBalance(ReferenceContext ref, StratifiedAlignmentContext context, VCFGenotypeRecord vcf) {
if ( context == null ) {
return null;
}
int refBases = 0; int refBases = 0;
int altBases = 0; int altBases = 0;
for ( PileupElement e : context.getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE).getBasePileup() ) { AlignmentContext alicon = context.getContext(StratifiedAlignmentContext.StratifiedContextType.COMPLETE);
if ( alicon == null ) {
return null;
}
for ( PileupElement e : alicon.getBasePileup() ) {
if ( BaseUtils.basesAreEqual( e.getBase(), (byte) ref.getBase() ) ) { if ( BaseUtils.basesAreEqual( e.getBase(), (byte) ref.getBase() ) ) {
refBases++; refBases++;
} else if ( BaseUtils.basesAreEqual(e.getBase(), (byte) vcf.toVariation(ref.getBase()).getAlternativeBaseForSNP() ) ) { } else if ( BaseUtils.basesAreEqual(e.getBase(), (byte) vcf.toVariation(ref.getBase()).getAlternativeBaseForSNP() ) ) {