Skip to content

v0.20.0

Choose a tag to compare

@johandahlberg johandahlberg released this 24 Apr 11:42
· 789 commits to main since this release
ee0ab38

[0.20.0] - 2025-04-24

This is a large release that reorganizes Pixelator in a major way. We introduce the new module pixelator.pna,
which is used to process and analyze data from the Proximity Network Assay (PNA). As a consequence of this, we
have moved what used to be Pixelator into two modules: pixelator.mpx for processing and analyzing Molecular
Pixelation (MPX) data, and pixelator.common, which contains functions and classes used by both methods.

As a user, the most noticeable difference is that if you want to read pixel files to work with MPX data, you will now need to use:

Molecular Pixelation data

from pixelator import read_mpx
from pixelator import simple_aggregate_mpx

Proximity Network Assay data

from pixelator import read_pna

With the introduction of the Proximity Network Assay, we have revamped the entire data processing
pipeline to handle the new data type. We have also introduced a new pixel file format
that utilizes DuckDB files to store the data. This allows us to be much
more flexible and faster in loading and processing the data compared to the zip-based format we use
for MPX data.

Another major workflow change in how Pixelator is used to work with Proximity Network Assay data
is that there is no need to explicitly aggregate data. Instead, the read_pna function
accepts a list of files and automatically aggregates the data for you,
without the need to create a new aggregated PXL file.

For an updated view on how to work with Pixelator, please check out the documentation.
There, you will also find updates on the new algorithms used for the Proximity Network Assay, etc.

Added

  • All functionality for analyzing PNA data.

Changed

  • The command-line entry point for MPX data has changed from pixelator single-cell to pixelator single-cell-mpx.

For analysis of MPX data, you should now read MPX data like this:

from pixelator import read_mpx

pxl_dataset = read_mpx("path/to/pxl")
  • The function dsb_normalize is now a common method for both MPX and PNA data:
from pixelator.common.statistics import dsb_normalize

Fixed

  • In some cases, local_g would return scrambled results due to inconsistent node ordering. This
    has now been fixed.