protected Container containerFromStream(final Version cramVersion, final CountingInputStream countingStream) throws IOException { final Container container = ContainerIO.readContainerHeader(cramVersion.major, countingStream); InputStreamUtils.skipFully(countingStream, container.containerByteSize); return container; }
protected Container containerFromStream(final Version cramVersion, final CountingInputStream countingStream) { final Container container = ContainerIO.readContainerHeader(cramVersion.major, countingStream); InputStreamUtils.skipFully(countingStream, container.containerByteSize); return container; }
private static SAMFileHeader readSAMFileHeader(final Version version, InputStream inputStream, final String id) throws IOException { final Container container = ContainerIO.readContainerHeader(version.major, inputStream); final Block block;
@SuppressWarnings("SameParameterValue") private static Container readContainer(final int major, final InputStream inputStream, final int fromSlice, int howManySlices) throws IOException { final Container container = readContainerHeader(major, inputStream); if (container.isEOF()) { return container; } container.header = CompressionHeader.read(major, inputStream); howManySlices = Math.min(container.landmarks.length, howManySlices); if (fromSlice > 0) //noinspection ResultOfMethodCallIgnored inputStream.skip(container.landmarks[fromSlice]); final List<Slice> slices = new ArrayList<Slice>(); for (int sliceCount = fromSlice; sliceCount < howManySlices - fromSlice; sliceCount++) { final Slice slice = new Slice(); SliceIO.read(major, slice, inputStream); slice.index = sliceCount; slices.add(slice); } container.slices = slices.toArray(new Slice[slices.size()]); calculateSliceOffsetsAndSizes(container); log.debug("READ CONTAINER: " + container.toString()); return container; }
@SuppressWarnings("SameParameterValue") private static Container readContainer(final int major, final InputStream inputStream, final int fromSlice, int howManySlices) { final Container container = readContainerHeader(major, inputStream); if (container.isEOF()) { return container; } container.header = CompressionHeader.read(major, inputStream); howManySlices = Math.min(container.landmarks.length, howManySlices); try { if (fromSlice > 0) //noinspection ResultOfMethodCallIgnored inputStream.skip(container.landmarks[fromSlice]); } catch (final IOException e) { throw new RuntimeIOException(e); } final List<Slice> slices = new ArrayList<Slice>(); for (int sliceCount = fromSlice; sliceCount < howManySlices - fromSlice; sliceCount++) { final Slice slice = new Slice(); SliceIO.read(major, slice, inputStream); slice.index = sliceCount; slices.add(slice); } container.slices = slices.toArray(new Slice[slices.size()]); calculateSliceOffsetsAndSizes(container); log.debug("READ CONTAINER: " + container.toString()); return container; }
private static SAMFileHeader readSAMFileHeader(final Version version, InputStream inputStream, final String id) { final Container container = ContainerIO.readContainerHeader(version.major, inputStream); final Block block;
final RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw")) { final CramHeader header = readFormatDefinition(countingInputStream); final Container c = ContainerIO.readContainerHeader(header.getVersion().major, countingInputStream); final long pos = countingInputStream.getCount(); countingInputStream.close();
@Override public OrderedByteArray get() { OrderedByteArray cb = new OrderedByteArray(); Container containerHeader; try { containerHeader = ContainerIO.readContainerHeader(cramHeader.getVersion().major, is); log.debug("Read container: " + containerHeader.toString()); if (containerHeader.isEOF()) { log.info("EOF container"); return null; } ByteArrayOutputStream baos = new ByteArrayOutputStream(containerHeader.containerByteSize + 1024 * 10); ContainerIO.writeContainerHeader(cramHeader.getVersion().major, containerHeader, baos); byte[] blocks = InputStreamUtils.readFully(is, containerHeader.containerByteSize); baos.write(blocks); cb.bytes = baos.toByteArray(); cb.order = order++; return cb; } catch (IOException e) { throw new RuntimeIOException(e); } } }
final Container c = ContainerIO.readContainerHeader(header.getVersion().major, countingInputStream); final long pos = countingInputStream.getCount(); countingInputStream.close();
@Override public CloseableIterator<SAMRecord> queryUnmapped() { final long startOfLastLinearBin = getIndex().getStartOfLastLinearBin(); final SeekableStream seekableStream = getSeekableStreamOrFailWithRTE(); final CRAMIterator newIterator; try { seekableStream.seek(0); newIterator = new CRAMIterator(seekableStream, referenceSource, validationStringency); seekableStream.seek(startOfLastLinearBin >>> 16); final Container container = ContainerIO.readContainerHeader(newIterator.getCramHeader().getVersion().major, seekableStream); seekableStream.seek(seekableStream.position() + container.containerByteSize); iterator = newIterator; boolean atAlignments; do { atAlignments = iterator.advanceToAlignmentInContainer(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX, SAMRecord.NO_ALIGNMENT_START); } while (!atAlignments && iterator.hasNext()); } catch (final IOException e) { throw new RuntimeEOFException(e); } return iterator; }
@Override public CloseableIterator<SAMRecord> queryUnmapped() { final long startOfLastLinearBin = getIndex().getStartOfLastLinearBin(); final SeekableStream seekableStream = getSeekableStreamOrFailWithRTE(); final CRAMIterator newIterator; try { seekableStream.seek(0); newIterator = new CRAMIterator(seekableStream, referenceSource, validationStringency); seekableStream.seek(startOfLastLinearBin >>> 16); final Container container = ContainerIO.readContainerHeader(newIterator.getCramHeader().getVersion().major, seekableStream); seekableStream.seek(seekableStream.position() + container.containerByteSize); iterator = newIterator; boolean atAlignments; do { atAlignments = iterator.advanceToAlignmentInContainer(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX, SAMRecord.NO_ALIGNMENT_START); } while (!atAlignments && iterator.hasNext()); } catch (final IOException e) { throw new RuntimeEOFException(e); } return iterator; }
ContainerIO.readContainerHeader(version.major, cramSeekableStream);