public CloseableIterator<PicardAlignment> query(String sequence, int start, int end, boolean contained) {
try {
if (reader == null) {
SeekableStream ss = new IGVSeekableBufferedStream(IGVSeekableStreamFactory.getInstance().getStreamFor(url));
reader = new SAMFileReader(ss, indexFile, false);
}
CloseableIterator<SAMRecord> iter = reader.query(sequence, start + 1, end, contained);
return new WrappedIterator(iter);
} catch (IOException e) {
log.error("Error opening SAM reader", e);