Automated processing pipeline for dynamic [18F]-DOPA PET and Ki estimation.
Figure: Overview of PET-ki_proc pipeline. Some visual elements were created with BioRender.com; others are KI generated.
-
Motion Correction
- Correct PET data from 5 min post-injection using FSL
mcflirt.
- Correct PET data from 5 min post-injection using FSL
-
Denoising (optional)
- Apply Chambolle's total variation denoising (via
scikit-image).
- Apply Chambolle's total variation denoising (via
-
Mask Preparation
- Register T1w image to PET space (FSL
flirt). - Normalize to MNI-152 (FSL
flirt+fnirt). - Register striatum & cerebellum atlases to native space.
- Optionally restrict striatum atlas to GM mask.
- Apply absolute or percentile threshold & binarize.
- Register T1w image to PET space (FSL
-
Patlak Fitting
- Estimate Ki using Gjedde-Patlak linear modeling using cerebellum as reference.
run_PET_ki_proc.py -subject sub-001 -session 01 -denoising=True -gm_mask=True -ref_frame=30run_all.py 01 -denoising=True| Argument | Description |
|---|---|
-subject |
Subject ID (e.g., sub-001) |
-session |
Session ID (e.g., 01) |
-subject_path |
Path to BIDS dataset |
-ref_frame |
Reference frame for motion correction (default: last-frame, e.g., -ref_frame=30) |
-denoising |
Apply denoising (True/False, default: True) |
-gm_mask |
Restrict striatum atlas to GM mask (True/False, default: True) |
-weight |
Denoising weight (default: 100) |
-num_iter |
Max number of iterations for denoising (default: 1000) |
-atlas |
Atlas for masking (see below) |
-thr_striatum |
Absolute threshold for striatum mask (e.g., -thr_striatum=0.6) |
-thrp_striatum |
Percentile threshold for striatum mask (e.g., -thrp_striatum=0.6) |
-thr_cerebellum |
Absolute threshold for cerebellum mask (e.g., -thr_cerebellum=0.9) |
-thrp_cerebellum |
Percentile threshold for cerebellum mask (e.g., -thrp_cerebellum=0.9) |
- BIDS-formatted dataset
- Decay-corrected dynamic PET image:
sub-XXX/ses-YY/pet/sub-XXX_ses-YY_trc-18FDOPA_rec-acdyn_pet.nii - T1w anatomical image:
sub-XXX/ses-YY/anat/sub-XXX_ses-YY_T1w.nii
in sub-XXX/ses-YY/pet/patlak_fit/
Kimap:patlak/*_ki_map_thr0.4.nii.gzR²map:*patlak/_r2_map_thr0.4.nii.gz- Results sheet:
*_OGI_3_thr0.6_denoised_PET_ki.xlsx - Summary PDF:
*_OGI_3_thr0.6_denoised_PET_ki.pdf
OGI_3: Oxford-GSK-Imanova (3 subregions)OGI_7: Oxford-GSK-Imanova (7 subregions)HO: Harvard-Oxford subcortical atlasCIT: CIT168 subcortical atlas- add your own atlas to
pwt_ki_proc/app/data/atlas
Run with Docker (recommended for easiest setup).
docker pull juliasbrain/pet_ki_procdocker run --rm -it -v /path/to/preprocData:/app/preprocData juliasbrain/pet_ki_proc run_PET_ki_proc.py -subject sub-001 -session 01 -denoising=True
docker run --rm -it -v /path/to/preprocData:/app/preprocData juliasbrain/pet_ki_proc run_all.py 01 -denoising=TrueInstall Python package via pip (requires FSL installed on your machine).
pip install git+https://github.com/juliasbrain/PET_ki_proc.gitrun_PET_ki_proc -subject sub-001 -session 01 -denoising=True -subject_path /path/to/preprocData
run_all 01 -denoising=True -subject_path /path/to/preprocDataPlease cite this repo when using the application. https://github.com/juliasbrain/PET_ki_proc


