Skip to content

Releases: paulsengroup/hictk

v2.2.0

12 Nov 12:42
4730173

Choose a tag to compare

What's Changed

This is a small release consisting of several small bugfixes.

Enjoy!

Changelog

Bugfix

  • Make sure to properly initialize Arrow Compute by @robomics in #449
  • Force override revisions of build_requirements in conanfile by @robomics in #452
  • Fix path/URI accessors for default-constructed cooler::File objects by @robomics in #451
  • Fix runtime error when pre-allocating sparse martrices by @robomics in #453
  • Include spdlog's version in telemetry data by @robomics in #455
  • Fix build when -DHICTK_ASSUME_STD_FILESYSTEM_AVAIL=ON by @robomics in #460
  • Make HiCFileWriter movable by @robomics in #463
  • Respect resolution and unit when querying .hic files for available normalizations by @robomics in #466

Testing

  • Properly handle ContentTooShortError in test/fuzzer/scripts/download_test_datasets.py by @robomics in #465
  • Fix integration tests by @robomics in #464

Dependencies

CI

Full Changelog: v2.1.5...v2.2.0

v2.1.5

03 Oct 10:36
b57a35f

Choose a tag to compare

What's Changed

This is a patch release consisting of a few minor performance and usability improvements.

Changelog

  • [perf]: hictk convert: improve performance when converting .hic files with many chromosomes by @robomics in #427
  • [enhancement]: hictk dump: do not require --resolution when fetching chromosomes by @robomics in #428
  • [fix]: address compiler errors raised when building with Alpine/musl by @robomics in #430
  • [fix]: support #including Eigen headers located under eigen3/ by @robomics in #435
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #409
  • [refactor]: build system by @robomics in #433
  • [deps]: simplify and bump versions by @robomics in #438
  • [fix]: various small fixes by @robomics in #439
  • [telemetry]: collect more information about the build environment by @robomics in #443
  • [refactor]: simplify Dockerfile and minor improvements to CI by @robomics in #444

Full Changelog: v2.1.4...v2.1.5

v2.1.4

19 Jun 17:55
3acaacc

Choose a tag to compare

What's Changed

This is a patch release consisting of one bugfix concerning the help message showing information regarding telemetry collection.

I also took the occasion to refactor the conanfile.py and improve the instructions to build hictk from source.

Changelog

  • [fix]: hictk --help-telemetry by @robomics in #422
  • [refactor]: rewrite conanfile.py to be more modular by @robomics in #424
  • [docs]: update instruction on how to build hictk from sources by @robomics in #423

Full Changelog: v2.1.3...v2.1.4

v2.1.3

16 Jun 21:26
0108b78

Choose a tag to compare

What's Changed

This is a small release consisting of a couple of bugfixes and a few changes to address new warnings issued by GCC 15 and Clang 20.

Changelog

Full Changelog: v2.1.2...v2.1.3

v2.1.2

23 May 16:21
f167820

Choose a tag to compare

What's Changed

This is a small release consisting of one bugfix and various improvements to the documentation and error messages.

Changelog

Bugfix

  • [bug]: address bug in ToDataFrame transformer when span=full and queries are cis and have unusual shapes by @robomics in #406

Improvements

  • [feature]: improve error message generated by hictk balance by @robomics in #401
  • [feature]: improve error messages generated when opening .hic files by @robomics in #411

Documentation

Various

Full Changelog: v2.1.1...v2.1.2

v2.1.1

09 Apr 22:24
dd38500

Choose a tag to compare

What's Changed

This release consists of a single minor bug fix.

  • [bug]: fix segfault when fetching genome-wide interactions from empty .hic files by @robomics in #399

Full Changelog: v2.1.0...v2.1.1

v2.1.0

07 Apr 15:07
53f6a6b

Choose a tag to compare

What's Changed

This release contains a mix of new features, performance improvements, and bug fixes.

Highlighted features

Fetching interactions around the matrix diagonal

We introduce a new transformer named DiagonalBand() which given a pair of pixel iterators, returns another pair of iterators that traverse pixels falling within a given matrix diagonal band.
When DiagonalBand() is constructed from iterators coming from hictk's PixelSelectors, pixels are traversed as efficiently as possible by minimizing the number of pixels that are needlessly fetched from the files.

When using hictk::hic::Files, to achieve the best performance possible, be sure to specify the diagonal_band_width parameter when calling the fetch() method.

Improve performance of queries on Cooler files

With this release, we introduce a few heuristics to minimize the amount of unnecessary work that is performed when fetching interactions from Cooler files.
This is especially noticeable when fetching interactions using "tall" queries (e.g. range1=chr1; range2=chrX:10,000,000-11,000,000).
Overall, this resulted in an average performance improvement in the order of 20-40% (with up to 400% improvements in very specific cases, and a few minor regressions when fetching a very small number of interactions from small chromosomes).
See #330 for more details.

Quality of life improvements

  • When opening .hic or .mcool files consisting of a single resolution using e.g. hictk::File(), the resolution parameter is no longer mandatory.
  • The hictk CLI now supports common units for genomic distances. Example usage: hictk dump myfile.mcool --resolution 5Mbp (5Mb and 5M are equivalent to 5Mbp).
  • Better error messages when attempting to open files with an invalid/missing resolution.

Telemetry

With this release, we introduce support for telemetry collection from the hictk CLI.
We collect as little information as possible.
More specifically we do NOT collect information that could be used to:

  • identify our users
  • identify the machine or environment where hictk is being run
  • know which dataset is being processed by hictk
  • the parameters used to run hictk

Telemetry collection can be disabled in a few ways, such as defining the HICTK_NO_TELEMETRY env variable before launching hictk.

Furthermore, we added a dedicated page to the documentation at hictk.readthedocs.io with detailed information regarding telemetry collection, processing, and storage.
If you have any questions related to this topic, please start a new discussion on GitHub

Changelog

Changes to library code

  • [perf]: improve performance of queries on Cooler files by @robomics in #330
  • [feature]: support efficient, lazy fetching of interactions falling within a diagonal band by @robomics in #346
  • [enhancement]: update ToDataFrame to use signed integers by @robomics in #358
  • [feature]: update transformers to dense/sparse matrices and dataframes to support fetching interactions surrounding the matrix diagonal by @robomics in #356
  • [feature]: implement avail_normalizations() on multi-resolution files by @robomics in #362
  • [feature]: improve automatic resolution inference by @robomics in #368
  • [enhancement]: improve error messages generated by hictk::File() by @robomics in #377 and #357
  • [feature]: Support efficient computation of query size by @robomics in #384
  • [refactor]: improve layout of internal libs to better support partial builds by @robomics in #397
  • [build system]: make overriding git metadata embedding more flexible by @robomics in #352
  • [build system]: prefix internal CMake targets with hictk_ to avoid collisions for common names by @robomics in #351

Changes to CLI tools

  • [enhancement]: hictk convert: improve handling of files with normalizations not available across all resolutions by @robomics in #365
  • [feature]: update CLI to support common units for genomic distances by @robomics in #369
  • [perf] hictk validate: greatly improve performance when using --validate-index by @robomics in #333
  • [feature]: hictk validate: add CLI option to validate pixels from .[ms]cool files by @robomics in #380
  • [feature]: support creating .hic and .cool files with no interactions by @robomics in #387
  • [feature]: improve pixel validation when creating .cool/hic files by @robomics in #388
  • [feature]: make sure all well-behaved errors result in exit code 1 by @robomics in #370
  • [feature]: initial support for collecting telemetry by @robomics in #372
  • [fix]: hictk convert: do not hang when processing .cool files with pixels with 0 interactions by @robomics in #379

Updates to CI

Updates to testing

Various

Full Changelog: v2.0.2...v2.1.0

v2.0.2

26 Feb 15:02
98281cc

Choose a tag to compare

What's Changed

This is a small maintenance release mostly consisting of bugfixes.

Bugfix

Various

New Contributors

Full Changelog: v2.0.1...v2.0.2

v2.0.1

21 Oct 23:53
3131101

Choose a tag to compare

The main motivation behind this release is to ensure that the up-to-date documentation is properly published on ReadTheDocs.

More details

hictk is relying on the linkcheck plugin to ensure that the documentation does not contain broken or invalid links.
However, when the documentation is being built by the ReadTheDocs CI, some of the links in the docs are not yet valid (but they will be once the up-to-date documentation is published).
linkcheck detected this issue and cancelled the CI job, which is why there is no documentation for hictk v2.0.0 on ReadTheDocs.

PR #299 updates linkcheck's ignore list such that the temporarily invalid links are not checked by linkcheck.

The up-to-date documentation for hictk v2.0.1 is available at: https://hictk.readthedocs.io/en/v2.0.1/

What's Changed

Full Changelog: v2.0.0...v2.0.1

v2.0.0

19 Oct 19:36

Choose a tag to compare

What's Changed

Changes to library code

  • Fix bug when fetching whole-genome interactions as dense or sparse matrix by @robomics in #196, #197
  • Expose bin_ptr() accessor wherever it makes sense by @robomics in #199
  • Make hictk::common depend on the git-watcher target by @robomics in #233
  • Various improvements and bug fixes to code related to fetching interactions as Eigen matrices by @robomics in #227
  • Improve transformers::ToDataFrame() by @robomics in #234
  • Support merging streams of pixels originating from files of different formats by @robomics in #243
  • Fix division by zero when fetching pixels from coolers with bin tables with variable bin size by @robomics in #250
  • Various improvements to balancing::Weights by @robomics in #251
  • Fix bug when fetching normalized interactions as dense matrices by @robomics in #252
  • Minor changes to iterators by @robomics in #253
  • Improve support for "square" Cooler files by @robomics in #249
  • Rewrite VectorOfAtomicDecimals by @robomics in #255
  • Make constructors for To*Matrix transformers more flexible by @robomics in #266
  • Improve performance of ToSparseMatrix by reducing memory allocations by @robomics in #277
  • Refactor FileStream class by @robomics in #282
  • Replace HICTK_UNREACHABLE_CODE macro with hictk::unreachable_code() by @robomics in #285
  • Make sure cooler::File::close() does not attempt to finalize files twice by @robomics in #291
  • Mark ~TmpDir() noexcept and log errors as warnings using spdlog by @robomics in #292
  • Improve logging when failures occur from within class destructors by @robomics in #293
  • Add option to exclude "ALL" chromosomes when calling nchroms() on .hic files by @robomics in #294

Changes to CLI tools

  • Better handling of coolers with FP counts by @robomics in #201, #202
  • Implement hictk metadata command by @robomics in #204, #222
  • Improve error message when temporary folder cannot be safely determined by @robomics in #210
  • Fix CLI exit code by @robomics in #215
  • Add --no-create-weight-link CLI flag where appropriate by @robomics in #223
  • Minor improvements to various hictk subcommands by @robomics in #229, #231, #232, #228, #238
  • Add option to override count type used to convert .hic files to .[m]cool format by @robomics in #203
  • hictk load: support ingesting interactions from pairs/pixel files with interactions overlapping with the lower-triangular matrix by @robomics in #264
  • Tweak max active log level based on CMake build type by @robomics in #278
  • Fix default log levels when compiling hictk in Debug mode by @robomics in #279
  • Ensure no temporary files are written when balancing .hic files with --in-memory by @robomics in #280
  • hictk load: support loading compressed interactions by @robomics in #244
  • Fix temporary file name collisions in hictk convert *cool -> hic by @robomics in #274

Updates to CI

Updates to testing

Various

Full Changelog: v1.0.0...v2.0.0