Gradient Biotech

TMA analysis

Break a tissue microarray (TMA) slide into its individual cores — detected, laid out on a labeled grid, and flagged for missing positions — before running per-core quantification.

Research question

Where is each tissue core on this TMA slide, what row/column position does it occupy, and are any expected cores missing or lost?

Who this is for

  • Pathology research groups running large cohorts on tissue microarrays
  • Core facilities processing TMA slides at scale, migrating from QuPath's TMA dearrayer
  • Translational teams that need per-core identifiers before linking cores to patient/sample metadata

Data requirements

DataRequiredPurpose
TMA slide (modality tma)YesSource image for core detection
Expected grid dimensionsRecommendedImproves grid-fit accuracy and missing-core detection

Workflow

Upload TMA slide → Tiles → TMA dearray
  → Review core grid, labels, and missing positions
  → Per-core segmentation / quantification

Step 1 — Upload and tile

Create a slide with modality TMA, upload the scanned array, and generate tiles.

Step 2 — Run TMA dearray

Run TMA dearray on the slide. The pipeline detects tissue cores, quantizes their centroids onto a regular grid using nearest-neighbor pitch estimation, assigns row/column labels (A1, B2, …), and flags empty grid positions as missing cores.

Step 3 — Review the core grid

Inspect the detected core geometry and grid labels, and check flagged missing positions against your expected array layout before proceeding to per-core analysis.

Step 4 — Per-core segmentation and quantification

Run Tissue detect, Segment cells, and Spatial quantification as usual — dearraying provides the grid and per-core geometry that per-core batch processing and patient/cohort aggregation build on next.

Expected outputs

  • Detected core centroids and geometry
  • Grid row/column labels (A1, B2, …) per core
  • Missing-core flags for empty expected grid positions

Important caveats

Per-core batch segmentation/quantification and patient/cohort aggregation across cores are not yet automated — dearraying establishes the grid and core geometry that the rest of the workflow is built on, but downstream per-core batching is a manual follow-up today.

Related guides