new
improved
fixed
Client Library
onecodex client library release v1.2.0
New
- Added support for pandas 3. pandas 2 remains supported.
- Added filtered readcount metrics (filtered_readcount,filtered_readcount_w_children, and their normalized variants), which are computed after artifact filtering and are consistent across samples with and without abundance estimates.
- Added Jobs.publish()for publishing draft Workflows.
- Added onecodex analyses filesandonecodex analyses downloadCLI commands for listing and downloading an analysis's output files.
- Added onecodex jobs publishCLI command.
- Added descriptionargument toJobs.run().
- Added --descriptionoption toonecodex jobs runCLI command.
- Added --gzip-outputand--gzip-output-compressleveltoonecodex scripts subset_reads.
- Added a nextflow_versionargument toJobs.create()andJobs.update(), and a--nextflow-versionoption to theonecodex jobs createandonecodex jobs updateCLI commands. Defaults to the latest supported Nextflow version.Jobs.details()reports the version a workflow runs.
- Added a metricargument toFunctionalProfiles.table()which filters results to a single metric (e.g.,cpm,rpk, etc.). To preserve backwards compatibility, this argument defaults to"all"which returns all metrics available for an annotation.
- Added Analyses.cancel()andonecodex analyses cancelCLI command for canceling an in-progress Custom Workflow run.
- Added tax_idsargument toSamples.where()for filtering samples by taxa. Only samples containing all the listed taxa are returned.
Changed
- Nextflow Workflows no longer accept an image URI. Use nextflow_version(--nextflow-version) instead.image_uri(--image-uri) is still required for shell script Workflows.
- Renamed the Metric.is_filtered_readcount_metricproperty toMetric.is_abundance_sensitiveto better describe what it flags.
- In plot_metadata(width="container", ...), boxplot width is now dynamically adjusted based on the number of boxes
- Improved speed of onecodex scripts subset_readsby around 20%.
- FunctionalProfiles.table()andfiltered_table()raise aOneCodexExceptionwhen results are unavailable, instead of returning an empty DataFrame. They also raise when a metric is not valid for the requested annotation.
- Column dtypes on FunctionalProfiles.table()andfiltered_table()are now fixed: text columns use the nullablestringdtype,taxa_stratifiedusesboolean, andvalueis alwaysfloat64(it could previously come back asint64). Missing values arepd.NAand empty results now have these same dtypes.
- FunctionalProfiles.table()now returns a fresh, ordered zero-based index. It previously returned a filtered slice of the full results table, which kept original indices.
- ocx.Assembliesandocx.Genomesnow use the more performant, cursor-based pagination method (likeocx.Samplesandocx.Metadata).
- plot_heatmap()legend title now defaults to the metric's display name (e.g., "Readcount With Children") instead of its field name.
- to_functional_df(taxa_stratified=True)columns are now a MultiIndex of(feature_id, taxon_id), matching the layout ofto_classification_df().
Removed
- Removed the unfiltered_readcountmetrics (Metric.UnfilteredReadcount,Metric.NormalizedUnfilteredReadcount, etc.) in favor of the newfiltered_readcountmetrics. Note the semantics differ: unfiltered readcounts were computed before artifact filtering, whereas filtered readcounts are computed after.
Fixed
- plot_functional_heatmap()no longer raises aMergeErrorwhen the sample collection contains more than one sample without functional profile results. Samples lacking functional results are now dropped from the plot (they were never plotted anyway).
- Plots no longer raise a ValueErrorwhen a metadata field name contains a colon character (:).
- Passing non-existing group_bytoplot_bargraphshould not throw an error.
- Sample.{status,visiblity}query type corrected toEnumStrFilter
- $icontainsand$containsremoved fromEnumStrFilter-- substring matching behavior requires that the substring be a valid enum member which behaved unintuitively.
- onecodex analyses <subcommand> --help(e.g.onecodex analyses logs --help) no longer requires being logged in.
- SampleCollection.plot_distanceno longer incorrectly warns about non-comparable metrics when plotting with comparable metrics.
- Samples.where()no longer raises anAttributeErrorwhen combining sample and metadata filters.
- to_functional_df(taxa_stratified=True)now gives each contributing taxon its own column. Previously only one taxon's value was kept per feature.
- Analyses.download_file()no longer decompresses files served withContent-Encoding: gzip, which previously resulted in.gzfiles containing uncompressed data.