# hopkins-cig/gtp architecture

> Architecture diagram of the GitHub repository hopkins-cig/gtp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-24). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/hopkins-cig/gtp
- Repository: https://github.com/hopkins-cig/gtp

## Overview

GTP is a research codebase for Bayesian medical-image reconstruction using cross-modality translation priors, alongside conventional diffusion and analytic/iterative baselines. Its user workflow runs MR-to-CT or CT-to-PET experiments from prepared data and checkpoints, applies a reconstruction method, and saves results for quantitative comparison. The README documents the experiment families and asset layout; sampled source confirms the diffusion model, CT/PET physics operators, and configuration utilities. Experiment-script internals were not sampled, so links from experiment runners to specific algorithms are limited to documented capabilities.

Main entry points: [`scripts/run_testing/mr_ct`](https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing/mr_ct) (MR-to-CT runs), [`scripts/run_testing/ct_pet`](https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing/ct_pet) (CT-to-PET runs), [`scripts/train.py`](https://github.com/hopkins-cig/gtp/blob/main/scripts/train.py) (Model training), [`src/models/ddbm.py`](https://github.com/hopkins-cig/gtp/blob/main/src/models/ddbm.py) (Translation model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experiments["Reconstruction experiments"]
  node_mrct["MR-to-CT runs"]
  node_ctpet["CT-to-PET runs"]
  node_baselines["Reconstruction baselines"]
  node_training["Model training<br/>[train.py]"]
end

subgraph group_priors["Generative priors"]
  node_cmsi["Translation model<br/>[ddbm.py]"]
  node_denoiser["Bridge diffusion"]
  node_unet["Denoising network<br/>[edm_unet.py]"]
  node_sam["Image encoder<br/>[encode_sam.py]"]
end

subgraph group_physics["Imaging physics"]
  node_ctphysics["CT projection<br/>[pbct.py]"]
  node_petphysics["PET projection<br/>[pet.py]"]
end

subgraph group_support["Inference support"]
  node_config["Inference configuration"]
  node_testconfig["Experiment settings"]
  node_gtpconfig["Config loader<br/>[__init__.py]"]
end

node_user(("Researcher"))
node_data["Prepared images"]
node_checkpoints["Model checkpoints"]
node_results["Reconstruction results"]

node_user -->|"runs"| node_mrct
node_user -->|"runs"| node_ctpet
node_mrct -->|"resolves assets"| node_config
node_ctpet -->|"resolves assets"| node_config
node_mrct -->|"loads settings"| node_gtpconfig
node_ctpet -->|"loads settings"| node_gtpconfig
node_gtpconfig -->|"reads"| node_testconfig
node_mrct -->|"loads"| node_data
node_ctpet -->|"loads"| node_data
node_mrct -->|"loads"| node_checkpoints
node_ctpet -->|"loads"| node_checkpoints
node_mrct -->|"uses translation prior"| node_cmsi
node_ctpet -->|"uses translation prior"| node_cmsi
node_cmsi -->|"denoises with"| node_denoiser
node_denoiser -->|"calls"| node_unet
node_mrct -->|"projects CT measurements"| node_ctphysics
node_ctpet -->|"projects PET measurements"| node_petphysics
node_mrct -.->|"supports baseline runs"| node_baselines
node_ctpet -.->|"supports OSEM and DDS"| node_baselines
node_mrct -->|"writes"| node_results
node_ctpet -->|"writes"| node_results
node_user -->|"trains"| node_training
node_training -->|"trains model"| node_cmsi
node_training -->|"reads"| node_data
node_training -->|"writes"| node_checkpoints
node_mrct -.->|"uses unpaired encoding"| node_sam

click node_mrct "https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing/mr_ct"
click node_ctpet "https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing/ct_pet"
click node_baselines "https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing"
click node_training "https://github.com/hopkins-cig/gtp/blob/main/scripts/train.py"
click node_config "https://github.com/hopkins-cig/gtp/blob/main/src/inference_config.py"
click node_testconfig "https://github.com/hopkins-cig/gtp/tree/main/configs/testing"
click node_gtpconfig "https://github.com/hopkins-cig/gtp/blob/main/configs/testing/__init__.py"
click node_cmsi "https://github.com/hopkins-cig/gtp/blob/main/src/models/ddbm.py"
click node_denoiser "https://github.com/hopkins-cig/gtp/blob/main/src/models/karras_diffusion.py"
click node_unet "https://github.com/hopkins-cig/gtp/blob/main/src/models/edm_unet.py"
click node_sam "https://github.com/hopkins-cig/gtp/blob/main/src/models/encode_sam.py"
click node_ctphysics "https://github.com/hopkins-cig/gtp/blob/main/src/physics/pbct.py"
click node_petphysics "https://github.com/hopkins-cig/gtp/blob/main/src/physics/pet.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mrct,node_ctpet,node_baselines,node_training toneBlue
class node_cmsi,node_denoiser,node_unet,node_sam toneAmber
class node_ctphysics,node_petphysics toneMint
class node_config,node_testconfig,node_gtpconfig toneRose
class node_user,node_data,node_checkpoints,node_results toneIndigo
```

## Components

### Reconstruction experiments

- [MR-to-CT runs](https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing/mr_ct): `scripts/run_testing/mr_ct`
- [CT-to-PET runs](https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing/ct_pet): `scripts/run_testing/ct_pet`
- [Reconstruction baselines](https://github.com/hopkins-cig/gtp/tree/main/scripts/run_testing): `scripts/run_testing`
- [Model training](https://github.com/hopkins-cig/gtp/blob/main/scripts/train.py): `scripts/train.py`

### Generative priors

- [Translation model](https://github.com/hopkins-cig/gtp/blob/main/src/models/ddbm.py): `src/models/ddbm.py`
- [Bridge diffusion](https://github.com/hopkins-cig/gtp/blob/main/src/models/karras_diffusion.py): `src/models/karras_diffusion.py`
- [Denoising network](https://github.com/hopkins-cig/gtp/blob/main/src/models/edm_unet.py): `src/models/edm_unet.py`
- [Image encoder](https://github.com/hopkins-cig/gtp/blob/main/src/models/encode_sam.py): `src/models/encode_sam.py`

### Imaging physics

- [CT projection](https://github.com/hopkins-cig/gtp/blob/main/src/physics/pbct.py): `src/physics/pbct.py`
- [PET projection](https://github.com/hopkins-cig/gtp/blob/main/src/physics/pet.py): `src/physics/pet.py`

### Inference support

- [Inference configuration](https://github.com/hopkins-cig/gtp/blob/main/src/inference_config.py): `src/inference_config.py`
- [Experiment settings](https://github.com/hopkins-cig/gtp/tree/main/configs/testing): `configs/testing`
- [Config loader](https://github.com/hopkins-cig/gtp/blob/main/configs/testing/__init__.py): `configs/testing/__init__.py`

### Other components

- **Researcher**
- **Prepared images**
- **Model checkpoints**
- **Reconstruction results**

## Connections

- Researcher → MR-to-CT runs: runs
- Researcher → CT-to-PET runs: runs
- MR-to-CT runs → Inference configuration: resolves assets
- CT-to-PET runs → Inference configuration: resolves assets
- MR-to-CT runs → Config loader: loads settings
- CT-to-PET runs → Config loader: loads settings
- Config loader → Experiment settings: reads
- MR-to-CT runs → Prepared images: loads
- CT-to-PET runs → Prepared images: loads
- MR-to-CT runs → Model checkpoints: loads
- CT-to-PET runs → Model checkpoints: loads
- MR-to-CT runs → Translation model: uses translation prior
- CT-to-PET runs → Translation model: uses translation prior
- Translation model → Bridge diffusion: denoises with
- Bridge diffusion → Denoising network: calls
- MR-to-CT runs → CT projection: projects CT measurements
- CT-to-PET runs → PET projection: projects PET measurements
- MR-to-CT runs → Reconstruction baselines: supports baseline runs
- CT-to-PET runs → Reconstruction baselines: supports OSEM and DDS
- MR-to-CT runs → Reconstruction results: writes
- CT-to-PET runs → Reconstruction results: writes
- Researcher → Model training: trains
- Model training → Translation model: trains model
- Model training → Prepared images: reads
- Model training → Model checkpoints: writes
- MR-to-CT runs → Image encoder: uses unpaired encoding
