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 cff278441..abe10b0c5 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/BlockDrivenSAMDataSource.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/BlockDrivenSAMDataSource.java @@ -237,23 +237,21 @@ public class BlockDrivenSAMDataSource extends SAMDataSource { * @return An iterator over the selected data. */ private StingSAMIterator getIterator(SAMReaders readers, BAMFormatAwareShard shard, boolean enableVerification) { - Map> readerToIteratorMap = new HashMap>(); + SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(readers.values(),SAMFileHeader.SortOrder.coordinate,true); + + // Set up merging to dynamically merge together multiple BAMs. + MergingSamRecordIterator mergingIterator = new MergingSamRecordIterator(headerMerger,true); for(SAMReaderID id: getReaderIDs()) { if(shard.getFileSpans().get(id) == null) continue; CloseableIterator iterator = readers.getReader(id).iterator(shard.getFileSpans().get(id)); if(shard.getFilter() != null) iterator = new FilteringIterator(iterator,shard.getFilter()); - readerToIteratorMap.put(readers.getReader(id),iterator); + mergingIterator.addIterator(readers.getReader(id),iterator); } - SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(readers.values(),SAMFileHeader.SortOrder.coordinate,true); - - // Set up merging to dynamically merge together multiple BAMs. - CloseableIterator iterator = new MergingSamRecordIterator(headerMerger,readerToIteratorMap,true); - return applyDecoratingIterators(enableVerification, - new ReleasingIterator(readers,StingSAMIteratorAdapter.adapt(reads,iterator)), + new ReleasingIterator(readers,StingSAMIteratorAdapter.adapt(reads,mergingIterator)), reads.getDownsamplingFraction(), reads.getValidationExclusionList().contains(ValidationExclusion.TYPE.NO_READ_ORDER_VERIFICATION), reads.getSupplementalFilters()); @@ -267,16 +265,14 @@ public class BlockDrivenSAMDataSource extends SAMDataSource { private StingSAMIterator seekMonolithic(Shard shard) { SAMReaders readers = resourcePool.getAvailableReaders(); - Map> readerToIteratorMap = new HashMap>(); - for(SAMReaderID id: getReaderIDs()) - readerToIteratorMap.put(readers.getReader(id),readers.getReader(id).iterator()); - // Set up merging and filtering to dynamically merge together multiple BAMs and filter out records not in the shard set. SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(readers.values(),SAMFileHeader.SortOrder.coordinate,true); - CloseableIterator iterator = new MergingSamRecordIterator(headerMerger,readerToIteratorMap,true); + MergingSamRecordIterator mergingIterator = new MergingSamRecordIterator(headerMerger,true); + for(SAMReaderID id: getReaderIDs()) + mergingIterator.addIterator(readers.getReader(id),readers.getReader(id).iterator()); return applyDecoratingIterators(shard instanceof ReadShard, - new ReleasingIterator(readers,StingSAMIteratorAdapter.adapt(reads,iterator)), + new ReleasingIterator(readers,StingSAMIteratorAdapter.adapt(reads,mergingIterator)), reads.getDownsamplingFraction(), reads.getValidationExclusionList().contains(ValidationExclusion.TYPE.NO_READ_ORDER_VERIFICATION), reads.getSupplementalFilters()); diff --git a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.jar b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-7.jar similarity index 80% rename from settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.jar rename to settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-7.jar index f6aa3879f..c3617e831 100644 Binary files a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.jar and b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-7.jar differ diff --git a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.xml b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-7.xml similarity index 55% rename from settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.xml rename to settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-7.xml index 9142b18c2..82b978343 100644 --- a/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-6.xml +++ b/settings/repository/edu.mit.broad/picard-private-parts-1333-sharding-7.xml @@ -1,3 +1,3 @@ - + diff --git a/settings/repository/net.sf/picard-1.16.366-sharding.jar b/settings/repository/net.sf/picard-1.16.367-sharding.jar similarity index 87% rename from settings/repository/net.sf/picard-1.16.366-sharding.jar rename to settings/repository/net.sf/picard-1.16.367-sharding.jar index 3c806124e..5826250fa 100644 Binary files a/settings/repository/net.sf/picard-1.16.366-sharding.jar and b/settings/repository/net.sf/picard-1.16.367-sharding.jar differ diff --git a/settings/repository/net.sf/picard-1.16.366-sharding.xml b/settings/repository/net.sf/picard-1.16.367-sharding.xml similarity index 76% rename from settings/repository/net.sf/picard-1.16.366-sharding.xml rename to settings/repository/net.sf/picard-1.16.367-sharding.xml index 6ad217e69..0eb156263 100644 --- a/settings/repository/net.sf/picard-1.16.366-sharding.xml +++ b/settings/repository/net.sf/picard-1.16.367-sharding.xml @@ -1,3 +1,3 @@ - + diff --git a/settings/repository/net.sf/sam-1.16.366-sharding.jar b/settings/repository/net.sf/sam-1.16.367-sharding.jar similarity index 89% rename from settings/repository/net.sf/sam-1.16.366-sharding.jar rename to settings/repository/net.sf/sam-1.16.367-sharding.jar index acdf6f809..e666890eb 100644 Binary files a/settings/repository/net.sf/sam-1.16.366-sharding.jar and b/settings/repository/net.sf/sam-1.16.367-sharding.jar differ diff --git a/settings/repository/net.sf/sam-1.16.366-sharding.xml b/settings/repository/net.sf/sam-1.16.367-sharding.xml similarity index 52% rename from settings/repository/net.sf/sam-1.16.366-sharding.xml rename to settings/repository/net.sf/sam-1.16.367-sharding.xml index 0a2878262..87393b232 100644 --- a/settings/repository/net.sf/sam-1.16.366-sharding.xml +++ b/settings/repository/net.sf/sam-1.16.367-sharding.xml @@ -1,3 +1,3 @@ - +