sct-pipeline / balgrist-sci

Pipeline for processing SCI patients using SCT
MIT License
2 stars 0 forks source link

An idea how to structure the pipeline #1

Open valosekj opened 3 months ago

valosekj commented 3 months ago

Just some first ideas on how to structure the pipeline after a discussion during the 2024-08-08 SCT dev meeting:

1. Installation script

This script will be run only once and install SCT and dcm2niix --> it can be relatively simple --> use bash script.

2. Dicom to nii conversion script

This script will be run for every new subject to convert their images from DICOM to nii. We do not know how many scanners the images will be coming from, what the image filenames will be, etc. So, I would just run a simple dcm2niix conversion and then let the user decide what image(s) they want to process.

For future versions of the pipeline, we could also consider prospectively organizing the subjects into a BIDS dataset.

3. Analysis script

This script will be used for the main analysis. Depending on the selected image (T2w, T2star, DWI, ...), it will perform a series of SCT commands. It could be a relatively simple bash script. If we wanted to handle more edge cases, a python script could be more appropriate.

jcohenadad commented 3 months ago

Thank you for getting started.

I don't think we need an installation script. The clinical team has support from researchers versed in terminal commands and should be able to install these 3rd party software relatively easily. The problem of installation script, is that if something goes wrong (eg permission issue, wanting to specify install folder, etc.), it is often treated as a black box. I find it better to just mention what software should be installed, and your script can make sure they are installed.

This script will be run for every new subject to convert their images from DICOM to nii. We do not know how many scanners the images will be coming from, what the image filenames will be, etc. So, I would just run a simple dcm2niix conversion and then let the user decide what image(s) they want to process.

agreed

This script will be used for the main analysis. Depending on the selected image (T2w, T2star, DWI, ...), it will perform a series of SCT commands. It could be a relatively simple bash script. If we wanted to handle more edge cases, a python script could be more appropriate.

Right. And as discussed we probably want to break it down into two scripts, with a mandatory QC step between the two.

valosekj commented 2 months ago

Okay, the current implementation uses only a single bash script, which manages the entire pipeline (dcm2nii conversion, running SCT functions, QC,). Details: https://github.com/sct-pipeline/balgrist-sci?tab=readme-ov-file#3-analysis-pipeline