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.8.2 - 2025-08-18#
Fixed#
RepresentativeTrimmernot working as intended (#5) because oftrimAlcode issues (inab/trimal#117, inab/trimal#118).
v0.8.1 - 2025-05-06#
Changed#
Use CMake and
scikit-build-coreinstead ofsetuptoolsto build package.Bump
scoring-matricespackage tov0.3.0.
Fixed#
Runtime detection of SSE2 on x86-64 Windows platforms.
v0.8.0 - 2024-08-28#
Changed#
Update vendored trimAl to
d89ffc3(2.0_RC).Use
scoring-matricespackage to get a base for theSimilarityMatrixclass.Rename
backendtoplatformfor all trimmer classes.Use trimAl platform-specific code to accelerate computations.
Migrate documentation to
pydata-sphinx-theme.
Fixed#
Missing trimmer classes in API documentation.
Pin supported versions of
scoring-matricespackage to~=0.2.0.
Removed#
Outdated platform-specific code.
archspecdependency (replaced bycpu_featuresused internally in trimAl).
v0.7.0 - 2023-07-21#
Changed#
Bumped Cython dependency to
v3.0.
v0.6.0 - 2022-10-17#
Fixed#
Overflow in
calculateSpuriousVectorfor certain sequence block sizes.MMX backend never being used unless explicitly required even when being the best supported backend.
Changed#
Use
archspecPython package instead ofcpu-featureslibrary for CPU feature detection at runtime.Use
importlib.resources.filesto load package data inpytrimal.tests.
v0.5.5 - 2022-10-17#
Fixed#
calculateSpuriousVectormethod of SIMD implementations not being declaredoverride.
Changed#
Replaced
aligned_allocwithposix_memalignfor 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_maskandsequences_maskattributes ofTrimmedAlignmentnot being documented (#1).
v0.5.3 - 2022-10-04#
Fixed#
SimilarityMatrix.ntinverting thedegeneratedargument value.
v0.5.2 - 2022-09-30#
Changed#
Replace NEON horizontal sums with implementations using
vaddvqon Aarch64 andvpaddlon Armv7.Remove one layer of table lookup in all
Similarity::CalculateVectorsimplementations.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
Gapsstatistic.
v0.5.1 - 2022-09-05#
Fixed#
Build of
cpu_featuresfor platforms without hardware detection support.
v0.5.0 - 2022-09-05#
Added#
pytrimal.RepresentativeTrimmerclass to trim by maximum identity or fixed number of cluster representatives.pickleprotocol support for all trimmer classes.Conversion methods to convert an
Alignmentfrom 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::streambufimplementation based on thereadintoPython method not working on Arm because ofcharbeing used to read ASCII.
Removed#
Support for Python 3.5, due to Cython compatibility issues.
v0.4.0 - 2022-08-14#
Added#
BaseTrimmer.backendproperty to get the backend used by a trimmer object.Zero-copy slicing for
AlignmentSequencesandAlignmentResiduesobjects.noduplicateseqsmethod forAutomaticTrimmerobjects.OverlapTrimmerclass to perform overlap trimming with SSE-accelerated implementation.AutomaticTrimmer.METHODSattribute to expose all supported automatic trimming methods.__repr__implementation to all trimmer classes.
Fixed#
Missing deallocation code for standalone
AlignmentResiduesobjects.Alignment.loadnot working properly in PyPy environments.Alignmentconstructor 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
Alignmentobject with sequences from anAlignmentSequencesobject.
Removed#
consistency_thresholdandconsistency_windowarguments ofManualTrimmer.
v0.3.0 - 2022-06-26#
Added#
Support for loading an
Alignmentfrom 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
Alignmentwithout requiringimportlib.resources.
v0.2.2 - 2022-06-08#
Added#
Keyword arguments to specify the half-window sizes in manual trimmer.
Alignment.dumpandAlignment.dumpsfunction 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_featureslibrary 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.hheader file.
v0.1.2 - 2022-06-04#
Added#
Python constructor and buffer protocol support for
SimilarityMatrix.SimilarityMatrix.similaritymethod to get the similarity between two characters instead.
Fixed#
Source compilation failing because of source files in the
pytrimalfolder.
v0.1.1 - 2022-06-03#
Added#
Type annotations for all classes of the
pytrimalextension module.
Fixed#
Cython header files not being included in source distribution.
v0.1.0 - 2022-06-02#
Initial release.