Newer
Older
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
[Unreleased]: https://github.com/althonos/pyfastani/compare/v0.5.1...HEAD
## [v0.5.1] - 2024-02-20
[v0.5.1]: https://github.com/althonos/pyfastani/compare/v0.5.0...v0.5.1
### Added
- Pre-compiled wheels for Python 3.12 and PyPy 3.10.
### Fixed
- Use NEON and SSE2 unconditionally on platforms where they are available by default.
## [v0.5.0] - 2023-07-22
[v0.5.0]: https://github.com/althonos/pyfastani/compare/v0.4.1...v0.5.0
### Changed
- Bump Cython dependency to `v3.0`.
### Fixed
- Add missing signature of `Sketch.index` to type stubs.
- PyPy builds failing on missing `PyInterpreterState_GetID` function.
[v0.4.1]: https://github.com/althonos/pyfastani/compare/v0.4.0...v0.4.1
### Changed
- Use lists instead of arrays to store state of `Minimizers` when pickling.
- Skip serialization of minimizer index to reduce total state size.
- Make `Mapper.query_draft` and `Mapper.query_genome` return hits sorted by identity in descending order.
[v0.4.0]: https://github.com/althonos/pyfastani/compare/v0.3.1...v0.4.0
### Added
- Multi-threaded computation of fragment mapping in `Mapper.query_draft` and `Mapper.query_genome`.
### Fixed
- NEON-specific compile flags in `setup.py` for Aarch64 target platforms.
- Broken compilation for Arm platforms because of missing header guards.
[v0.3.1]: https://github.com/althonos/pyfastani/compare/v0.3.0...v0.3.1
### Added
- Slightly improve documentation in some classes.
- Sphinx documentation for the project hosted on ReadTheDocs.
- Links and instructions to install package from the Bioconda channel.
## [v0.3.0] - 2022-07-17
[v0.3.0]: https://github.com/althonos/pyfastani/compare/v0.2.1...v0.3.0
### Added
- `pickle` protocol implementation to `Mapper` and `Sketch` via `__getstate__` and `__setstate__`.
- `Minimizers` class to access the minimizers of a `Sketch` or `Mapper` object.
### Changed
- Make `Sketcher` and `Mapper` final.
- Prevent direct instantiation of `Mapper` objects.
- Update `Mapper._query_draft` to recycle memory between fragments.
- Vendor `Boost::math` headers (`v1.79`) to allow compiling without depdendencies.
### Fixed
- Broken compilation of `_fastani` extension module as `universal2` binaries on MacOS.
[v0.2.1]: https://github.com/althonos/pyfastani/compare/v0.2.0...v0.2.1
### Fixed
- Missing header files in the `tar.gz` distribution, preventing compilation of the wheel from source.
[v0.2.0]: https://github.com/althonos/pyfastani/compare/v0.1.2...v0.2.0
### Added
- `Sketch.clear` method to remove all sequences currently in a `Sketch` and reset the list of minimizers.
- SIMD code to read and reverse-complement the input sequences efficiently on supported platforms (x86-64 with SSE2 or SSSE3, and ARM with NEON).
### Changed
- Split the `Sketch` type in two depending on whether the object is at the sketching stage (`Sketch`) or at the querying stage (`Mapper`).
- `Sketch.add_genome`, `Sketch.add_draft`, `Mapper.query_genome` and `Mapper.query_draft` can now be passed a Unicode string for the sequence.
### Fixed
- Integer underflow causing minimizers out of the block window to be added to the final minimizers list.
[v0.1.2]: https://github.com/althonos/pyfastani/compare/v0.1.1...v0.1.2
### Changed
- Querying functions now release GIL to allow efficient parallel querying.
[v0.1.1]: https://github.com/althonos/pyfastani/compare/v0.1.0...v0.1.1
### Fixed
- Source distribution missing Cython and C++ sources, thus preventing compilation.
[v0.1.0]: https://github.com/althonos/pyfastani/compare/4bd3017...v0.1.0
Initial release.