PET/CT Brain Phantom Simulator
Medical ImagingA physics-based PET/CT brain phantom simulator implementing phantom generation, CT simulation, and PET simulation pipelines in Python and Jupyter Notebook — built for medical imaging education and research at Duke University.
View on GitHubOverview
The PET/CT Brain Phantom Simulator is a physics-based simulation pipeline that models the full imaging chain for two modalities: Computed Tomography (CT) and Positron Emission Tomography (PET). Built in Python and Jupyter Notebook for BME 303 (Systems & Signals in Biomedical Engineering) at Duke, it demonstrates how each modality acquires and reconstructs brain images from a synthetic phantom.
Simulation Pipeline
The project is structured as three sequential stages:
1. Phantom Generation
A synthetic brain phantom is constructed as a 2D cross-section with anatomically distinct tissue regions — white matter, gray matter, CSF, and skull — each assigned realistic attenuation coefficients (for CT) and tracer uptake values (for PET).
2. CT Simulation
Models the X-ray transmission process:
| Step | Description |
|---|---|
| Forward projection | Radon transform computes sinogram — line integrals of attenuation through the phantom at many angles |
| Noise model | Poisson noise applied to photon counts to simulate detector statistics |
| Reconstruction | Filtered back-projection (FBP) with a ramp filter recovers the attenuation map from the sinogram |
3. PET Simulation
Models the annihilation photon coincidence detection process:
| Step | Description |
|---|---|
| Emission map | Tracer activity distribution derived from the phantom’s tissue uptake map |
| Forward projection | Sinogram generated from the emission map via Radon transform |
| Attenuation correction | CT-derived attenuation map used to correct PET coincidence data for photon absorption |
| Noise model | Poisson statistics applied to coincidence counts |
| Reconstruction | FBP reconstruction recovers the tracer distribution image |
Key Concepts Demonstrated
- Radon transform as the mathematical basis for both CT and PET forward projection
- Filtered back-projection as the classical analytic reconstruction algorithm
- Attenuation correction — why PET alone underestimates deep-tissue activity and how CT fixes it
- Poisson noise — why medical imaging statistics are shot-noise limited and how dose affects image quality
Running the Simulation
The easiest way is via the Binder link above — it launches a live Jupyter environment in your browser with no local setup required. Open RunME.ipynb and run cells top to bottom to step through phantom generation, CT simulation, and PET simulation with inline visualizations at each stage.
To run locally:
git clone https://github.com/Nick-Trigger/Pet-Scan-Simulator-303-Final-Project
cd Pet-Scan-Simulator-303-Final-Project
pip install -r requirements.txt
jupyter notebook RunME.ipynb