Updated SpaMTP Release (Oct 2025)
Additional Features:
loadSM() function for compatability with Cardinal V3.8annotateBigData and selectROIs.Clarified native data access across function help pages: modalities use altExp(), expression matrices use assay(), and retained slot arguments select matrix names rather than S4 storage slots. Corrected return types, reduction locations and normalization descriptions. Added a runnable experimentAccess guide. Assay selectors now require exact character names; modality merging rejects duplicate primary aliases and prefers native scaled values over the legacy scale.data matrix.
All vignette R chunks now execute by default, including full published human-brain, FMP10/Visium and DHB/Visium analyses. Resource versions are pinned; downloads and long builds are expected when verified caches are absent. Original Space Ranger scale factors supply the registered FMP10 pair's spot geometry. Synthetic file-I/O and replicate-design examples remain labelled. Installed mouse-brain recipes can resolve public resources when no local directory is supplied, while explicit directories retain offline defaults.
Annotation statistics now select the requested MSI modality's candidate store for both single-feature and batch ranking, without borrowing another modality's latest root-level annotations. Historical and assay-local stores remain usable.
Regional marker scores, spatial-block sensitivity and biological-replicate contrasts preserve matrix dimensions for single-feature inputs.
Replaced the installed mouse-brain demo and preparation recipes with native SpatialExperiment workflows. Installed examples no longer load a legacy checkout, read S4 slots directly or require Seurat. Compound networks reuse scored annotations, scran-based regional effects and a shared pathway index. Optional optical images and spot geometry are supplied explicitly; FMP10 mapping refuses a missing radius rather than guessing it from pixel spacing. Existing output paths are preserved and script sourcing has no side effects.
Fixed pathway interaction corruption in the graphite-derived RaMP 3.0.7 graphs. A pinned, checksum-guarded correction restores per-edge source labels, directions, and parallel interactions for KEGG, Reactome, WikiPathways and SMPDB. Interaction styles now use label semantics across databases, and undirected edges have no arrowhead. The original published resource bytes retain their checksums; SpaMTP applies corrections when loading them.
Added the Pathway Database Integration vignette, a reproducible correction builder, source checksums, and regression tests for the Cell Cycle report.
Reorganized the workflow around measurement quality, correspondence, representation comparisons, regional markers, replicate inference, conditional cross-omic association and shared-identity pathway analysis. Reports connect native heatmaps, H&E feature maps, effect plots, 3D views and pathway networks with their actual analytical inputs.
Native PCA accepts explicit features and records the fitted feature set. Graph PCA uses a sparse Laplacian and all retained observations; its embeddings now feed spatial joint integration and optional clustering. Comparisons use matched feature selection/scaling, multiple requested K, external-reference ARI, approximate silhouettes and block-omission clustering sensitivity conditional on the fitted embeddings.
findAllDEMs() supports descriptive scran marker effects/AUC and explicit biological-replicate limma contrasts. Spatial-block marker sensitivity carries no invented P values. The historical technical-pool mode warns that its pools are not biological replicates. Native heatmaps preserve the actual analysis matrix and rank numeric FDR correctly.
findCorrelatedFeatures() supports generic feature IDs, explicit target sets and raw versus covariate-residual correlations. Exact RNA/protein features no longer require m/z metadata for native plots.
findRegionalPathways() accepts complete unfiltered identity-level ranks. Competitive enrichment, scores, GESECA and network views reuse the same membership index. Compound identity assays support sparse inputs and audit ambiguity exclusions and exact aggregation weights. Annotation stores are preserved separately for multiple MS modalities.
plotRegionalPathways() displays BH-adjusted significance and orders pathways using 1 minus Jaccard similarity, including single-pathway input. The region explorer adds directional AUC and marker-stability filters.
Reports audit pathways with identical measured members across regions without shrinking the BH family. Native networks embed a pinned, licensed D3 distribution for offline use, retain missing effects as unavailable, and label descriptive effects in the declared workflow units.
Added portable FMP10/Visium and DHB/Visium recipes using pinned SpaMTPData/SpaMTPdb resources, plus a rewritten analytical tutorial with three synthetic modalities. Mouse genes are not mapped to human HGNC by changing case. Equal-weight joint embeddings remain distinct from the historical Seurat WNN method.
Added buildGeneMappingIndex(), mapGeneIdentifiers() and native
annotateGeneIdentifiers() using SpaMTPdb's versioned HGNC reference.
Approved/previous/alias symbols and stable IDs have explicit resolution
status; ambiguous aliases and conflicting RaMP records are never expanded
into multiple genes. Gene-specific IDs can resolve shared protein IDs.
Fisher and regional pathway analyses merge RaMP records belonging to the same HGNC gene and unite their pathway memberships before counting. Network displays reuse the same identity mapping. Conflicting differential values from multiple features of one gene require resolution before analysis. Gene mapping and reference provenance are retained in outputs and rowData.
Gene indices now record a normalized source-table fingerprint and reject incompatible reuse even when RaMP record IDs are unchanged. Older index schemas must be rebuilt. Shared crossreferences retain unresolved and conflicting raw candidates instead of implying a unique match. Conflict membership is indexed once and repeated queries are resolved once while preserving the original input order and per-row audit.
Official database workflows use HGNC mapping automatically for human genes;
custom fixtures remain offline, and gene_mapping = "ramp" supports explicit
historical reproduction or curated non-human resources. HGNC mapping does
not perform cross-species orthology conversion.
Fixed the Fisher pathway contingency table: foreground non-members are
K - overlap, not max(0, K - pathway_size). Added an explicit measured
universe, deduplicated RaMP memberships and validated foreground inclusion.
Background size is fixed before pathway-size filtering. Every eligible
pathway, including zero-overlap sets, now belongs to the BH testing family.
pval_cutoff now filters FDR as documented (previously it filtered raw p).
Results include foreground/background counts, internal pathway IDs and an
enrichment audit attribute; missing display metadata no longer drops tests.
These corrections intentionally change previous p-values and FDRs.
slot= argument names for slot operations.spatialCoords(),
removing redundant metadata copies that could become stale after alignment.SpatialExperiment the default container for aligned/binned MSI and
retained Cardinal MSImagingArrays / MSImagingExperiment for raw, continuous, or file-backed
spectra. Added S4 conversion generics, registered Cardinal/SPE coercions,
and explicit optional Seurat conversion functions.rowData(), colData(), spatialCoords(),
imgData(), and altExp(), respectively. Seurat was removed from dependency
declarations; SeuratObject is optional and used only by explicit converters.colPairs() so standard subsetting updates their indices.seuratToSingleCellExperiment() for non-spatial input, explicit named
coordinate conversion, strict Seurat layer matching and identity transfer.scaleSMData() for feature-wise centring/scaling, and corrected PCA
and expression plotting to use the requested alternative experiment.
QC plot inputs and runDE() now use data, not Seurat-named parameters;
subsetSPM() no longer accepts retired object/slot-upgrade arguments.SeuratObject::Misc() while legacy Tool() entries remain
readable.multiOmicIntegration(); weighted-nearest-neighbour construction now
delegates entirely to Seurat::FindMultiModalNeighbors().SpaMTPdb now supplies
the pruned RaMP annotation and pathway snapshot, and SpaMTPData provides
named access to large experiment/vignette objects. loadSpaMTPDatabase()
and spaMTPDatabaseInfo() form the public database interface. The software
package retains only the small adduct and reaction-style constant tables.applySpatialAlignment() to apply existing SMINT coordinate outputs or
homogeneous transforms, estimate landmark-based affine alignment in R, and
run the SMINT-compatible STalign LDDMM workflow through an optional Python
backend. Alignment provenance and nearest-target diagnostics are retained in
the returned SpaMTP object without storing large Python velocity tensors.Ramp_IDs
produced by the indexed annotation engine. annotateSM() resolves the
versioned RaMP 3.0.7 chemical-property table through SpaMTPdb, records
annotation provenance through SeuratObject::Misc(), with a compatibility
fallback for legacy serialized objects.
Legacy annotations require an explicit annotation_source fallback.annotateSM(min_score = 0) and filtered later with annotation_score_threshold. Interactive
pathway networks add metabolite_detection = "annotated" to display
score-filtered pathway metabolites without requiring DE significance, while
retaining separate leading-edge evidence in node styling and tooltips.predictAdductsFromSMILES(). Aromatic functional groups are
perceived consistently from both lowercase aromatic and alternating-bond
six-membered Kekule SMILES. Full RaMP runs join an independent precomputed
SpaMTPdb::smiles_features resource; small custom databases are inferred
automatically at runtime.chem_props can now be used directly as a RaMP-backed annotation database.pathwayNetworkPlots() around cached topology lookup, precomputed
edges, selective sparse-matrix extraction, and JSON serialization. The new
responsive viewer adds zoom/pan, focused/full networks, label controls,
shared reaction markers, spatial inspection, and SVG export.Isomers_IDs and
IsomerNames counts, and added a cached Mouse Brain/DHB network demo.