diff --git a/CHANGELOG.md b/CHANGELOG.md index 4929086b115fda2b0d55d4fbcc7027f13ec4c5fb..f38890017bed016b2096a5e5ac756fe76c698060 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,40 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] -[Unreleased]: https://github.com/althonos/lightmotif/compare/v0.7.3...HEAD +[Unreleased]: https://github.com/althonos/lightmotif/compare/v0.8.0...HEAD + + +## [v0.8.0] - 2024-06-28 +[v0.8.0]: https://github.com/althonos/lightmotif/compare/v0.7.3...v0.8.0 + +### Added + +#### `lightmotif` +- `lightmotif::pwm::DiscreteMatrix` to store a discretized `ScoringMatrix`. +- `MatrixElement` marker trait for `Default + Copy` types that can be used as a `DenseMatrix` element. +- `lightmotif::scores::Scores` wrapper of `Vec<T>` with shortcut `max`, `threshold` and `argmax` methods. +- AVX2 and NEON implementations of `Score<u8, Dna>` pipeline operation. + +### Fixed + +#### `lightmotif` +- Remove requirement for `T: Debug` in `Clone` implementation of `DenseMatrix<T>`. +- SSE2 and AVX2 implementations of `Argmax` not returning the last index in case of ties. + +#### `lightmotif-tfmpvalue` +- Cache internal buffer for Q-values to avoid reallocation between iterations. + +### Changed + +#### `lightmotif` +- Cache the `Pipeline` used in `lightmotif::scan::Scanner`. +- Make `lightmotif::scores::StripedScores` generic over the score type. +- Make `Maximum` and `Threshold` generic over the score type. +- Use a discrete matrix in `Scanner` to quickly eliminate blocks without candidate position above given threshold. +- Compile crate without the `rand` and `rand-distr` features by default. + +#### `lightmotif-py` +- Update `pyo3` dependency to `v0.22.0`. ## [v0.7.3] - 2024-06-17 diff --git a/lightmotif-bench/Cargo.toml b/lightmotif-bench/Cargo.toml index 80316f1688c6e12cb61dbd885007be466ce62388..39506f27d12a95a618942434ca75e40f2e0ad40d 100644 --- a/lightmotif-bench/Cargo.toml +++ b/lightmotif-bench/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-bench" -version = "0.7.3" +version = "0.8.0" edition = "2021" publish = false diff --git a/lightmotif-io/Cargo.toml b/lightmotif-io/Cargo.toml index 3c33ca47ba2deeddde2f4669323e9e168ca18b66..ea519223426eebb6897b1c24df804e1721b7465d 100644 --- a/lightmotif-io/Cargo.toml +++ b/lightmotif-io/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-io" -version = "0.7.3" +version = "0.8.0" authors = ["Martin Larralde <martin.larralde@embl.de>"] edition = "2021" license = "MIT" @@ -20,4 +20,4 @@ generic-array = "1.0" [dependencies.lightmotif] path = "../lightmotif" -version = "0.7.3" +version = "0.8.0" diff --git a/lightmotif-py/Cargo.toml b/lightmotif-py/Cargo.toml index ee5dd4e60e1010258d877055b620f7eac484816b..9b1dbc9019d840e4f2ce7ec022cb38e98f2632a9 100644 --- a/lightmotif-py/Cargo.toml +++ b/lightmotif-py/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-py" -version = "0.7.3" +version = "0.8.0" authors = ["Martin Larralde <martin.larralde@embl.de>"] edition = "2021" license = "MIT OR GPL-3.0-or-later" @@ -17,11 +17,11 @@ path = "lightmotif/lib.rs" [dependencies.lightmotif] path = "../lightmotif" -version = "0.7.3" +version = "0.8.0" [dependencies.lightmotif-tfmpvalue] optional = true path = "../lightmotif-tfmpvalue" -version = "0.7.3" +version = "0.8.0" [dependencies] pyo3 = "0.22.0" generic-array = "1.0.0" diff --git a/lightmotif-py/lightmotif/__init__.py b/lightmotif-py/lightmotif/__init__.py index 59cb1ab8cc9b98279cd5fd7c2d00f2096e0ebb0d..5dba0c41bced9052fa4b52fad94485b0bb5b220b 100644 --- a/lightmotif-py/lightmotif/__init__.py +++ b/lightmotif-py/lightmotif/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.7.3" +__version__ = "0.8.0" from . import lib from .lib import ( diff --git a/lightmotif-tfmpvalue/Cargo.toml b/lightmotif-tfmpvalue/Cargo.toml index 952f4f0d9120320ddd9faf3597bf9053f77eb39d..5971ff321291969e6992f2a12d6d30539db79f8c 100644 --- a/lightmotif-tfmpvalue/Cargo.toml +++ b/lightmotif-tfmpvalue/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif-tfmpvalue" -version = "0.7.3" +version = "0.8.0" authors = ["Martin Larralde <martin.larralde@embl.de>"] edition = "2021" license = "GPL-3.0-or-later" @@ -13,5 +13,5 @@ keywords = ["bioinformatics", "motif", "pssm", "pvalue"] [dependencies.lightmotif] path = "../lightmotif" -version = "0.7.3" +version = "0.8.0" diff --git a/lightmotif/Cargo.toml b/lightmotif/Cargo.toml index c0a664597fe710598769ca18eb660b36f9f05600..622783bb9ca9ce4473bef2e80801d4e3c11cf509 100644 --- a/lightmotif/Cargo.toml +++ b/lightmotif/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightmotif" -version = "0.7.3" +version = "0.8.0" authors = ["Martin Larralde <martin.larralde@embl.de>"] edition = "2021" license = "MIT"