diff --git a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java index 1dab93433..bf8a543e8 100755 --- a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java +++ b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseReads.java @@ -3,6 +3,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.WalkerManager; import org.broadinstitute.sting.gatk.datasources.providers.ShardDataProvider; import org.broadinstitute.sting.gatk.datasources.providers.ReadView; import org.broadinstitute.sting.gatk.datasources.providers.ReadReferenceView; @@ -13,6 +14,7 @@ import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.walkers.Walker; +import org.broadinstitute.sting.gatk.walkers.DataSource; import org.broadinstitute.sting.utils.GenomeLoc; import java.io.File; @@ -103,7 +105,8 @@ public class TraverseReads extends TraversalEngine { throw new IllegalArgumentException("Unable to traverse reads; no read data is available."); ReadWalker readWalker = (ReadWalker) walker; - + boolean needsReferenceBasesP = WalkerManager.isRequired(walker, DataSource.REFERENCE_BASES); + ReadView reads = new ReadView(dataProvider); ReadReferenceView reference = new ReadReferenceView(dataProvider); @@ -116,7 +119,7 @@ public class TraverseReads extends TraversalEngine { // an array of characters that represent the reference char[] refSeq = null; - if (read.getReferenceIndex() >= 0) { + if (needsReferenceBasesP && read.getReferenceIndex() >= 0) { // get the genome loc from the read GenomeLoc site = new GenomeLoc(read); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java index 291a929f1..62e3ebfa2 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java @@ -3,6 +3,7 @@ package org.broadinstitute.sting.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.LocusContext; +@Requires({DataSource.READS, DataSource.REFERENCE}) public class CountReadsWalker extends ReadWalker { public Integer map(char[] ref, SAMRecord read) { //System.out.println(read.format()); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/DataSource.java b/java/src/org/broadinstitute/sting/gatk/walkers/DataSource.java index e60fe3d62..0f130c3c9 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/DataSource.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/DataSource.java @@ -17,5 +17,6 @@ package org.broadinstitute.sting.gatk.walkers; */ public enum DataSource { READS, - REFERENCE + REFERENCE, + REFERENCE_BASES // Do I actually need the reference bases passed to the walker? } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java index b4fdfaf8d..799a2c569 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java @@ -11,7 +11,7 @@ import org.broadinstitute.sting.gatk.LocusContext; * To change this template use File | Settings | File Templates. */ @By(DataSource.READS) -@Requires({DataSource.READS,DataSource.REFERENCE}) +@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) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java index 2d4f85e31..20073dfd2 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWindowWalker.java @@ -12,7 +12,7 @@ import net.sf.samtools.SAMRecord; * Time: 2:52:28 PM * To change this template use File | Settings | File Templates. */ -@Requires({DataSource.READS,DataSource.REFERENCE}) +@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) { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java index 242a294d5..f3dab5f8d 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java @@ -43,6 +43,7 @@ import java.util.Random; * reads to a specified BAM file * The walker now also optionally filters reads based on command line options. */ +@Requires({DataSource.READS, DataSource.REFERENCE}) public class PrintReadsWalker extends ReadWalker { /** an optional argument to dump the reads out to a BAM file */ diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java index ec955ae17..873fe45d8 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java @@ -9,7 +9,7 @@ import net.sf.samtools.SAMRecord; * Time: 2:52:28 PM * To change this template use File | Settings | File Templates. */ -@Requires(DataSource.READS) +@Requires({DataSource.READS, DataSource.REFERENCE_BASES}) public abstract class ReadWalker extends Walker { public boolean requiresOrderedReads() { return false; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/RefWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/RefWalker.java index 779ac4c37..1d3debb48 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/RefWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/RefWalker.java @@ -8,7 +8,7 @@ package org.broadinstitute.sting.gatk.walkers; * To change this template use File | Settings | File Templates. */ @By(DataSource.REFERENCE) -@Requires(DataSource.REFERENCE) +@Requires({DataSource.REFERENCE, DataSource.REFERENCE_BASES}) @Allows(DataSource.REFERENCE) public abstract class RefWalker extends LocusWalker { } \ No newline at end of file