From 608a66e6ab1b5a29f0b44b244f6aaf3892b66428 Mon Sep 17 00:00:00 2001 From: hanna Date: Fri, 10 Apr 2009 22:14:06 +0000 Subject: [PATCH] TbyLocibyRef previously didn't seem to support traversals with no interval specified. Put in a temporary fix until the threaded approach is in place. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@363 348d0f76-0448-11de-a6fe-93d51630548a --- .../traversals/TraverseByLociByReference.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseByLociByReference.java b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseByLociByReference.java index de9266e32..5d5075d3f 100644 --- a/java/src/org/broadinstitute/sting/gatk/traversals/TraverseByLociByReference.java +++ b/java/src/org/broadinstitute/sting/gatk/traversals/TraverseByLociByReference.java @@ -35,8 +35,8 @@ public class TraverseByLociByReference extends TraverseByLoci { } public T traverse(Walker walker, ArrayList locations) { - if ( locations.isEmpty() ) - Utils.scareUser("Requested all locations be processed without providing locations to be processed!"); + //if ( locations.isEmpty() ) + // Utils.scareUser("Requested all locations be processed without providing locations to be processed!"); return super.traverse(walker, locations); } @@ -54,11 +54,21 @@ public class TraverseByLociByReference extends TraverseByLoci { FilteringIterator filterIter = new FilteringIterator(readIter, new locusStreamFilterFunc()); LocusIterator locusIter = new LocusIteratorByHanger(filterIter); // prepare the iterator by loci from reads - ReferenceIterator refSite = refIter.seekForward(interval); // jump to the first reference site - LocusContext locusFromReads = advanceReadsToLoc(locusIter, interval); // load up the next locus by reads + + ReferenceIterator refSite = null; + LocusContext locusFromReads = null; + + if( interval != null ) { + refSite = refIter.seekForward(interval); // jump to the first reference site + locusFromReads = advanceReadsToLoc(locusIter, interval); // load up the next locus by reads + } + else { + refSite = refIter.next(); + locusFromReads = locusIter.next(); + } // We keep processing while the next reference location is within the interval - while ( interval.containsP(refSite.getLocation()) && ! done ) { + while ( (interval == null || interval.containsP(refSite.getLocation())) && ! done ) { logger.debug(String.format(" LocusFromReads is %s", locusFromReads == null ? null : locusFromReads.getLocation())); TraversalStatistics.nRecords++;