/** * Initializes a Multiple Reference Sequence ID Reader. * The intended use is for CRAI indexing. * * @param coreInputStream Core data block bit stream, to be read by non-external Encodings * @param externalInputMap External data block byte stream map, to be read by external Encodings * @param header the associated Cram Compression Header * @param validationStringency how strict to be when reading this CRAM record * @param initialAlignmentStart the alignmentStart used for initial calculation of spans * @param recordCount the number of CRAM records to read */ public MultiRefSliceAlignmentSpanReader(final BitInputStream coreInputStream, final Map<Integer, ByteArrayInputStream> externalInputMap, final CompressionHeader header, final ValidationStringency validationStringency, final int initialAlignmentStart, final int recordCount) { super(coreInputStream, externalInputMap, header, Slice.MULTI_REFERENCE, validationStringency); this.currentAlignmentStart = initialAlignmentStart; for (int i = 0; i < recordCount; i++) { readCramRecord(); } }
/** * Uses a Multiple Reference Slice Alignment Reader to determine the Reference Spans of a Slice. * The intended use is for CRAI indexing. * * @param header the associated Cram Compression Header * @param validationStringency how strict to be when reading CRAM records */ public Map<Integer, AlignmentSpan> getMultiRefAlignmentSpans(final CompressionHeader header, final ValidationStringency validationStringency) { final MultiRefSliceAlignmentSpanReader reader = new MultiRefSliceAlignmentSpanReader(getCoreBlockInputStream(), getExternalBlockInputMap(), header, validationStringency, alignmentStart, nofRecords); return reader.getReferenceSpans(); }
/** * Uses a Multiple Reference Slice Alignment Reader to determine the Reference Spans of a Slice. * The intended use is for CRAI indexing. * * @param header the associated Cram Compression Header * @param validationStringency how strict to be when reading CRAM records */ public Map<Integer, AlignmentSpan> getMultiRefAlignmentSpans(final CompressionHeader header, final ValidationStringency validationStringency) { final MultiRefSliceAlignmentSpanReader reader = new MultiRefSliceAlignmentSpanReader(getCoreBlockInputStream(), getExternalBlockInputMap(), header, validationStringency, alignmentStart, nofRecords); return reader.getReferenceSpans(); }
final BitInputStream bis = new DefaultBitInputStream(is)) { final MultiRefSliceAlignmentSpanReader reader = new MultiRefSliceAlignmentSpanReader(bis, inputMap, header, ValidationStringency.DEFAULT_STRINGENCY, 0, initialRecords.size()); final Map<Integer, AlignmentSpan> spans = reader.getReferenceSpans();
/** * Initializes a Multiple Reference Sequence ID Reader. * The intended use is for CRAI indexing. * * @param coreInputStream Core data block bit stream, to be read by non-external Encodings * @param externalInputMap External data block byte stream map, to be read by external Encodings * @param header the associated Cram Compression Header * @param validationStringency how strict to be when reading this CRAM record * @param initialAlignmentStart the alignmentStart used for initial calculation of spans * @param recordCount the number of CRAM records to read */ public MultiRefSliceAlignmentSpanReader(final BitInputStream coreInputStream, final Map<Integer, ByteArrayInputStream> externalInputMap, final CompressionHeader header, final ValidationStringency validationStringency, final int initialAlignmentStart, final int recordCount) { super(coreInputStream, externalInputMap, header, Slice.MULTI_REFERENCE, validationStringency); this.currentAlignmentStart = initialAlignmentStart; for (int i = 0; i < recordCount; i++) { readCramRecord(); } }