All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
0.47.0 (2024-05-22)
- Add fasta::build function + FaidxBuildError (#418) (7c575ef)
- Add rust_htslib::bcf::index::build (#408) (79d70cd)
- derive PartialEq and Eq for bam:: and bcf::Format (#428) (528e543)
- bam::Record:new should return a valid record (#361) (87f2011)
- build for macOS (#431) (d869fdd)
- in bam record buffer, change the start of the window to the first added item in last iteration (#430) (56ee2bd)
- Panic on trailing omitted FORMAT records (#417) (9f575ee)
0.46.0 (2024-02-22)
- making several RecordBuffer methods public (6757f52)
0.45.0 (2024-02-07)
0.44.1 (2023-06-21)
0.44.0 (2023-06-20)
0.43.1 (2023-05-16)
0.43.0 (2023-05-12)
- HeaderRecord::push_tag: Value may be owned (#388) (b64537d)
- Index for
bam::IndexedReader
(#387) (fb74387)
0.42.0 (2023-03-30)
0.41.1 (2023-03-03)
0.40.2 (2022-10-13)
0.40.1 (2022-08-24)
0.40.0 (2022-07-05)
- update to latest release-please (b130634)
0.39.5 (2022-05-09)
- set path in release-please config (d8f7c6e)
0.39.4 (2022-05-09)
- perform checkout before running release please (cbc6a0a)
0.39.3 (2021-11-20)
0.39.2 (2021-08-23)
- Configuration when cross-compiling. Even when cross-compiling, build.rs runs on the build host. Hence within build.rs
#[cfg(target_os)]
always reflects the host, not the target. Use $CARGO_CFG_TARGET_OS instead to query target properties. (#329) (d5198e6)
0.39.1 (2021-07-06)
- bump hts-sys version to 2.0.1 (336c8b8)
0.39.0 (2021-07-06)
- dummy major version bump to move away from previous versions that were following htslib versions.
- bump to new major version (for technical reasons).
- dummy breaking change to increase hts-sys major version.
- bump to new major version (for technical reasons). (9c6db30)
- dummy breaking change to increase hts-sys major version. (93415cb)
- dummy changes (3af5ede)
- dummy major version bump to move away from previous versions that were following htslib versions. (aaa70a8)
- dummy release (74d1565)
- dummy release (af2f84e)
- dummy release (b97915f)
- handle subcrate with release-please (0a4605f)
- trigger dummy release (7c5a7de)
- update changelog (deef08f)
0.38.3 (2021-07-06)
- dummy fix for triggering release (e92e6b1)
0.38.2 (2021-07-06)
- add ID to automatic release handling (1244393)
0.38.1 (2021-07-06)
- improved documentation (cb0b66c)
0.38.0 (2021-07-06)
- Improve bcf Record filter interface and improve docs (#306)
bcf::Record
methodshas_filter
,remove_filter
,push_filter
, andset_filter
all now take a byte slice (&[u8]
) or anId
.
bcf::Record
methodsend
,clear
, andrlen
(@mbhall88).
bcf::IndexReader::fetch
parameterend
is now anOption<u64>
. This is inline with htslib regions, which do not require an end position (@mbhall88)- Removed unused dependencies (@sreenathkrishnan).
- Improved documentation (@mbhall88).
- Improved error message when failing to load index files (@johanneskoester).
- Improved API for accessing AUX fields in BAM records (@jch-13).
- Fixed compiler warnings (@fxwiegand).
- BAM header representation is now always kept in sync between textual and binary (@jch-13).
- Improved genotype API in VCF/BCF records (@MaltheSR).
- Read pair orientation inference for BAM records (@johanneskoester).
- let hts-sys dependency comply to semver.
- Fixed wrongly define missing value constants in bcf::record (@johanneskoester).
- Bump hts-sys depedency to the latest version, containing build fixes for macOS (@johanneskoester).
- BREAKING: info and format field access in BCF records now allocates a separate buffer each time. In addition, it is also possible to pass a buffer that has been created manually before (@johanneskoester)
- Fixes for building on macOS (@brainstorm)
- ability to push genotypes into BCF record (@MaltheSR, @tedil).
- Ability to set minimum refetch distance in
bam::RecordBuffer
.
- BREAKING: Rename feature 'serde' as 'serde_feature' (for technical reasons)
- BREAKING: Consolidate module-wide errors into a crate-wide error module
- Making
bcf::IndexedReader
always unpack records to reflect the behaviour ofbcf::Reader
. - Adding
bcf::errors::Error::FileNotFound
and using it. - Fixes for musl compilation (@brainstorm).
- Improved BCF constants handling (@juliangehring)
- Fixes for tabix reader (@felix-clark, @brainstorm).
- Fixes for BCF handling (@holtgrewe, @tedil).
- Documentation improvements (@vsoch, @brainstorm, @edmundlth).
- BREAKING: Improved, more ergonomic BAM fetch API (@TiberiusPrime, @brainstorm, @tedil).
- BREAKING: Let BamRecordExtensions return iterators instead of vectors (@TiberiusPrime).
- Handle all errors via a unified single thiserror based enum (@landesfeind).
- BREAKING: BAM read API now returns Option (@slazicoicr).
- Support for reading indexed FASTA files (@landesfeind, @pmarks, @brainstorm).
- Support for shared threadpools when reading and writing BAM (@pmarks, @nlhepler).
- Serde support for Cigar strings (@FelixMoelder, @pmarks, @johanneskoester).
- Expose bgzf functionality (@landesfeind).
- Iterator over BAM records using Rc-pointers (@TiberiusPrime, @tedil).
- Ability to obtain pairs of read and genome intervals from BAM (aligned_block_pairs) (@TiberiusPrime, @brainstorm).
- Method
seq_len()
ofbam::Record
is now public. - Speedup when parsing BAM headers (thanks to @juliangehring).
- Compatibility fixes for older rust versions (thanks to @pmarks and @brainstorm).
- Bam record buffer now returns reference counted (Rc) objects. This makes the API more ergonomic to use.
- Switched to thiserror instead of snafu for error handling.
- Various cleanups and little fixes.
- Removed
fn header_mut()
frombam::Read
trait. - Fixed a major performance regression when reading bam files (issue #195).
- Migrate buffer intervals to u64.
- Return u64 wherever htslib has migrated to using 64 bit.
- Implement more bio-types (Interval, Locus, Strand).
- Updated to Htslib 1.10.2.
- bam::Record.set() will panic if seq.len() != qual.len(). Previously, mismatched length would cause uninitialized memory to be written into the BAM file.
- use
serde_bytes
to serialize .data section of bam::Record when using serde - large speed improvement. - change build.rs to avoid re-running when htslib or wrapper.h haven't changed.
- update some dependencies.
- refactor native dependency into htslib-sys crate, for greater versioning flexibility
- Record::from_sam require
&mut HeaderView
. Provide the appropriate accessor. - set() no longer invalidates tag data.
- Various minor improvements.
- Various bug fixes in CIGAR string handling, INFO tag reading and FORMAT tag reading.
- Allow caching of CIGAR in bam::RecordBuffer.
- Migrated error handling to the snafu crate: https://docs.rs/snafu.
- Cleaned up and simplified API (including breaking changes).
- Allow writing SAM files from the bam::Writer.
- Allow setting unmapped BAM record (without Cigar string).
- Various bug fixes and error handling improvements.
- Various Pysam-derived methods for interpreting Cigar strings.
- Support for BAM indices that are not placed beside a file.bam as file.bam.bai
- Implement SequenceRead trait for BAM records.
- Add function to build an index for a BAM file.
- CRAM support for BAM reader and writer.
- Allow to specify particular index filename when instantiating a BAM reader.
- Various bug and API fixes.
- Support compilation against musl.
- Support for removing alleles.
- Improvements to SyncedReader API.
- Adding
bcf::synced::SyncedReader::fetch()
, changing error type forbcf::synced::SyncedReader::read_next()
. - Adding
bcf::Record::unpack()
for explicitely unpacking BCF records. - Fixed
bcf::synced::SyncedReader::record()
. bam::Record::cigar()
now returns a reference (in constant time) and needsbam::Record::unpack_cigar()
to be called first.- Allow to create Cigar string from
bio_types::Alignment
. - Provide a cached variant of obtaining cigar string.
- Lots of small usability improvements.
- Initial implementation of synced BCF reader interface.
- Several small helper methods for BAM readers.
- Not skipping
fileformat=
header any more. - BCF records are always unpacked when reading.
- Moved unpacking of BCF records into constructor to prevent race conditions.
- Fixed bug in retrieving BCF record id.
- Fixed bug in the filter iterator of BCF.
- more push functions for BCF.
- bcf::IndexedReader
- support for writing bcf FILTER field
- setting thread count in all readers and writers
- setting ID and alleles in bcf records
- support for tabix indexes
- convert CIGAR to and from strings
- Serde support for bam records.
- Various convenience improvements in the API.
- Raw Htslib bindings are now generated on the fly.
- Switched to Htslib 1.6.
- Fixed a potential dangling pointer to the header in bcf records.
- Various small API improvements.
- HeaderView of bam and bcf can now be cloned.
- An efficient ringbuffer for accessing BCF regions
- An efficient ringbuffer for accessing BAM regions
- Improved mutability annotation for readers.
- Ability to clone bam records.
- Ability to set only qname.
- Further improved CIGAR string API.
- Improved documentation.
- Adapt to changes in Rust 1.18 that caused compilation issues.
- Support seek and tell to handle virtual offsets.
- Renamed previous seek method into fetch (in line with pysam).
- Improved CIGAR API.
- Updated dependencies.
- A SAM writer.
- Improved CIGAR string API using a newtype wrapper.
- Improved pileup API.
- Support threaded writing for BAM files.
- Prelude module to easily import all relevant traits.
- fine-grained constructors for STDIN/STDOUT, paths and URLs
- better template handling with bam files
- improved genotype handling
- improved error handling
- improved missing value handling
- Finally converted the last unit error types to real error types (really now!).
- More error types.
- Error types now properly implement the Display and the Error trait.
- Mark all records as Send and Sync.
- Improved error messages.
- Check existence of BAM when instantiating Readers.
- Improved handling of memory allocation for BCF and BAM records.
- Fixed a memory leak occuring when creating a new BAM record (thanks to @andrelmartins).