Brain Tumor Virtual Biopsy banner

A collection of Docker-based pipelines for automated brain tumor analysis from MRI data, including tumor segmentation, IDH classification, and other molecular marker prediction.

Quick Start

IDH/1p19q Model (Clinical Pipeline)

Use this when you have one patient's MRI study and want the IDH/1p19q prediction. This workflow is based on the confidence-informed IDH prediction method described by Bangalore Yogananda et al. in Neuro-Oncology Advances (2025).

You need:

The DICOM study should include T1, T1 post-contrast, T2, and T2 FLAIR images. If you already have NIfTI files, see NIfTI Input.

Step 1: Create an output folder

mkdir -p /path/to/output

Step 2: Run the pipeline

Pick the command for your container runtime.

Docker / Podman

docker run --rm -it \
  -v /path/to/subject_dicom:/input:ro \
  -v /path/to/output:/output \
  git.biohpc.swmed.edu:5050/ansir/btvb/idh_pipeline:cpu

For Podman, use the same command but replace docker with podman.

Singularity / Apptainer

singularity run \
  -B /path/to/subject_dicom:/input:ro \
  -B /path/to/output:/output \
  docker://git.biohpc.swmed.edu:5050/ansir/btvb/idh_pipeline:cpu

For Apptainer, use the same command but replace singularity with apptainer.

Replace these paths before running:

Step 3: Open the prediction file

The main result is:

/path/to/output/subject/subject_predictions.json

For GPU runs, change :cpu to :gpu. With Docker, add --gpus all. With Singularity, add --nv. Detailed usage, sequence selection, model outputs, and citation information are in clinical_pipeline/README.md. Container build and local development notes are in clinical_pipeline/DEVELOPER_README.md.

CATphishing

CATegorical and PHenotypic Image SyntHetic learnING (CATphishing) is a latent diffusion model framework for generating synthetic multi-contrast 3D brain tumor MRI data as an alternative to federated learning in multi-institutional model development, as described by Truong et al. in Nature Communications (2025).

Use this when you want to run the sample text-conditioned latent diffusion workflow for generating a synthetic tumor mask.

You need:

It is recommened to download the sample data (21GB) using this link. Cloning or downloading this repo will also get this sample data.

Step 1: Change into the sample directory

cd /path/to/btvb/CATphishing/sample

Step 2: Run the sample generation command

docker run --gpus all \
  -e PYTHONPATH=/sample/code \
  -v "$(pwd)":/sample \
  --rm -it \
  git.biohpc.swmed.edu:5050/ansir/btvb/catphishing:gpu \
  python /sample/code/scripts/test_ldpm3d_generate_tumor_mask_text_cond.py \
    --config_file /sample/code/configs/ldpm3d_sszn_lb_newvq_for_inference.yaml \
    --ldpm_ckpt_file /sample/models/latent_diffusion/ldpm3d_cond_IDH/best_checkpoint.ckpt \
    --main_save_dir /sample/output_19 \
    --fend 1

This mounts the current sample directory at /sample inside the container, uses the sample code and configuration, reads the latent diffusion checkpoint from /sample/models, and writes generated outputs under /sample/output_19.

Detailed usage, Code Ocean capsule provenance, training entry points, and citation information are in CATphishing/README.md.


Additional Pipelines

The additional_pipelines image contains supplementary brain tumor workflows that are packaged separately from the primary clinical pipeline. The supported examples include dual-stage 1p/19q workflows, which run a 1p/19q model and the IDH model, plus a standalone MGMT workflow.

Use this when you want to run one of the additional research workflows against a subject MRI study.

You need:

Dual-Stage T2 1p/19q Example

docker run --rm -it \
  -v /path/to/subject_dicom:/input:ro \
  -v /path/to/output:/output \
  git.biohpc.swmed.edu:5050/ansir/btvb/additional_pipelines:cpu \
  t2_pipeline /input /output

Dual-Stage Multi-Contrast 1p/19q Example

docker run --rm -it \
  -v /path/to/subject_dicom:/input:ro \
  -v /path/to/output:/output \
  git.biohpc.swmed.edu:5050/ansir/btvb/additional_pipelines:cpu \
  mc_pipeline /input /output

MGMT Methylation Example

docker run --rm -it \
  -v /path/to/subject_dicom:/input:ro \
  -v /path/to/output:/output \
  git.biohpc.swmed.edu:5050/ansir/btvb/additional_pipelines:cpu \
  mgmt_pipeline /input /output

Replace these paths before running:

The main result is:

/path/to/output/subject/subject_predictions.json

Detailed Docker usage, local execution notes, output files, model details, and citation information are in additional_pipelines/README.md.


Funding

Funding provided by NIH/NCI grant R01CA260705.