Releases: paulsengroup/StripePy
v1.3.0
What's Changed
This is a minor release introducing support for Python 3.14 and dropping support for Python 3.9.
Furthermore, the release includes a few minor bug fixes and performance improvements, including the new --low-memory flag which can be used to reduce the amount of memory required to fetch interaction matrices (at the cost of performance).
Changelog
- [feat]: support Python 3.14 and drop Python 3.9 by @robomics in #200
- [deps]: override the default process start method when appropriate by @robomics in #199
- [deps]: bump by @rea1991 in #203
- [perf]: disable hictkpy's logger when appropriate by @robomics in #201
- [fix]: properly deal with zero-height stripes by @rea1991 in #195
- [enhancement]: skip matrices with 0 interactions by @robomics in #197
- [perf]: add --low-memory CLI option to minimize memory usage when fetching interactions by @robomics in #202
Full Changelog: v1.2.1...v1.3.0
v1.2.1
What's Changed
This is a patch release meant to ensure that StripePy continues working with the latest version of structlog (v25.5.0).
Changelog
- [fix]: update logger to work with structlog v25.5+ by @robomics in #190
- [ci]: bump Actions and pre-commit dependencies by @dependabot[bot] and @pre-commit-ci[bot] in #187, #189, and #191
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's Changed
This is a small release containing a few bugfixes, documentation improvements, and a new feature to aid stripe filtering.
New filtering option
We introduce a new stripe filtering criterion based on the Coefficient of Variation (CV), --coefficient-of-variation-threshold.
This option is available in stripepy view and stripepy plot cm, and it can be used to discard mislabeled stripes that overlap regions with gaps in Hi-C maps, such as pericentromeric regions.
Refer to the documentation for more details.
Changelog
New features
- Support stripe filtering based on the coefficient of variation of within-stripe interactions by @rea1991 in #178
Documentation
Bugfix
- Provide a valid fallback-version to tool.hatch.version by @rea1991 in #176
- stripepy view: properly deal with BrokenPipeErrors on macOS by @robomics in #177
- Fix logging of exceptions by @robomics in #179
- Ensure telemetry attributes are well defined even when null by @rea1991 in #181
- Fix warning by @robomics in #185
Dependencies
- pre-commit autoupdate by @pre-commit-ci[bot] in #172
- Bump the github-actions group across 1 directory with 8 updates by @dependabot[bot] in #184
Others
Full Changelog: v1.1.1...v1.2.0
v1.1.1
What's Changed
StripePy published in Bioinformatics 🎉 Read the paper here!
This is a small release introducing a few small features and addressing minor bugs.
New CLI options
We introduce options --license and --cite, which can be used to print StripePy's license and reference on the terminal.
Improved documentation
We restructured and expanded StripePy's documentation, which is now hosted on ReadTheDocs at stripepy.readthedocs.io.
Telemetry
This release introduces initial support to collect application telemetry from StripePy, refer to the Telemetry section in the documentation for more details.
Changelog
New features
- Add CLI options to display Stripepy's license and bibtex entry by @robomics in #162
- Initial support for telemetry collection by @robomics in #168
Documentation
- Add documentation by @robomics and @rea1991 in #60
- Setup ReadTheDocs by @robomics in #164
- Restructure README by @rea1991 in #165
- Improve API docs by @robomics in #171
Bugfix
Dependencies
- Update pyproject.toml by @robomics in #167
- Bump the github-actions group across 1 directory with 3 updates by @dependabot in #161
- Pre-commit autoupdate by @pre-commit-ci in #77
- Update pyproject.toml to include a [doc] option group by @robomics in #170
Full Changelog: v1.1.0...v1.1.1
v1.1.0
This release exposes a new CLI argument --k-neighbour on the stripepy call subcommand to allow users to customize the number of bins considered to calculate the bio-descriptors.
Full Changelog: v1.0.0...v1.1.0
v1.0.0
What's Changed
This release comes with several new features, bug fixes, and performance optimization.
We updated how stripe biodescriptors are calculated to better deal with stripes located close to the beginning or the end of the chromosome. Among other things, this required us to update the schema of the HDF5 file produced by stripepy call.
We also addressed a bug that could cause slightly different results when running stripepy call on different platforms. This was due to how different CPU architectures and operating systems handle floating-point operations.
Regarding computational performance, we introduced several optimizations that resulted in the halving of memory requirements as well as significantly better multithreaded performance (we observed a 4x performance improvement when running stripepy call with default parameters on ENCFF993FGR.mcool on a MacBook Pro M1 (2020) using 8 CPU cores).
Finally, we re-architectured the logging code to support writing detailed log messages to a dedicated file and to make the messages printed to the terminal more user-friendly.
New features
- Setup application logging by @robomics in #27
- Improve error messages issued upon failure of CLI argument type validation by @robomics in #83
- Add dynamic progress bar by @robomics in #86
- Update HDF5 schema by @robomics in #85
- Improve parameter validation in Stripe class by @robomics in #107
- Re-introduce progress bars by @robomics in #120
- Show default values when calling stripepy ... --help by @robomics in #118
- Update stripepy view to support showing stripes with their biodescriptors by @robomics in #154
Bugfix
- Ensure private datasets are downloaded only when selected explicitly by @robomics in #89
- Correct bug in file name inside _plot_stripes_helper by @rea1991 in #93
- Fix bug when running stripepy-call --unit-test by @robomics in #94
- Fix inconsistent results produced on different platforms by @robomics in #92
- Fix off-by-one error in code computing stripe biodescriptors by @robomics in #116
- Correct bound checking in stripe plotting code by @robomics in #125
- Fix handling of chromosomes without stripes by @rea1991 in #127
- Fix k-neighborhood definition in compute_biodescriptors by @rea1991 in #123
- stripepy download: ignore errors occurring while updating the progress bar by @robomics in #142
- stripepy view: bring back compatibilty with v1 result files by @robomics in #145
- Disable colored logging when stderr is not a TTY by @robomics in #152
CI and testing
- Simplify CI by adding the "minimal_install" param to the job matrix by @robomics in #95
- Address CodeQL warnings by @robomics in #96
- Bump github-actions by @dependabot and @robomics #100, #108, #109, #114, #124, #148, #149, and #151
- pre-commit: update config and add new hooks by @robomics in #147
Performance optimization
- Optimize find_HIoIs() by @robomics in #91
- Various optimizations for stripepy call by @robomics in #106
- Take advantage of the new hictkpy.File.fetch() capabilities by @robomics in #143
- Optimize performance when processing very tall stripes by @robomics in #153
Various
- [documentation]: update README and CITATION.cff by @robomics and @rea1991 in #82, #99, #115, #146, and #155
- [refactor]: rewrite stripepy call to use the new plotting functions by @robomics in #84
- [refactor]: update stripepy plot to use the new plot API by @robomics in #87
- [refactor]: restructure stripepy call outputs by @robomics in #97
- [refactor]: remove unused code by @robomics in #98
- [refactor]: rework project layout by @robomics in #132
- [refactor]: simplify assertion for neighborhood size by @rea1991 in #102
- [dependencies]: bump dependencies and remove unused by @robomics and @dependabot in #88, #131, #140, and #150
- [benchmark]: update benchmark/run-over-StripeBench.py by @rea1991 in #128, #156, and #126
Full Changelog: v0.0.2...v1.0.0
v0.0.2
What's Changed
- Rework StripePy IO by @robomics in #71
- Add script to run StripePy over the StripeBench benchmark by @rea1991 in #70
- Initial implementation of stripepy plot by @robomics in #76
- Rename package from stripepy to stripepy-hic by @robomics in #80
- Update the README by @robomics in #81
- Updates to CI @dependabot, @pre-commit-ci #68, #65, #75
New Contributors
- @dependabot made their first contribution in #68
- @pre-commit-ci made their first contribution in #65
Full Changelog: v0.0.1...v0.0.2