LocusIterator iterated through LocusContexts, which was fine until now when we need something

that iterates through loci (GenomeLocs).  Rename LocusIterator to LocusContextIterator.


git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@662 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
hanna 2009-05-12 13:54:57 +00:00
parent 608948210c
commit ee9077fc69
5 changed files with 16 additions and 24 deletions

View File

@ -1,13 +1,11 @@
package org.broadinstitute.sting.gatk.dataSources.providers;
import edu.mit.broad.picard.filter.FilteringIterator;
import edu.mit.broad.picard.filter.SamRecordFilter;
import net.sf.samtools.SAMRecord;
import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIteratorByHanger;
import org.broadinstitute.sting.gatk.traversals.TraversalStatistics;
import org.broadinstitute.sting.gatk.iterators.LocusContextIterator;
import org.broadinstitute.sting.gatk.iterators.LocusContextIteratorByHanger;
import org.broadinstitute.sting.gatk.traversals.TraversalEngine;
import org.broadinstitute.sting.utils.GenomeLoc;
@ -26,14 +24,14 @@ public class LocusContextProvider {
// What's the last locus accessed? Used for sanity checking.
private GenomeLoc lastLoc = null;
private LocusIterator loci;
private LocusContextIterator loci;
private LocusContext locus;
protected static Logger logger = Logger.getLogger(LocusContextProvider.class);
public LocusContextProvider( Iterator<SAMRecord> reads ) {
this.reads = new FilteringIterator(reads, new TraversalEngine.locusStreamFilterFunc());
// prepare the iterator by loci from reads
loci = new LocusIteratorByHanger(this.reads);
loci = new LocusContextIteratorByHanger(this.reads);
}
public LocusContext getLocusContext( GenomeLoc loc ) {
@ -56,7 +54,7 @@ public class LocusContextProvider {
return locusContext;
}
private LocusContext advanceReadsToLoc(LocusIterator locusIter, GenomeLoc target) {
private LocusContext advanceReadsToLoc(LocusContextIterator locusIter, GenomeLoc target) {
if ( ! locusIter.hasNext() )
return null;

View File

@ -9,7 +9,7 @@ import org.broadinstitute.sting.gatk.LocusContext;
/**
* Iterator that traverses a SAM File, accumulating information on a per-locus basis
*/
public abstract class LocusIterator implements Iterable<LocusContext>, CloseableIterator<LocusContext> {
public abstract class LocusContextIterator implements Iterable<LocusContext>, CloseableIterator<LocusContext> {
// -----------------------------------------------------------------------------------------------------------------
//
// constructors and other basic operations

View File

@ -1,29 +1,24 @@
package org.broadinstitute.sting.gatk.iterators;
import net.sf.samtools.util.CloseableIterator;
import net.sf.samtools.util.RuntimeIOException;
import net.sf.samtools.SAMRecord;
import net.sf.samtools.AlignmentBlock;
import org.broadinstitute.sting.utils.*;
import java.util.List;
import java.util.Iterator;
import org.broadinstitute.sting.utils.RefHanger;
import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
import org.broadinstitute.sting.gatk.LocusContext;
import org.apache.log4j.Logger;
/**
* Iterator that traverses a SAM File, accumulating information on a per-locus basis
*/
public class LocusIteratorByHanger extends LocusIterator {
public class LocusContextIteratorByHanger extends LocusContextIterator {
/**
* our log, which we want to capture anything from this class
*/
private static Logger logger = Logger.getLogger(LocusIteratorByHanger.class);
private static Logger logger = Logger.getLogger(LocusContextIteratorByHanger.class);
// -----------------------------------------------------------------------------------------------------------------
//
@ -43,7 +38,7 @@ public class LocusIteratorByHanger extends LocusIterator {
// constructors and other basic operations
//
// -----------------------------------------------------------------------------------------------------------------
public LocusIteratorByHanger(final Iterator<SAMRecord> samIterator) {
public LocusContextIteratorByHanger(final Iterator<SAMRecord> samIterator) {
this.it = new PushbackIterator<SAMRecord>(samIterator);
}

View File

@ -7,14 +7,13 @@ import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.iterators.ReferenceIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIteratorByHanger;
import org.broadinstitute.sting.gatk.iterators.LocusContextIterator;
import org.broadinstitute.sting.gatk.iterators.LocusContextIteratorByHanger;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.Utils;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
import java.io.File;
import net.sf.samtools.SAMRecord;
@ -109,7 +108,7 @@ public class TraverseByLoci extends TraversalEngine {
FilteringIterator filterIter = new FilteringIterator(readIter, new locusStreamFilterFunc());
boolean done = false;
LocusIterator iter = new LocusIteratorByHanger(filterIter);
LocusContextIterator iter = new LocusContextIteratorByHanger(filterIter);
while (iter.hasNext() && !done) {
TraversalStatistics.nRecords++;

View File

@ -3,7 +3,7 @@ package org.broadinstitute.sting.playground.gatk.iterators;
import net.sf.samtools.util.CloseableIterator;
import net.sf.samtools.SAMRecord;
import org.broadinstitute.sting.gatk.iterators.PushbackIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
import org.broadinstitute.sting.gatk.iterators.LocusContextIterator;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.Predicate;
@ -19,7 +19,7 @@ import edu.mit.broad.picard.filter.FilteringIterator;
/**
* Iterator that traverses a SAM File, accumulating information on a per-locus basis
*/
public class SingleLocusIterator extends LocusIterator {
public class SingleLocusContextIterator extends LocusContextIterator {
// -----------------------------------------------------------------------------------------------------------------
//
@ -37,7 +37,7 @@ public class SingleLocusIterator extends LocusIterator {
// constructors and other basic operations
//
// -----------------------------------------------------------------------------------------------------------------
public SingleLocusIterator(final CloseableIterator<SAMRecord> samIterator) {
public SingleLocusContextIterator(final CloseableIterator<SAMRecord> samIterator) {
FilteringIterator filterIter = new FilteringIterator(samIterator, new locusStreamFilterFunc());
this.it = new PushbackIterator<SAMRecord>(filterIter);
@ -105,7 +105,7 @@ public class SingleLocusIterator extends LocusIterator {
read.getReferenceName().equals(contig); // should be index for efficiency
}
}
Predicate KeepReadP = new SingleLocusIterator.KeepReadPFunc();
Predicate KeepReadP = new SingleLocusContextIterator.KeepReadPFunc();
private void calcOffsetsOfWindow(final int position) {
offsets.clear();