Skip to content

Releases: onecodex/onecodex

v1.0.1

05 Mar 00:11
d79d0b6

Choose a tag to compare

[v1.0.1] - 2026-03-04

Fixed

  • Samples without abundances were filtered out of heatmaps and stats functions
    when using non-abundance metrics

v1.0.0

09 Feb 19:46
3f7b78a

Choose a tag to compare

[v1.0.0] - 2026-02-09

This release contains breaking changes to plotting and classification results functions such as how SampleCollection is instantiated and how metric, diversity_metric, and rank are passed to SampleCollection.to_df and plotting functions.

Previously, metric and normalize were determined when a SampleCollection was instantiated. Now, those parameters are passed to .to_df and plotting functions separately, allowing users to change metrics at plot time.

Example:

##
# in 0.19.x
collection = onecodex.models.SampleCollection(samples, metric='readcount_w_children', normalize=True)
# produce a dataframe using readcount_w_children as the metric
collection.to_df()
# to plot a different metric, create a new SampleCollection
collection = onecodex.models.SampleCollection(samples, metric='abundance_w_children')
collection.plot_bargraph()

##
# in 1.0.0
collection = onecodex.models.SampleCollection(samples)
collection.to_df(metric='normalized_readcount_w_children')
# switch metrics without re-instantiating
collection.plot_bargraph(metric='abundance_w_children')
# for backwards compatibility, the following still works but prints a warning
collection = onecodex.models.SampleCollection(samples, metric='readcount_w_children')
# defaults to the metric provided when the collection was created
collection.to_df()

Added

  • metric is now an argument for all plot and stats functions. By default, it is auto, which is determined by SampleCollection.automatic_metric based on existing logic
  • SampleCollection.__repr__ has been updated to differentiate it from lists: <SampleCollection[Samples] length=60 : [<Samples 0b2d0b5397324841: "SRR4408293.fastq">, ...
  • Added type annotations to onecodex.Api() so that models are now known to static analyzers (e.g., ocx.Samples)
  • SampleCollection.automatic_rank now returns the best default onecodex.enums.Rank to use based on the contained results
  • SampleCollection.automatic_metric now returns the best onecodex.enums.Metric value to use based on the contained results

Changed

  • You can change plotting metrics without re-instantiating the SampleCollection
  • In alpha- and beta-diversity related functions (e.g., plot_mds), the argument metric was changed to either diversity_metric or distance_metric. The metric argument in those functions now corresponds to the abundance metric (see onecodex.enums.Metric)
  • onecodex.notebooks.report functions no longer raise a OneCodexException if used outside of IPython.

Removed

  • ClassificationDataframe.ocx has been removed
  • SampleCollection() no longer takes metric or normalize arguments. Those have been merged into a single metric= argument that takes a string or onecodex.enums.Metric enum value, which is now passed into dataframe and plotting functions directly
  • normalize has been removed. Normalized metrics are now available as individual Metric enum values
  • Removed test-python3-w-simple-json from CI. It randomly started breaking. We don't think we need it anymore since we've moved away from Potion

Fixed

  • readcount being used instead of the intended metric when clustering samples for PCA/Heatmap when plotting from a SampleCollection
  • Plot title and table export column names have been updated to be more specific and match custom plots

v0.19.5

06 Feb 17:48
9b1cfb2

Choose a tag to compare

[v0.19.5] - 2026-02-06

Changed

  • ocx.Samples and ocx.Metadata now use a more performant, cursor-based pagination method

v0.19.4

21 Jan 20:24
dcd5e3b

Choose a tag to compare

Added

  • Adds onecodex interleave command for generating interleaved fastq files
    from a pair of R1+R2 files

v0.19.3

09 Jan 20:43
323d730

Choose a tag to compare

Fixed

  • Fixes cost.amount should be an integer

v0.19.2

08 Jan 19:25
d7289b6

Choose a tag to compare

Added

  • Adds Analyses.get_files and Analyses.download_file methods to help with analyses' output files.
  • Adds cost to Analyses
  • Adds dependencies to Analyses

v0.19.1

14 Oct 19:27
f5e2dea

Choose a tag to compare

Fixed

  • Fixes TypeError in ocx.Api() constructor

Changed

  • Lowers minimum pydantic version to 2.10.6

v0.19.0

06 Oct 15:58
8593291

Choose a tag to compare

Added

  • Adds Python 3.13 support
  • Adds numpy v2 support

Changed

  • Upgrades Altair to 5.5.0
  • Upgrades scikit-bio to 0.7.0. IMPORTANT: This changes the log base used in Shannon alpha diversity calculations from base 2 to e (natural log)
  • Upgrades urllib3 to >=2.5.0
  • Modernizes packaging and tooling by migrating to pyproject.toml, uv, and ruff
  • Updates pytest to fail on warnings
  • Replaces Potion-Client resources with Pydantic v2 models
  • Changes metric=auto behavior based on the number of classification results with abundance estimates

Fixed

  • Fixes SampleCollection metadata fetching to only match canonical ranks
  • Fixes issue when plotting fields that look like JavaScript paths (e.g. field.name or field[name])
  • Fixes various documentation issues

Removed

  • Removes Samples.init_multipart_upload() in favor of Samples.upload()

v0.18.0

18 Apr 22:04
5ee1dd7

Choose a tag to compare

Added

  • Adds ocx.FunctionalProfiles to fetch functional analyses results
  • Adds SampleCollection.to_classification_df() and
    SampleCollection.to_functional_df() methods to return classification or
    functional results as DataFrames
  • Adds option to omit taxonomic labels from plot mappings

Changed

  • Ensures singleton FASTQ filenames follow the same format as chunked uploads
    (Oxford Nanopore)

Fixed

  • Fixes issue with onecodex login requiring an API key for certain accounts

v0.17.0

03 Dec 16:03
c015863

Choose a tag to compare

Added

  • Adds SampleCollection.beta_diversity_stats() to test for significant differences between groups of samples based on their beta diversity distances (global and posthoc pairwise PERMANOVA tests are supported)
  • Adds categorical data palette to onecodex Altair theme
  • Adds support for passing both facet_by and secondary_haxis to plot_metadata()
  • Adds filtering and warning if samples are missing abundances in plot_metadata(), plot_pcoa(), plot_mds(), plot_pca(), alpha_diversity_stats(), and beta_diversity_stats()
  • Adds docs about Shannon diversity being calculated using log base 2 instead of base e

Changed

  • Upgrades Altair to 5.4.1 and replaces altair_saver with vl-convert
  • Upgrades notebook to 6.5.7
  • Upgrades WeasyPrint to 63.0
  • Removes node and vega npm dependencies
  • Removes jupyter-client dependency
  • Removes selenium dependency
  • Removes pinned pydyf version

Fixed

  • Fixes Api() call when Altair is not installed
  • Fixes scikit-bio and pandas warnings
  • Improves error message and docstring in SampleCollection.to_df(normalize=False)

Deprecated

  • Deprecates AlphaDiversityStatsResults.posthoc_df in favor of AlphaDiversityStatsResults.posthoc.adjusted_pvalues