diff --git a/java/src/org/broadinstitute/sting/gatk/iterators/DownsamplingLocusIteratorByState.java b/java/src/org/broadinstitute/sting/gatk/iterators/DownsamplingLocusIteratorByState.java index 949ef8cf0..3a3959fd0 100755 --- a/java/src/org/broadinstitute/sting/gatk/iterators/DownsamplingLocusIteratorByState.java +++ b/java/src/org/broadinstitute/sting/gatk/iterators/DownsamplingLocusIteratorByState.java @@ -279,7 +279,7 @@ public class DownsamplingLocusIteratorByState extends LocusIterator { public DownsamplingLocusIteratorByState(final Iterator samIterator, Reads readInformation, List filters ) { // Aggregate all sample names. // TODO: Push in header via constructor - if(GenomeAnalysisEngine.instance.getDataSource() != null) + if(GenomeAnalysisEngine.instance != null && GenomeAnalysisEngine.instance.getDataSource() != null) sampleNames.addAll(SampleUtils.getSAMFileSamples(GenomeAnalysisEngine.instance.getSAMFileHeader())); readStates = new ReadStateManager(samIterator,readInformation.getDownsamplingMethod(),readInformation.getMaxReadsAtLocus(),sampleNames); this.readInfo = readInformation; @@ -657,7 +657,8 @@ public class DownsamplingLocusIteratorByState extends LocusIterator { int firstAlignmentStart = iterator.peek().getAlignmentStart(); while(iterator.hasNext() && iterator.peek().getReferenceIndex() == firstContigIndex && iterator.peek().getAlignmentStart() == firstAlignmentStart) { SAMRecord read = iterator.next(); - getAggregator(read.getReadGroup().getSample()).add(read); + Collection aggregator = getAggregator(read.getReadGroup()!=null ? read.getReadGroup().getSample() : null); + aggregator.add(read); } } else { @@ -667,7 +668,8 @@ public class DownsamplingLocusIteratorByState extends LocusIterator { while (iterator.hasNext() && !readIsPastCurrentPosition(iterator.peek())) { SAMRecord read = iterator.next(); - getAggregator(read.getReadGroup().getSample()).add(read); + Collection aggregator = getAggregator(read.getReadGroup()!=null ? read.getReadGroup().getSample() : null); + aggregator.add(read); } }