All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Bayesian models now allow to access internals.
- Various small bug fixes.
- Migrate error handling to the snafu crate (this is an API breaking change).
- Fix edge cases in pairwise alignment.
- Fix error in backward search if symbol isn't found.
- Fix select in RankSelect in cases where many superblocks have the same rank.
- Myers bit-parallel pattern matching now supports arbitrarily long patterns via bit vectors (thanks to @markschl).
- Minor documentation updates (thanks to @anders-was-here).
- Implement sequence-read-trait for FASTQ records.
- Cleanup dependencies.
- Fix a bug in
select_1
andselect_0
that would lead to too large answers.
- Added a trait system for computing Bayesian statistical models.
- Added an implementation of MSA via partial order alignment.
- Performance improvements to FASTQ reader.
- Added
FQRead
andFARead
traits toFastaReader
andFastqReader
to be more flexible with input types. This allows to use readers on gzipped and on plain text input interchangeably. - Added an implementation of Bayes Factors and evidence scoring using the method of Kass and Raftery.
- API overhaul to become more flexible when accepting text iterators. Now, anything that iterates over something can be borrowed as u8 is allowed.
- FMIndex and FMDIndex now also allow plain owned versions of BWT, Less and Occ. This should greatly simplify their usage.
- PairHMM and LogProb implementation has seen extensive performance improvements. Among that, (a) the usage of a fast approximation of exp() as presented by Kopczynsi 2017, and (b) banding of the pairHMM matrix with a given maximum edit distance.
- All IO records now support serde.
- Generalized Myers pattern matching algorithm to arbitrary unsigned integer types (u64, u128) (thanks to @markschl).
- Implemented optional traceback and alignment output for Myers pattern matching algorithm (thanks to @markschl).
- Use Strand type from bio-types crate in BED module (thanks to @ingolia).
- Added an IntervalTree based data structure for looking up overlaps between annotation types (thanks to @ingolia).
- Various bug fixes.
- Added HMM implementation (thanks to @holtgrewe).
- Moved Alignment types to
bio_types
crate (thanks to @pmarks). - Ignore comment lines in GTF/GFF files (thanks to Yasunobu Okamura).
- API usability improvements.
- Added PSSM implementation (thanks to @hervold).
- Refactored RankSelect API to consistently use u64.
- Use bv crate in suffix array implementation.
- rank-0 and select-0 in RankSelect.
- use bv crate for RankSelect.
- More flexible FASTA API.
- Fixed bug in KMP.
- Bug fix in Ukkonen algorithm
- Convenience improvements to API
- Pairwise alignment has been rewritten to support banded alignment and clips.
- Various minor API additions and improvements.
- Several small bug fixes.
- Add pair hidden markov model implementation to calculate the probability of two sequences being related.
- Various minor bug fixes and usability improvements.
- Improved numerical stability of CDF construction.
- Speed improvements to occurrence array lookups in FM-index.
- Improved GFF/GTF variant format handling.
- Improved robustness of credible interval calculating in CDF.
- Bug fixes for log probability implementation.
- Replace nalgebra dependency with ndarray crate.
- GTF/GFF reader can now handle duplicate keys.
- Updated dependencies.
- RNA alphabet.
- Improved FASTQ reader.
- Fixes in alignment algorithm.
- fasta::IndexedReader now also provides an iterator.
- IntervalTree provides a mutable iterator.
- Various fixes to Fasta IO.
- Fixed calculation of expected FDR.
- Improved distance API.
- Moved Strand into utils.
- More robust gff/gtf parsing.
- Improved IntervalTree API.
- Updated dependencies.
- Speed improvements in alignment module.
- Improved test coverage.
- Speed improvements in fmindex module.
- An interval tree implementation.
- Initial utilities for bayesian statistics.
- Various small improvements to log-space probability API.
- Implementation of discrete probability distributions via cumulative distribution functions.
- Log-space probabilities have been refactored into newtypes.
- Performance improvements for FMIndex implementation.
- Improved documentation.
- Writers in the io module no longer take ownership of the given record.
- Various cosmetic changes.
- Reverse complement API has been refactored into plain functions.
- Reverse complement now supports the whole IUPAC alphabet.
- Various algorithms take now IntoTextIterator instead of only slices.
- Fasta reader and writer treat sequence names as strings.
- Refactoring of suffix array + fmindex API to provide more flexibility.
- Type aliases for various text representations.
- Pattern matching algorithms take both iterators and slices where possible.
- logprobs::cumsum has been refactored to return an iterator.
- support for subtraction of logprobs.
- Support for serde serialization when used in combination with rust nightly (@dikaiosune).