diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/BAMFileStat.java b/java/src/org/broadinstitute/sting/gatk/datasources/BAMFileStat.java index 90d9a5fad..59f4208fa 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/BAMFileStat.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/BAMFileStat.java @@ -74,7 +74,7 @@ public class BAMFileStat extends CommandLineProgram { inspector.inspect(System.out,null,null); } - private class BAMFileIndexContentInspector extends PreloadedBAMFileIndex { + private class BAMFileIndexContentInspector extends CachingBAMFileIndex { public BAMFileIndexContentInspector(File bamFileIndex) { super(bamFileIndex); } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/shards/BAMFormatAwareShard.java b/java/src/org/broadinstitute/sting/gatk/datasources/shards/BAMFormatAwareShard.java index 23ee0fade..a6fa87fd3 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/shards/BAMFormatAwareShard.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/shards/BAMFormatAwareShard.java @@ -20,7 +20,7 @@ public interface BAMFormatAwareShard extends Shard { * Get the list of chunks delimiting this shard. * @return a list of chunks that contain data for this shard. */ - public Map getFileSpans(); + public Map getFileSpans(); /** * Returns true if this shard is meant to buffer reads, rather diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShard.java b/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShard.java index 36db37d68..a52c466bf 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShard.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShard.java @@ -26,7 +26,7 @@ public class BlockDelimitedReadShard extends ReadShard implements BAMFormatAware /** * The data backing the next chunks to deliver to the traversal engine. */ - private final Map fileSpans; + private final Map fileSpans; /** * The reads making up this shard. @@ -44,7 +44,7 @@ public class BlockDelimitedReadShard extends ReadShard implements BAMFormatAware */ private final Shard.ShardType shardType; - public BlockDelimitedReadShard(Reads sourceInfo, Map fileSpans, SamRecordFilter filter, Shard.ShardType shardType) { + public BlockDelimitedReadShard(Reads sourceInfo, Map fileSpans, SamRecordFilter filter, Shard.ShardType shardType) { this.sourceInfo = sourceInfo; this.fileSpans = fileSpans; this.filter = filter; @@ -109,7 +109,7 @@ public class BlockDelimitedReadShard extends ReadShard implements BAMFormatAware * @return a list of chunks that contain data for this shard. */ @Override - public Map getFileSpans() { + public Map getFileSpans() { return Collections.unmodifiableMap(fileSpans); } @@ -128,7 +128,7 @@ public class BlockDelimitedReadShard extends ReadShard implements BAMFormatAware @Override public String toString() { StringBuilder sb = new StringBuilder(); - for(Map.Entry entry: fileSpans.entrySet()) { + for(Map.Entry entry: fileSpans.entrySet()) { sb.append(entry.getKey()); sb.append(": "); sb.append(entry.getValue()); diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShardStrategy.java b/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShardStrategy.java index d50923055..66b18502e 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShardStrategy.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/shards/BlockDelimitedReadShardStrategy.java @@ -55,7 +55,7 @@ public class BlockDelimitedReadShardStrategy extends ReadShardStrategy { /** * Ending position of the last shard in the file. */ - private Map position; + private Map position; /** * Create a new read shard strategy, loading read shards from the given BAM file. @@ -103,18 +103,18 @@ public class BlockDelimitedReadShardStrategy extends ReadShardStrategy { } public void advance() { - Map shardPosition = new HashMap(); + Map shardPosition = new HashMap(); nextShard = null; SamRecordFilter filter = null; if(locations != null) { - Map selectedReaders = new HashMap(); + Map selectedReaders = new HashMap(); while(selectedReaders.size() == 0 && currentFilePointer != null) { shardPosition = currentFilePointer.fileSpans; for(SAMReaderID id: shardPosition.keySet()) { - BAMFileSpan fileSpans = shardPosition.get(id).removeBefore(position.get(id)); - if(!fileSpans.isEmpty()) - selectedReaders.put(id,fileSpans); + SAMFileSpan fileSpan = shardPosition.get(id).removeContentsBefore(position.get(id)); + if(!fileSpan.isEmpty()) + selectedReaders.put(id,fileSpan); } if(selectedReaders.size() > 0) { diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShard.java b/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShard.java index 5d7ff317a..8719b8e6c 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShard.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShard.java @@ -5,7 +5,7 @@ import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.gatk.iterators.StingSAMIterator; import org.broadinstitute.sting.gatk.datasources.simpleDataSources.SAMReaderID; import net.sf.samtools.SAMRecord; -import net.sf.samtools.BAMFileSpan; +import net.sf.samtools.SAMFileSpan; import net.sf.picard.filter.SamRecordFilter; import java.util.List; @@ -44,7 +44,7 @@ public class IndexDelimitedLocusShard extends LocusShard implements BAMFormatAwa /** * A list of the chunks associated with this shard. */ - private final Map fileSpans; + private final Map fileSpans; /** * An IndexDelimitedLocusShard can be used either for LOCUS or LOCUS_INTERVAL shard types. @@ -58,7 +58,7 @@ public class IndexDelimitedLocusShard extends LocusShard implements BAMFormatAwa * @param fileSpans File spans associated with that interval. * @param shardType Type of the shard; must be either LOCUS or LOCUS_INTERVAL. */ - IndexDelimitedLocusShard(List intervals, Map fileSpans, ShardType shardType) { + IndexDelimitedLocusShard(List intervals, Map fileSpans, ShardType shardType) { super(intervals); this.fileSpans = fileSpans; if(shardType != ShardType.LOCUS && shardType != ShardType.LOCUS_INTERVAL) @@ -71,7 +71,7 @@ public class IndexDelimitedLocusShard extends LocusShard implements BAMFormatAwa * @return A list of the file spans to use when retrieving locus data. */ @Override - public Map getFileSpans() { + public Map getFileSpans() { return fileSpans; } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShardStrategy.java b/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShardStrategy.java index 64fdc8457..2504024d5 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShardStrategy.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/shards/IndexDelimitedLocusShardStrategy.java @@ -13,7 +13,7 @@ import java.util.*; import net.sf.samtools.SAMFileHeader; import net.sf.samtools.SAMSequenceRecord; -import net.sf.samtools.BAMFileSpan; +import net.sf.samtools.SAMFileSpan; /* * Copyright (c) 2009 The Broad Institute @@ -126,7 +126,7 @@ public class IndexDelimitedLocusShardStrategy implements ShardStrategy { */ public IndexDelimitedLocusShard next() { FilePointer nextFilePointer = filePointerIterator.next(); - Map fileSpansBounding = nextFilePointer.fileSpans != null ? nextFilePointer.fileSpans : null; + Map fileSpansBounding = nextFilePointer.fileSpans != null ? nextFilePointer.fileSpans : null; return new IndexDelimitedLocusShard(nextFilePointer.locations,fileSpansBounding,Shard.ShardType.LOCUS_INTERVAL); } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/shards/IntervalSharder.java b/java/src/org/broadinstitute/sting/gatk/datasources/shards/IntervalSharder.java index 4dba5cdf2..16b6934da 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/shards/IntervalSharder.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/shards/IntervalSharder.java @@ -75,11 +75,11 @@ public class IntervalSharder { FilePointer lastFilePointer = null; BAMOverlap lastBAMOverlap = null; - Map readerToIndexMap = new HashMap(); + Map readerToIndexMap = new HashMap(); BinMergingIterator binMerger = new BinMergingIterator(); for(SAMReaderID id: dataSource.getReaderIDs()) { final SAMSequenceRecord referenceSequence = dataSource.getHeader(id).getSequence(contig); - final PreloadedBAMFileIndex index = dataSource.getIndex(id); + final CachingBAMFileIndex index = dataSource.getIndex(id); binMerger.addReader(id, index, referenceSequence.getSequenceIndex(), @@ -170,7 +170,7 @@ public class IntervalSharder { // Lookup the locations for every file pointer in the index. for(SAMReaderID id: dataSource.getReaderIDs()) { - PreloadedBAMFileIndex index = readerToIndexMap.get(id); + CachingBAMFileIndex index = readerToIndexMap.get(id); for(FilePointer filePointer: filePointers) filePointer.addFileSpans(id,index.getChunksOverlapping(filePointer.overlap.getBin(id))); index.close(); @@ -183,7 +183,7 @@ public class IntervalSharder { private PriorityQueue binQueue = new PriorityQueue(); private Queue pendingOverlaps = new LinkedList(); - public void addReader(final SAMReaderID id, final PreloadedBAMFileIndex index, final int referenceSequence, Iterator bins) { + public void addReader(final SAMReaderID id, final CachingBAMFileIndex index, final int referenceSequence, Iterator bins) { binQueue.add(new BinQueueState(id,index,referenceSequence,new LowestLevelBinFilteringIterator(index,bins))); } @@ -276,11 +276,11 @@ public class IntervalSharder { private class ReaderBin { public final SAMReaderID id; - public final PreloadedBAMFileIndex index; + public final CachingBAMFileIndex index; public final int referenceSequence; public final Bin bin; - public ReaderBin(final SAMReaderID id, final PreloadedBAMFileIndex index, final int referenceSequence, final Bin bin) { + public ReaderBin(final SAMReaderID id, final CachingBAMFileIndex index, final int referenceSequence, final Bin bin) { this.id = id; this.index = index; this.referenceSequence = referenceSequence; @@ -298,11 +298,11 @@ public class IntervalSharder { private class BinQueueState implements Comparable { public final SAMReaderID id; - public final PreloadedBAMFileIndex index; + public final CachingBAMFileIndex index; public final int referenceSequence; public final PeekableIterator bins; - public BinQueueState(final SAMReaderID id, final PreloadedBAMFileIndex index, final int referenceSequence, final Iterator bins) { + public BinQueueState(final SAMReaderID id, final CachingBAMFileIndex index, final int referenceSequence, final Iterator bins) { this.id = id; this.index = index; this.referenceSequence = referenceSequence; @@ -334,12 +334,12 @@ public class IntervalSharder { * Filters out bins not at the lowest level in the tree. */ private static class LowestLevelBinFilteringIterator implements Iterator { - private PreloadedBAMFileIndex index; + private CachingBAMFileIndex index; private Iterator wrappedIterator; private Bin nextBin; - public LowestLevelBinFilteringIterator(final PreloadedBAMFileIndex index, Iterator iterator) { + public LowestLevelBinFilteringIterator(final CachingBAMFileIndex index, Iterator iterator) { this.index = index; this.wrappedIterator = iterator; advance(); @@ -372,7 +372,7 @@ public class IntervalSharder { * Represents a small section of a BAM file, and every associated interval. */ class FilePointer { - protected final Map fileSpans = new HashMap(); + protected final Map fileSpans = new HashMap(); protected final String referenceSequence; protected final BAMOverlap overlap; protected final List locations; @@ -393,7 +393,7 @@ class FilePointer { locations.add(location); } - public void addFileSpans(SAMReaderID id, BAMFileSpan fileSpan) { + public void addFileSpans(SAMReaderID id, SAMFileSpan fileSpan) { this.fileSpans.put(id,fileSpan); } } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/BlockDrivenSAMDataSource.java b/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/BlockDrivenSAMDataSource.java index f25bcf357..cff278441 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/BlockDrivenSAMDataSource.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/BlockDrivenSAMDataSource.java @@ -53,7 +53,7 @@ public class BlockDrivenSAMDataSource extends SAMDataSource { /** * How far along is each reader? */ - private final Map readerPositions = new HashMap(); + private final Map readerPositions = new HashMap(); /** * Create a new block-aware SAM data source given the supplied read metadata. @@ -129,16 +129,16 @@ public class BlockDrivenSAMDataSource extends SAMDataSource { * @param id Id of the reader. * @return The index. Will preload the index if necessary. */ - public PreloadedBAMFileIndex getIndex(final SAMReaderID id) { + public CachingBAMFileIndex getIndex(final SAMReaderID id) { SAMReaders readers = resourcePool.getReadersWithoutLocking(); - return readers.getReader(id).getIndex(PreloadedBAMFileIndex.class); + return readers.getReader(id).getIndex(CachingBAMFileIndex.class); } /** * Retrieves the current position within the BAM file. * @return A mapping of reader to current position. */ - public Map getCurrentPosition() { + public Map getCurrentPosition() { return readerPositions; } @@ -182,7 +182,7 @@ public class BlockDrivenSAMDataSource extends SAMDataSource { * @param read The read to add to the shard. */ private void addReadToBufferingShard(BAMFormatAwareShard shard,SAMReaderID id,SAMRecord read) { - BAMFileSpan endChunk = read.getFilePointer().getFilePointerFollowing(); + SAMFileSpan endChunk = read.getFilePointer().getContentsFollowing(); shard.addRead(read); readerPositions.put(id,endChunk); } @@ -207,7 +207,7 @@ public class BlockDrivenSAMDataSource extends SAMDataSource { */ private void initializeReaderPositions(SAMReaders readers) { for(SAMReaderID id: getReaderIDs()) - readerPositions.put(id,readers.getReader(id).getStartOfDataSegment()); + readerPositions.put(id,readers.getReader(id).getFilePointerSpanningReads()); } public StingSAMIterator seek(Shard shard) { @@ -386,7 +386,7 @@ public class BlockDrivenSAMDataSource extends SAMDataSource { */ public SAMReaders(Reads sourceInfo) { for(File readsFile: sourceInfo.getReadsFiles()) { - SAMFileReader reader = new SAMFileReader(readsFile,true); + SAMFileReader reader = new SAMFileReader(readsFile,CachingBAMFileIndex.class,true); reader.setValidationStringency(sourceInfo.getValidationStringency()); // If no read group is present, hallucinate one. diff --git a/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java b/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java index 0dd5a90f2..f4db442ae 100755 --- a/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java +++ b/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java @@ -341,5 +341,5 @@ public class GATKSAMRecord extends SAMRecord { public String toString() { return mRecord.toString(); } - public BAMFileSpan getFilePointer() { return mRecord.getFilePointer(); } + public SAMFileSpan getFilePointer() { return mRecord.getFilePointer(); } } diff --git a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-5.jar b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.jar similarity index 77% rename from settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-5.jar rename to settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.jar index 840bb9824..f6aa3879f 100644 Binary files a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-5.jar and b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.jar differ diff --git a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-5.xml b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.xml similarity index 55% rename from settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-5.xml rename to settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.xml index c358868fb..9142b18c2 100644 --- a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-5.xml +++ b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.xml @@ -1,3 +1,3 @@ - + diff --git a/settings/repository/net.sf/picard-1.16.365-sharding.jar b/settings/repository/net.sf/picard-1.16.366-sharding.jar similarity index 96% rename from settings/repository/net.sf/picard-1.16.365-sharding.jar rename to settings/repository/net.sf/picard-1.16.366-sharding.jar index 654a6bd76..3c806124e 100644 Binary files a/settings/repository/net.sf/picard-1.16.365-sharding.jar and b/settings/repository/net.sf/picard-1.16.366-sharding.jar differ diff --git a/settings/repository/net.sf/picard-1.16.365-sharding.xml b/settings/repository/net.sf/picard-1.16.366-sharding.xml similarity index 76% rename from settings/repository/net.sf/picard-1.16.365-sharding.xml rename to settings/repository/net.sf/picard-1.16.366-sharding.xml index f3f1d873c..6ad217e69 100644 --- a/settings/repository/net.sf/picard-1.16.365-sharding.xml +++ b/settings/repository/net.sf/picard-1.16.366-sharding.xml @@ -1,3 +1,3 @@ - + diff --git a/settings/repository/net.sf/sam-1.16.365-sharding.jar b/settings/repository/net.sf/sam-1.16.366-sharding.jar similarity index 86% rename from settings/repository/net.sf/sam-1.16.365-sharding.jar rename to settings/repository/net.sf/sam-1.16.366-sharding.jar index 15571057f..acdf6f809 100644 Binary files a/settings/repository/net.sf/sam-1.16.365-sharding.jar and b/settings/repository/net.sf/sam-1.16.366-sharding.jar differ diff --git a/settings/repository/net.sf/sam-1.16.365-sharding.xml b/settings/repository/net.sf/sam-1.16.366-sharding.xml similarity index 52% rename from settings/repository/net.sf/sam-1.16.365-sharding.xml rename to settings/repository/net.sf/sam-1.16.366-sharding.xml index f9aa3ca37..0a2878262 100644 --- a/settings/repository/net.sf/sam-1.16.365-sharding.xml +++ b/settings/repository/net.sf/sam-1.16.366-sharding.xml @@ -1,3 +1,3 @@ - +