MedOtter/Prostate-Diagnosis
Prostate-Diagnosis — seminal vesicles & neurovascular bundle Seminal vesicle (SV) and neurovascular bundle (NVB) segmentation on axial T2-weighted prostate MRI — 15 patients from the TCIA PROSTATE-DIAGNOSIS collection (doi:10.7937/K9/TCIA.2015.FOQEUJVT). These are two peri-prostatic structures that whole-gland and zonal prostate datasets do not annotate at all. Both matter clinically: NVB involvement drives nerve-sparing decisions in radical prostatectomy, and SV infiltration is… See the full description on the dataset page: https://huggingface.co/datasets/MedOtter/Prostate-Diagnosis.
Prostate-Diagnosis — seminal vesicles & neurovascular bundle
Seminal vesicle (SV) and neurovascular bundle (NVB) segmentation on axial T2-weighted prostate MRI — 15 patients from the TCIA PROSTATE-DIAGNOSIS collection (doi:10.7937/K9/TCIA.2015.FOQEUJVT).
These are two peri-prostatic structures that whole-gland and zonal prostate datasets do not annotate at all. Both matter clinically: NVB involvement drives nerve-sparing decisions in radical prostatectomy, and SV infiltration is what makes a tumour stage T3b.
⚠️ Read this before using: this is a 15-patient slice of a 92-patient collection
The parent TCIA collection is a diagnostic MRI archive, not a segmentation dataset. It ships zero DICOM SEG / RTSTRUCT objects — all 368 series are plain Modality=MR. Every mask it has arrives as a side-loaded supplement .zip covering a small, different subset:
Only 42 of the 92 patients carry any mask at all. Calling the whole collection a segmentation dataset would overstate it; this mirror publishes exactly the one tier that is both usable and not already in MedOtter.
Why the 5-case multi-component atlas is excluded
Its label→structure mapping is undocumented — no LUT ships in the NRRD headers and none is published. Cross-matching its labels against the SV/NVB and NCI-ISBI masks pins down only four of them by pixel evidence (2=peripheral zone, 4=central gland, 5=seminal vesicles, 32=neurovascular bundle, all IoU ≥ 0.93); the meaning of 1, 13, 27, 33/34, 37, 40, 47 cannot be recovered. ProstateDx-01-0014 carries only 4 labels, and label 33 drifts to 34 between cases. TCIA also records those markups as "copyrighted by Dr. Nicolas Bloch as portions of his forthcoming online prostate cancer image atlas", which sits in tension with the CC BY 3.0 on the same table. Rows carry in_bloch_atlas so the 3 affected patients can be found.
What is in this mirror
Upstream ships the masks as two separate binary `.mha` files per patient and the images as DICOM in a different archive. This mirror performs that join once, and merges SV and NVB into one label map.
Nothing is resampled
The .mha masks already sit on the acquired DICOM grid. The builder asserts that per case rather than assuming it: size identical, and spacing / origin / direction within tolerance. Measured worst case across all 15 patients is 0.43 µm of origin drift (≈1/1000 of a 0.4 mm voxel, a decimal-text rounding artifact in the .mha headers), spacing 1e-5 mm, direction exactly 0. Each row records its own grid_origin_delta_mm. Evaluation therefore runs on real acquired pixels, with no interpolation on either side.
Note the acquisition is obliquely axial — the direction cosines are not identity (typically [1,0,0, 0,0.98,-0.20, 0,0.20,0.98]). Masks carry the same cosines. Do not assume an axis-aligned grid.
SV and NVB are disjoint, so one label map is correct
Measured across all 15 patients: 0 voxels of SV∩NVB overlap. No fan-out into per-target binary maps is needed, unlike nested prostate zonal sets. Both structures are present and non-empty in every case.
Cohort
The endorectal coil is visible as a large signal void immediately posterior to the prostate in every case. It is part of the acquisition, not an artifact to be removed.
NVB is hard by construction. At a median 4.3 mL spread over 6–16 slices it is thin, low-contrast and paired; expect substantially lower Dice than SV. Read the two classes separately, not as one mean.
Splits: none
TCIA publishes a flat pool with no official partition — the SV/NVB masks were prepared for a follow-up challenge that, in TCIA's own words, "did not materialize", so no train/test division was ever released. Everything is exposed as train. Loaders that request val/test should require an explicit single-split-fallback opt-in rather than silently self-evaluating on the whole cohort.
⚠️ Overlap — do not count this as an independent cohort
14 of the 15 patients are already in [`MedOtter/NCI-ISBI`](https://huggingface.co/datasets/MedOtter/NCI-ISBI), which mirrors the same T2W_TSE_AX series for its ProstateDx half. Only ProstateDx-01-0070 is a patient new to MedOtter. Every row carries in_nci_isbi.
The targets are disjoint — central gland / peripheral zone there, seminal vesicles / neurovascular bundle here — so the two are complementary annotations rather than duplicates. But the images are largely shared, so:
- never treat scores on both as independent evidence;
- never put one in train and the other in test.
Other relationships:
- Prostate-3T is the other half of NCI-ISBI 2013 (RUNMC); this collection (BMC) is its ProstateDx half.
- ⚠️ NCI-ISBI's leaderboard/test cases were re-de-identified into
ProstateDx-02-*/-03-*IDs with fresh UID roots, so matching onpatient_idalone silently misses them. Uset2_series_uid. This mirror's 15 are all-01-, so the simple join is safe here — but not in general. - PROSTATEx / PROSTATEx-Seg-Zones / PROSTATEx-Seg-HiRes / PROMISE12 / MSD Task05 / PI-CAI / QIN-PROSTATE / Prostate-Anatomical-Edge-Cases — no SeriesInstanceUID overlap; different institutions.
Usage
import json, nibabel as nib
from huggingface_hub import hf_hub_download
rows = [json.loads(l) for l in open(hf_hub_download(
"MedOtter/Prostate-Diagnosis", "train.jsonl", repo_type="dataset"))]
r = rows[0]
img = nib.load(hf_hub_download("MedOtter/Prostate-Diagnosis", r["image"], repo_type="dataset")).get_fdata()
msk = nib.load(hf_hub_download("MedOtter/Prostate-Diagnosis", r["mask"], repo_type="dataset")).get_fdata()
print(r["patient_id"], img.shape, msk.shape, sorted(set(msk.ravel()))) # {0.0, 1.0, 2.0}License
CC BY 3.0 Unported — commercial use and redistribution permitted with attribution. Confirmed from three independent sources: the TCIA collection page's Data Access table (which lists CC BY 3.0 for the images and for the SV/NVB segmentation resource separately), the TCIA REST API (LicenseName = "Creative Commons Attribution 3.0 Unported License" on 368/368 series), and the LICENSE file inside the download. TCIA's Data Usage Policy requires citation only — no registration, no no-redistribution clause.
Citation
@misc{bloch2015prostatediagnosis,
title = {Data From PROSTATE-DIAGNOSIS},
author = {Bloch, B. Nicolas and Jain, Ashali and Jaffe, C. Carl},
publisher = {The Cancer Imaging Archive}, year = {2015},
doi = {10.7937/K9/TCIA.2015.FOQEUJVT}
}
@article{clark2013tcia,
title = {The Cancer Imaging Archive (TCIA): Maintaining and Operating a Public Information Repository},
author = {Clark, Kenneth and Vendt, Bruce and Smith, Kirk and Freymann, John and Kirby, Justin and
Koppel, Paul and Moore, Stephen and Phillips, Stanley and Maffitt, David and Pringle, Michael and
Tarbox, Lawrence and Prior, Fred},
journal = {Journal of Digital Imaging}, volume = {26}, number = {6}, pages = {1045--1057},
year = {2013}, doi = {10.1007/s10278-013-9622-7}
}