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.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.