You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+49-28Lines changed: 49 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,27 +23,21 @@
23
23
24
24
---
25
25
26
+
<aid="overview"></a>
27
+
26
28
## π§ Overview
27
29
28
-
Your algorithm receives the files under `features/` for each subject and must output a pseudo-CT volume as a NIfTI file in Hounsfield units (HU). Predictions are evaluated two ways:
30
+
Your algorithm receives the files under `features/` for each subject and must output a pseudo-CT volume as a NIfTI file in Hounsfield units (HU). Predictions are evaluated two ways (see [Evaluation](#evaluation-srcevaluation) for metric definitions):
29
31
30
32
1.**CT accuracy** β Predicted pseudo-CT is compared directly against the ground-truth CT
31
33
2.**PET accuracy** β Predicted pseudo-CT is fed into the reconstruction pipeline to produce an attenuation-corrected PET image, which is then compared against the ground-truth PET
32
34
33
35
Note that no PET reconstruction experience is needed to participate in the challenge, and the main purpose of the reconstruction is to enable clinically meaningful metrics.
34
36
35
-
The dataset comprises 99 subject-unique cases, with 20 reserved for testing and the remaining 79 available on huggingface and split as follows:
|`train/` (no recon) | 67 |`features/` + `ct-label/`|
41
-
|`val/`| 4 |`features/` + `recon/`|
42
-
43
-
All train cases have CT labels, but due to the size of the sinograms, only 8 include the `recon/` and `pet-label/` folders needed for closed loop reconstruction. Validation subjects have sinogram `recon/` data but no labels β submit predicted pseudo-CTs and reconstructed PETs to Codabench to get live leaderboard metrics during the challenge.
44
-
45
37
---
46
38
39
+
<aid="documentation"></a>
40
+
47
41
## π Documentation
48
42
49
43
| Guide | Description |
@@ -57,6 +51,8 @@ All train cases have CT labels, but due to the size of the sinograms, only 8 inc
|`train/` (no recon) | 67 |`features/` + `ct-label/`|
85
+
|`val/`| 4 |`features/` + `recon/`|
86
+
87
+
All train subjects have CT labels, but due to the size of the sinograms, only 8 include the `recon/` and `pet-label/` folders needed for closed loop reconstruction. Validation subjects have sinogram `recon/` data but no labels β submit predicted pseudo-CTs and reconstructed PETs to Codabench to get live leaderboard metrics during the challenge. The train subjects with `recon/` data are: `sub-000, sub-001, sub-002, sub-005, sub-006, sub-008, sub-013, sub-014`.
88
+
89
+
90
+
All images except those in `pet-label` are resampled to the label CT image (tensor size: 512x512x531, voxel size 1.52x1.52,2.00mm^3). NIfTI images are structured in four folders per subject.
81
91
-`features/` All the files you can use as input to your pseudo-CT model during inference.
82
92
-`ct-label/` The CT target (`ct.nii.gz`) and segmentations for evaluation.
83
93
-`pet-label/` The PET target (`pet.nii.gz`) and segmentations for evaluation.
β βββ offset.json # bed position and gantry offset
107
-
β βββ ct_face_and_bed.nii.gz # GT CT values at face + scanner bed (automatically superimposed on your prediction before reconstruction)
117
+
β βββ ct_face_and_bed.nii.gz # inverse of prediction_mask.nii.gz
108
118
β βββ face_and_bed_mask.nii.gz # binary face + scanner bed mask
109
119
βββ pet-label/ # ground-truth PET
110
120
βββ pet.nii.gz # CT-attenuation-corrected PET (reference)
111
-
βββ body_seg.nii.gz # body mask in PET space
112
-
βββ organ_seg.nii.gz # organ labels in PET space
121
+
βββ body_seg.nii.gz # TotalSegmentator body seg. in PET space
122
+
βββ tissue_seg.nii.gz # TotalSegmentator tissue seg. in PET space
123
+
βββ organ_seg.nii.gz # TotalSegmentator organ seg. in PET space
113
124
```
114
125
115
126
---
116
127
128
+
<aid="pseudo-ct-baseline-srcbaseline"></a>
129
+
117
130
## π¦ Pseudo-CT Baseline (`src/baseline/`)
118
131
119
-
A simple patch-based MONAI 3D UNet that predicts pseudo-CT from NAC-PET only. It is provided as a starting-point reference β participants are expected to improve on it by incorporating MRI and topogram inputs.
132
+
A simple patch-based 3D UNet that predicts pseudo-CT from NAC-PET only.
120
133
121
134
**Python usage:**
122
135
@@ -137,10 +150,14 @@ docker run --rm \
137
150
ghcr.io/bic-mac-challenge/baseline:latest
138
151
```
139
152
140
-
The predicted CT is written to `/data/output/ct.nii.gz`. All weights and dependencies are baked into the image - no internet access is allowed at runtime.
153
+
The predicted CT is written to `/data/output/ct.nii.gz`. All weights and dependencies are baked into the image, and the same is expected for your final docker image submission.
154
+
155
+
You can re-train the baseline by running `train.py` and containerize it by running `docker build -t my-baseline .` (from inside the `src/baseline` folder)
141
156
142
157
---
143
158
159
+
<aid="reconstruction-srcrecon"></a>
160
+
144
161
## βοΈ Reconstruction (`src/recon/`)
145
162
146
163
Converts a CT (ground-truth or pseudo-CT) and PET sinograms into an attenuation-corrected PET image using [STIR](http://stir.sourceforge.net/). See [docs/reconstruction.md](docs/reconstruction.md) for pipeline details and local usage instructions.
@@ -162,6 +179,8 @@ The reconstructed PET is written to `/data/output/pet.nii.gz`.
162
179
163
180
---
164
181
182
+
<aid="evaluation-srcevaluation"></a>
183
+
165
184
## π Evaluation (`src/evaluation/`)
166
185
167
186
Five metrics compare predicted PET and CT outputs against the ground truth:
|**Dry Run**| Docker container emailed to us β we run it on the 4 `val/` subjects on our hardware and return CT metrics, or error logs if the container failed |
218
239
|**Final Test**| Docker container emailed to us β we run prediction, reconstruction, and full evaluation on the unseen test set |
219
240
220
-
Validation and Dry Run are open concurrently throughout the challenge. See [docs/submission-guide.md](docs/submission-guide.md) for full instructions, and [docs/docker-packaging.md](docs/docker-packaging.md) for how to build and test your container.
241
+
Validation and Dry Run open May 15. See [docs/submission-guide.md](docs/submission-guide.md) for full instructions, and [docs/docker-packaging.md](docs/docker-packaging.md) for how to build and test your container.
0 commit comments