Skip to content

Enhance DICOM processing and add HPC deployment support#15

Merged
NicholasLeotta99 merged 12 commits into
developfrom
main
Jun 11, 2026
Merged

Enhance DICOM processing and add HPC deployment support#15
NicholasLeotta99 merged 12 commits into
developfrom
main

Conversation

@NicholasLeotta99

Copy link
Copy Markdown
Member

This pull request introduces major improvements to the MRI preprocessing pipeline, focusing on making it portable and easier to run across different environments (Docker, Singularity, or Conda-only HPC), as well as adding robust environment setup scripts and documentation. The most important changes are grouped below.

Unified and Flexible Pipeline Orchestration

  • Major refactor of 00_preprocess.sh to support running specific steps, custom input/output directories, and robust argument parsing. Steps can now be selectively run or skipped, and scan/output paths can be overridden from the command line.

Cross-Platform Environment Support

  • Addition of start_control.sh as a unified entry point that auto-detects the available runtime (Docker, Singularity, or Conda) and launches the pipeline accordingly, including logic for environment variable setup and runtime-specific instructions. [1] [2]
  • Added a Singularity definition file (mri_preprocessing.singularity.def) to enable building and running the pipeline on HPC systems without Docker, including all necessary dependencies and NiftyReg installation.
  • Updated the Dockerfile to use a named build stage (AS base) for potential multi-stage builds.

Conda-Based Local/HPC Deployment

  • Added environment.yml specifying all Python and system dependencies for Conda-based installs, making it easy to set up the environment on HPCs without containers.
  • Introduced run_pipeline_conda.sh, an interactive script for running the pipeline natively in a Conda environment, including environment checks, dependency verification, and user prompts for data paths.

NiftyReg Installation Support

  • Added scripts/install_niftyreg.sh to automate building and installing NiftyReg from source, including CUDA detection and customizable install prefix, for environments where NiftyReg is not available as a module.

These changes significantly improve the portability, usability, and robustness of the MRI preprocessing pipeline across diverse computing environments.

NicholasLeotta99 and others added 12 commits March 2, 2026 09:41
Enhance DICOM processing with multithreading and improved error handling
Update docstrings, TODOs, and fix KeyErrors in DICOM processing
- start_control.sh: auto-detect container runtime (Docker → Singularity → Apptainer)
- Add mri_preprocessing.singularity.def matching existing Dockerfile layers
- Exclude .sif images from git
- start_control.sh: detect Docker → Singularity/Apptainer → conda/mamba → error
- environment.yml: conda env spec (dcm2niix + Python + test deps)
- run_pipeline_conda.sh: standalone conda pipeline runner
- code/scripts/install_niftyreg.sh: source build helper for reg_f3d
Optimize DICOM processing and enhance logging and testing framework
@NicholasLeotta99 NicholasLeotta99 merged commit 65c1433 into develop Jun 11, 2026
2 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants