The CoPro preprint is now available on bioRxiv: Miao Z, Qu Y, Huang S, Laux L, Peters S, Aristel A, Zhang Z, Niedernhofer L, McMahon A, Kim J, Zhang NR (2026). Dissecting the coordinated progression of cell states in spatial transcriptomics with CoPro. bioRxiv 2026.04.17.719309. doi: 10.64898/2026.04.17.719309. inst/CITATION and the README have been updated accordingly.
New features
Added asCoProSingle() and asCoProMulti() S4 generics for one-call coercion from SingleCellExperiment and Seurat objects into CoPro objects. Conversions are gated on their respective packages being installed and delegate to the existing newCoProSingle() / newCoProMulti() constructors so validation stays single-sourced.
Exposed normalizeTarget argument on computeDistance() for users who want to control the target value that the low-percentile cell-cell distance is rescaled to. Default preserves existing behavior.
User experience
newCoProSingle() / newCoProMulti() now reject NA, NaN, and Inf values in normalizedData at construction time with an informative error instead of producing cryptic downstream failures.
newCoProMulti() now validates that when metaData already contains a slideID column, its values match the supplied slideID argument (errors on mismatch instead of silently overwriting).
locationData column standardization now emits a message() so silent case-folding of x/y/z headers is visible.
subsetData() error on too-few-matched cells now reports the requested cell types and the count that was actually found.
computeBidirCorrelation() guards against empty filtered matrices (returns zero correlation with a warning rather than crashing).
show() for CoPro objects now reports approximate object size in MB and truncates the metadata field list when there are many columns.
plotG12Functions() now always returns a stable list(plot, data, summary) shape where plot is always a list with combined and individual elements (one of which may be NULL), regardless of plot_type. Default fallback palette for >8 cell-type pairs now uses the colorblind-friendly viridis palette rather than rainbow().