noodles 0.61.0 #225
zaeleus
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
noodles 0.61.0 reworks the alignment (SAM, BAM, and CRAM) crates to accept a superset of what is defined by their respective specifications. This allows for both greater flexibility and better overall performance, particularly in read-only contexts. We found that there is a practical limitation to coupling semantics to their models, and therefore, validation is now enforced at serialization, rather than deserialization.
If you're familiar with noodles' current public API, migration should be fairly straightforward. Mainly, instead of working with closed sets, values are now defined by their raw data types.
Notable changes are as follows:
Readers and writers are moved under an
io
module. This is mostly for organizational purposes. In most usages, addio
to qualified paths, e.g.,sam::Reader
becomessam::io::Reader
.sam::alignment::Record
is renamed tosam::alignment::RecordBuf
. This more clearly describes its usage, i.e., having an owned record for building and/or mutation. Field buffers are now undersam::alignment::record_buf
.sam::alignment::Record
uses the same name as a trait that defines the fields of an alignment record. When supporting multiple alignment formats, accept implementations of this trait rather than format record types.Lazy records are now immutable format records. Replace usages of, e.g.,
sam::lazy::Record
tosam::Record
. Not only are they still lazily decoded, they implementsam::alignment::Record
and can be written.sam::Header
no longer parses optional fields. Optional fields are now placed in the other fields map.Most usages of strings (keys, IDs, values, etc.) are byte strings, i.e.,
Vec<u8>
wrapped asBString
. bstr types are not strictly required to be in the public API; however, it provides semantic value and, conveniently, string operations and formatting.Please submit questions and feedback here and open new issues if any arise.
Beta Was this translation helpful? Give feedback.
All reactions