PembeBobrek

The Turkish-language guide and Quarto book for PinkKidney, plus its deploy chain — carrying one documentation set that describes a superseded pipeline, and one identifier-mapping file that belongs on the share rather than in version control.

Purpose

Documentation and case tracking for the kidney tumour classification project. The code lives in PinkKidney; this repository holds the written guide, the literature collection, five audit reports, and the case manifest. It is the Turkish half of the EN/TR repository pair convention.

PinkKidneyWeb (https://github.com/sbalci/PinkKidneyWeb) does not get its own page: it is a deploy artefact, 32 tracked files, almost entirely generated. Its own README describes it accurately — quarto render in this repository produces _site/, a post-render hook mirrors that to D:/PinkKidneyWeb/_site/ with robocopy /MIR, and Cloudflare Pages serves the result from that repository’s main branch behind a Cloudflare Zero Trust access policy. Nothing there should ever be edited by hand.

Data used

No image data. The repository holds:

  • PembeBobrek.xlsx — a 74-row case tracking sheet. See the finding below.
  • manifest.csv — 364 rows of archive/slide/DICOM paths with an extraction status, of which 358 are Done and 6 are Error. The six failures are not annotated anywhere; whether they were retried or written off is unrecorded. [unverified]
  • literature/ — papers and vendored reference repositories (DeepPATH, Histomorphological-Phenotype-Learning, MorphDistill).
  • audit_reports/ — five audits covering literature, statistics, visualisation, machine learning and pathology tooling.
  • Guides for PatchSorter and QuickAnnotator.

The path columns in manifest.csv were checked for identifier structure: no cell contains a run of six or more consecutive digits, and no basename matches an accession-like pattern. That file is clean.

Methods

A Quarto book (_quarto.yml, index.qmd, PINK_KIDNEY_GUIDE.qmd) plus a set of Python helper scripts that generate report sections, and PowerShell scripts that drove the archive extraction and manifest generation.

Current state / open questions

An identifier mapping is committed to version control

PembeBobrek.xlsx is a re-identification key. Its four columns are Erişim numarası (hospital accession number), AnonymFolder, Tani (diagnosis) and CaseNo, with 74 rows and 74 distinct accession values. A file that maps real accession numbers to the pseudonyms used everywhere else is precisely the artefact that is supposed to live on the Memorial share and never enter git — it is the thing that makes the pseudonymisation reversible.

It is committed, it is present in HEAD, and it entered at the init commit, which means it is in history rather than only in the current tree. Removing it from HEAD would not remove it from the repository.

Two things bound the severity, and both were checked rather than assumed:

  • The repository is private. api.github.com/repos/sbalci/PembeBobrek is not resolvable anonymously, as are the other two. This is not a public disclosure.
  • The Cloudflare Pages deployment is gated by Zero Trust.

So this is a data-governance problem, not a breach: the key travels with the repository, to every clone and every collaborator who is ever granted access, and it would become a disclosure the moment visibility changed. The remedy is a decision for the repository owner, not something to be applied from here, and it is worth noting that history rewriting plus a force-push is a different and heavier operation than deleting a file.

Separately, one real accession number appears as the worked example in the data-dictionary table in PINK_KIDNEY_GUIDE.qmd. It renders into _site/PINK_KIDNEY_GUIDE.html and _site/search.json, both of which are committed and pushed in the PinkKidneyWeb repository and served by Cloudflare Pages. The .qmd is the source of truth, so correcting only the rendered HTML would reintroduce it at the next render. No value is reproduced on this page.

A method note worth carrying forward: an automated scan for identifier patterns missed this entirely, because the accession format is 7–10 characters, contains letters, and has no run of six digits. What caught it was reading the column name. Pattern-matching is not a substitute for looking at the schema.

The guide documents a pipeline that no longer exists

CLAUDE.md here and CLAUDE.md in PinkKidney disagree, and the code side is the one that runs. This repository states that tile export uses downsample=4 “produces 10x effective magnification from 40x scans”, describes the source as “40x magnification, ~0.263 µm/pixel”, and refers to “6 annotated WSI cases”.

Measured against the code repository: the hardcoded downsample=4 was the bug, since the cohort is mixed 20×/38×/40× and a fixed divisor yields 5× tiles from 20× slides; the export now computes the downsample per slide. The cohort is 356 slides across three scanners, not one magnification. And 44 patients carry labels, not 6 cases.

None of that is a defect in the code — it is documentation that was accurate when written and was never revisited. But it is the documentation a reader would reach first, and it describes the superseded approach as correct. Worth a pass whenever the re-tiling in PinkKidney lands.

Open questions: what happened to the six Error rows in manifest.csv; whether the audit reports in audit_reports/ contain findings that should be lifted into this wiki rather than left in a project repository; and whether the guide should be regenerated after re-tiling.

Related: PinkKidney — the code this documents, and the source of every number that contradicts the guide above.

Related: De-identification — this is a live worked example of the failure mode that page describes: the pseudonymisation was done properly on the images and then the key was kept beside them.

Derived from: working tree read 2026-07-26 at commit e632cf8 (2026-05-03), plus PinkKidneyWeb at 6fe0bc3CLAUDE.md, README.md, PINK_KIDNEY_GUIDE.qmd, _quarto.yml, manifest.csv, the column schema of PembeBobrek.xlsx, git log, and the GitHub API for repository visibility.