Dmriprep is a computational pipeline for preprocessing of neuroimaging diffusion weighted imaging (DWI) datasets.
Allocate an interactive session and run the program.
Sample session (user input in bold):
[user@biowulf]$ sinteractive salloc.exe: Pending job allocation 46116226 salloc.exe: job 46116226 queued and waiting for resources salloc.exe: job 46116226 has been allocated resources salloc.exe: Granted job allocation 46116226 salloc.exe: Waiting for resource configuration salloc.exe: Nodes cn3144 are ready for job [user@cn3144 ~]$ module load dmriprep [user@cn3144 ~]$ dmriprep -h [user@cn3144 ~]$ exit salloc.exe: Relinquishing job allocation 46116226 [user@biowulf ~]$
Create a batch input file (e.g. dmriprep.sh). For example (using test data below):
#!/bin/bash #SBATCH --job-name=dmriprep #SBATCH --gres=lscratch:20 #SBATCH --exclusive #SBATCH --mem=32g #SBATCH --time=72:00:00 module load dmriprep smriprep /lscratch/${SLURM_JOB_ID}/input001 /lscratch/${SLURM_JOB_ID}/dmriprep.out.ds001 \ participant --participant_label sub-01 -w /lscratch/${SLURM_JOB_ID} \
Submit this job using the Slurm sbatch command.
sbatch dmriprep.sh
Create a swarmfile (e.g. dmriprep.swarm). For example:
dmriprep /data/${USER}/BIDS-dataset/input001/ /data/$USER/BIDS-dataset/dmriprep.out.ds001 \ participant --participant_label sub-01 -w /lscratch/${SLURM_JOB_ID} \ dmriprep /data/${USER}/BIDS-dataset/input002/ /data/$USER/BIDS-dataset/dmriprep.out.ds002 \ participant --participant_label sub-02 -w /lscratch/${SLURM_JOB_ID} \ dmriprep /data/${USER}/BIDS-dataset/input003/ /data/$USER/BIDS-dataset/dmriprep.out.ds003 \ participant --participant_label sub-03 -w /lscratch/${SLURM_JOB_ID} \
Submit this job using the swarm command.
swarm -f dmriprep.swarm [--gres=lscratch:#] [-g #] -t auto --module dmriprepwhere
-gres=lscratch:# | Number of Gigabytes of local disk space allocated per process (1 line in the swarm command file) |
-g # | Number of Gigabytes of memory required for each process (1 line in the swarm command file) |
-t # | Number of threads/CPUs required for each process (1 line in the swarm command file). We set this to auto to allocate all CPUs in each node.
|
--module dmriprep | Loads the dmriprep module for each subjob in the swarm |