cram: Bring reader and writer to htslib parity for CRAM 2.0–4.0#380
Draft
nh13 wants to merge 1 commit intozaeleus:masterfrom
Draft
cram: Bring reader and writer to htslib parity for CRAM 2.0–4.0#380nh13 wants to merge 1 commit intozaeleus:masterfrom
nh13 wants to merge 1 commit intozaeleus:masterfrom
Conversation
Contributor
Author
|
Moved from nh13#1. |
a5c042b to
d60c67f
Compare
Add full read/write support for CRAM versions 2.0, 2.1, 3.0, 3.1, and 4.0, reaching feature parity with htslib/samtools. This includes: Reader changes: - Legacy codec support (beta, gamma, Golomb, Huffman, subexp) for v2.x - CRAM 4.0 EOF detection, slice header encoding, and codec offsets - Async reader parity across all versions - Overflow protection for VLQ integer readers - Fix ref_seq_id encoding and codec argument signedness Writer changes: - Version-gated CRC32 checksums and qs_seq_orient encoding - fqzcomp HAVE_QMAP, HAVE_QTAB, MULTI_PARAM encoder features - Owned tag data and reference-free mode support - Name tokenizer tok_dup and fqzcomp DO_REV support API additions: - Reader::query_unmapped() and Reader::for_each_record() - IndexedReader delegation of the above methods Test infrastructure: - Programmatic in-memory test data creation (no on-disk test files) - Integration tests for round-trip, reader methods, query APIs, and writer options across all CRAM versions
d60c67f to
2155f74
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Full read/write support for CRAM versions 2.0, 2.1, 3.0, 3.1, and 4.0, reaching feature parity with htslib/samtools. See #374 for upstream context.
Reader
Writer
API additions
Reader::query_unmapped()andReader::for_each_record()IndexedReaderdelegation of the above methodsTest infrastructure
Files changed
97 files, +8285 / -1351 lines