Releases: onecodex/onecodex
Releases · onecodex/onecodex
v1.0.1
v1.0.0
[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
metricis now an argument for all plot and stats functions. By default, it isauto, which is determined bySampleCollection.automatic_metricbased on existing logicSampleCollection.__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_ranknow returns the best defaultonecodex.enums.Rankto use based on the contained resultsSampleCollection.automatic_metricnow returns the bestonecodex.enums.Metricvalue 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 argumentmetricwas changed to eitherdiversity_metricordistance_metric. Themetricargument in those functions now corresponds to the abundance metric (seeonecodex.enums.Metric) onecodex.notebooks.reportfunctions no longer raise aOneCodexExceptionif used outside of IPython.
Removed
ClassificationDataframe.ocxhas been removedSampleCollection()no longer takesmetricornormalizearguments. Those have been merged into a singlemetric=argument that takes a string oronecodex.enums.Metricenum value, which is now passed into dataframe and plotting functions directlynormalizehas been removed. Normalized metrics are now available as individualMetricenum values- Removed
test-python3-w-simple-jsonfrom CI. It randomly started breaking. We don't think we need it anymore since we've moved away from Potion
Fixed
readcountbeing used instead of the intended metric when clustering samples for PCA/Heatmap when plotting from aSampleCollection- Plot title and table export column names have been updated to be more specific and match custom plots
v0.19.5
v0.19.4
v0.19.3
v0.19.2
v0.19.1
Fixed
- Fixes
TypeErrorinocx.Api()constructor
Changed
- Lowers minimum
pydanticversion to 2.10.6
v0.19.0
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, andruff - Updates
pytestto fail on warnings - Replaces Potion-Client resources with Pydantic v2 models
- Changes
metric=autobehavior based on the number of classification results with abundance estimates
Fixed
- Fixes
SampleCollectionmetadata fetching to only match canonical ranks - Fixes issue when plotting fields that look like JavaScript paths (e.g.
field.nameorfield[name]) - Fixes various documentation issues
Removed
- Removes
Samples.init_multipart_upload()in favor ofSamples.upload()
v0.18.0
Added
- Adds
ocx.FunctionalProfilesto 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 loginrequiring an API key for certain accounts
v0.17.0
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
onecodexAltair theme - Adds support for passing both
facet_byandsecondary_haxistoplot_metadata() - Adds filtering and warning if samples are missing abundances in
plot_metadata(),plot_pcoa(),plot_mds(),plot_pca(),alpha_diversity_stats(), andbeta_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_saverwithvl-convert - Upgrades
notebookto 6.5.7 - Upgrades
WeasyPrintto 63.0 - Removes
nodeandveganpm dependencies - Removes
jupyter-clientdependency - Removes
seleniumdependency - Removes pinned
pydyfversion
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_dfin favor ofAlphaDiversityStatsResults.posthoc.adjusted_pvalues