Release 0.30.0 - #432
Conversation
…allelized process.
…cle-verification-worker-warning Fix cycle verification "worker stopped" warning
…ings-public Pixeldataset docstrings public
…d do minor styling config
…ectral-layout Spectral layout – base implementation
Bumps [setuptools](https://github.com/pypa/setuptools) from 82.0.1 to 83.0.0. - [Release notes](https://github.com/pypa/setuptools/releases) - [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst) - [Commits](pypa/setuptools@v82.0.1...v83.0.0) --- updated-dependencies: - dependency-name: setuptools dependency-version: 83.0.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…tools-83.0.0 Bump setuptools from 82.0.1 to 83.0.0
…yout-tests Spectral layout tests
…cs-touchup Add config variable to display names shorter
The build env composite action referenced a non-existent inputs.aws-session-name and pinned an outdated v2 of the AWS credentials action, which crashed during OIDC setup. Co-authored-by: Cursor <cursoragent@cursor.com>
write_parameters_file previously skipped non-Option params, so multi-file inputs never appeared in meta.json. Co-authored-by: Cursor <cursoragent@cursor.com>
…ramters-include-positional-arguments Include Click positional arguments in parameters JSON.
…ure-aws-credentials Upgrade configure-aws-credentials to v4
Co-authored-by: Adrien Coulier <adrien.coulier@pixelgen.com>
…cs-maintenance Docs maintenance
…l-pna denoise` and `single-cell-pna sample-calling` (#431) * add and to outputs for and * formatting * updating CHANGELOG.md * Apply suggestion from @johandahlberg Co-authored-by: Johan Dahlberg <johan.dahlberg@pixelgen.tech> --------- Co-authored-by: Johan Dahlberg <johan.dahlberg@pixelgen.tech>
Prepare 0.30.0 for release
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit efcec04. Configure here.
| "logo": { | ||
| "image_light": "_static/pixelator.svg", | ||
| }, | ||
| } |
There was a problem hiding this comment.
Docs build fails on switcher check
High Severity
The PyData theme validates switcher.json at build time by default (check_switcher is True), and the Docs workflow builds with --fail-on-warning. Until https://PixelgenTechnologies.github.io/pixelator/switcher.json exists and is reachable, Sphinx emits a warning and the build fails, so PR checks and the first deploy cannot succeed.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit efcec04. Configure here.
There was a problem hiding this comment.
@karlmoresco didn't you test this on your fork? I suspect Cursor is a bit mistaken here, and that the build job actually succeeds even though it reports the file is missing.
There was a problem hiding this comment.
Pull requests after this implementation (including this one) have passed, so this can't be true, right?
There was a problem hiding this comment.
Lets try merging this and doing the release, if there are any issues we can fix it then.
…-size-schemas-in-filter_connected_components_by_size ensure matching size schemas in filter_connected_components_by_size
fix html_baseurl


[0.30.0] - 2026-08-05
Added
pixelator.pna.analysis.comparison.compare_sample_pairsandcompare_sample_pairs_by_gateto check that pairs of PNA samples are similar in terms of abundance (mean marker CLR) and
proximity (mean marker-pair proximity score) patterns, reporting the correlation between
each pair. In case of gating (e.g.
["+CD3e", "+CD4", "-CD19"]), components are first filteredwith positive/negative thresholds determined automatically from each marker's CLR distribution.
pixelator.pna.analysis.gating.determine_marker_thresholdto determine a positive/negative CLRthreshold for a marker, warning and skipping markers whose distribution appears unimodal.
pixelator.pna.plot.plot_sample_pair_comparisonandwrite_sample_pair_comparison_reportto plotand collect sample pair abundance/proximity comparisons into an HTML report.
deploying the docs automatically.
PNAAssayandPNAAntibodyPanelnow hold an optional path to the path they were parsed from.pixelator.common.plotwith Pixelgen's brand colors, gradients, palettes, and theme(
PIXELGEN_ACCENT_COLORS,PIXELGEN_CELL_PALETTE,pixelgen_gradient,pixelgen_palette,pixelgen_accent_colors,pixelgen_discrete_colors,create_discrete_palette,pixelgen_colorscale/pixelgen_sequential_colormap/pixelgen_divergent_colormap/pixelgen_colormap,set_pixelgen_theme/pixelgen_theme,style_facet_strips).single-cell-pna denoiseandsingle-cell-pna sample-callingnow reportinput_readsandoutput_readsinreport.json.Changed
min_allowed_nodes_pctinadaptive_core_expansionhas been changed from 0.8 to 0.9,meaning that a valid "high" core partition must include at least 90% of all nodes. Components that
don't meet this criterion will not be denoised by ACE.
pixelator.mpx.plotandpixelator.pna.plotfunctions now use the Pixelgen brand theme and colorpalettes from
pixelator.common.plotby default.pixelgen_divergent_colormapand theplot_colocalization_heatmap/plot_colocalization_diff_volcano/plot_polarity_diff_volcanoplots that use it now center on alight Pixelgen grey rather than white, and use a
min_levelfloor on both hues, so values nearzero stay visible against a white background instead of fading out.
abundance_colocalization_plot's hue mapping,plot_colocalization_heatmap'scenter=0, and theCenteredNormused by the volcano plots) arenow correctly centered on zero, instead of on the (potentially skewed) 10th-90th percentile midpoint
or raw data min/max.
single-cell-pna graphnow discards components above the max size threshold before the refinementstep instead of only at the end, reducing peak memory usage. This only applies when
--component-size-max-thresholdis set.Fixed
threshold discards every component in the input.
single-cell-pna graphno longer crashes with apolars.exceptions.SchemaErroronn_edges(
Int64vsUInt32) when calculating post-recovery component statistics with--multiplet-recoveryand a--component-size-max-thresholdthat discards large components.write_parameters_filenow includes Click positional arguments (e.g. multi-file inputs) undercli.argumentsin*.meta.json, not only options.filter_connected_components_by_sizenow ensures matching size schemas between discarded and remaining components.