/** * Iterate over the records and for each tag found come up with an encoding. * Tag encodings are registered via the builder. * * @param records * CRAM records holding the tags to be encoded * @param builder * compression header builder to register encodings */ private void buildTagEncodings(final List<CramCompressionRecord> records, final CompressionHeaderBuilder builder) { final Set<Integer> tagIdSet = new HashSet<>(); for (final CramCompressionRecord record : records) { if (record.tags == null || record.tags.length == 0) { continue; } for (final ReadTag tag : record.tags) { tagIdSet.add(tag.keyType3BytesAsInt); } } for (final int tagId : tagIdSet) { if (bestEncodings.containsKey(tagId)) { builder.addTagEncoding(tagId, bestEncodings.get(tagId)); } else { final EncodingDetails e = buildEncodingForTag(records, tagId); builder.addTagEncoding(tagId, e); bestEncodings.put(tagId, e); } } }
final boolean coordinateSorted) { final CompressionHeaderBuilder builder = new CompressionHeaderBuilder(coordinateSorted); builder.addExternalIntegerRansOrderOneEncoding(DataSeries.TS_InsertSize); builder.setTagIdDictionary(buildTagIdDictionary(records)); updateSubstitutionCodes(records, substitutionMatrix); builder.setSubstitutionMatrix(substitutionMatrix); return builder.getHeader();
final boolean coordinateSorted) { final CompressionHeaderBuilder builder = new CompressionHeaderBuilder(coordinateSorted); builder.addExternalIntegerRansOrderOneEncoding(DataSeries.TS_InsertSize); builder.setTagIdDictionary(buildTagIdDictionary(records)); updateSubstitutionCodes(records, substitutionMatrix); builder.setSubstitutionMatrix(substitutionMatrix); return builder.getHeader();
/** * Iterate over the records and for each tag found come up with an encoding. * Tag encodings are registered via the builder. * * @param records * CRAM records holding the tags to be encoded * @param builder * compression header builder to register encodings */ private void buildTagEncodings(final List<CramCompressionRecord> records, final CompressionHeaderBuilder builder) { final Set<Integer> tagIdSet = new HashSet<>(); for (final CramCompressionRecord record : records) { if (record.tags == null || record.tags.length == 0) { continue; } for (final ReadTag tag : record.tags) { tagIdSet.add(tag.keyType3BytesAsInt); } } for (final int tagId : tagIdSet) { if (bestEncodings.containsKey(tagId)) { builder.addTagEncoding(tagId, bestEncodings.get(tagId)); } else { final EncodingDetails e = buildEncodingForTag(records, tagId); builder.addTagEncoding(tagId, e); bestEncodings.put(tagId, e); } } }
private void addExternalIntegerRansOrderZeroEncoding(final DataSeries dataSeries) { addExternalIntegerEncoding(dataSeries, ExternalCompressor.createRANS(RANS.ORDER.ZERO)); }
private void addExternalIntegerRansOrderOneEncoding(final DataSeries dataSeries) { addExternalIntegerEncoding(dataSeries, ExternalCompressor.createRANS(RANS.ORDER.ONE)); }
private void addExternalIntegerRansOrderZeroEncoding(final DataSeries dataSeries) { addExternalIntegerEncoding(dataSeries, ExternalCompressor.createRANS(RANS.ORDER.ZERO)); }
private void addExternalIntegerRansOrderOneEncoding(final DataSeries dataSeries) { addExternalIntegerEncoding(dataSeries, ExternalCompressor.createRANS(RANS.ORDER.ONE)); }
private void addExternalByteRansOrderOneEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ExternalByteEncoding(dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createRANS(RANS.ORDER.ONE)); }
private void addExternalByteGzipEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ExternalByteEncoding(dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createGZIP()); }
private void addExternalIntegerEncoding(final DataSeries dataSeries, final ExternalCompressor compressor) { addExternalEncoding(dataSeries, new ExternalIntegerEncoding(dataSeries.getExternalBlockContentId()).toParam(), compressor); }
private void addExternalByteArrayStopTabGzipEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ByteArrayStopEncoding((byte) '\t', dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createGZIP()); }
private void addExternalIntegerGzipEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ExternalIntegerEncoding(dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createGZIP()); }
private void addExternalIntegerEncoding(final DataSeries dataSeries, final ExternalCompressor compressor) { addExternalEncoding(dataSeries, new ExternalIntegerEncoding(dataSeries.getExternalBlockContentId()).toParam(), compressor); }
private void addExternalByteArrayStopTabGzipEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ByteArrayStopEncoding((byte) '\t', dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createGZIP()); }
private void addExternalByteRansOrderOneEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ExternalByteEncoding(dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createRANS(RANS.ORDER.ONE)); }
private void addExternalByteGzipEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ExternalByteEncoding(dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createGZIP()); }
private void addExternalIntegerGzipEncoding(final DataSeries dataSeries) { addExternalEncoding(dataSeries, new ExternalIntegerEncoding(dataSeries.getExternalBlockContentId()).toParam(), ExternalCompressor.createGZIP()); }