Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased¶
v0.7.0 - 2023-07-21¶
Changed¶
Bumped Cython dependency to
v3.0
.
v0.6.0 - 2022-10-17¶
Fixed¶
Overflow in
calculateSpuriousVector
for certain sequence block sizes.MMX backend never being used unless explicitly required even when being the best supported backend.
Changed¶
Use
archspec
Python package instead ofcpu-features
library for CPU feature detection at runtime.Use
importlib.resources.files
to load package data inpytrimal.tests
.
v0.5.5 - 2022-10-17¶
Fixed¶
calculateSpuriousVector
method of SIMD implementations not being declaredoverride
.
Changed¶
Replaced
aligned_alloc
withposix_memalign
for compatibility with MacOS.
v0.5.4 - 2022-10-15¶
Added¶
AVX2 and MMX implementations of the SIMD statistics computation.
Tests for all SIMD implementations supported on the local machine.
Changed¶
Refactor SIMD code using C++ templates and generic implementation.
Fixed¶
Broken rendering of function signatures in Sphinx documentation.
residues_mask
andsequences_mask
attributes ofTrimmedAlignment
not being documented (#1).
v0.5.3 - 2022-10-04¶
Fixed¶
SimilarityMatrix.nt
inverting thedegenerated
argument value.
v0.5.2 - 2022-09-30¶
Changed¶
Replace NEON horizontal sums with implementations using
vaddvq
on Aarch64 andvpaddl
on Armv7.Remove one layer of table lookup in all
Similarity::CalculateVectors
implementations.Make all SIMD code use local buffers and deallocate early.
Fixed¶
Invalid operator being used in Cython code to deallocate C++ arrays.
Added¶
SSE2 and NEON implementations for the
Gaps
statistic.
v0.5.1 - 2022-09-05¶
Fixed¶
Build of
cpu_features
for platforms without hardware detection support.
v0.5.0 - 2022-09-05¶
Added¶
pytrimal.RepresentativeTrimmer
class to trim by maximum identity or fixed number of cluster representatives.pickle
protocol support for all trimmer classes.Conversion methods to convert an
Alignment
from and to Biopython or PyHMMER objects.Arm NEON implementation of the statistics computation algorithm, with speed-up similar to that of the SSE implementation.
Fixed¶
std::streambuf
implementation based on thereadinto
Python method not working on Arm because ofchar
being used to read ASCII.
Removed¶
Support for Python 3.5, due to Cython compatibility issues.
v0.4.0 - 2022-08-14¶
Added¶
BaseTrimmer.backend
property to get the backend used by a trimmer object.Zero-copy slicing for
AlignmentSequences
andAlignmentResidues
objects.noduplicateseqs
method forAutomaticTrimmer
objects.OverlapTrimmer
class to perform overlap trimming with SSE-accelerated implementation.AutomaticTrimmer.METHODS
attribute to expose all supported automatic trimming methods.__repr__
implementation to all trimmer classes.
Fixed¶
Missing deallocation code for standalone
AlignmentResidues
objects.Alignment.load
not working properly in PyPy environments.Alignment
constructor sometimes crashing when not given any sequence.
Changed¶
Use aligned memory for some temporary buffers used in SIMD code.
Enable loop unrolling when supported by the compiler.
Skip letter validation when creating an
Alignment
object with sequences from anAlignmentSequences
object.
Removed¶
consistency_threshold
andconsistency_window
arguments ofManualTrimmer
.
v0.3.0 - 2022-06-26¶
Added¶
Support for loading an
Alignment
from a file-like object for certain formats.Generic optimized backend using caching optimizations from inab/trimal#66.
Fixed¶
Compilation of code for OSX platforms in Python 3.10.
File not being closed on error when loading a FASTA alignment.
Changed¶
Add tests for loading an
Alignment
without requiringimportlib.resources
.
v0.2.2 - 2022-06-08¶
Added¶
Keyword arguments to specify the half-window sizes in manual trimmer.
Alignment.dump
andAlignment.dumps
function to write an alignment to a file, file-like object, or string.Optimized implementation of
Similarity::calculateVectors
.
Changed¶
Use faster implementation of SSE2 horizontal sum based on
_mm_sad_epu8
.
v0.2.1 - 2022-06-06¶
Fixed¶
Missing SSE2 files in source distribution.
v0.2.0 - 2022-06-06¶
Added¶
Vendored
cpu_features
library to perform runtime detection of CPU features.SIMD implementation of the similarity statistic code with SSE2 instructions.
Fixed¶
Compilation on platforms without OpenMP by adding an empty
omp.h
header file.
v0.1.2 - 2022-06-04¶
Added¶
Python constructor and buffer protocol support for
SimilarityMatrix
.SimilarityMatrix.similarity
method to get the similarity between two characters instead.
Fixed¶
Source compilation failing because of source files in the
pytrimal
folder.
v0.1.1 - 2022-06-03¶
Added¶
Type annotations for all classes of the
pytrimal
extension module.
Fixed¶
Cython header files not being included in source distribution.
v0.1.0 - 2022-06-02¶
Initial release.