From 21d1eba50208f828b0fac9a8a33455ad4d879aa8 Mon Sep 17 00:00:00 2001 From: hanna Date: Tue, 4 Aug 2009 21:01:37 +0000 Subject: [PATCH] Cleaned division of responsibilities between arguments to map function. Reference has been changed from an array of bases to an object (ReferenceContext), and LocusContext has been renamed to reflect the fact that it contains contextual information only about the alignments, not the locus in general. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1376 348d0f76-0448-11de-a6fe-93d51630548a --- .../AlignmentContext.java} | 58 +++++++++---------- .../sting/gatk/contexts/ReferenceContext.java | 50 ++++++++++++++++ .../datasources/providers/AllLocusView.java | 22 +++---- .../providers/CoveredLocusView.java | 10 ++-- .../gatk/datasources/providers/LocusView.java | 52 ++++++++--------- .../sting/gatk/examples/HelloWalker.java | 9 +-- .../gatk/iterators/GenomeLocusIterator.java | 3 +- .../gatk/iterators/LocusContextIterator.java | 32 ---------- .../sting/gatk/iterators/LocusIterator.java | 38 +++++++----- ...Hanger.java => LocusIteratorByHanger.java} | 41 ++++++++++--- .../gatk/traversals/TraverseDuplicates.java | 8 +-- .../sting/gatk/traversals/TraverseLoci.java | 11 ++-- .../gatk/traversals/TraverseLocusWindows.java | 8 +-- .../sting/gatk/traversals/TraverseReads.java | 6 +- .../sting/gatk/walkers/CountLociWalker.java | 8 +-- .../sting/gatk/walkers/CountReadsWalker.java | 2 +- .../gatk/walkers/DepthOfCoverageWalker.java | 5 +- .../sting/gatk/walkers/DuplicateWalker.java | 6 +- .../sting/gatk/walkers/LocusWalker.java | 9 +-- .../sting/gatk/walkers/LocusWindowWalker.java | 10 ++-- .../sting/gatk/walkers/NullWalker.java | 12 ++-- .../sting/gatk/walkers/PileupWalker.java | 7 ++- .../gatk/walkers/PileupWithContextWalker.java | 8 +-- .../gatk/walkers/PrintLocusContextWalker.java | 9 +-- .../sting/gatk/walkers/ReadWalker.java | 2 +- .../gatk/walkers/ValidatingPileupWalker.java | 7 ++- .../genotyper/SingleSampleGenotyper.java | 19 +++--- .../walkers/indels/IntervalCleanerWalker.java | 4 +- .../indels/MismatchIntervalWalker.java | 7 ++- .../gatk/walkers/indels/SNPClusterWalker.java | 5 +- .../recalibration/CovariateCounterWalker.java | 7 ++- .../gatk/walkers/AlignedReadsHistoWalker.java | 2 - .../gatk/walkers/BaseQualityDumpWalker.java | 1 - .../gatk/walkers/BaseQualityHistoWalker.java | 2 - .../gatk/walkers/CoverageBySample.java | 17 +++--- .../gatk/walkers/CoverageEvalWalker.java | 11 ++-- .../gatk/walkers/CoverageHistogram.java | 9 ++- .../walkers/DisplayFourBaseReadWalker.java | 1 - .../gatk/walkers/FastaReferenceWalker.java | 7 ++- .../gatk/walkers/HLAcaller/CallHLAWalker.java | 9 +-- .../gatk/walkers/HybSelPerformanceWalker.java | 5 +- .../gatk/walkers/IOCrusherWalker.java | 5 -- .../gatk/walkers/ListSampleIds.java | 5 +- .../walkers/MendelianInheritanceWalker.java | 15 +---- .../gatk/walkers/MismatchCounterWalker.java | 4 -- .../gatk/walkers/MismatchHistoWalker.java | 3 - .../gatk/walkers/MultiSampleCaller.java | 48 +++++++-------- .../MultiSampleCallerAccuracyTest.java | 11 ++-- .../gatk/walkers/Pilot3CoverageWalker.java | 20 ++----- .../gatk/walkers/PopPriorWalker.java | 17 +++--- .../gatk/walkers/PrintCoverageWalker.java | 9 +-- .../gatk/walkers/PrintHapmapGenotypes.java | 13 +---- .../gatk/walkers/PrintRODsWalker.java | 30 +++++++++- .../gatk/walkers/ReadErrorRateWalker.java | 2 - .../playground/gatk/walkers/ReplaceQuals.java | 6 -- .../gatk/walkers/SAMToFastqAndSqWalker.java | 1 - .../SomaticMutationFromGenotypeWalker.java | 10 ++-- .../gatk/walkers/VennCallSetsWalker.java | 5 +- .../duplicates/CombineDuplicatesWalker.java | 7 +-- .../duplicates/CountDuplicatesWalker.java | 6 +- .../duplicates/DuplicateQualsWalker.java | 4 +- .../indels/CoverageGapIntervalWalker.java | 7 ++- .../varianteval/BasicVariantAnalysis.java | 4 +- .../varianteval/CallableBasesAnalysis.java | 6 +- .../varianteval/ClusterCounterAnalysis.java | 6 +- .../walkers/varianteval/GenotypeAnalysis.java | 7 +-- .../varianteval/GenotypeConcordance.java | 4 +- .../varianteval/HardyWeinbergEquilibrium.java | 7 +-- .../varianteval/IndelMetricsAnalysis.java | 4 +- .../varianteval/NeighborDistanceAnalysis.java | 6 +- .../varianteval/PopulationAnalysis.java | 8 --- .../TransitionTranversionAnalysis.java | 5 +- .../walkers/varianteval/VariantAnalysis.java | 4 +- .../walkers/varianteval/VariantCounter.java | 5 +- .../varianteval/VariantDBCoverage.java | 4 +- .../varianteval/VariantEvalWalker.java | 13 +++-- .../walkers/varianteval/VariantMatcher.java | 9 +-- .../varianteval/ViolationVariantAnalysis.java | 9 --- .../variants/ClusteredSNPFilterWalker.java | 5 +- .../walkers/variants/IVFBinomialStrand.java | 4 +- .../gatk/walkers/variants/IVFNull.java | 4 +- .../walkers/variants/IVFPrimaryBases.java | 4 +- .../walkers/variants/IVFSecondaryBases.java | 4 +- .../variants/IndependentVariantFeature.java | 4 +- .../gatk/walkers/variants/RatioFilter.java | 6 +- .../walkers/variants/VECAlleleBalance.java | 4 +- .../walkers/variants/VECDepthOfCoverage.java | 4 +- .../walkers/variants/VECFisherStrand.java | 8 +-- .../gatk/walkers/variants/VECHomopolymer.java | 4 +- .../walkers/variants/VECLodThreshold.java | 4 +- .../walkers/variants/VECMappingQuality.java | 4 +- .../gatk/walkers/variants/VECNull.java | 4 +- .../variants/VECOnOffGenotypeRatio.java | 4 +- .../variants/VariantExclusionCriterion.java | 4 +- .../variants/VariantFiltrationWalker.java | 17 +++--- .../sting/utils/BasicPileup.java | 1 - .../sting/utils/ReadBackedPileup.java | 5 +- .../utils/sam/ArtificialReadsTraversal.java | 8 +-- .../providers/AllLocusViewTest.java | 4 +- .../providers/CoveredLocusViewTest.java | 4 +- .../providers/LocusViewTemplate.java | 2 +- 101 files changed, 488 insertions(+), 492 deletions(-) rename java/src/org/broadinstitute/sting/gatk/{LocusContext.java => contexts/AlignmentContext.java} (69%) create mode 100644 java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java delete mode 100755 java/src/org/broadinstitute/sting/gatk/iterators/LocusContextIterator.java rename java/src/org/broadinstitute/sting/gatk/iterators/{LocusContextIteratorByHanger.java => LocusIteratorByHanger.java} (81%) diff --git a/java/src/org/broadinstitute/sting/gatk/LocusContext.java b/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContext.java similarity index 69% rename from java/src/org/broadinstitute/sting/gatk/LocusContext.java rename to java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContext.java index 38b3df97f..9e57c7b8b 100755 --- a/java/src/org/broadinstitute/sting/gatk/LocusContext.java +++ b/java/src/org/broadinstitute/sting/gatk/contexts/AlignmentContext.java @@ -1,4 +1,29 @@ -package org.broadinstitute.sting.gatk; +/* + * Copyright (c) 2009 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.gatk.contexts; import net.sf.picard.reference.ReferenceSequence; import net.sf.samtools.SAMRecord; @@ -15,20 +40,19 @@ import java.util.*; * Time: 3:01:34 PM * To change this template use File | Settings | File Templates. */ -public class LocusContext { +public class AlignmentContext { private GenomeLoc loc = null; private List reads = null; private List offsets = null; - private ReferenceSequence refContig = null; /** - * Create a new LocusContext object + * Create a new AlignmentContext object * * @param loc * @param reads * @param offsets */ - public LocusContext(GenomeLoc loc, List reads, List offsets) { + public AlignmentContext(GenomeLoc loc, List reads, List offsets) { //assert loc != null; //assert loc.getContig() != null; //assert reads != null; @@ -79,30 +103,6 @@ public class LocusContext { public void setLocation(GenomeLoc loc) { this.loc = loc.clone(); } - /** - * Returns the entire reference sequence contig associated with these reads - * - * @return ReferenceSequence object, or null if unavailable - */ - public ReferenceSequence getReferenceContig() { - return refContig; - } - - /** - * @return True if reference sequence contig is available - */ - public boolean hasReferenceContig() { - return refContig != null; - } - - /** - * Sets the reference sequence for this locus to contig - * - * @param contig - */ - public void setReferenceContig(final ReferenceSequence contig) { - refContig = contig; - } public void downsampleToCoverage(int coverage) { if ( numReads() <= coverage ) diff --git a/java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java b/java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java new file mode 100644 index 000000000..ab7879b76 --- /dev/null +++ b/java/src/org/broadinstitute/sting/gatk/contexts/ReferenceContext.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2009 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.gatk.contexts; + +/** + * The section of the reference that overlaps with the given + * read / locus. + * + * @author hanna + * @version 0.1 + */ + +public class ReferenceContext { + private char base; + + public ReferenceContext( char base ) { + this.base = base; + } + + /** + * Get the base at the given locus. + * @return The base at the given locus from the reference.§ + */ + public char getBase() { + return base; + } +} diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java b/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java index f6391b926..91189c61f 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java @@ -4,7 +4,7 @@ import java.util.NoSuchElementException; import java.util.ArrayList; import org.broadinstitute.sting.gatk.iterators.GenomeLocusIterator; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.GenomeLoc; import net.sf.samtools.SAMRecord; /** @@ -36,7 +36,7 @@ public class AllLocusView extends LocusView { * What's the context for the last locus accessed? * @param provider */ - private LocusContext nextLocusContext = null; + private AlignmentContext nextLocus = null; /** * Create a new queue of locus contexts. @@ -48,7 +48,7 @@ public class AllLocusView extends LocusView { locusIterator = new GenomeLocusIterator( provider.getShard().getGenomeLoc() ); if( locusIterator.hasNext() ) { nextPosition = locusIterator.next(); - nextLocusContext = hasNextLocusContext() ? nextLocusContext() : createEmptyLocusContext(nextPosition); + nextLocus = hasNextLocus() ? nextLocus() : createEmptyLocus(nextPosition); } } @@ -56,7 +56,7 @@ public class AllLocusView extends LocusView { return nextPosition != null; } - public LocusContext next() { + public AlignmentContext next() { GenomeLoc currentPosition = nextPosition; if( currentPosition == null ) throw new NoSuchElementException("No next is available in the all locus view"); @@ -65,14 +65,14 @@ public class AllLocusView extends LocusView { nextPosition = locusIterator.hasNext() ? locusIterator.next() : null; // Crank the iterator to (if possible) or past the next context. - while( nextLocusContext != null && nextLocusContext.getLocation().isBefore(currentPosition) && hasNextLocusContext() ) - nextLocusContext = nextLocusContext(); + while( nextLocus != null && nextLocus.getLocation().isBefore(currentPosition) && hasNextLocus() ) + nextLocus = nextLocus(); // If actual data is present, return it. Otherwise, return empty data. - if( nextLocusContext != null && nextLocusContext.getLocation().equals(currentPosition) ) - return nextLocusContext; + if( nextLocus != null && nextLocus.getLocation().equals(currentPosition) ) + return nextLocus; else - return createEmptyLocusContext( currentPosition ); + return createEmptyLocus( currentPosition ); } /** @@ -80,7 +80,7 @@ public class AllLocusView extends LocusView { * @param site Site at which to create the blank locus context. * @return empty context. */ - private LocusContext createEmptyLocusContext( GenomeLoc site ) { - return new LocusContext(site, new ArrayList(), new ArrayList()); + private AlignmentContext createEmptyLocus( GenomeLoc site ) { + return new AlignmentContext(site, new ArrayList(), new ArrayList()); } } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusView.java b/java/src/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusView.java index d9d4b365c..58c5486aa 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusView.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.gatk.datasources.providers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.GenomeLoc; import org.apache.log4j.Logger; /** @@ -31,7 +31,7 @@ public class CoveredLocusView extends LocusView { * What's the context for the last locus accessed? * @param provider */ - private LocusContext nextLocusContext = null; + private AlignmentContext nextLocusContext = null; private static Logger logger = Logger.getLogger(CoveredLocusView.class); @@ -44,10 +44,10 @@ public class CoveredLocusView extends LocusView { } public boolean hasNext() { - return hasNextLocusContext(); + return hasNextLocus(); } - public LocusContext next() { - return nextLocusContext(); + public AlignmentContext next() { + return nextLocus(); } } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java b/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java index 49b805fcd..977baf0f9 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusView.java @@ -1,10 +1,10 @@ package org.broadinstitute.sting.gatk.datasources.providers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.Reads; import org.broadinstitute.sting.gatk.datasources.shards.Shard; -import org.broadinstitute.sting.gatk.iterators.LocusContextIteratorByHanger; -import org.broadinstitute.sting.gatk.iterators.LocusContextIterator; +import org.broadinstitute.sting.gatk.iterators.LocusIteratorByHanger; +import org.broadinstitute.sting.gatk.iterators.LocusIterator; import org.broadinstitute.sting.gatk.traversals.TraversalStatistics; import net.sf.samtools.SAMRecord; @@ -32,7 +32,7 @@ import net.sf.picard.filter.SamRecordFilter; * A queue of locus context entries. */ -public abstract class LocusView extends LocusContextIterator implements View { +public abstract class LocusView extends LocusIterator implements View { /** * The shard bounding this view. */ @@ -46,13 +46,13 @@ public abstract class LocusView extends LocusContextIterator implements View { /** * The actual locus context iterator. */ - private LocusContextIterator loci; + private LocusIterator loci; /** * The next locus context from the iterator. This value must always be within * the shard; if its null, there's nothing for the consumer to look at. */ - private LocusContext nextLocusContext = null; + private AlignmentContext nextLocus = null; public LocusView(ShardDataProvider provider) { this.shard = provider.getShard(); @@ -60,8 +60,8 @@ public abstract class LocusView extends LocusContextIterator implements View { Iterator reads = new FilteringIterator(provider.getReadIterator(), new LocusStreamFilterFunc()); this.sourceInfo = provider.getReadIterator().getSourceInfo(); - this.loci = new LocusContextIteratorByHanger(reads); - seedNextLocusContext(); + this.loci = new LocusIteratorByHanger(reads); + seedNextLocus(); provider.register(this); } @@ -97,7 +97,7 @@ public abstract class LocusView extends LocusContextIterator implements View { * @return Next covered locus context in the shard. * @throw NoSuchElementException if no such element exists. */ - public abstract LocusContext next(); + public abstract AlignmentContext next(); /** * Unsupported. @@ -111,8 +111,8 @@ public abstract class LocusView extends LocusContextIterator implements View { * Is there another locus context bounded by this shard. * @return True if another locus context is bounded by this shard. */ - protected boolean hasNextLocusContext() { - return nextLocusContext != null && !nextLocusContext.getLocation().isPast(shard.getGenomeLoc()); + protected boolean hasNextLocus() { + return nextLocus != null && !nextLocus.getLocation().isPast(shard.getGenomeLoc()); } /** @@ -120,41 +120,41 @@ public abstract class LocusView extends LocusContextIterator implements View { * @return Next locus context bounded by this shard. * @throw NoSuchElementException if the next element is missing. */ - protected LocusContext nextLocusContext() { - if( nextLocusContext == null || nextLocusContext.getLocation().isPast(shard.getGenomeLoc()) ) + protected AlignmentContext nextLocus() { + if( nextLocus == null || nextLocus.getLocation().isPast(shard.getGenomeLoc()) ) throw new NoSuchElementException("No more elements remain in locus context queue."); // Cache the current and apply filtering. - LocusContext current = nextLocusContext; + AlignmentContext current = nextLocus; // Find the next. if( loci.hasNext() ) { - nextLocusContext = loci.next(); + nextLocus = loci.next(); if( sourceInfo.getDownsampleToCoverage() != null ) current.downsampleToCoverage( sourceInfo.getDownsampleToCoverage() ); - if( nextLocusContext.getLocation().isPast(shard.getGenomeLoc()) ) - nextLocusContext = null; + if( nextLocus.getLocation().isPast(shard.getGenomeLoc()) ) + nextLocus = null; } else - nextLocusContext = null; + nextLocus = null; return current; } /** - * Seed the nextLocusContext variable with the contents of the next locus context (if one exists). + * Seed the nextLocus variable with the contents of the next locus (if one exists). */ - private void seedNextLocusContext() { + private void seedNextLocus() { if( loci.hasNext() ) - nextLocusContext = loci.next(); + nextLocus = loci.next(); // Iterate past cruft at the beginning to the first locus in the shard. - while( nextLocusContext != null && nextLocusContext.getLocation().isBefore(shard.getGenomeLoc()) && loci.hasNext() ) - nextLocusContext = loci.next(); + while( nextLocus != null && nextLocus.getLocation().isBefore(shard.getGenomeLoc()) && loci.hasNext() ) + nextLocus = loci.next(); - // If nothing in the shard was found, indicate that by setting nextLocusContext to null. - if( nextLocusContext != null && nextLocusContext.getLocation().isBefore(shard.getGenomeLoc()) ) - nextLocusContext = null; + // If nothing in the shard was found, indicate that by setting nextAlignmentContext to null. + if( nextLocus != null && nextLocus.getLocation().isBefore(shard.getGenomeLoc()) ) + nextLocus = null; } /** diff --git a/java/src/org/broadinstitute/sting/gatk/examples/HelloWalker.java b/java/src/org/broadinstitute/sting/gatk/examples/HelloWalker.java index 637395577..94e5187df 100644 --- a/java/src/org/broadinstitute/sting/gatk/examples/HelloWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/examples/HelloWalker.java @@ -22,7 +22,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ import org.broadinstitute.sting.gatk.walkers.LocusWalker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; /** @@ -35,12 +36,12 @@ public class HelloWalker extends LocusWalker { * which they fall, and the base from the reference that overlaps. * @param tracker The accessor for reference metadata. * @param ref The reference base that lines up with this locus. - * @param context Information about reads overlapping this locus. + * @param locus Information about reads overlapping this locus. * @return In this case, returns a count of how many loci were seen at this site (1). */ @Override - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { - out.printf("Hello locus %s; your ref base is %c and you have %d reads%n", context.getLocation(), ref, context.getReads().size() ); + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { + out.printf("Hello locus %s; your ref base is %c and you have %d reads%n", context.getLocation(), ref.getBase(), context.getReads().size() ); return 1; } diff --git a/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java b/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java index db082d700..a078d9d4e 100755 --- a/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java +++ b/java/src/org/broadinstitute/sting/gatk/iterators/GenomeLocusIterator.java @@ -4,6 +4,7 @@ import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.GenomeLocParser; import java.util.NoSuchElementException; +import java.util.Iterator; /** * User: hanna * Date: May 12, 2009 @@ -20,7 +21,7 @@ import java.util.NoSuchElementException; /** * Iterates through all of the loci provided in the reference. */ -public class GenomeLocusIterator implements LocusIterator { +public class GenomeLocusIterator implements Iterator { /** * The entire region over which we're iterating. */ diff --git a/java/src/org/broadinstitute/sting/gatk/iterators/LocusContextIterator.java b/java/src/org/broadinstitute/sting/gatk/iterators/LocusContextIterator.java deleted file mode 100755 index bc20f1c79..000000000 --- a/java/src/org/broadinstitute/sting/gatk/iterators/LocusContextIterator.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.broadinstitute.sting.gatk.iterators; - -import net.sf.samtools.util.CloseableIterator; - -import java.util.Iterator; - -import org.broadinstitute.sting.gatk.LocusContext; - -/** - * Iterator that traverses a SAM File, accumulating information on a per-locus basis - */ -public abstract class LocusContextIterator implements Iterable, CloseableIterator { - // ----------------------------------------------------------------------------------------------------------------- - // - // constructors and other basic operations - // - // ----------------------------------------------------------------------------------------------------------------- - public Iterator iterator() { - return this; - } - - public void close() { - //this.it.close(); - } - - public abstract boolean hasNext(); - public abstract LocusContext next(); - - public void remove() { - throw new UnsupportedOperationException("Can not remove records from a SAM file via an iterator!"); - } -} diff --git a/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java b/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java index 9ca0523dd..30c1cf512 100755 --- a/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java +++ b/java/src/org/broadinstitute/sting/gatk/iterators/LocusIterator.java @@ -1,24 +1,32 @@ package org.broadinstitute.sting.gatk.iterators; -import org.broadinstitute.sting.utils.GenomeLoc; +import net.sf.samtools.util.CloseableIterator; import java.util.Iterator; -/** - * User: hanna - * Date: May 12, 2009 - * Time: 10:48:56 AM - * BROAD INSTITUTE SOFTWARE COPYRIGHT NOTICE AND AGREEMENT - * Software and documentation are copyright 2005 by the Broad Institute. - * All rights are reserved. - * - * Users acknowledge that this software is supplied without any warranty or support. - * The Broad Institute is not responsible for its use, misuse, or - * functionality. - */ + +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; /** - * An iterator for iterating through loci on a genome. + * Iterator that traverses a SAM File, accumulating information on a per-locus basis */ +public abstract class LocusIterator implements Iterable, CloseableIterator { + // ----------------------------------------------------------------------------------------------------------------- + // + // constructors and other basic operations + // + // ----------------------------------------------------------------------------------------------------------------- + public Iterator iterator() { + return this; + } -public interface LocusIterator extends Iterator { + public void close() { + //this.it.close(); + } + + public abstract boolean hasNext(); + public abstract AlignmentContext next(); + + public void remove() { + throw new UnsupportedOperationException("Can not remove records from a SAM file via an iterator!"); + } } diff --git a/java/src/org/broadinstitute/sting/gatk/iterators/LocusContextIteratorByHanger.java b/java/src/org/broadinstitute/sting/gatk/iterators/LocusIteratorByHanger.java similarity index 81% rename from java/src/org/broadinstitute/sting/gatk/iterators/LocusContextIteratorByHanger.java rename to java/src/org/broadinstitute/sting/gatk/iterators/LocusIteratorByHanger.java index 1e232890a..cde8cca80 100755 --- a/java/src/org/broadinstitute/sting/gatk/iterators/LocusContextIteratorByHanger.java +++ b/java/src/org/broadinstitute/sting/gatk/iterators/LocusIteratorByHanger.java @@ -1,9 +1,34 @@ +/* + * Copyright (c) 2009 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.gatk.iterators; import net.sf.samtools.AlignmentBlock; import net.sf.samtools.SAMRecord; import org.apache.log4j.Logger; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.GenomeLocParser; import org.broadinstitute.sting.utils.RefHanger; @@ -14,12 +39,12 @@ import java.util.Iterator; /** * Iterator that traverses a SAM File, accumulating information on a per-locus basis */ -public class LocusContextIteratorByHanger extends LocusContextIterator { +public class LocusIteratorByHanger extends LocusIterator { /** * our log, which we want to capture anything from this class */ - private static Logger logger = Logger.getLogger(LocusContextIteratorByHanger.class); + private static Logger logger = Logger.getLogger(LocusIteratorByHanger.class); // ----------------------------------------------------------------------------------------------------------------- // @@ -39,11 +64,11 @@ public class LocusContextIteratorByHanger extends LocusContextIterator { // constructors and other basic operations // // ----------------------------------------------------------------------------------------------------------------- - public LocusContextIteratorByHanger(final Iterator samIterator) { + public LocusIteratorByHanger(final Iterator samIterator) { this.it = new PushbackIterator(samIterator); } - public Iterator iterator() { + public Iterator iterator() { return this; } @@ -80,7 +105,7 @@ public class LocusContextIteratorByHanger extends LocusContextIterator { // next() routine and associated collection operations // // ----------------------------------------------------------------------------------------------------------------- - public LocusContext next() { + public AlignmentContext next() { if ( ! currentPositionIsFullyCovered() ) expandWindow(INCREMENT_SIZE); @@ -99,7 +124,7 @@ public class LocusContextIteratorByHanger extends LocusContextIterator { //System.out.printf("***** skipping reads%n"); return next(); } else { - return new LocusContext(rhanger.loc, rhanger.data, ohanger.data); + return new AlignmentContext(rhanger.loc, rhanger.data, ohanger.data); } } @@ -186,4 +211,4 @@ public class LocusContextIteratorByHanger extends LocusContextIterator { public void remove() { throw new UnsupportedOperationException("Can not remove records from a SAM file via an iterator!"); } -} \ No newline at end of file +} diff --git a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java index 6b3893ea9..96585a142 100755 --- a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java +++ b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseDuplicates.java @@ -29,7 +29,7 @@ import net.sf.picard.filter.FilteringIterator; import net.sf.picard.filter.SamRecordFilter; import net.sf.samtools.SAMRecord; import org.apache.log4j.Logger; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.datasources.providers.ReadView; import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider; import org.broadinstitute.sting.gatk.datasources.shards.ReadShard; @@ -177,13 +177,13 @@ public class TraverseDuplicates extends TraversalEngine { reads.size(), site.toString(), uniqueReads.size(), duplicateReads.size())); // Jump forward in the reference to this locus location - LocusContext locus = new LocusContext(site, duplicateReads, Arrays.asList(0)); + AlignmentContext locus = new AlignmentContext(site, duplicateReads, Arrays.asList(0)); // update the number of duplicate sets we've seen TraversalStatistics.nRecords++; // we still have to fix the locus context provider to take care of this problem with > 1 length contexts - // LocusContext locus = locusProvider.getLocusContext(site); + // AlignmentContext locus = locusProvider.getLocusContext(site); byte[] refBases = new byte[0]; @@ -245,7 +245,7 @@ public class TraverseDuplicates extends TraversalEngine { List duplicateReads, GenomeLoc site, byte[] refBases, - LocusContext locus, + AlignmentContext locus, T sum) { final boolean keepMeP = dupWalker.filter(site, refBases, locus, uniqueReads, duplicateReads); if (keepMeP) { diff --git a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java index 5db9c23eb..436454e5d 100755 --- a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java +++ b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLoci.java @@ -1,8 +1,9 @@ package org.broadinstitute.sting.gatk.traversals; import org.apache.log4j.Logger; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.WalkerManager; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.datasources.providers.*; import org.broadinstitute.sting.gatk.datasources.shards.Shard; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; @@ -49,18 +50,18 @@ public class TraverseLoci extends TraversalEngine { // We keep processing while the next reference location is within the interval while( locusView.hasNext() ) { - LocusContext locus = locusView.next(); + AlignmentContext locus = locusView.next(); TraversalStatistics.nRecords++; // Iterate forward to get all reference ordered data covering this locus final RefMetaDataTracker tracker = referenceOrderedDataView.getReferenceOrderedDataAtLocus(locus.getLocation()); - char refBase = referenceView.getReferenceBase(locus.getLocation()); + ReferenceContext refContext = new ReferenceContext( referenceView.getReferenceBase(locus.getLocation()) ); - final boolean keepMeP = locusWalker.filter(tracker, refBase, locus); + final boolean keepMeP = locusWalker.filter(tracker, refContext, locus); if (keepMeP) { - M x = locusWalker.map(tracker, refBase, locus); + M x = locusWalker.map(tracker, refContext, locus); sum = locusWalker.reduce(x, sum); } diff --git a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLocusWindows.java b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLocusWindows.java index 037868dc8..d08fa7b28 100755 --- a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLocusWindows.java +++ b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseLocusWindows.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.gatk.traversals; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.datasources.providers.LocusReferenceView; import org.broadinstitute.sting.gatk.datasources.providers.ReadView; import org.broadinstitute.sting.gatk.datasources.providers.ReferenceOrderedView; @@ -41,7 +41,7 @@ public class TraverseLocusWindows extends TraversalEngine { LocusReferenceView referenceView = new LocusReferenceView( dataProvider ); ReferenceOrderedView referenceOrderedDataView = new ReferenceOrderedView( dataProvider ); - LocusContext locus = getLocusContext(readView.iterator(), interval); + AlignmentContext locus = getLocusContext(readView.iterator(), interval); // The TraverseByLocusWindow expands intervals to cover all reads in a non-standard way. // TODO: Convert this approach to the standard. @@ -66,7 +66,7 @@ public class TraverseLocusWindows extends TraversalEngine { return sum; } - private LocusContext getLocusContext(StingSAMIterator readIter, GenomeLoc interval) { + private AlignmentContext getLocusContext(StingSAMIterator readIter, GenomeLoc interval) { ArrayList reads = new ArrayList(); boolean done = false; long leftmostIndex = interval.getStart(), @@ -87,7 +87,7 @@ public class TraverseLocusWindows extends TraversalEngine { } GenomeLoc window = GenomeLocParser.createGenomeLoc(interval.getContig(), leftmostIndex, rightmostIndex); - LocusContext locus = new LocusContext(window, reads, null); + AlignmentContext locus = new AlignmentContext(window, reads, null); if ( readIter.getSourceInfo().getDownsampleToCoverage() != null ) locus.downsampleToCoverage(readIter.getSourceInfo().getDownsampleToCoverage()); diff --git a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java index 0deb2a84c..71ecf8a3f 100755 --- a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java +++ b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java @@ -2,7 +2,7 @@ package org.broadinstitute.sting.gatk.traversals; import net.sf.samtools.SAMRecord; import org.apache.log4j.Logger; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.WalkerManager; import org.broadinstitute.sting.gatk.datasources.providers.ReadReferenceView; import org.broadinstitute.sting.gatk.datasources.providers.ReadView; @@ -98,7 +98,7 @@ public class TraverseReads extends TraversalEngine { for (SAMRecord read : reads) { // our locus context - LocusContext locus = null; + AlignmentContext locus = null; // an array of characters that represent the reference char[] refSeq = null; @@ -108,7 +108,7 @@ public class TraverseReads extends TraversalEngine { GenomeLoc site = GenomeLocParser.createGenomeLoc(read); // Jump forward in the reference to this locus location - locus = new LocusContext(site, Arrays.asList(read), Arrays.asList(0)); + locus = new AlignmentContext(site, Arrays.asList(read), Arrays.asList(0)); // get the array of characters for the reference sequence, since we're a mapped read if( dataProvider.hasReference() ) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java index be9affc38..ba828616b 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java @@ -1,11 +1,9 @@ package org.broadinstitute.sting.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import java.util.List; - /** * Created by IntelliJ IDEA. * User: mdepristo @@ -14,7 +12,7 @@ import java.util.List; * To change this template use File | Settings | File Templates. */ public class CountLociWalker extends LocusWalker implements TreeReducible { - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { return 1; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java index 62e3ebfa2..3703c098e 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.gatk.walkers; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; @Requires({DataSource.READS, DataSource.REFERENCE}) public class CountReadsWalker extends ReadWalker { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java index 7c04829ca..d2fe8df92 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java @@ -24,7 +24,8 @@ package org.broadinstitute.sting.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.cmdLine.Argument; import org.broadinstitute.sting.utils.Pair; @@ -36,7 +37,7 @@ public class DepthOfCoverageWalker extends LocusWalker @Argument(fullName="suppressLocusPrinting",doc="Suppress printing",required=false) public boolean suppressPrinting = false; - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { if ( !suppressPrinting ) out.printf("%s: %d%n", context.getLocation(), context.getReads().size() ); return context.getReads().size(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java index bc40ee85f..09edc466b 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/DuplicateWalker.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.GenomeLoc; import java.util.List; @@ -17,7 +17,7 @@ import net.sf.samtools.SAMRecord; @Requires({DataSource.READS,DataSource.REFERENCE}) public abstract class DuplicateWalker extends Walker { // Do we actually want to operate on the context? - public boolean filter(GenomeLoc loc, byte[] refBases, LocusContext context, + public boolean filter(GenomeLoc loc, byte[] refBases, AlignmentContext context, List uniqueReads, List duplicateReads) { return true; // We are keeping all the reads @@ -31,7 +31,7 @@ public abstract class DuplicateWalker extends Walker uniqueReads, List duplicateReads); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java index 799a2c569..f066da13e 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java @@ -1,7 +1,8 @@ package org.broadinstitute.sting.gatk.walkers; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; /** * Created by IntelliJ IDEA. @@ -14,10 +15,10 @@ import org.broadinstitute.sting.gatk.LocusContext; @Requires({DataSource.READS,DataSource.REFERENCE, DataSource.REFERENCE_BASES}) public abstract class LocusWalker extends Walker { // Do we actually want to operate on the context? - public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) { + public boolean filter(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { return true; // We are keeping all the reads } - // Map over the org.broadinstitute.sting.gatk.LocusContext - public abstract MapType map(RefMetaDataTracker tracker, char ref, LocusContext context); + // Map over the org.broadinstitute.sting.gatk.contexts.AlignmentContext + public abstract MapType map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java index 623116e94..80520dd76 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java @@ -1,9 +1,7 @@ package org.broadinstitute.sting.gatk.walkers; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; - -import net.sf.samtools.SAMRecord; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; /** * Created by IntelliJ IDEA. @@ -15,12 +13,12 @@ import net.sf.samtools.SAMRecord; @Requires({DataSource.READS,DataSource.REFERENCE, DataSource.REFERENCE_BASES}) public abstract class LocusWindowWalker extends Walker { // Do we actually want to operate on the context? - public boolean filter(RefMetaDataTracker tracker, String ref, LocusContext context) { + public boolean filter(RefMetaDataTracker tracker, String ref, AlignmentContext context) { return true; // We are keeping all the intervals } - // Map over the org.broadinstitute.sting.gatk.LocusContext - public abstract MapType map(RefMetaDataTracker tracker, String ref, LocusContext context); + // Map over the org.broadinstitute.sting.gatk.contexts.AlignmentContext + public abstract MapType map(RefMetaDataTracker tracker, String ref, AlignmentContext context); // Given result of map function public abstract ReduceType reduceInit(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java index 69ec4b2b7..005c8c70e 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java @@ -1,12 +1,10 @@ package org.broadinstitute.sting.gatk.walkers; import org.broadinstitute.sting.gatk.walkers.LocusWalker; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import java.util.List; - // Null traversal. For ATK performance measuring. // j.maguire 3-7-2009 @@ -15,12 +13,12 @@ public class NullWalker extends LocusWalker { } // Do we actually want to operate on the context? - public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) { + public boolean filter(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { return true; // We are keeping all the reads } - // Map over the org.broadinstitute.sting.gatk.LocusContext - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) + // Map over the org.broadinstitute.sting.gatk.contexts.AlignmentContext + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { return 1; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java index 56cfc0948..587b61c9a 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java @@ -24,7 +24,8 @@ package org.broadinstitute.sting.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.rodDbSNP; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; @@ -67,8 +68,8 @@ public class PileupWalker extends LocusWalker implements TreeR public void initialize() { } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { - ReadBackedPileup pileup = new ReadBackedPileup(ref, context); + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { + ReadBackedPileup pileup = new ReadBackedPileup(ref.getBase(), context); String bases = pileup.getBases(); if ( bases.equals("") && !IGNORE_UNCOVERED_BASES ) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/PileupWithContextWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/PileupWithContextWalker.java index 16d1739bd..9088b58da 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/PileupWithContextWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/PileupWithContextWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.rodDbSNP; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; @@ -11,7 +12,6 @@ import org.broadinstitute.sting.utils.Utils; import org.broadinstitute.sting.utils.fasta.IndexedFastaSequenceFile; import net.sf.picard.reference.ReferenceSequence; -import java.util.List; import java.io.File; import java.io.IOException; @@ -45,8 +45,8 @@ public class PileupWithContextWalker extends LocusWalker imple } } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { - ReadBackedPileup pileup = new ReadBackedPileup(ref, context); + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { + ReadBackedPileup pileup = new ReadBackedPileup(ref.getBase(), context); String bases = pileup.getBasesWithStrand(); if ( bases.equals("") && FLAG_UNCOVERED_BASES ) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/PrintLocusContextWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/PrintLocusContextWalker.java index 8d630d4d0..1eac9bade 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/PrintLocusContextWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/PrintLocusContextWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import java.util.List; @@ -15,8 +16,8 @@ import net.sf.samtools.SAMRecord; * Time: 11:23:14 AM * To change this template use File | Settings | File Templates. */ -public class PrintLocusContextWalker extends LocusWalker implements TreeReducible { - public LocusContext map(RefMetaDataTracker tracker, char ref, LocusContext context) { +public class PrintLocusContextWalker extends LocusWalker implements TreeReducible { + public AlignmentContext map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { out.printf( "In map: ref = %s, loc = %s, reads = %s%n", ref, context.getLocation(), Arrays.deepToString( getReadNames(context.getReads()) ) ); @@ -25,7 +26,7 @@ public class PrintLocusContextWalker extends LocusWalker public Integer reduceInit() { return 0; } - public Integer reduce(LocusContext context, Integer sum) { + public Integer reduce(AlignmentContext context, Integer sum) { return sum + 1; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java index 873fe45d8..587babb42 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java @@ -22,6 +22,6 @@ public abstract class ReadWalker extends Walker } } - public Integer map(RefMetaDataTracker tracker, String ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, String ref, AlignmentContext context) { List reads = context.getReads(); ArrayList goodReads = new ArrayList(); for ( SAMRecord read : reads ) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/indels/MismatchIntervalWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/indels/MismatchIntervalWalker.java index f79fb89c2..49aea4865 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/MismatchIntervalWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/MismatchIntervalWalker.java @@ -4,7 +4,8 @@ package org.broadinstitute.sting.gatk.walkers.indels; import net.sf.samtools.*; import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.gatk.walkers.LocusWalker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.filters.Platform454Filter; import org.broadinstitute.sting.gatk.filters.ZeroMappingQualityReadFilter; import org.broadinstitute.sting.utils.*; @@ -31,8 +32,8 @@ public class MismatchIntervalWalker extends LocusWalker throw new RuntimeException("Window Size must be a positive integer"); } - public Pair map(RefMetaDataTracker tracker, char ref, LocusContext context) { - char upperRef = Character.toUpperCase(ref); + public Pair map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { + char upperRef = Character.toUpperCase(ref.getBase()); List reads = context.getReads(); List offsets = context.getOffsets(); int goodReads = 0, mismatchQualities = 0, totalQualities = 0; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java index 78fe1dd1e..1f0b607b6 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java @@ -2,7 +2,8 @@ package org.broadinstitute.sting.gatk.walkers.indels; import org.broadinstitute.sting.gatk.refdata.*; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.utils.cmdLine.Argument; @@ -20,7 +21,7 @@ public class SNPClusterWalker extends RefWalker { throw new RuntimeException("Window Size must be a positive integer"); } - public GenomeLoc map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public GenomeLoc map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { AllelicVariant eval = (AllelicVariant)tracker.lookup("eval", null); if ( eval instanceof SNPCallFromGenotypes ) return context.getLocation(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CovariateCounterWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CovariateCounterWalker.java index eab6dd059..e994b9a33 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CovariateCounterWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/CovariateCounterWalker.java @@ -2,7 +2,8 @@ package org.broadinstitute.sting.gatk.walkers.recalibration; import net.sf.samtools.SAMRecord; import net.sf.samtools.SAMReadGroupRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.rodDbSNP; import org.broadinstitute.sting.gatk.walkers.LocusWalker; @@ -77,7 +78,7 @@ public class CovariateCounterWalker extends LocusWalker { * @param context * @return */ - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { rodDbSNP dbsnp = (rodDbSNP)tracker.lookup("dbSNP", null); if ( dbsnp == null || !dbsnp.isSNP() ) { // We aren't at a dbSNP position that's a SNP, so update the read @@ -101,7 +102,7 @@ public class CovariateCounterWalker extends LocusWalker { if ((read.getMappingQuality() >= MIN_MAPPING_QUALITY && isSupportedReadGroup(readGroup) )) { int offset = offsets.get(i); if ( offset > 0 && offset < (read.getReadLength() - 1) ) { // skip first and last bases because they suck and they don't have a dinuc count - counted_bases += covariateCounter.updateDataFromRead(readGroupString, read, offset, ref); + counted_bases += covariateCounter.updateDataFromRead(readGroupString, read, offset, ref.getBase()); } } } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java index 9c145378d..a9731cc64 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java @@ -3,7 +3,6 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.walkers.WalkerName; -import org.broadinstitute.sting.gatk.LocusContext; /** * Created by IntelliJ IDEA. @@ -28,7 +27,6 @@ public class AlignedReadsHistoWalker extends ReadWalker { return !read.getReadUnmappedFlag(); } - // Map over the org.broadinstitute.sting.atk.LocusContext public Integer map(char[] ref, SAMRecord read) { //System.out.println(read.getAttribute("NM")); int editDist = Integer.parseInt(read.getAttribute("NM").toString()); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java index cbff5d43d..c04eae845 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.walkers.WalkerName; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java index 7dd66a51b..6353f87ef 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java @@ -3,7 +3,6 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.walkers.WalkerName; -import org.broadinstitute.sting.gatk.LocusContext; /** * Created by IntelliJ IDEA. @@ -27,7 +26,6 @@ public class BaseQualityHistoWalker extends ReadWalker { return true; // We are keeping all the reads } - // Map over the org.broadinstitute.sting.gatk.LocusContext public Integer map(char[] ref, SAMRecord read) { for ( byte qual : read.getBaseQualities() ) { if ( qual < 0 || qual > 100 ) { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageBySample.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageBySample.java index e5dcd3e62..0b2ba68d5 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageBySample.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageBySample.java @@ -5,7 +5,8 @@ import net.sf.samtools.*; import org.broadinstitute.sting.gatk.*; import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.gatk.walkers.LocusWalker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.utils.Utils; import org.broadinstitute.sting.utils.BaseUtils; @@ -37,11 +38,11 @@ public class CoverageBySample extends LocusWalker } } - public String map(RefMetaDataTracker tracker, char ref, LocusContext context) + public String map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { String line = context.getLocation().getContig() + " " + context.getLocation().getStart() + " " ; - LocusContext[] contexts = filterLocusContext(context, sample_names, 0); + AlignmentContext[] contexts = filterAlignmentContext(context, sample_names, 0); HashMap counts = countReadsBySample(context); for (int i = 0; i < contexts.length; i++) @@ -84,7 +85,7 @@ public class CoverageBySample extends LocusWalker return ""; } - private HashMap countReadsBySample(LocusContext context) + private HashMap countReadsBySample(AlignmentContext context) { HashMap counts = new HashMap(); for (int i = 0; i < sample_names.size(); i++) @@ -101,7 +102,7 @@ public class CoverageBySample extends LocusWalker return counts; } - private LocusContext[] filterLocusContext(LocusContext context, List sample_names, int downsample) + private AlignmentContext[] filterAlignmentContext(AlignmentContext context, List sample_names, int downsample) { HashMap index = new HashMap(); for (int i = 0; i < sample_names.size(); i++) @@ -109,7 +110,7 @@ public class CoverageBySample extends LocusWalker index.put(sample_names.get(i), i); } - LocusContext[] contexts = new LocusContext[sample_names.size()]; + AlignmentContext[] contexts = new AlignmentContext[sample_names.size()]; ArrayList[] reads = new ArrayList[sample_names.size()]; ArrayList[] offsets = new ArrayList[sample_names.size()]; @@ -153,14 +154,14 @@ public class CoverageBySample extends LocusWalker reads[j] = downsampled_reads; offsets[j] = downsampled_offsets; - contexts[j] = new LocusContext(context.getLocation(), reads[j], offsets[j]); + contexts[j] = new AlignmentContext(context.getLocation(), reads[j], offsets[j]); } } else { for (int j = 0; j < reads.length; j++) { - contexts[j] = new LocusContext(context.getLocation(), reads[j], offsets[j]); + contexts[j] = new AlignmentContext(context.getLocation(), reads[j], offsets[j]); } } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageEvalWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageEvalWalker.java index 7d716e210..58e73d513 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageEvalWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageEvalWalker.java @@ -1,7 +1,8 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.rodGFF; import org.broadinstitute.sting.gatk.walkers.LocusWalker; @@ -42,11 +43,11 @@ public class CoverageEvalWalker extends LocusWalker, String> { out.println("DownsampledCoverage\tAvailableCoverage\tHapmapChipGenotype\tGenotypeCallType\t"+header.substring(1)); } - public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) { - return (BaseUtils.simpleBaseToBaseIndex(ref) != -1 && context.getReads().size() != 0); + public boolean filter(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { + return (BaseUtils.simpleBaseToBaseIndex(ref.getBase()) != -1 && context.getReads().size() != 0); } - public List map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public List map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { rodGFF hapmap_chip = (rodGFF)tracker.lookup("hapmap-chip", null); String hc_genotype; @@ -75,7 +76,7 @@ public class CoverageEvalWalker extends LocusWalker, String> { List sub_reads = ListUtils.sliceListByIndices(subset_indices, reads); List sub_offsets = ListUtils.sliceListByIndices(subset_indices, offsets); - LocusContext subContext = new LocusContext(context.getLocation(), sub_reads, sub_offsets); + AlignmentContext subContext = new AlignmentContext(context.getLocation(), sub_reads, sub_offsets); GenotypeCall call = SSG.map(tracker, ref, subContext); String callType = (call.isVariation()) ? ((call.isHom()) ? "HomozygousSNP" : "HeterozygousSNP") : "HomozygousReference"; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageHistogram.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageHistogram.java index 4db274444..73115e8a5 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageHistogram.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/CoverageHistogram.java @@ -1,15 +1,14 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.walkers.LocusWalker; import org.broadinstitute.sting.gatk.walkers.By; import org.broadinstitute.sting.gatk.walkers.DataSource; import java.util.*; -import java.util.zip.*; -import java.io.*; // Plot a histogram of depth of coverage // j.maguire 6-11-2009 @@ -38,9 +37,9 @@ public class CoverageHistogram extends LocusWalker num_sites = 0; } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { - if (ref == 'N') { return null; } + if (ref.getBase() == 'N') { return null; } int depth = context.getReads().size(); coverage_hist[depth] += 1; if (depth > max_depth) { max_depth = depth; } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/DisplayFourBaseReadWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/DisplayFourBaseReadWalker.java index a5c99e2c0..761657370 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/DisplayFourBaseReadWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/DisplayFourBaseReadWalker.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers; import org.broadinstitute.sting.gatk.walkers.ReadWalker; -import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.utils.QualityUtils; import net.sf.samtools.SAMRecord; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/FastaReferenceWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/FastaReferenceWalker.java index 5434e175c..6adfa91d5 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/FastaReferenceWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/FastaReferenceWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.walkers.RefWalker; import org.broadinstitute.sting.gatk.walkers.WalkerName; @@ -13,8 +14,8 @@ import org.broadinstitute.sting.utils.Pair; @WalkerName("FastaReferenceMaker") public class FastaReferenceWalker extends RefWalker, Pair> { - public Pair map(RefMetaDataTracker rodData, char ref, LocusContext context) { - return new Pair(context.getLocation(), ref); + public Pair map(RefMetaDataTracker rodData, ReferenceContext ref, AlignmentContext context) { + return new Pair(context.getLocation(), ref.getBase()); } public Pair reduceInit() { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/HLAcaller/CallHLAWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/HLAcaller/CallHLAWalker.java index 560c67e00..da30d5e4a 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/HLAcaller/CallHLAWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/HLAcaller/CallHLAWalker.java @@ -5,7 +5,8 @@ package org.broadinstitute.sting.playground.gatk.walkers.HLAcaller; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.utils.cmdLine.Argument; import org.broadinstitute.sting.utils.Pair; @@ -77,8 +78,8 @@ public class CallHLAWalker extends LocusWalker>{ } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { - ReadBackedPileup pileup = new ReadBackedPileup(ref, context); + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { + ReadBackedPileup pileup = new ReadBackedPileup(ref.getBase(), context); String bases = pileup.getBases(); long loc = context.getPosition(); if ( !suppressPrinting ) @@ -104,7 +105,7 @@ public class CallHLAWalker extends LocusWalker>{ out.printf("%sAs\t%sCs\t%sTs\t%sGs\t",numAs,numCs,numTs,numGs); OldAndBustedGenotypeLikelihoods G = new OldAndBustedGenotypeLikelihoods(OldAndBustedGenotypeLikelihoods.HUMAN_HETEROZYGOSITY); - SSGGenotypeCall geno = G.callGenotypes(tracker, ref, pileup); + SSGGenotypeCall geno = G.callGenotypes(tracker, ref.getBase(), pileup); double mLikelihoods[] = geno.getLikelihoods(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/HybSelPerformanceWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/HybSelPerformanceWalker.java index a4a665cea..a08e1420f 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/HybSelPerformanceWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/HybSelPerformanceWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.walkers.LocusWalker; import org.broadinstitute.sting.gatk.walkers.By; import org.broadinstitute.sting.gatk.walkers.DataSource; @@ -52,7 +53,7 @@ public class HybSelPerformanceWalker extends LocusWalker reads = context.getReads(); int depth = 0; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/IOCrusherWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/IOCrusherWalker.java index b84d79c6e..06e4aa690 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/IOCrusherWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/IOCrusherWalker.java @@ -1,18 +1,13 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.utils.cmdLine.Argument; -import org.broadinstitute.sting.utils.QualityUtils; import org.broadinstitute.sting.utils.Utils; import net.sf.samtools.SAMRecord; import net.sf.samtools.SAMFileWriter; import net.sf.samtools.SAMFileHeader; -import net.sf.picard.reference.ReferenceSequence; import java.util.ArrayList; -import java.util.Random; -import java.io.File; /** * ReadErrorRateWalker assesses the error rate per read position ('cycle') by comparing the diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ListSampleIds.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ListSampleIds.java index 0e3a5e58a..c04f8470c 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ListSampleIds.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ListSampleIds.java @@ -5,7 +5,8 @@ import net.sf.samtools.SAMRecord; import net.sf.samtools.SAMFileHeader; import net.sf.samtools.SAMReadGroupRecord; import org.broadinstitute.sting.gatk.GenomeAnalysisEngine; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.walkers.LocusWalker; @@ -26,7 +27,7 @@ public class ListSampleIds extends LocusWalker } } - public Boolean map(RefMetaDataTracker tracker, char ref, LocusContext context) + public Boolean map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { List reads = context.getReads(); StringBuilder readNames = new StringBuilder(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/MendelianInheritanceWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/MendelianInheritanceWalker.java index 5986499d9..748b730ed 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/MendelianInheritanceWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/MendelianInheritanceWalker.java @@ -1,27 +1,18 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import java.util.Arrays; import java.util.List; import org.apache.log4j.Logger; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.refdata.GenotypeList; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; -import org.broadinstitute.sting.gatk.refdata.BasicReferenceOrderedDatum; -import org.broadinstitute.sting.gatk.refdata.rodSAMPileup; import org.broadinstitute.sting.gatk.refdata.Genotype; import org.broadinstitute.sting.gatk.walkers.RefWalker; -import org.broadinstitute.sting.gatk.walkers.Requires; -import org.broadinstitute.sting.gatk.walkers.DataSource; -import org.broadinstitute.sting.gatk.walkers.RMD; import org.broadinstitute.sting.playground.utils.GenotypingCallStats; import org.broadinstitute.sting.playground.utils.TrioConcordanceRecord; -import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.GenotypeUtils; -import org.broadinstitute.sting.utils.StingException; -import org.broadinstitute.sting.utils.GenotypeUtils.VariantType; import org.broadinstitute.sting.utils.cmdLine.Argument; //@Requires(value=DataSource.REFERENCE,referenceMetaData={@RMD(name="mother",type=rodSAMPileup.class), @@ -49,7 +40,7 @@ public class MendelianInheritanceWalker extends RefWalker sample_names) + MultiSampleCallResult MultiSampleCall(RefMetaDataTracker tracker, char ref, AlignmentContext context, List sample_names) { String in_dbsnp; if (tracker.lookup("DBSNP", null) != null) { in_dbsnp = "known"; } else { in_dbsnp = "novel"; } - LocusContext[] contexts = filterLocusContextBySample(context, sample_names, 0); + AlignmentContext[] contexts = filterAlignmentContextBySample(context, sample_names, 0); double lod = LOD(contexts); double strand_score = StrandScore(context); //EM_Result em_result = EM(contexts); @@ -521,7 +521,7 @@ public class MultiSampleCaller extends LocusWalker reads = new ArrayList(); ArrayList offsets = new ArrayList(); @@ -537,11 +537,11 @@ public class MultiSampleCaller extends LocusWalker sample_names, int downsample) + private AlignmentContext[] filterAlignmentContextBySample(AlignmentContext context, List sample_names, int downsample) { HashMap index = new HashMap(); for (int i = 0; i < sample_names.size(); i++) @@ -549,7 +549,7 @@ public class MultiSampleCaller extends LocusWalker[] reads = new ArrayList[sample_names.size()]; ArrayList[] offsets = new ArrayList[sample_names.size()]; @@ -593,14 +593,14 @@ public class MultiSampleCaller extends LocusWalker working_samples = new ArrayList(); working_samples.addAll(variant_samples); working_samples.addAll(reference_samples); - LocusContext working_context = filterLocusContextBySamples(context, working_samples); + AlignmentContext working_context = filterAlignmentContextBySamples(context, working_samples); // Call. MultiSampleCallResult call_result = super.map(tracker, ref, working_context); @@ -155,7 +156,7 @@ public class MultiSampleCallerAccuracyTest extends MultiSampleCaller // Filter a locus context by sample IDs // (pulls out only reads from the specified samples, and returns them in one context). - private LocusContext filterLocusContextBySamples(LocusContext context, List sample_names) + private AlignmentContext filterAlignmentContextBySamples(AlignmentContext context, List sample_names) { HashSet index = new HashSet(); for (int i = 0; i < sample_names.size(); i++) @@ -185,7 +186,7 @@ public class MultiSampleCallerAccuracyTest extends MultiSampleCaller } } - return new LocusContext(context.getLocation(), reads, offsets); + return new AlignmentContext(context.getLocation(), reads, offsets); } // END Utility Functions diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/Pilot3CoverageWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/Pilot3CoverageWalker.java index ada637fa5..dc4ab17c9 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/Pilot3CoverageWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/Pilot3CoverageWalker.java @@ -1,23 +1,13 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; -import org.broadinstitute.sting.gatk.refdata.rodDbSNP; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.refdata.HapMapAlleleFrequenciesROD; import org.broadinstitute.sting.gatk.walkers.LocusWalker; -import org.broadinstitute.sting.utils.Utils; import org.broadinstitute.sting.utils.cmdLine.Argument; import net.sf.samtools.SAMRecord; -import net.sf.samtools.SAMFileHeader; -import net.sf.samtools.SAMReadGroupRecord; import java.util.List; -import java.util.Formatter; -import static java.lang.Math.log10; - -import edu.mit.broad.picard.genotype.DiploidGenotype; -import net.sf.picard.PicardException; public class Pilot3CoverageWalker extends LocusWalker { @@ -34,13 +24,13 @@ public class Pilot3CoverageWalker extends LocusWalker { public String walkerType() { return "ByLocus"; } // Do we actually want to operate on the context? - public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) { + public boolean filter(RefMetaDataTracker tracker, char ref, AlignmentContext context) { return true; // We are keeping all the reads } - // Map over the org.broadinstitute.sting.gatk.LocusContext + // Map over the org.broadinstitute.sting.gatk.contexts.AlignmentContext int MAPPING_QUALITY_THRESHOLD = 1; int totalSites; int tumorCovered; @@ -51,7 +41,7 @@ public class Pilot3CoverageWalker extends LocusWalker { int lastContigIndex = -1; long lastPosition = -1; - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { if (start ==0) { start = System.currentTimeMillis(); } List reads = context.getReads(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PopPriorWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PopPriorWalker.java index 42f07d51f..3f4b01568 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PopPriorWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PopPriorWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.walkers.LocusWalker; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.rodDbSNP; @@ -30,7 +31,7 @@ public class PopPriorWalker extends LocusWalker { public String walkerType() { return "ByLocus"; } // Do we actually want to operate on the context? - public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) { + public boolean filter(RefMetaDataTracker tracker, char ref, AlignmentContext context) { return true; // We are keeping all the reads } @@ -94,9 +95,9 @@ public class PopPriorWalker extends LocusWalker { } - // Map over the org.broadinstitute.sting.gatk.LocusContext - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { - char upRef = Character.toUpperCase(ref); + // Map over the org.broadinstitute.sting.gatk.contexts.AlignmentContext + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { + char upRef = Character.toUpperCase(ref.getBase()); List reads = context.getReads(); List offsets = context.getOffsets(); @@ -151,12 +152,12 @@ public class PopPriorWalker extends LocusWalker { // System.out.println(read.getReadName() + " " + base + " " + qual ); - glAll.add(ref, base, qual); + glAll.add(ref.getBase(), base, qual); if (read.getReadNegativeStrandFlag()) { - glReverse.add(ref, base, qual); + glReverse.add(ref.getBase(), base, qual); } else { - glForward.add(ref, base, qual); + glForward.add(ref.getBase(), base, qual); } } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintCoverageWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintCoverageWalker.java index 21172d499..93510206d 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintCoverageWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintCoverageWalker.java @@ -1,7 +1,8 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.walkers.By; import org.broadinstitute.sting.gatk.walkers.DataSource; @@ -17,17 +18,17 @@ public class PrintCoverageWalker extends LocusWalker { public String walkerType() { return "ByLocus"; } // Do we actually want to operate on the context? - public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) { + public boolean filter(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { return true; // We are keeping all the reads } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { int aCount = 0; int cCount = 0; int gCount = 0; int tCount = 0; - char upRef = Character.toUpperCase(ref); + char upRef = Character.toUpperCase(ref.getBase()); List reads = context.getReads(); for ( int i = 0; i < reads.size(); i++ ) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintHapmapGenotypes.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintHapmapGenotypes.java index 006cc469e..cf89cca51 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintHapmapGenotypes.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintHapmapGenotypes.java @@ -2,16 +2,9 @@ package org.broadinstitute.sting.playground.gatk.walkers; import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.gatk.refdata.*; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.utils.*; -import org.broadinstitute.sting.utils.Utils; -import org.broadinstitute.sting.utils.BaseUtils; -import org.broadinstitute.sting.utils.StingException; -import org.broadinstitute.sting.utils.cmdLine.Argument; -import org.broadinstitute.sting.playground.gatk.walkers.varianteval.Histogram; - -import java.util.*; -import java.io.*; // Sanity check to test HapmapGenotypeROD // Compute %dbsnp and transition/transversion rate. @@ -27,7 +20,7 @@ public class PrintHapmapGenotypes extends RefWalker { } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { // Iterate over each analysis, and update it //rodDbSNP dbsnp = (rodDbSNP)tracker.lookup("dbsnp", null); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintRODsWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintRODsWalker.java index 90de621d5..34b97f449 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintRODsWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/PrintRODsWalker.java @@ -1,6 +1,32 @@ +/* + * Copyright (c) 2009 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.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.gatk.walkers.*; @@ -25,7 +51,7 @@ public class PrintRODsWalker extends RefWalker { * @param context the context for the given locus * @return 1 if the locus was successfully processed, 0 if otherwise */ - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { ReferenceOrderedDatum variant = tracker.lookup("variant", null); if (variant != null ) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadErrorRateWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadErrorRateWalker.java index eb4bb0303..671ee88c3 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadErrorRateWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadErrorRateWalker.java @@ -1,12 +1,10 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.utils.cmdLine.Argument; import org.broadinstitute.sting.utils.QualityUtils; import org.broadinstitute.sting.utils.BaseUtils; import net.sf.samtools.SAMRecord; -import net.sf.picard.reference.ReferenceSequence; import java.util.Random; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReplaceQuals.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReplaceQuals.java index bc2f88916..d5c443ae3 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReplaceQuals.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReplaceQuals.java @@ -1,16 +1,10 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.utils.cmdLine.Argument; -import org.broadinstitute.sting.utils.QualityUtils; import org.broadinstitute.sting.utils.Pair; -import org.broadinstitute.sting.utils.Utils; import net.sf.samtools.*; -import net.sf.picard.reference.ReferenceSequence; -import java.util.ArrayList; -import java.util.Random; import java.util.HashMap; import java.io.File; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SAMToFastqAndSqWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SAMToFastqAndSqWalker.java index af4f804aa..42994053f 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SAMToFastqAndSqWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SAMToFastqAndSqWalker.java @@ -1,7 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers; import org.broadinstitute.sting.gatk.walkers.ReadWalker; -import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.utils.cmdLine.Argument; import net.sf.samtools.SAMRecord; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SomaticMutationFromGenotypeWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SomaticMutationFromGenotypeWalker.java index 27f0f1ff5..4219d5723 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SomaticMutationFromGenotypeWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SomaticMutationFromGenotypeWalker.java @@ -5,15 +5,13 @@ import java.io.FileWriter; import org.apache.log4j.Logger; import org.broadinstitute.sting.gatk.GATKArgumentCollection; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.Genotype; import org.broadinstitute.sting.gatk.walkers.RefWalker; -import org.broadinstitute.sting.gatk.walkers.Requires; -import org.broadinstitute.sting.gatk.walkers.DataSource; -import org.broadinstitute.sting.gatk.walkers.RMD; -import org.broadinstitute.sting.gatk.refdata.rodRefSeq; +import org.broadinstitute.sting.gatk.refdata.rodRefSeq; import org.broadinstitute.sting.playground.utils.GenotypingCallStats; import org.broadinstitute.sting.utils.GenotypeUtils; import org.broadinstitute.sting.utils.StingException; @@ -56,7 +54,7 @@ public class SomaticMutationFromGenotypeWalker extends RefWalker { */ public Integer reduceInit() { return 0; } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { AllelicVariant call1 = (AllelicVariant)tracker.lookup("callset1", null); AllelicVariant call2 = (AllelicVariant)tracker.lookup("callset2", null); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CombineDuplicatesWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CombineDuplicatesWalker.java index 6c00e5e39..894e63f1f 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CombineDuplicatesWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CombineDuplicatesWalker.java @@ -1,18 +1,15 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.walkers.DuplicateWalker; import org.broadinstitute.sting.utils.GenomeLoc; -import org.broadinstitute.sting.utils.Utils; import org.broadinstitute.sting.utils.duplicates.DupUtils; import org.broadinstitute.sting.utils.cmdLine.Argument; import java.util.List; -import java.io.File; import net.sf.samtools.SAMRecord; import net.sf.samtools.SAMFileWriter; -import net.sf.samtools.SAMFileHeader; /** * Created by IntelliJ IDEA. @@ -76,7 +73,7 @@ public class CombineDuplicatesWalker extends DuplicateWalker uniqueReads, List duplicateReads) { //logger.info(String.format("%s has %d duplicates and %d non-duplicates", loc, duplicateReads.size(), uniqueReads.size())); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CountDuplicatesWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CountDuplicatesWalker.java index 78340f7b6..cb14d1e75 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CountDuplicatesWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/CountDuplicatesWalker.java @@ -26,7 +26,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.duplicates; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.walkers.DuplicateWalker; import org.broadinstitute.sting.utils.GenomeLoc; @@ -55,12 +55,12 @@ public class CountDuplicatesWalker extends DuplicateWalker uniqueReads, List duplicateReads) { + public DuplicateCount map(GenomeLoc loc, byte[] refBases, AlignmentContext context, List uniqueReads, List duplicateReads) { DuplicateCount dup = new DuplicateCount(); dup.count = 1; dup.undupDepth = uniqueReads.size(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/DuplicateQualsWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/DuplicateQualsWalker.java index dd72d83b1..628af8f24 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/DuplicateQualsWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/duplicates/DuplicateQualsWalker.java @@ -26,7 +26,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.duplicates; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.walkers.DuplicateWalker; import org.broadinstitute.sting.utils.BaseUtils; import org.broadinstitute.sting.utils.GenomeLoc; @@ -160,7 +160,7 @@ public class DuplicateQualsWalker extends DuplicateWalker, Q } // Print out data for regression - public List map(GenomeLoc loc, byte[] refBases, LocusContext context, + public List map(GenomeLoc loc, byte[] refBases, AlignmentContext context, List uniqueReads, List duplicateReads) { //logger.info(String.format("%s has %d duplicates and %d non-duplicates", loc, duplicateReads.size(), uniqueReads.size())); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/CoverageGapIntervalWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/CoverageGapIntervalWalker.java index a5cac9591..0c1b787da 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/CoverageGapIntervalWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/CoverageGapIntervalWalker.java @@ -3,7 +3,8 @@ package org.broadinstitute.sting.playground.gatk.walkers.indels; import net.sf.samtools.*; import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.gatk.walkers.LocusWalker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.gatk.walkers.WalkerName; @@ -16,7 +17,7 @@ public class CoverageGapIntervalWalker extends LocusWalker reads = context.getReads(); for (int i = 0; i < reads.size(); i++ ) { @@ -26,7 +27,7 @@ public class CoverageGapIntervalWalker extends LocusWalker= minReadsAtInterval; } - public Pair map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Pair map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { // find the probability that this locus has a statistically significant gap in coverage List reads = context.getReads(); List offsets = context.getOffsets(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/BasicVariantAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/BasicVariantAnalysis.java index bb0702a76..71c31f6ca 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/BasicVariantAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/BasicVariantAnalysis.java @@ -1,8 +1,8 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; import java.io.PrintStream; import java.util.List; @@ -62,5 +62,5 @@ public abstract class BasicVariantAnalysis implements VariantAnalysis { } - public abstract String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context); + public abstract String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context); } \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/CallableBasesAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/CallableBasesAnalysis.java index f237dfd69..e7c80fde5 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/CallableBasesAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/CallableBasesAnalysis.java @@ -2,11 +2,9 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; -import java.io.PrintStream; import java.util.List; -import java.util.Arrays; import java.util.ArrayList; /** @@ -38,7 +36,7 @@ public class CallableBasesAnalysis extends BasicVariantAnalysis implements Genot public long nGenotypable(int index) { return genotypable_bases[index]; } public double percentGenotypable(int index) { return (100.0*nGenotypable(index)) / nSites(); } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { all_bases++; if ( eval == null ) // no data here! diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ClusterCounterAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ClusterCounterAnalysis.java index e4beb9c5e..4f104c935 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ClusterCounterAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ClusterCounterAnalysis.java @@ -3,14 +3,12 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.IntervalRod; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.GenomeLoc; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.HashSet; -import java.io.PrintStream; /** * The Broad Institute @@ -37,7 +35,7 @@ public class ClusterCounterAnalysis extends BasicVariantAnalysis implements Geno variantsWithClusters.add(new HashSet()); } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { String r = null; if ( eval != null && eval.isSNP() ) { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeAnalysis.java index 9ee287b56..895f552d6 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeAnalysis.java @@ -1,11 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; -import org.broadinstitute.sting.gatk.refdata.AllelicVariant; -import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; - -import java.io.PrintStream; -import java.util.List; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; /** diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java index d2448518e..1473dd792 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.*; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.*; import java.util.List; @@ -75,7 +75,7 @@ public class GenotypeConcordance extends BasicVariantAnalysis implements Genotyp } } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { AllelicVariant chip = (AllelicVariant)tracker.lookup(dbName, null); inc(chip, eval, ref); return null; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/HardyWeinbergEquilibrium.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/HardyWeinbergEquilibrium.java index 09244162c..5863d9af8 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/HardyWeinbergEquilibrium.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/HardyWeinbergEquilibrium.java @@ -1,15 +1,12 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.SNPCallFromGenotypes; -import org.broadinstitute.sting.gatk.refdata.PooledEMSNPROD; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.utils.BaseUtils; import org.broadinstitute.sting.utils.MathUtils; import org.broadinstitute.sting.utils.genotype.HardyWeinbergCalculation; -import java.io.PrintStream; import java.util.ArrayList; import java.util.List; @@ -35,7 +32,7 @@ public class HardyWeinbergEquilibrium extends ViolationVariantAnalysis implement this.threshold = threshold; } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { String r = null; if ( eval != null && diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java index 2e20abe23..0c599bff8 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java @@ -1,8 +1,8 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; import java.util.List; import java.util.ArrayList; @@ -29,7 +29,7 @@ public class IndelMetricsAnalysis extends BasicVariantAnalysis implements Genoty sizes[0][i] = sizes[1][i] = 0; } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { if ( eval != null && eval.isIndel() ) { if ( eval.isInsertion() ) insertions++; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/NeighborDistanceAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/NeighborDistanceAnalysis.java index 02c4e5e8e..213722059 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/NeighborDistanceAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/NeighborDistanceAnalysis.java @@ -3,15 +3,13 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.IntervalRod; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.GenomeLoc; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.io.PrintStream; -import java.io.File; -import java.io.FileNotFoundException; /** * The Broad Institute @@ -36,7 +34,7 @@ public class NeighborDistanceAnalysis extends ViolationVariantAnalysis implement neighborWiseDistances = new ArrayList(); } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { String r = null; if ( eval != null && eval.isSNP() ) { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PopulationAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PopulationAnalysis.java index d479f94a6..5e44df52b 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PopulationAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PopulationAnalysis.java @@ -1,13 +1,5 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; -import org.broadinstitute.sting.gatk.refdata.AllelicVariant; -import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; - -import java.io.PrintStream; -import java.util.List; - - /** * The Broad Institute * SOFTWARE COPYRIGHT NOTICE AGREEMENT diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/TransitionTranversionAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/TransitionTranversionAnalysis.java index 4c529caba..09a338058 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/TransitionTranversionAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/TransitionTranversionAnalysis.java @@ -2,10 +2,9 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.BaseUtils; -import java.io.PrintStream; import java.util.ArrayList; import java.util.List; @@ -26,7 +25,7 @@ public class TransitionTranversionAnalysis extends BasicVariantAnalysis implemen super("transitions_transversions"); } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { if ( eval != null && eval.isSNP() ) { char refBase = eval.getRefSnpFWD(); char altBase = eval.getAltSnpFWD(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantAnalysis.java index a8b25edaf..b4625a1e3 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantAnalysis.java @@ -2,7 +2,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import java.io.PrintStream; import java.util.List; @@ -23,7 +23,7 @@ public interface VariantAnalysis { public PrintStream getCallPrintStream(); public List getParams(); public void initialize(VariantEvalWalker master, PrintStream out, String filename); - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context); + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context); public void finalize(long nSites); public List done(); } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantCounter.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantCounter.java index d0a32708c..2db24fc06 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantCounter.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantCounter.java @@ -2,9 +2,8 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; -import java.io.PrintStream; import java.util.List; import java.util.ArrayList; @@ -26,7 +25,7 @@ public class VariantCounter extends BasicVariantAnalysis implements GenotypeAnal super("variant_counts"); } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { nSNPs += eval == null ? 0 : 1; return null; } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java index 11a9bab79..0124b5e47 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java @@ -2,7 +2,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import java.util.List; import java.util.ArrayList; @@ -48,7 +48,7 @@ public class VariantDBCoverage extends BasicVariantAnalysis implements GenotypeA return nOverlappingSites() / (1.0 * nEvalSites()); } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { // There are four cases here: AllelicVariant dbsnp = (AllelicVariant)tracker.lookup(dbName, null); inc(dbsnp != null, eval != null); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java index ec68f1c32..29f5c4d2b 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.SNPCallFromGenotypes; @@ -148,7 +149,7 @@ public class VariantEvalWalker extends RefWalker { } } - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { nSites++; // Iterate over each analysis, and update it @@ -166,13 +167,13 @@ public class VariantEvalWalker extends RefWalker { } // update stats about all of the SNPs - updateAnalysisSet(ALL_SNPS, eval, tracker, ref, context); + updateAnalysisSet(ALL_SNPS, eval, tracker, ref.getBase(), context); // update the known / novel set by checking whether the knownSNPDBName track has an entry here if ( eval != null ) { AllelicVariant dbsnp = (AllelicVariant)tracker.lookup(knownSNPDBName, null); String noveltySet = dbsnp == null ? NOVEL_SNPS : KNOWN_SNPS; - updateAnalysisSet(noveltySet, eval, tracker, ref, context); + updateAnalysisSet(noveltySet, eval, tracker, ref.getBase(), context); } if ( eval instanceof SNPCallFromGenotypes ) { @@ -180,7 +181,7 @@ public class VariantEvalWalker extends RefWalker { int nVarGenotypes = call.nHetGenotypes() + call.nHomVarGenotypes(); //System.out.printf("%d variant genotypes at %s%n", nVarGenotypes, calls); final String s = nVarGenotypes == 1 ? SINGLETON_SNPS : TWOHIT_SNPS; - updateAnalysisSet(s, eval, tracker, ref, context); + updateAnalysisSet(s, eval, tracker, ref.getBase(), context); } return 1; @@ -188,7 +189,7 @@ public class VariantEvalWalker extends RefWalker { public void updateAnalysisSet(final String analysisSetName, AllelicVariant eval, - RefMetaDataTracker tracker, char ref, LocusContext context) { + RefMetaDataTracker tracker, char ref, AlignmentContext context) { // Iterate over each analysis, and update it for ( VariantAnalysis analysis : getAnalysisSet(analysisSetName) ) { String s = analysis.update(eval, tracker, ref, context); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantMatcher.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantMatcher.java index 14d280d63..d1eab6eb8 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantMatcher.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantMatcher.java @@ -2,12 +2,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; import org.broadinstitute.sting.gatk.refdata.AllelicVariant; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.LocusContext; - -import java.io.PrintStream; -import java.util.List; -import java.util.Arrays; -import java.util.ArrayList; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; /** * The Broad Institute @@ -27,7 +22,7 @@ public class VariantMatcher extends BasicVariantAnalysis implements GenotypeAnal dbName = name; } - public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, LocusContext context) { + public String update(AllelicVariant eval, RefMetaDataTracker tracker, char ref, AlignmentContext context) { String r = null; AllelicVariant db = (AllelicVariant)tracker.lookup(dbName, null); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ViolationVariantAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ViolationVariantAnalysis.java index 479efa4b5..9354b817b 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ViolationVariantAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ViolationVariantAnalysis.java @@ -25,15 +25,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.varianteval; -import org.broadinstitute.sting.gatk.refdata.AllelicVariant; -import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.refdata.IntervalRod; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.utils.GenomeLoc; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import java.io.PrintStream; import java.io.File; import java.io.FileNotFoundException; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/ClusteredSNPFilterWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/ClusteredSNPFilterWalker.java index 69938b12f..db1879393 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/ClusteredSNPFilterWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/ClusteredSNPFilterWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.rodVariants; import org.broadinstitute.sting.gatk.walkers.DataSource; @@ -65,7 +66,7 @@ public class ClusteredSNPFilterWalker extends RefWalker { * @param context the context for the given locus * @return 1 if the locus was successfully processed, 0 if otherwise */ - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { rodVariants variant = (rodVariants)tracker.lookup("variant", null); if (variant != null ) { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFBinomialStrand.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFBinomialStrand.java index 8a20ba58a..8e1a9f7e8 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFBinomialStrand.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFBinomialStrand.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.MathUtils; import org.broadinstitute.sting.utils.ReadBackedPileup; @@ -18,7 +18,7 @@ public class IVFBinomialStrand implements IndependentVariantFeature { } } - public void compute(char ref, LocusContext context) { + public void compute(char ref, AlignmentContext context) { likelihoods = new double[10]; ReadBackedPileup pileup = new ReadBackedPileup(ref, context); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFNull.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFNull.java index d859b81cf..3986ae35c 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFNull.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFNull.java @@ -1,11 +1,11 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; public class IVFNull implements IndependentVariantFeature { public void initialize(String arguments) {} - public void compute(char ref, LocusContext context) { + public void compute(char ref, AlignmentContext context) { } public double[] getLikelihoods() { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFPrimaryBases.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFPrimaryBases.java index ef12fc5bb..1f7d07826 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFPrimaryBases.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFPrimaryBases.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.MathUtils; import org.broadinstitute.sting.utils.ReadBackedPileup; @@ -33,7 +33,7 @@ public class IVFPrimaryBases implements IndependentVariantFeature { * @param context the context for the given locus * @return a ten-element array of log-likelihood result of the feature applied to each genotype */ - public void compute(char ref, LocusContext context) { + public void compute(char ref, AlignmentContext context) { likelihoods = new double[10]; ReadBackedPileup pileup = new ReadBackedPileup(ref, context); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFSecondaryBases.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFSecondaryBases.java index 611f6a2b7..f39fe1a74 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFSecondaryBases.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IVFSecondaryBases.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.MathUtils; import org.broadinstitute.sting.utils.ReadBackedPileup; @@ -60,7 +60,7 @@ public class IVFSecondaryBases implements IndependentVariantFeature { * @param context the context for the given locus * @return a ten-element array of log-likelihood result of the feature applied to each genotype */ - public void compute(char ref, LocusContext context) { + public void compute(char ref, AlignmentContext context) { likelihoods = new double[10]; ReadBackedPileup pileup = new ReadBackedPileup(ref, context); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IndependentVariantFeature.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IndependentVariantFeature.java index 3943c6c46..01cd630c5 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IndependentVariantFeature.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/IndependentVariantFeature.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; /** * Interface for conditionally independent variant features. @@ -26,7 +26,7 @@ public interface IndependentVariantFeature { * @param ref the reference base * @param context the context for the given locus */ - public void compute(char ref, LocusContext context); + public void compute(char ref, AlignmentContext context); public double[] getLikelihoods(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/RatioFilter.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/RatioFilter.java index a4d4462fe..bd8089ce3 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/RatioFilter.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/RatioFilter.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.rodVariants; import org.broadinstitute.sting.gatk.refdata.TabularROD; import org.broadinstitute.sting.utils.*; @@ -13,8 +13,6 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; -import edu.mit.broad.picard.util.MathUtil; - class GenotypeFeatureData extends ArrayList { public enum Tail { LeftTailed, RightTailed, TwoTailed } @@ -257,7 +255,7 @@ public abstract class RatioFilter implements VariantExclusionCriterion { public boolean useZeroQualityReads() { return false; } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { boolean exclude = false; ReadBackedPileup pileup = new ReadBackedPileup(ref, context); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECAlleleBalance.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECAlleleBalance.java index d79ed723a..b18264000 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECAlleleBalance.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECAlleleBalance.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; import org.broadinstitute.sting.gatk.refdata.rodVariants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.ReadBackedPileup; import org.broadinstitute.sting.utils.Utils; import org.broadinstitute.sting.utils.Pair; @@ -58,7 +58,7 @@ public class VECAlleleBalance implements VariantExclusionCriterion { //extends return new Pair(major, minor); } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { ReadBackedPileup pileup = new ReadBackedPileup(ref, context); Pair counts = scoreVariant(ref, pileup, variant); int n = counts.first + counts.second; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECDepthOfCoverage.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECDepthOfCoverage.java index d3e8c8f9b..de2e564f7 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECDepthOfCoverage.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECDepthOfCoverage.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.rodVariants; /** @@ -22,7 +22,7 @@ public class VECDepthOfCoverage implements VariantExclusionCriterion { } } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { exclude = context.getReads().size() > maximum; depth = context.getReads().size(); } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECFisherStrand.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECFisherStrand.java index 7a1ba608b..3cb62e028 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECFisherStrand.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECFisherStrand.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.rodVariants; import org.broadinstitute.sting.utils.BaseUtils; import net.sf.samtools.SAMRecord; @@ -22,7 +22,7 @@ public class VECFisherStrand implements VariantExclusionCriterion { factorials.add(0.0); // add fact(0) } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { int allele1 = BaseUtils.simpleBaseToBaseIndex(variant.getBestGenotype().charAt(0)); int allele2 = BaseUtils.simpleBaseToBaseIndex(variant.getBestGenotype().charAt(1)); @@ -47,7 +47,7 @@ public class VECFisherStrand implements VariantExclusionCriterion { public boolean useZeroQualityReads() { return false; } - public boolean strandTest(char ref, LocusContext context, int allele1, int allele2, double threshold, StringBuffer out) { + public boolean strandTest(char ref, AlignmentContext context, int allele1, int allele2, double threshold, StringBuffer out) { int[][] table = getContingencyTable(context, allele1, allele2); if ( !variantIsHet(table) ) return false; @@ -185,7 +185,7 @@ public class VECFisherStrand implements VariantExclusionCriterion { * @param allele2 information for the called variant * @return a 2x2 contingency table */ - private static int[][] getContingencyTable(LocusContext context, int allele1, int allele2) { + private static int[][] getContingencyTable(AlignmentContext context, int allele1, int allele2) { int[][] table = new int[2][2]; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECHomopolymer.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECHomopolymer.java index 03e5aadbf..230cf8677 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECHomopolymer.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECHomopolymer.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.rodVariants; import org.broadinstitute.sting.utils.BaseUtils; import org.broadinstitute.sting.utils.fasta.IndexedFastaSequenceFile; @@ -54,7 +54,7 @@ public class VECHomopolymer implements VariantExclusionCriterion { return ""; } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { char[] geno = variant.getBestGenotype().toCharArray(); int[] genotype = {-1,-1}; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECLodThreshold.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECLodThreshold.java index c90595240..d0fee764f 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECLodThreshold.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECLodThreshold.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; import org.broadinstitute.sting.gatk.refdata.rodVariants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; public class VECLodThreshold implements VariantExclusionCriterion { private double lodThreshold = 5.0; @@ -14,7 +14,7 @@ public class VECLodThreshold implements VariantExclusionCriterion { } } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { lod = variant.getLodBtr(); exclude = lod < lodThreshold; } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECMappingQuality.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECMappingQuality.java index 021adaf7f..8ea872dba 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECMappingQuality.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECMappingQuality.java @@ -1,6 +1,6 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.rodVariants; import org.broadinstitute.sting.utils.MathUtils; import net.sf.samtools.SAMRecord; @@ -19,7 +19,7 @@ public class VECMappingQuality implements VariantExclusionCriterion { } } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { List reads = context.getReads(); int[] qualities = new int[reads.size()]; for (int i=0; i < reads.size(); i++) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECNull.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECNull.java index acb2f66df..2bf786913 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECNull.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECNull.java @@ -1,13 +1,13 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.rodVariants; public class VECNull implements VariantExclusionCriterion { public void initialize(String arguments) { } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { } public boolean isExcludable() { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECOnOffGenotypeRatio.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECOnOffGenotypeRatio.java index 89937470c..d48fbbf12 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECOnOffGenotypeRatio.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VECOnOffGenotypeRatio.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; import org.broadinstitute.sting.gatk.refdata.rodVariants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.utils.*; public class VECOnOffGenotypeRatio implements VariantExclusionCriterion { // extends RatioFilter { @@ -55,7 +55,7 @@ public class VECOnOffGenotypeRatio implements VariantExclusionCriterion { // ext return new Pair(on, off); } - public void compute(char ref, LocusContext context, rodVariants variant) { + public void compute(char ref, AlignmentContext context, rodVariants variant) { ReadBackedPileup pileup = new ReadBackedPileup(ref, context); Pair counts = scoreVariant(ref, pileup, variant); int n = counts.first + counts.second; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantExclusionCriterion.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantExclusionCriterion.java index 41220572d..3b6c95a5a 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantExclusionCriterion.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantExclusionCriterion.java @@ -1,12 +1,12 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.refdata.rodVariants; public interface VariantExclusionCriterion { public void initialize(String arguments); - public void compute(char ref, LocusContext context, rodVariants variant); + public void compute(char ref, AlignmentContext context, rodVariants variant); public boolean isExcludable(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantFiltrationWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantFiltrationWalker.java index 48e50ea74..1303d9341 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantFiltrationWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variants/VariantFiltrationWalker.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers.variants; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.utils.*; @@ -181,7 +182,7 @@ public class VariantFiltrationWalker extends LocusWalker { * @param context the context for the given locus * @return 1 if the locus was successfully processed, 0 if otherwise */ - public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) { + public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { rodVariants variant = (rodVariants) tracker.lookup("variant", null); rodGFF hapmapSite = null; @@ -193,7 +194,7 @@ public class VariantFiltrationWalker extends LocusWalker { } // Ignore places where we don't have a variant or where the reference base is ambiguous. - if (variant != null && (!TRUTH || hapmapSite != null) && BaseUtils.simpleBaseToBaseIndex(ref) != -1) { + if (variant != null && (!TRUTH || hapmapSite != null) && BaseUtils.simpleBaseToBaseIndex(ref.getBase()) != -1) { if (VERBOSE) { out.println("Original:\n " + variant); } if (LEARNING) { @@ -202,7 +203,7 @@ public class VariantFiltrationWalker extends LocusWalker { // Apply features that modify the likelihoods and LOD scores for ( IndependentVariantFeature ivf : requestedFeatures ) { - ivf.compute(ref, context); + ivf.compute(ref.getBase(), context); double[] weights = ivf.getLikelihoods(); @@ -220,10 +221,10 @@ public class VariantFiltrationWalker extends LocusWalker { // we need to provide an alternative context without mapping quality 0 reads // for those exclusion criterion that don't want them - LocusContext Q0freeContext = removeQ0reads(context); + AlignmentContext Q0freeContext = removeQ0reads(context); for ( VariantExclusionCriterion vec : requestedExclusions ) { - vec.compute(ref, (vec.useZeroQualityReads() ? context : Q0freeContext), variant); + vec.compute(ref.getBase(), (vec.useZeroQualityReads() ? context : Q0freeContext), variant); String exclusionClassName = rationalizeClassName(vec.getClass()); @@ -269,7 +270,7 @@ public class VariantFiltrationWalker extends LocusWalker { return 0; } - private LocusContext removeQ0reads(LocusContext context) { + private AlignmentContext removeQ0reads(AlignmentContext context) { // set up the variables List reads = context.getReads(); List offsets = context.getOffsets(); @@ -288,7 +289,7 @@ public class VariantFiltrationWalker extends LocusWalker { } } - return new LocusContext(context.getLocation(), Q0freeReads, Q0freeOffsets); + return new AlignmentContext(context.getLocation(), Q0freeReads, Q0freeOffsets); } /** diff --git a/java/src/org/broadinstitute/sting/utils/BasicPileup.java b/java/src/org/broadinstitute/sting/utils/BasicPileup.java index 972214a45..5d439a228 100755 --- a/java/src/org/broadinstitute/sting/utils/BasicPileup.java +++ b/java/src/org/broadinstitute/sting/utils/BasicPileup.java @@ -1,6 +1,5 @@ package org.broadinstitute.sting.utils; -import org.broadinstitute.sting.gatk.LocusContext; import net.sf.samtools.*; import java.util.List; diff --git a/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java b/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java index 31a374e0f..5ae37eb46 100755 --- a/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java +++ b/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java @@ -1,10 +1,9 @@ package org.broadinstitute.sting.utils; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import net.sf.samtools.SAMRecord; import java.util.List; -import java.util.ArrayList; /** * Created by IntelliJ IDEA. @@ -19,7 +18,7 @@ public class ReadBackedPileup extends BasicPileup { List reads; List offsets; - public ReadBackedPileup(char ref, LocusContext context ) { + public ReadBackedPileup(char ref, AlignmentContext context ) { this(context.getLocation(), ref, context.getReads(), context.getOffsets()); } diff --git a/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java b/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java index 87ab360af..d2d59c924 100644 --- a/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java +++ b/java/src/org/broadinstitute/sting/utils/sam/ArtificialReadsTraversal.java @@ -6,7 +6,7 @@ import org.broadinstitute.sting.gatk.walkers.Walker; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.datasources.shards.Shard; import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.apache.log4j.Logger; import net.sf.samtools.SAMRecord; @@ -103,8 +103,8 @@ public class ArtificialReadsTraversal extends TraversalEngine { // while we still have more reads for (SAMRecord read : iter) { - // our locus context - LocusContext locus = null; + // our alignment context + AlignmentContext alignment = null; // an array of characters that represent the reference char[] refSeq = null; @@ -118,7 +118,7 @@ public class ArtificialReadsTraversal extends TraversalEngine { sum = readWalker.reduce(x, sum); } - if (locus != null) { printProgress("loci", locus.getLocation()); } + if (alignment != null) { printProgress("loci", alignment.getLocation()); } } return sum; } diff --git a/java/test/org/broadinstitute/sting/gatk/datasources/providers/AllLocusViewTest.java b/java/test/org/broadinstitute/sting/gatk/datasources/providers/AllLocusViewTest.java index 394ce9c3b..f7a8d56d2 100755 --- a/java/test/org/broadinstitute/sting/gatk/datasources/providers/AllLocusViewTest.java +++ b/java/test/org/broadinstitute/sting/gatk/datasources/providers/AllLocusViewTest.java @@ -3,7 +3,7 @@ package org.broadinstitute.sting.gatk.datasources.providers; import org.junit.Assert; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.GenomeLocParser; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import net.sf.samtools.SAMRecord; import java.util.List; @@ -42,7 +42,7 @@ public class AllLocusViewTest extends LocusViewTemplate { for( long i = bounds.getStart(); i <= bounds.getStop(); i++ ) { GenomeLoc site = GenomeLocParser.createGenomeLoc("chr1",i); - LocusContext locusContext = allLocusView.next(); + AlignmentContext locusContext = allLocusView.next(); Assert.assertEquals("Locus context location is incorrect", site, locusContext.getLocation() ); int expectedReadsAtSite = 0; diff --git a/java/test/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusViewTest.java b/java/test/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusViewTest.java index d5fb19c53..fb10d2ae6 100755 --- a/java/test/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusViewTest.java +++ b/java/test/org/broadinstitute/sting/gatk/datasources/providers/CoveredLocusViewTest.java @@ -3,7 +3,7 @@ package org.broadinstitute.sting.gatk.datasources.providers; import org.junit.Assert; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.GenomeLocParser; -import org.broadinstitute.sting.gatk.LocusContext; +import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import net.sf.samtools.SAMRecord; import java.util.List; @@ -57,7 +57,7 @@ public class CoveredLocusViewTest extends LocusViewTemplate { Assert.assertTrue("Incorrect number of loci in view",coveredLocusView.hasNext()); - LocusContext locusContext = coveredLocusView.next(); + AlignmentContext locusContext = coveredLocusView.next(); Assert.assertEquals("Target locus context location is incorrect", site, locusContext.getLocation() ); Assert.assertEquals("Found wrong number of reads at site", expectedReadsAtSite, locusContext.getReads().size()); diff --git a/java/test/org/broadinstitute/sting/gatk/datasources/providers/LocusViewTemplate.java b/java/test/org/broadinstitute/sting/gatk/datasources/providers/LocusViewTemplate.java index e097e2eb8..c68980708 100755 --- a/java/test/org/broadinstitute/sting/gatk/datasources/providers/LocusViewTemplate.java +++ b/java/test/org/broadinstitute/sting/gatk/datasources/providers/LocusViewTemplate.java @@ -43,7 +43,7 @@ public abstract class LocusViewTemplate extends BaseTest { } @Test - public void emptyLocusContextTest() { + public void emptyAlignmentContextTest() { SAMRecordIterator iterator = new SAMRecordIterator(); GenomeLoc shardBounds = GenomeLocParser.createGenomeLoc("chr1",1,5);