/**
  * Alternative to other one with similar name
  *
  * @param directory directory containing SDF
  * @param indexFile index file
  * @param loadNames should we load names
  * @param loadFullNames should we load full names
  * @param region region to restrict to
  * @throws IOException IO exception occurs
  */
 CompressedMemorySequencesReader2(
     File directory,
     IndexFile indexFile,
     boolean loadNames,
     boolean loadFullNames,
     LongRange region)
     throws IOException {
   mIndexFile = indexFile;
   mRegion = SequencesReaderFactory.resolveRange(indexFile, region);
   mStart = mRegion.getStart();
   mEnd = mRegion.getEnd();
   mNumberSequences = mEnd - mStart;
   mData =
       DataInMemory.loadDelayQuality(
           directory,
           indexFile,
           DataFileIndex.loadSequenceDataFileIndex(indexFile.dataIndexVersion(), directory),
           mStart,
           mEnd);
   if (mNumberSequences > Integer.MAX_VALUE) {
     throw new IllegalArgumentException(
         "Too many sequences in region: " + region + ", maximum is: " + Integer.MAX_VALUE);
   }
   mDirectory = directory;
   if (loadNames && mIndexFile.hasNames()) {
     loadNames();
     loadNameSuffixes(loadFullNames, mIndexFile.hasSequenceNameSuffixes());
   }
   final StringBuilder sb = new StringBuilder("CMSR2 statistics");
   sb.append(LS);
   this.infoString(sb);
   Diagnostic.userLog(sb.toString());
 }