Lightmotif

Latest version: v0.9.1

Safety actively analyzes 688792 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.7.0

Added

`lightmotif`
- Implement indexing of `StripedSequence` by sequence index.
- `matrix` accessor to all matrix types in `lightmotif::pwm` and `lightmotif::seq`.
- `entropy` and `information_content` methods to `CountMatrix`.
- `SymbolCount` trait for counting the number of occurrences of a symbol in an iterable.
- Several `Background` constructors for counting occurences in one or more sequences.
- `FromIterator<A::Symbol>` constructor for `EncodedSequence<A>`.
- `MultipleOf<N>` trait to simplify typenums in platform code signatures.
- Sampling of random sequences using the `rand` dependency under a feature flag.
- `ScoringMatrix.score_into` method to re-use a `StripedScores` buffer.
- `ScoringMatrix.score_position` method to score a single sequence position.
- Indexing by `MatrixCoordinates` in `DenseMatrix`.
- Support for chanding logarithm base when building a `ScoringMatrix` from a `WeightMatrix`.
- Scanning algorithm for finding hits in a sequence with an iterator without allocating `StripedScores` for each sequence position.

`lightmotif-py`
- Support for optional TFMPvalue interface in Python bindings under GPLv3+ code.
- Constructor for `ScoringMatrix` class.
- `ScoringMatrix.reverse_complement` to compute the reverse-complement of a scoring matrix.

Changed

`lightmotif`
- Make `EncodedSequence.stripe` use a dispatching `Pipeline` internally.
- Require power-of-two alignment in `DenseMatrix` implementations.
- Update `generic-array` dependency to `v1.0`.
- Change order of parameters in `ScoringMatrix.score`.
- Reorganize scoring trait and implement row-slice scoring for AVX2 and SSE2.
- Rewrite `Pipeline::threshold` to return matrix coordinates instead of a sequence index.
- Rewrite `Pipeline::argmax` to return matrix coordinates instead of a sequence index.

`lightmotif-py`
- Streamline the use of pipelined functions in Python bindings.

Fixed

`lightmotif`
- Handling of unknown residues in `permute` implementation of `Score` on AVX2.
- `PartialEq` for `DenseMatrix` to ignore alignment padding in each row.

Removed

`lightmotif`
- Platform-specific code for thresholding a `StripedScores` matrix.
- Direct attribute access in `StripedSequence`.

`lightmotif-transfac`
- Remove crate from repository, superseded by the `lightmotif-io` crate.

0.6.0

Added

`lightmotif`
- Validating constructor `::pwm::FrequencyMatrix::new` testing for frequencies on each ranks.
- Getter to the raw data matrix of a `::pwm::FrequencyMatrix`.

`lightmotif-io`
New crate with JASPAR, TRANSFAC and UNIPROBE format parsers.

Changed

`lightmotif`
- Make `max_score` and `min_score` columns of `::pwm::ScoringMatrix` ignore the wildcard symbol column.

`lightmotif-tfmpvalue`
- Invert decay in `TfmPvalue` to reduce rounding errors when computing granularity.
- Use a fast integer hashing algorithm for `i64` keys in maps used for recording *Q*-values.
- Compute the optimal column permutation to accelerate the computation of score distributions.

Removed

`lightmotif-transfac`
Deprecate crate in favour of `lightmotif-io`.

0.5.1

Fixed

`lightmotif`
- Compilation for Arm NEON platforms.

0.5.0

Added

`lightmotif`
- Arm NEON implementation of `Threshold` and `Encode`.
- `Alphabet::as_str` method to get the symbols of an alphabet as a string.
- `DenseMatrix::fill` method to fill a dense matrix with a constant value.
- Convenience getters and conversion traits to `StripedSequence`.
- `Stripe` trait to implement striping of an encoded sequence with SIMD.
- Dynamic dispatched pipeline selecting the best implementation as runtime.
- `PartialEq` implementation for `EncodedSequence`.

`lightmotif-py`
- Buffer and copy protocols for `StripedSequence` and `EncodedSequence`.
- Indexing support to `EncodedSequence`.

`lightmotif-tfmpvalue`
- Convenience methods to access the wrapped `ScoringMatrix` reference in `TfmPvalue`.

Changed

`lightmotif`
- `Encode::encode` now returns an `EncodedSequence` instead of a raw `Vec`.
- Performance improvements for `Encode` for AVX2 and NEON by removing non-const function calls in loop.
- Performance improvements for `Threshold` by skipping the index buffer initialization.
- Avoid buffer initialization when allocating a new buffer in `EncodedSequence::encode`.
- Require `Symbol` implementors to implement `Eq`.

`lightmotif-py`
- Use the dynamic dispatch pipeline to run vectorized operations.

`lightmotif-tfmpvalue`
- Make `TfmPvalue` generic over the type of reference to the wrapped `ScoringMatrix`.

Fixed

`lightmotif`
- `Debug` implementation of `DenseMatrix` crashing when attempting to render the padding bytes.

0.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<Symbol>`.
- AVX2 implementation of `Score` using `gather` instead of `permute` for protein alphabets.
- `From<Vec<_>>` 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.

0.3.0

Changed
- Rewrite the SSE2 maximum search implementation using a generic number of columns.
- Refactor `lightmotif::pwm` to avoid infinite odds-ratio for columns with zero background frequencies.

Added
- `lightmotif-tfmpvalue` crate implementing the TFMPvalue for computing p-values for a `ScoringMatrix`.
- `DenseMatrix::from_rows` method to create a dense matrix from an iterable of rows.
- `PartialEq` implementation for matrices in `lightmotif`.
- Methods to compute the minimum and maximum scores of a `ScoringMatrix`.

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.