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.6.0 - 2024-05-08¶
Changed¶
Use
scoring-matrices
package to handle scoring matrices.Import Cython classes from
pyopal.lib
in the mainpyopal
namespace.
Fixed¶
Patching of architecture flags of MacOS compilers.
Removed¶
The
ScoreMatrix
class 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
ordered
keyword inpyopal.align
.
v0.5.0 - 2024-01-20¶
Added¶
Support for compiling and running package on Windows.
Support for Python 3.12.
pyopal.Alphabet
class for handling sequence encoding outside ofScoreMatrix
.Additional score matrices using the data files from Opal.
encode_into
anddecode_into
sans-io methods ofAlphabet
.Aligner
class to handle alignment of a query to a database.ScoreMatrix.__eq__
implementation.Database.lengths
property to get the lengths of all the sequences in a database without decoding them.pyopal.align
top-level function to handle multithreaded alignments.Alphabet.__eq__
implementation comparing letters.pool
argument topyopal.align
to support reusing aThreadPool
.
Changed¶
Store
Database
sequences usingshared_ptr
for fast slicing and extraction of a database subset.Use templates to generate platform-specific Cython files.
Make internal extension public as
pyopal.lib
submodule.Avoid temporary data copy in
Database._encode
.Move Cython and Opal headers inside package to allow Cython import in other extensions.
Make
Database
use mostly the pointer array to make the algorithms more generic over the storage class.Make
MAX_ALPHABET_SIZE
a constant ofpyopal.lib
rather than a user-defined macro for compatibility in other extensions.Update
Aligner.align
to use theBaseDatabase
Cython API.
Fixed¶
SSE2 not being detected on x86-64, where it is mandatory.
Mark Opal search functions as
noexcept
in Cython to avoid exception checks.ScoreMatrix
buffer-protocol not returning a read-only buffer.Database.mask
accessing out-of-bound elements when building pointer array.Broken detection of
PyInterpreterState_GetID
insetup.py
.FullResult.cigar
crashing on alignments starting withX
.Memory leak in
Aligner.align
caused by faulty allocation of pointer array.__repr__
implementations ofAlphabet
andFullResult
.Alphabet.__getitem__
reading past the letters buffer.
Removed¶
Database.search
method.
v0.4.2 - 2023-08-29¶
Fixed¶
Segmentation fault caused by out-of-bounds access in Opal (#5).
Changed¶
Use Cython
binding
directive to improve generated documentation.
v0.4.1 - 2023-08-29¶
Fixed¶
FullResult.__repr__
not returning a roundtripping string (#4, by @valentynbez).Database.search
overflowing for long sequences with non-sw
algorithms (#3).
Changed¶
Make
Database.search
raise anOverflowError
instead of aRuntimeError
on 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.extract
method to subset a database given a sequence of indices.Database.mask
method to subset a database given a boolean mask.
Changed¶
Replaced
cpu-features
library witharchspec
Python package for runtime detection of CPU features.
Fixed¶
v0.2.0 - 2022-10-17¶
Added¶
query_length
andtarget_length
properties toFullResult
to the lenghts of the complete query and target sequences.FullResult.coverage
method to compute the coverage of the alignment using either the query or the target as the reference.
Changed¶
Compile Cython extension with
binding=False
to fix rendering of documentation.
Fixed¶
Insertion & deletion symbols being inverted in
FullResult.cigar
strings.
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
pyopal
module.Database.insert
potentially crashing when given negative indexes.Database.search
not listing the right return type.
v0.1.0 - 2022-10-06¶
Initial release.