Skip to content

Releases: althonos/pyopal

v0.7.0

04 Nov 13:54
v0.7.0
Compare
Choose a tag to compare

Added

  • Support for Python 3.13.

Changed

  • Bump required scoring-matrices dependency to v0.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

06 Jun 10:36
v0.6.1
Compare
Choose a tag to compare

Fixed

  • Import of pyopal on non-AVX2-enabled CPUs causing a crash (#7).
  • Type hints for Database.__init__ not accepting alphabet as a Python string.

v0.6.0

08 May 16:38
v0.6.0
Compare
Choose a tag to compare

Changed

  • Use scoring-matrices package to handle scoring matrices.
  • Import Cython classes from pyopal.lib in the main pyopal namespace.

Fixed

  • Patching of architecture flags of MacOS compilers.

Removed

  • The ScoreMatrix class from pyopal.lib.

v0.5.2

28 Feb 00:30
v0.5.2
Compare
Choose a tag to compare

Fixed

  • Segmentation fault when attempting to align to an empty Database (#6).

v0.5.1

21 Jan 00:04
v0.5.1
Compare
Choose a tag to compare

Fixed

  • Broken behaviour of the ordered keyword in pyopal.align.

v0.5.0

20 Jan 16:48
v0.5.0
Compare
Choose a tag to compare

Added

  • Support for compiling and running package on Windows.
  • Support for Python 3.12.
  • pyopal.Alphabet class for handling sequence encoding outside of ScoreMatrix.
  • Additional score matrices using the data files from Opal.
  • encode_into and decode_into sans-io methods of Alphabet.
  • 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 to pyopal.align to support reusing a ThreadPool.

Changed

  • Store Database sequences using shared_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 of pyopal.lib rather than a user-defined macro for compatibility in other extensions.
  • Update Aligner.align to use the BaseDatabase 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 in setup.py.
  • FullResult.cigar crashing on alignments starting with X.
  • Memory leak in Aligner.align caused by faulty allocation of pointer array.
  • __repr__ implementations of Alphabet and FullResult.
  • Alphabet.__getitem__ reading past the letters buffer.

Removed

  • Database.search method.

v0.5.0-a5

19 Jan 13:53
v0.5.0-a5
Compare
Choose a tag to compare

Added

  • Alphabet.__eq__ implementation comparing letters.
  • pool argument to pyopal.align to support reusing a ThreadPool.

Changed

  • Update Aligner.align to use the BaseDatabase Cython API.

Fixed

  • Memory leak in Aligner.align caused by faulty allocation of pointer array.
  • __repr__ implementations of Alphabet and FullResult.
  • Alphabet.__getitem__ reading past the letters buffer.

v0.5.0-a4

17 Jan 22:44
v0.5.0-a4
Compare
Choose a tag to compare

Added

  • encode_into and decode_into sans-io methods of Alphabet.
  • 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.

Fixed

  • FullResult.cigar crashing on alignments starting with X.

v0.5.0-a3

15 Jan 19:03
Compare
Choose a tag to compare

Added

  • Additional score matrices using the data files from Opal.

Changed

  • 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 of pyopal.lib rather than a user-defined macro for compatibility in other extensions.

Fixed

  • 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 in setup.py.

v0.5.0-a2

15 Jan 18:29
Compare
Choose a tag to compare

Added

  • pyopal.Alphabet class for handling sequence encoding outside of ScoreMatrix.

Changed

  • Make internal extension public as pyopal.lib submodule.