Releases: biocore/biom-format
Maintenance, bug fix, performance and feature release
New features:
- Add Windows support. PR #951 revises codebase to be Windows compatible and adds this support to the CI testing matrix.
- Add NumPy 2.0 support. PR #950 ensures code compatibility with NumPy 2.0. This support is yet to be added to the CI testing matrix.
- Expand API for
Table.partition
to allow for passingdict
mappings from ids to groups and vice versa, remove of empty vectors, and ignoringNone
partitions. See issue #937 - NumPy 2.0 support, see issue #956
- The optimized subsample without replacement method is now exposed as
biom.subsample
. Note that this method operates inplace on SciPycsr_matrix
andcsc_matrix
objects. See issue #958
Bug Fixes:
- Fixed an edge case on in
align_tree
when a feature was empty, see issue #948 - In
subsample(..., with_replacement=True)
, it was possible to trigger a numerical stability on sum, see issue #952 update_ids(..., strict=False)
could yield truncated IDs, see issue #957
Performance improvements:
- Revise
Table._fast_merge
to use COO directly. For very large tables, this reduces runtime by ~50x and memory by ~5x. See PR #913. - Drastically reduce the memory needs of subsampling when sums are large. Also adds 64-bit support. See PR #935.
- Improve handling of not-perfectly-integer inputs. See PR #938.
New Contributors
- @ake123 made their first contribution in #936
- @sfiligoi made their first contribution in #935
- @qiyunzhu made their first contribution in #950
- @mataton made their first contribution in #951
Full Changelog: 2.1.15.2...2.1.16
Artifact push
Minor release for artifact push
Artifact push
Minor release for artifact push
Maintenance and bugfix release
Thank you in particular to @peterjc for his detailed review of the project! And also thank you to both @peterjc and @Midnighter for their contributions for this release.
Bug fixes:
- Allow
Table.to_json
to properly handle numpy types in metadata, see issue #886 - Do not modify IDs in place in the presence of duplicate relabels, see issue #892
- Catch an edge case where a failured ID update in place would actually change IDs, see issue #892
New features:
biom.parse.save_table
makes saving less tedious, see issue #897biom.util.biom_open
now supports pathlib.Path, see issue #894- You can now set a random seed at the call to
Table.subsample
, see issue #914.
General maintenance:
- Allow specifying a creation time on write, see issue #895
- h5py optional code blocks have been removed, see issue #896
- Many warnings from the test suite have been resolved, see issue #912
- Politely error when validating non biom-format files, see issue #901
- Disallow
head
with-n <= 0
and-m <= 0
, see issue #899
Bug fix release
Performance and bug fix release
Make pypi happy
Pypi doesn't allow reuse of filenames even if deleted, so generating a unique tag just for it
General maintenance release
General maintenance and feature expansion, released on 25 March 2022.
Thank you to @nsoranzo, @mortonjt, @tillea and @antgonza for the contributions!
Bug fixes:
Table.from_json
now respects the creation date issue #770 in Python 3.7 and higher
New Features
Bug fix release for a rare string conversion issue
During deployment testing for QIIME 2 2020.11, it was observed that certain combinations of hdf5 or h5py dependencies can result in metadata strings parsing as ASCII rather than UTF-8. Parse of BIOM-Format 2.1.0 files now normalize metadata strings as UTF-8, see #853. Thanks @thermokarst for helping tracking this down!
Support for pandas >= 1.0, and new features
New features and support for Pandas >= 1.0, released on 5 November 2020. Thank you for the contributions @fbeghini, @adamgayoso, and @ElDeveloper!
Important:
Cython and numpy are no more required to be present before building, see PR #840
New Features:
Performance boost to Table.remove_empty. For large tables this cuts the running time from 20 seconds to ~1.1 seconds, see PR #847
A much faster way to merge tables (without metadata) has been added. For large tables, this was a few minutes rather than a few hours. This method is implicitly invoked when calling Table.merge if unioning both axes, and the tables lack metadata. Table.concat is still much faster, but assumes one axis is disjoint. See PR #848.
Simplify interaction with the concatenation method, allowing for passing in an individual table and support for a general biom.concat(tables) wrapper. See PR #851.
Added support for parsing adjacency table structures, see issue #823.
Bug fixes:
Support for pandas >= 1.0, see the comment and commits here