Open-source Core · QuPath 0.7.x

QA Certification
for Spatial Biology
Workflows

qTrace intercepts QuPath workflow steps in real time — every alignment, segmentation, pixel classification, and cell typing step recorded with timestamps, classifier hashes, and author attribution into a self-contained .qtrace passport.

50+
QuPath operations tracked
2
classifiers versioned
1
.qtrace passport per image
Core_01.qtraceformat 2.0
{
"image": {
"name": "Core_01.ome.tif",
"sha256": "a3f8d2c1e4b7…"// integrity lock
},
"validation": {
"validator": "T. McKee",
"confidence": "HIGH",
"classifier_fidelity": "HIGH"
},
"steps_captured": 28,
"annotations": 47,
"pixel_classifiers": [ 2 items ]
}
qTrace v1.0.0 · QuPath 0.7.x
DOI 10.5281/zenodo.20448014

Sound familiar?

The reproducibility crisis
hits every lab doing spatial biology

Lost context. Missing classifiers. Impossible-to-recreate analyses. qTrace captures everything QuPath does — so you never lose the thread.

"Who trained this classifier — and when?"

Every classifier carries a SHA-256 hash and Git commit. Immutable, forever.

"I spent four hours recreating last month's analysis."

One-click Replay reconstructs the full pipeline from any .qtrace file.

"The reviewer wants the complete protocol."

Compliance certificate. PDF. One click. Every operation, every analyst, every version.

qTrace is the audit trail QuPath was missing.

Designed for compliance

21 CFR Part 11FDA electronic records
GLP / ALCOA+Attributable · Traceable
ISO 15189Lab accreditation
IVDR 2017/746IVD traceability
ICH E6 GCPClinical trial records

Each validation stamp is signed by a KYC-verified identity, timestamped on Bitcoin, and anchored on Polygon — a non-repudiable record independent of qTrace infrastructure.

The problem

Three gaps spatial biology
cannot afford

A single QuPath analysis may involve 50+ sequential operations across multiple analysts and machines. Yet no native mechanism exists to certify what was done, in what order, by whom — or whether results remain reproducible.

No tamper evidence

A single modified annotation or retrained classifier goes undetected. Regulators and reviewers have no mechanism to verify the analysis was not altered after sign-off.

.qpdata is not bound to results

The QuPath project file is mutable and unpinned. Nothing links the raw image to the classifier version, annotation set, and quantification parameters that produced the reported numbers.

No trusted timestamp

There is no cryptographic proof of when an analysis was performed. Reproducibility claims cannot be independently verified — a fatal gap for clinical translation and inter-lab trust.

“This absence of structured QA evidence is a critical barrier to clinical translation, regulatory review, and inter-laboratory trust.”
— qTrace · AstraeBio

Use case

Glioma Multi-Omics · Workflow
Provenance Map

Each arrow shows the QuPath action captured by qTrace. ⏺ REC = step recorded in .qtrace passport. H&E is the spatial coordinate reference.

Transcriptomics
(stRNA-Seq)
Proteomics
(IMC)
Metabolomics
(MSI)
Fluorescence — DAPI/actine
H&E
Spatial reference
FFPE · TMA core
Alignment
REC
a
Xenium DAPI
in situ · 333 genes
174K cells
Segmentation
REC
b
PCA +
Clustering
Scanpy · UMAP
cell states
Cell Classif.
REC
c
RCTD
Cell Typing
spacexr
MES/AC/NPC/OPC
Integration
Align+Seg
REC
d
IMC
Segmentation
25 antibodies
CD163 · Ki-67
Pixel Cls.
REC
e
KI-67
Otsu threshold
proliferation index
Integration
Alignment
REC
f
MSI Native
Pixels
timsTOF fleX
20µm · metabolites
Overlay
REC
g
MSI + Xenium
Overlay
co-registered
spatial metabolomics
Integration
h
Integrated
Multi-Omics View
Xenium · IMC · MSI
RCTD · Ki-67 · Metabolites
H&E coordinate space
Alignment (VALIS)
Cell Detection / Segmentation
Pixel Classifier
Cell Classification
Multi-modal Overlay
Script / Integration
REC — qTrace records this step

Features

Everything your workflow needs
to be certifiable

Core

Automatic Provenance

Hooks directly into the QuPath API — no manual logging. Every WorkflowStep, pixel classifier change, and annotation edit is captured in real time via the histogram listener.

Core

Expert Validation Stamp

A named validator signs off on scope, confidence, and classifier fidelity. The stamp is embedded in the .qtrace — not stored separately — and cannot be separated from the analysis record.

Core

Cohort Dashboard

Real-time QA status across all images in a project. Filterable by contributor, annotation class, tissue region, or validation state. Identify outliers before submission.

Core

Batch Export

Generate .qtrace passports for every image in a project with a single operation. Stamp, export, and append to the master CSV log without opening each image manually.

Enterprise

Chain of Custody

Ed25519 cryptographic signature binds the .qtrace to the raw .qpdata at the exact moment of validation. OpenTimestamps anchors the certificate to the Bitcoin blockchain for immutable proof.

Enterprise

Replay Engine

From a .qtrace passport, reconstruct and execute the exact analysis on a new image — classifier models embedded, annotation coordinates preserved. Analytical fidelity confirmed.

Ecosystem

Works with your full QuPath stack

qTrace is tested against 18 popular QuPath extensions. From deep-learning segmentation to multi-modal registration — every step is captured, regardless of which extension ran it.

8
🟢 Fully replayable
9
🟡 Partial
1
🔴 Interactive only
See full compatibility table
InstanSeg
StarDist
Bio-Formats
Cellpose
WSInfer
OMERO
Warpy
BIOP
SAM
+ 9 more
Full replay
Partial
Not scriptable

How it works

From raw image to
certified analysis

01

Capture

Automatic — zero effort

Install the JAR in QuPath extensions. qTrace hooks into the QuPath API silently — every WorkflowStep, classifier change, annotation edit, and script run is recorded without any user action.

  • Pixel classifier versions (SHA-256 + Git hash)
  • Manual annotations with author attribution
  • Image-alignment transforms (AffineServer / Warpy)
  • Script runs + terminal output
02

Validate

One-click expert sign-off

When the analysis is complete, the expert clicks "Validate & Stamp". A dialog captures validator identity, analytical scope, confidence level, and classifier fidelity — all embedded in the .qtrace.

  • Named validator + institutional context
  • Analytical scope declaration
  • HIGH / MEDIUM / LOW confidence
  • Classifier fidelity check (modified since training?)
03

Certify

Enterprise — cryptographic proof

The Enterprise plugin generates a .qtcert binding the .qtrace to the raw .qpdata via Ed25519 signature. An OpenTimestamps anchor provides a trusted, Bitcoin-anchored timestamp.

  • Ed25519 signature (BouncyCastle)
  • SHA-256 of .qpdata at validation moment
  • chain.jsonl — append-only custody log
  • qtrace-verify check → GREEN / RED in 1 command
🎯

The tamper-evidence moment

Open the validated .qpdata in a text editor. Modify a single byte. Save. Run qtrace-verify check --case-dir ./case/ --qpdata ./Core_01.qpdata. Result: RED "qpdata hash mismatch". That moment is the entire value proposition — irrefutable, in one command.

Anatomy

Inside a .qtrace passport

A single self-contained JSON file — one per image, accumulating sessions. No database. No external service. Drop it next to your .qpdata and it travels with the data.

Core_01.qtraceqtrace_format: "2.0" · 1 session · 47 annotations · 1 alignment · 2 pixel classifiersDOI 10.5281/zenodo.20448014
image

Source metadata + SHA-256 integrity hash

"name": "Core_01.ome.tif", "type": "FLUORESCENCE"
"sha256": "a3f8d2c1e4b7…" // integrity lock at export time
"width": 4096, "height": 4096, "channels": 25
session[ ]

User · machine · versions Git snapshot · extensions captured

"user": "Chibawanye I. Ene", "machine": "workstation-01"
"qtrace_version": "1.0.2", "qupath_version": "0.7.0"
"git": { "commit": "c3d91f2" }, "steps_captured": 28
"extensions": [ { "name": "InstanSeg", "version": "0.1.6" },{ "name": "StarDist", "version": "0.5.0" } }]
validation stamp

License-locked identity · PIN-protected Fidelity · scope · confidence

"validator": "T. McKee", "institution": "CHU Bordeaux" // license-locked — not self-declared
"license_verified": true, "pin_required": true
"confidence": "HIGH", "classifier_fidelity": "HIGH"
"scope": "Full pipeline — annotation + classification + alignment"
alignment

Affine transform matrix Moving → reference image

"moving_image": "Core_01_DAPI.ome.tif"
"transform_type": "Affine", "matrix": [0.98, -0.02, 45.3, 0.02, 0.97, -12.1]
"scale_x": 0.981, "scale_y": 0.972
steps[ ]

All QuPath WorkflowSteps in execution order + Groovy

— step 3 (cell detection)"command": "Run InstanSeg detection", "is_scriptable": true
"extension": "qupath-extension-instanseg", "model_name": "fluorescence_nuclei_and_cells"
"script_fragment": "InstanSeg.builder().modelPath(…).build().detectObjects()"
pixel_classifiers[ ]

SHA-256 + Git hash Channels · training info · fidelity

"name": "Glioma_Tissue_Regions_v3"
"sha256": "7e4ab3c2…", "git_hash": "9a1f4d8" // version-locked
"channels": ["DAPI", "CD163", "Ki-67"], "fidelity": "HIGH"
annotations

ROI geometry · author attribution by_class · by_author counts

"total": 47, "added_in_session": 12
"by_class": { "Tumour Core": 18, "Edge": 29 }
"roi_type": "Polygon", "area_um2": 14820.4
Open-source Core · Enterprise early access

Get started with
qTrace

Download the open-source Core and start capturing QuPath provenance today — every alignment, segmentation, pixel classification, and cell-typing step recorded into a self-contained .qtrace passport. Request access to qTrace Enterprise for verified-identity certification and cryptographic chain of custody.

🧬Glioma Multi-Omics use case — Xenium · IMC · MSI · RCTD
🔒Tamper-evident passports — detect a single-byte change in real time
🪪Verified-identity validation — KYC-backed contributor attribution (Enterprise)

Request access

Join the qTrace network and get early access to qTrace Enterprise.

No spam. We'll contact you with Enterprise access details.