public SingleRestrictionLineReader(File input, TabixIndexReader tir, RegionRestriction region) throws IOException { if (region == null) { throw new NullPointerException(); } mSequence = region.getSequenceName(); mBeg = region.getStart(); mEnd = region.getEnd(); final BlockCompressedLineReader bclr = new BlockCompressedLineReader(new BlockCompressedInputStream(input)); mBCPositionReader = tir.getOptions().mFormat == TabixIndexer.TabixOptions.FORMAT_VCF ? new VcfPositionReader(bclr, tir.getOptions().mSkip) : new GenericPositionReader(bclr, tir.getOptions()); mRange = tir.getFilePointers(region); if (mRange != null) { mBCPositionReader.seek(mRange.start(0)); } }