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.3 - 2025-08-07#
Fixed#
Memory missalocation in
opal(#8).
v0.7.2 - 2025-06-12#
Fixed#
Memory leak in
Aligner.alignwhen running in buckets overflow mode.
v0.7.1 - 2025-03-04#
Fixed#
Extra key in
pyproject.tomlcausing build issues with version0.11.0ofscikit-build-core.Broken detection of default SSE2 support for x86-64 CPUs on Windows.
Missing
opal.hfile in Python site install to allow Cython imports.
v0.7.0 - 2024-11-04#
Added#
Support for Python 3.13.
Changed#
Bump required
scoring-matricesdependency tov0.3.0.Reorganize project to build with CMake and
scikit-build-core.Update documentation to use the PyData theme.
Fixed#
Signature of Cython classes constructors not displaying in documentation.
Removed#
Support for Python 3.6.
v0.6.1 - 2024-06-06#
Fixed#
Import of
pyopalon non-AVX2-enabled CPUs causing a crash (#7).Type hints for
Database.__init__not acceptingalphabetas a Python string.
v0.6.0 - 2024-05-08#
Changed#
Use
scoring-matricespackage to handle scoring matrices.Import Cython classes from
pyopal.libin the mainpyopalnamespace.
Fixed#
Patching of architecture flags of MacOS compilers.
Removed#
The
ScoreMatrixclass frompyopal.lib.
v0.5.2 - 2024-02-28#
Fixed#
Segmentation fault when attempting to align to an empty
Database(#6).
v0.5.1 - 2024-01-21#
Fixed#
Broken behaviour of the
orderedkeyword inpyopal.align.
v0.5.0 - 2024-01-20#
Added#
Support for compiling and running package on Windows.
Support for Python 3.12.
pyopal.Alphabetclass for handling sequence encoding outside ofScoreMatrix.Additional score matrices using the data files from Opal.
encode_intoanddecode_intosans-io methods ofAlphabet.Alignerclass to handle alignment of a query to a database.ScoreMatrix.__eq__implementation.Database.lengthsproperty to get the lengths of all the sequences in a database without decoding them.pyopal.aligntop-level function to handle multithreaded alignments.Alphabet.__eq__implementation comparing letters.poolargument topyopal.alignto support reusing aThreadPool.
Changed#
Store
Databasesequences usingshared_ptrfor fast slicing and extraction of a database subset.Use templates to generate platform-specific Cython files.
Make internal extension public as
pyopal.libsubmodule.Avoid temporary data copy in
Database._encode.Move Cython and Opal headers inside package to allow Cython import in other extensions.
Make
Databaseuse mostly the pointer array to make the algorithms more generic over the storage class.Make
MAX_ALPHABET_SIZEa constant ofpyopal.librather than a user-defined macro for compatibility in other extensions.Update
Aligner.alignto use theBaseDatabaseCython API.
Fixed#
SSE2 not being detected on x86-64, where it is mandatory.
Mark Opal search functions as
noexceptin Cython to avoid exception checks.ScoreMatrixbuffer-protocol not returning a read-only buffer.Database.maskaccessing out-of-bound elements when building pointer array.Broken detection of
PyInterpreterState_GetIDinsetup.py.FullResult.cigarcrashing on alignments starting withX.Memory leak in
Aligner.aligncaused by faulty allocation of pointer array.__repr__implementations ofAlphabetandFullResult.Alphabet.__getitem__reading past the letters buffer.
Removed#
Database.searchmethod.
v0.4.2 - 2023-08-29#
Fixed#
Segmentation fault caused by out-of-bounds access in Opal (#5).
Changed#
Use Cython
bindingdirective to improve generated documentation.
v0.4.1 - 2023-08-29#
Fixed#
FullResult.__repr__not returning a roundtripping string (#4, by @valentynbez).Database.searchoverflowing for long sequences with non-swalgorithms (#3).
Changed#
Make
Database.searchraise anOverflowErrorinstead of aRuntimeErroron score overflow.
v0.4.0 - 2023-07-21#
Changed#
Bumped Cython dependency to
v3.0.
Fixed#
PyPy 3.9 builds failing on missing
PyInterpreterState_GetID.
v0.3.0 - 2023-05-30#
Added#
Database.extractmethod to subset a database given a sequence of indices.Database.maskmethod to subset a database given a boolean mask.
Changed#
Replaced
cpu-featureslibrary witharchspecPython package for runtime detection of CPU features.
Fixed#
v0.2.0 - 2022-10-17#
Added#
query_lengthandtarget_lengthproperties toFullResultto the lenghts of the complete query and target sequences.FullResult.coveragemethod to compute the coverage of the alignment using either the query or the target as the reference.
Changed#
Compile Cython extension with
binding=Falseto fix rendering of documentation.
Fixed#
Insertion & deletion symbols being inverted in
FullResult.cigarstrings.
v0.1.1 - 2022-10-07#
Added#
Buffer protocol implementation to
pyopal.ScoreMatrix.Sphinx documentation hosted on ReadTheDocs.
Fixed#
Docstring now showing in the main
pyopalmodule.Database.insertpotentially crashing when given negative indexes.Database.searchnot listing the right return type.
v0.1.0 - 2022-10-06#
Initial release.