f18-psma-pet-ct-ai
Detection of local prostate cancer recurrence from PET/CT scans using deep learning
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.6%) to scientific vocabulary
Repository
Detection of local prostate cancer recurrence from PET/CT scans using deep learning
Basic Info
- Host: GitHub
- Owner: BioMeDS
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Size: 556 KB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Detection of local prostate cancer recurrence from PET/CT scans using deep learning
This repository contains the accompanying code for the article:
Korb M, Efetürk H, Jedamzik T, Hartrampf PE, Kosmala A, Serfling SE, Dirk R, Michalski K, Buck AK, Werner RA, et al. Detection of Local Prostate Cancer Recurrence from PET/CT Scans Using Deep Learning. Cancers. 2025; 17(9):1575. https://doi.org/10.3390/cancers17091575
[!IMPORTANT] Large outputs (e.g. model weights) are deposited on Zenodo (10.5281/zenodo.15174580). Training data can not be shared publically. To understand the structure of the data, these files are included as symbolic links that point outside of the repository.
Pre-processing
Nifti conversion
Exported and pseudonomized PET and CT dicom images for each examination were converted to nifti format using dcm2niix (Chris Rorden's dcm2niiX version v1.0.20220720 (JP2:OpenJPEG) (JP-LS:CharLS) GCC5.5.0 x86-64 (64-bit Linux)). Those niftis are saved in data/nifti (train and validation set) and data/nifti_ts2024 (test set).
Prostate segmentation
The prostate and urinary bladder were segmented with TotalSegmentator (version 2.1.0) in all ct images.
bash
for i in data/nifti*/*_ct.nii.gz
do
TotalSegmentator -i $i -o analysis/totalsegmentator2/$(basename $i _ct.nii.gz) -rs prostate urinary_bladder
done
Cropping around prostate (or urinary bladder)
Cropping a 20x20x20 cm³ cube around the centroid of the prostate (if detected) or urinary bladder (otherwise) with the script code/preprocessing/crop_by_prostate_or_ub.py.
The cropped files are saved in data/cropped_nifti.
Conversion from BQML to SUV
Determine factors for SUV conversion
The converted nifti PET files have values in the BQML unit. In order to convert them to SUV, individual conversion factors have to be determined. This was done by applying code/preprocessing/bqml_to_suv.py to the dicom files (containing the relevant header information) to create the factors in data/suv_factors.tsv.
Convert cropped PET niftis
bash
while read pid suv
do
fslmaths data/cropped_nifti/${pid}_pet.nii.gz -mul $suv data/cropped_nifti_suv/${pid}_pet.nii.gz
done <<(tail -n +2 data/suv_factors.tsv)
Get ranges for scaling
bash
python code/preprocessing/nii_range.py data/cropped_nifti/*_ct.nii.gz >analysis/cropped_ct_range.tsv
python code/preprocessing/nii_range.py data/cropped_nifti_suv/*_pet.nii.gz >analysis/cropped_pet_suv_range.tsv
Owner
- Name: BioMedical Data Science
- Login: BioMeDS
- Kind: organization
- Repositories: 9
- Profile: https://github.com/BioMeDS
Group at the Center for Computational and Theoretical Biology, University of Würzbrug
Citation (CITATION.cff)
cff-version: 1.2.0
message: If you use this data/code, please cite both the software repository and the paper (see preferred-citation).
authors:
- family-names: Korb
given-names: "Marko"
- family-names: Efetürk
given-names: "Hülya"
- family-names: Jedamzik
given-names: "Tim"
- family-names: Hartrampf
given-names: "Philipp E"
- family-names: Kosmala
given-names: "Aleksander"
- family-names: Serfling
given-names: "Sebastian E"
- family-names: Dirk
given-names: "Robin"
- family-names: Michalski
given-names: "Kerstin"
- family-names: Buck
given-names: "Andreas K"
- family-names: Werner
given-names: "Rudolf A"
- family-names: Schlötelburg
given-names: "Wiebke"
orcid: 0000-0001-9685-0947
affiliation: "Department of Nuclear Medicine, University Hospital Würzburg, Germany"
email: schloetelb_w@ukw.de
- family-names: Ankenbrand
given-names: "Markus J"
orcid: 0000-0002-6620-807X
affiliation: "Center for Computational and Theoretical Biology, University of Würzburg, Germany"
email: markus.ankenbrand@uni-wuerzburg.de
title: "Detection of local prostate cancer recurrence from PET/CT scans using deep learning"
version: 0.3.0
doi: 10.5281/zenodo.15188969
date-released: 2025-04-10
repository-code: https://github.com/BioMeDS/f18-psma-pet-ct-ai
keywords:
- PET/CT
- Cancer
- Prostate
- Deep Learning
license: MIT
url: https://github.com/BioMeDS/f18-psma-pet-ct-ai/new/main
preferred-citation:
type: article
scope: Cite this paper if you use this code in your research
authors:
- family-names: Korb
given-names: "Marko"
- family-names: Efetürk
given-names: "Hülya"
- family-names: Jedamzik
given-names: "Tim"
- family-names: Hartrampf
given-names: "Philipp E"
- family-names: Kosmala
given-names: "Aleksander"
- family-names: Serfling
given-names: "Sebastian E"
- family-names: Dirk
given-names: "Robin"
- family-names: Michalski
given-names: "Kerstin"
- family-names: Buck
given-names: "Andreas K"
- family-names: Werner
given-names: "Rudolf A"
- family-names: Schlötelburg
given-names: "Wiebke"
- family-names: Ankenbrand
given-names: "Markus J"
title: "Detection of Local Prostate Cancer Recurrence from PET/CT Scans Using Deep Learning"
year: 2025
journal: Cancers
volume: 17
issue: 9
doi: 10.3390/cancers17091575
url: https://doi.org/10.3390/cancers17091575
GitHub Events
Total
- Release event: 3
- Watch event: 1
- Push event: 20
- Public event: 1
- Create event: 3
Last Year
- Release event: 3
- Watch event: 1
- Push event: 20
- Public event: 1
- Create event: 3