Skip to content

Release 0.30.0 - #432

Merged
johandahlberg merged 146 commits into
mainfrom
dev
Aug 5, 2026
Merged

Release 0.30.0#432
johandahlberg merged 146 commits into
mainfrom
dev

Conversation

@johandahlberg

@johandahlberg johandahlberg commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

[0.30.0] - 2026-08-05

Added

  • pixelator.pna.analysis.comparison.compare_sample_pairs and compare_sample_pairs_by_gate
    to 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 filtered
    with positive/negative thresholds determined automatically from each marker's CLR distribution.
  • pixelator.pna.analysis.gating.determine_marker_threshold to determine a positive/negative CLR
    threshold for a marker, warning and skipping markers whose distribution appears unimodal.
  • pixelator.pna.plot.plot_sample_pair_comparison and write_sample_pair_comparison_report to plot
    and collect sample pair abundance/proximity comparisons into an HTML report.
  • Setup for generating API documentation pages from source files, and a workflow for building and
    deploying the docs automatically.
  • PNAAssay and PNAAntibodyPanel now hold an optional path to the path they were parsed from.
  • pixelator.common.plot with 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).
  • Spectral layout algorithm
  • single-cell-pna denoise and single-cell-pna sample-calling now report input_reads and
    output_reads in report.json.

Changed

  • The default min_allowed_nodes_pct in adaptive_core_expansion has 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.plot and pixelator.pna.plot functions now use the Pixelgen brand theme and color
    palettes from pixelator.common.plot by default.
  • pixelgen_divergent_colormap and the plot_colocalization_heatmap/
    plot_colocalization_diff_volcano/plot_polarity_diff_volcano plots that use it now center on a
    light Pixelgen grey rather than white, and use a min_level floor on both hues, so values near
    zero stay visible against a white background instead of fading out.
  • Color scales for signed metrics (abundance_colocalization_plot's hue mapping,
    plot_colocalization_heatmap's center=0, and the CenteredNorm used by the volcano plots) are
    now correctly centered on zero, instead of on the (potentially skewed) 10th-90th percentile midpoint
    or raw data min/max.
  • single-cell-pna graph now discards components above the max size threshold before the refinement
    step instead of only at the end, reducing peak memory usage. This only applies when
    --component-size-max-threshold is set.

Fixed

  • The graph stage now raises an error instead of an internal DuckDB crash when a component-size
    threshold discards every component in the input.
  • single-cell-pna graph no longer crashes with a polars.exceptions.SchemaError on n_edges
    (Int64 vs UInt32) when calculating post-recovery component statistics with
    --multiplet-recovery and a --component-size-max-threshold that discards large components.
  • write_parameters_file now includes Click positional arguments (e.g. multi-file inputs) under
    cli.arguments in *.meta.json, not only options.
  • filter_connected_components_by_size now ensures matching size schemas between discarded and remaining components.

ptajvar and others added 30 commits June 15, 2026 17:11
…cle-verification-worker-warning

Fix cycle verification "worker stopped" warning
…ings-public

Pixeldataset docstrings public
karlmoresco and others added 21 commits July 29, 2026 13:35
…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
…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>
…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>
@johandahlberg
johandahlberg requested a review from Aratz August 4, 2026 13:11

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 3 potential issues.

Fix All in Cursor

❌ 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.

Comment thread docs/conf.py
"logo": {
"image_light": "_static/pixelator.svg",
},
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit efcec04. Configure here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull requests after this implementation (including this one) have passed, so this can't be true, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets try merging this and doing the release, if there are any issues we can fix it then.

Comment thread docs/conf.py Outdated
Comment thread src/pixelator/pna/graph/community_detection.py
@johandahlberg
johandahlberg merged commit 88c3961 into main Aug 5, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants