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