diff --git a/CHANGELOG.md b/CHANGELOG.md index 108f86a..c0228d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,45 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] -[Unreleased]: https://github.com/althonos/lightmotif/compare/v0.3.0...HEAD +[Unreleased]: https://github.com/althonos/lightmotif/compare/v0.4.0...HEAD + + +## [v0.4.0] - 2023-08-10 +[v0.4.0]: https://github.com/althonos/lightmotif/compare/v0.3.0...v0.4.0 + +### Changed + +#### `lightmotif` +- Improve `DenseMatrix::resize` performance when downsizing. +- Explicitly panic when sequence is too long to be processed with `u32` indices in AVX2 and SSE2. +- Reorganize `DenseMatrix` column alignment and index storage. +- Improve `Score` performance by using pointers instead of slices in SIMD loops. +- Rename `DenseMatrix::columns_effective` to `DenseMatrix::stride`. +- Use streaming intrinsics to store data in AVX2 and SSE2 implementations. +- Rename `BestPosition` trait to `Maximum`. + +#### `lightmotif-py` +- Avoid error on missing symbols in `CountMatrix.__init__` + +### Added + +#### `lightmotif` +- `Threshold` trait to find all position above a certain score in a `StripedScores` matrix. +- `Encode` trait to encode an ASCII sequence into a `Vec`. +- AVX2 implementation of `Score` using `gather` instead of `permute` for protein alphabets. +- `From>` and `Default` trait implementations to `EncodedSequence`. +- `Alphabet` methods to operate on ASCII strings. +- `StripedScores.is_empty` method to check if a `StripedScores` contains any score. + +#### `lightmotif-py` +- `StripedScores.threshold` method wrapping the `Threshold` pipeline operation. +- `StripedScores.max` and `StripedScores.argmax` methods to get the best score and best position. + +### Fixed + +#### `lightmotif` +- `Score` causing an overflow when given a sequence shorter than the PSSM. +- `Maximum` trait returns the smallest position on equal maxima. ## [v0.3.0] - 2023-06-25 diff --git a/lightmotif-bench/Cargo.toml b/lightmotif-bench/Cargo.toml index 8454288..e720dd2 100644 --- a/lightmotif-bench/Cargo.toml +++ b/lightmotif-bench/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-bench" -version = "0.3.0" +version = "0.4.0" edition = "2021" publish = false diff --git a/lightmotif-py/Cargo.toml b/lightmotif-py/Cargo.toml index a321471..d3a53a1 100644 --- a/lightmotif-py/Cargo.toml +++ b/lightmotif-py/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-py" -version = "0.3.0" +version = "0.4.0" authors = ["Martin Larralde "] edition = "2021" license = "MIT" @@ -17,7 +17,7 @@ path = "lightmotif/lib.rs" [dependencies.lightmotif] path = "../lightmotif" -version = "0.3.0" +version = "0.4.0" [dependencies] pyo3 = "0.18.3" generic-array = "0.14" diff --git a/lightmotif-py/lightmotif/__init__.py b/lightmotif-py/lightmotif/__init__.py index 1181291..0ad0405 100644 --- a/lightmotif-py/lightmotif/__init__.py +++ b/lightmotif-py/lightmotif/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.0" +__version__ = "0.4.0" from . import lib from .lib import ( diff --git a/lightmotif-tfmpvalue/Cargo.toml b/lightmotif-tfmpvalue/Cargo.toml index 1217025..1286bf4 100644 --- a/lightmotif-tfmpvalue/Cargo.toml +++ b/lightmotif-tfmpvalue/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-tfmpvalue" -version = "0.3.0" +version = "0.4.0" authors = ["Martin Larralde "] edition = "2021" license = "GPL-3.0" @@ -13,7 +13,7 @@ keywords = ["bioinformatics", "motif", "pssm", "pvalue"] [dependencies.lightmotif] path = "../lightmotif" -version = "0.3.0" +version = "0.4.0" [dependencies.fnv] version = "1.0" optional = true diff --git a/lightmotif-transfac/Cargo.toml b/lightmotif-transfac/Cargo.toml index d365b57..affbe61 100644 --- a/lightmotif-transfac/Cargo.toml +++ b/lightmotif-transfac/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-transfac" -version = "0.3.0" +version = "0.4.0" authors = ["Martin Larralde "] edition = "2021" license = "MIT" @@ -13,7 +13,7 @@ keywords = ["bioinformatics", "motif", "parser", "transfac"] [dependencies.lightmotif] path = "../lightmotif" -version = "0.3.0" +version = "0.4.0" [dependencies] nom = "7" memchr = "2" diff --git a/lightmotif/Cargo.toml b/lightmotif/Cargo.toml index 42004dd..332594d 100644 --- a/lightmotif/Cargo.toml +++ b/lightmotif/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif" -version = "0.3.0" +version = "0.4.0" authors = ["Martin Larralde "] edition = "2021" license = "MIT"