Skip to content

0.30.0

Latest

Choose a tag to compare

@johandahlberg johandahlberg released this 05 Aug 06:15
88c3961

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