"sha256": "a3f8d2c1e4b7…"// integrity lock
"confidence": "HIGH",
"classifier_fidelity": "HIGH"
"annotations": 47,
"pixel_classifiers": [ 2 items ]
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
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.
(stRNA-Seq)
(IMC)
(MSI)

FFPE · TMA core
174K cells
Clustering
cell states
Cell Typing
MES/AC/NPC/OPC
Segmentation
CD163 · Ki-67
proliferation index
Pixels
20µm · metabolites
Overlay
spatial metabolomics
Multi-Omics View
RCTD · Ki-67 · Metabolites
H&E coordinate space
Features
Everything your workflow needs
to be certifiable
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.
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.
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.
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.
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.
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.
How it works
From raw image to
certified analysis
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
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?)
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.
Source metadata + SHA-256 integrity hash
"sha256": "a3f8d2c1e4b7…" // integrity lock at export time
"width": 4096, "height": 4096, "channels": 25
User · machine · versions Git snapshot · extensions captured
"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" } }]
License-locked identity · PIN-protected Fidelity · scope · confidence
"license_verified": true, "pin_required": true
"confidence": "HIGH", "classifier_fidelity": "HIGH"
"scope": "Full pipeline — annotation + classification + alignment"
Affine transform matrix Moving → reference image
"transform_type": "Affine", "matrix": [0.98, -0.02, 45.3, 0.02, 0.97, -12.1]
"scale_x": 0.981, "scale_y": 0.972
All QuPath WorkflowSteps in execution order + Groovy
"extension": "qupath-extension-instanseg", "model_name": "fluorescence_nuclei_and_cells"
"script_fragment": "InstanSeg.builder().modelPath(…).build().detectObjects()"
SHA-256 + Git hash Channels · training info · fidelity
"sha256": "7e4ab3c2…", "git_hash": "9a1f4d8" // version-locked
"channels": ["DAPI", "CD163", "Ki-67"], "fidelity": "HIGH"
ROI geometry · author attribution by_class · by_author counts
"by_class": { "Tumour Core": 18, "Edge": 29 }
"roi_type": "Polygon", "area_um2": 14820.4
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.
Request access
Join the qTrace network and get early access to qTrace Enterprise.