QuPath Atölye
The Turkish-language QuPath workshop itself — a Quarto book of 13 core modules and 61 appendices publishing as 79 pages at atolye.patoloji.dev, a hands-on QuPath project, and an OSF data package with its own DOI.
Purpose
The course. QuPath Atölye Extension packages its modules as menu entries; this repository is the teaching material those modules came from, written for pathologists rather than developers.
Still private — verified 2026-07-30, not assumed: an unauthenticated request to the GitHub API and to the web page both return HTTP 404, while an authenticated git ls-remote succeeds. That distinction matters because every containment argument below depends on it.
Data used
A hands-on QuPath project under handson/, with classifiers, exports, Python and tiatoolbox working directories alongside it. No pixel data is committed — .gitignore excludes /images/ and *.svs globally. See the flag below regarding what its committed .qpproj contains.
Separately, an OSF data package with DOI 10.17605/OSF.IO/V7MJQ ships the workshop’s slides (~7 GB), the trained tumour/stroma classifier, the Groovy scripts and the extension JAR. What is tracked in git under osf/ is only the README and metadata files that describe that package, not its contents.
Methods
A Quarto website — 95 tracked .qmd files, _quarto.yml with pre/post profiles, building into _site/. 874 tracked files, 299 commits.
modules/— the 13 core teaching modules: QuPath introduction, tissue detection, cell detection, nuclear / cytoplasmic / membrane staining, intratumoural staining, ER/PR H-score, mitosis detection, tumour–stroma, data export, and a “quantum pipeline”.ekler/— 61 appendices, not the “twenty-plus” recorded here previously. That was an undercount rather than drift:ekler/held 61.qmdfiles at the last review too. Corrected by countinggit ls-treeat both commits.handson/— a real QuPath project used live in the workshop.brainstorming/— 111 files (12 of them.qmd) of candidate modules and literature notes: the development queue rather than published material.osf/— the archival package’s README and metadata files.- Two submodules —
qupath-extension-workshop(the group’s own) andmodelsfrom the third-partyhistopathology/modelsorganisation, supplying StarDist models.
qupath/lib/** holds 262 vendored QuPath source files under GPL-3.0. Unremarkable inside a private repository — nothing is being distributed — but it becomes a question to answer if this repository is ever made public or mirrored. [unverified] whether it is vendored for IDE resolution, for building, or by accident.
What actually publishes
_site/ is tracked, so the published output is readable directly from the tree rather than inferred. The sitemap lists 79 pages: 13 modules, 61 appendices, and 5 top-level pages (index, resources, FAQ, feedback, appendix index).
The appendices are the bulk of the material and range far past the modules — anonymisation, stain normalisation, ICC colour management, Cellpose, StarDist, SAM, TIAToolbox, WSInfer, SPIDER, Kaiko/Midnight, pathology foundation models, foundation-model embeddings, DICOM, OME-Zarr/NGFF, OMERO / PACS / Pathomation / SlideScore integrations, HPC batch processing, spatial neighbour and point-process analysis, nuclear morphometry, TIL immune scoring, tumour budding, TSR methodology, TMA workflow, reproducibility, deep-learning training, AI literacy, Groovy basics, and a glossary.
Current state / open questions
Active. One commit since the last review: 2902deb (2026-07-27) regenerated _site/ and the sitemap, added a .claude/skills/extension-release/SKILL.md, and edited CLAUDE.md. No teaching content changed.
The identifier flag is unchanged, and the site regeneration did not spread it
The .qpproj finding recorded on 2026-07-26 still stands at HEAD, unfixed. handson/project.qpproj lists 12 distinct image names across 21 entries (each file opened twice, through OpenslideServerBuilder and BioFormatsServerBuilder, as a reader-comparison teaching artefact). Three carry ANON pseudonyms, two are organ names, four are stain names — and one is named in the shape of a hospital protocol number: sequence number, two-digit year, bracketed block number, stains, scanner barcode. The same string is in handson/project.qpproj.backup, three occurrences in each file. No accession value is reproduced on this page.
The containment argument was re-tested rather than carried forward, because the intervening commit regenerated the site — exactly the event that could have broken it. It did not: a search across all 874 tracked files finds the string in those two files and nowhere else. Not in _site/ (119 files), _site-pre/ (48), docs/ (7) or osf/ (8). The mechanism is that _quarto.yml declares no render: list, the file is JSON rather than .qmd, and nothing links to it, so Quarto neither renders nor copies it.
A second, lesser item in the same file, not previously recorded: one entry is an absolute path of the form E:/StratifAI/images/<numeric>.svs. That leaks a local directory layout and a purely numeric filename rather than a protocol number. Lower severity, same fix.
The OSF question is answered — and the answer relocates the risk forward
The previous review asked whether the osf/ archival package was intended to include handson/. It is not. osf/images/README.md enumerates exactly four slides — colon.svs, colon-2.svs, Ki-67.svs, CD68.svs — all cleanly named. The protocol-numbered slide is not among them, and neither are CERBB2.svs or ER.svs.
But the reason it is excluded is the part worth recording. The README states that the HER2 / membrane slide is deferred to a later version of the workshop, along with the Module 8 material. So the protocol-numbered slide is outside the published package because its module has not shipped yet, not because anything screened it. The hands-on project holds CERBB2.svs (HER2) and ER.svs beside it, so the next OSF release is the event that would draw from that same project directory.
Set against that, the OSF README asserts twice, in bold, that all slides are anonymised and contain no patient identifiers. That assertion is true of what currently ships. It is not backed by anything that would keep it true — which is the pattern De-identification Release Gating describes, and this is its clearest forward-looking instance rather than another post-hoc one.
Open questions
- Is the non-pseudonymised hands-on slide from the department’s own archive with consent already in place, or an unconsented live case?
images/README.mdpermits “your own archive, with proper IRB and patient permissions”, so both remain plausible and the file cannot distinguish them.[unverified]It is not from any public set the README names — the ACROBAT, TCGA and OpenSlide demo collections it points readers at all use incompatible naming. - Will the HER2 module’s slide be screened before the next OSF release? This is now the actionable form of the flag, and it has a deadline attached rather than being open-ended.
- The site returned HTTP 403 to an automated fetcher on 2026-07-30, where the previous review recorded HTTP 200 on 2026-07-26. That is the signature of bot protection rather than an outage, and the tracked
_site/shows the content is built and current.[unverified]whether a browser sees the site normally; a manual load would settle it in seconds. - 61 appendices overlap this wiki substantially and the two are maintained independently. At least eight map onto existing pages —
renk-yonetimi-icconto Colour Calibration,patoloji-temel-modelleronto Foundation Models in Pathology,boya-normalizasyonuonto Stain Normalisation,anonimlestirmeonto De-identification,mitoz-phh3onto Mitotic Count,tiatoolboxandstardistonto QuPath Tooling,yeniden-uretilebilirlikonto the reproducibility themes across the methods pages. Whether that duplication is worth consolidating is a real question, and the honest answer may be no — the audiences differ, one being Turkish-language teaching material for pathologists and the other English research notes. - One concrete cross-link that costs nothing:
ekler/patoloji-temel-modeller.qmdteaches the same 13 foundation models the benchmark in Encoder Benchmarking ranks, and has a whole section on generalisation, batch effect and shortcut learning — but cites no benchmark and no comparative numbers. The Bareja 2026 result is the missing citation, and its headline finding is directly teachable.
Related: QuPath Atölye Extension — the packaged form of these modules, unchanged since the last review.
Related: QuPath Tooling — the cluster index, and the source of the .qpproj rule this repository still breaks.
Related: De-identification Release Gating — the OSF package is this estate’s clearest case of an anonymisation assertion published without a mechanism that keeps it true.
Related: De-identification — the workshop’s anonymisation appendix is the group’s fullest written treatment of the subject.
Related: QuPath Patoloji Atlası Extension — the third QuPath extension in the estate; unlike this repository it is public, and its packaging is the one to copy.
Refreshed 2026-07-29: one commit since the last review (2902deb, 2026-07-27) and it changes nothing about the workshop itself — it generates the static site pages and sitemap, so every changed path is rendered _site/ HTML under ekler/. The teaching content, the 85 modules and the handson/project.qpproj finding below are all unchanged. Recorded so the next reviewer can see that the commit was checked rather than skipped.
Derived from: working tree read 2026-07-26 at commit e9ddd78 (2026-07-18) — README.md, _quarto.yml, .gitmodules, the modules/, ekler/, handson/ and osf/ file listings, licence headers in qupath/lib/analysis/*.java, handson/project.qpproj (image-name structure only), and git grep over tracked .qmd/.md for identifier terms. Derived from: full-depth clone read 2026-07-30 at commit 2902deb (2026-07-27) — the D:/qupath-workshop working tree was unreachable on this machine (no D: drive), so the repository was cloned to scratch instead and read there; drive letters differ between the machines this estate is worked on. Read: git log/rev-list/ls-tree at both e9ddd78 and HEAD, _quarto.yml, .gitignore, handson/project.qpproj (image-name structure only, digits masked), the tracked _site/sitemap.xml, osf/README.md and osf/images/README.md in full, ekler/patoloji-temel-modeller.qmd headings, and a git grep for the identifier pattern across all tracked files. Repository visibility checked unauthenticated via the GitHub API and web page.