Пример #1
0
 protected void advanceSubIterator() {
   try {
     if (mCurrentOffset < mOffsets.size()) {
       if (mOffsets.start(mCurrentOffset) != mPreviousVirtualOffsetStart) {
         // Diagnostic.developerLog("After region " + mCurrentOffset + " " + mCurrentRegion + ",
         // opening new reader at offset " +
         // VirtualOffsets.offsetToString(mOffsets.start(mCurrentOffset)) + " for region " +
         // mOffsets.region(mCurrentOffset));
         mReader.seek(mOffsets.start(mCurrentOffset));
         mBuffered = false;
         // } else {
         //  Diagnostic.developerLog("After region " + mCurrentOffset + " " + mCurrentRegion + ",
         // re-using existing reader for region " + mOffsets.region(mCurrentOffset));
       }
       mCurrentRegion = mOffsets.region(mCurrentOffset);
       final int newTemplate = mSequenceLookup.get(mCurrentRegion.getSequenceName());
       if (newTemplate != mCurrentTemplate) {
         mPreviousAlignmentStart = Integer.MIN_VALUE;
       }
       mPreviousVirtualOffsetStart = mOffsets.start(mCurrentOffset);
       mCurrentTemplate = newTemplate;
     }
     mCurrentOffset++;
   } catch (IOException e) {
     throw new RuntimeIOException(e.getMessage(), e);
   }
 }
Пример #2
0
 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));
   }
 }