From 2e6d03b0b7c591b8a83d4a962e207110ccc0e19c Mon Sep 17 00:00:00 2001 From: McKenzie Paige Hagen Date: Mon, 14 Oct 2024 20:08:42 -0700 Subject: [PATCH] switch singularity to apptainer --- docs/source/resources/mriqc.sbatch | 34 +++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) mode change 100644 => 100755 docs/source/resources/mriqc.sbatch diff --git a/docs/source/resources/mriqc.sbatch b/docs/source/resources/mriqc.sbatch old mode 100644 new mode 100755 index 9327b00d..2a6e86b7 --- a/docs/source/resources/mriqc.sbatch +++ b/docs/source/resources/mriqc.sbatch @@ -1,21 +1,16 @@ #!/bin/bash - #NOTE: These should work with Slurm HPC systems, - # but these specific paramters have only been tested on + # but these specific parameters have only been tested on # Stanford's Sherlock. Some parameters may need to be # adjusted for other HPCs, specifically --partition. - #SBATCH --job-name mriqc #SBATCH --partition normal #TODO: update for your HPC - #NOTE: The --array parameter allows multiple jobs to be launched at once, # and is generally recommended to efficiently run several hundred jobs # at once. - # TODO: adjust the range for your dataset; 1-n%j where n is the number of # participants and j is the maximum number of concurrent jobs you'd like # to run. - #SBATCH --array=1-216%50 #SBATCH --time=1:00:00 #NOTE: likely longer than generally needed #SBATCH --ntasks 1 @@ -26,31 +21,36 @@ #SBATCH --error log/%x-%A-%a.err #SBATCH --mail-user=%u@stanford.edu #TODO: update for your email domain #SBATCH --mail-type=ALL + # ------------------------------------------ -unset PYTHONPATH +STUDY="/scratch/users/mphagen/mriqc-protocol" #TODO: replace with your path -MRIQC_VERSION="24.0.0" #TODO: update if using a different version -BIDS_DIR="ds002785" #TODO: replace with path to your dataset + +MRIQC_VERSION="24.0.2" #TODO: update if using a different version +BIDS_DIR="${STUDY}/ds002785" # TODO: replace with path to your dataset OUTPUT_DIR="${BIDS_DIR}/derivatives/mriqc-${MRIQC_VERSION}" -SINGULARITY_CMD="singularity run -e mriqc-${MRIQC_VERSION}.simg" +APPTAINER_CMD="apptainer run -e mriqc_${MRIQC_VERSION}.sif" -#NOTE: The first clause in this line selects a row in participants.tsv +# Offset subject index by 1 because of header in participants.tsv +subject_idx=$(( ${SLURM_ARRAY_TASK_ID} + 1 )) + +##NOTE: The first clause in this line selects a row in participants.tsv # using the system generated array index variable SLURM_ARRAY_TASK_ID. # This is piped to grep to isolate the subject id. The regex should - # work for most subject naming conventions, but may need to be modified. - -subject=$( sed -n ${SLURM_ARRAY_TASK_ID}p ${BIDS_DIR}/participants.tsv \ + # work for most subject naming conventions, but may need to be modified. + +subject=$( sed -n ${subject_idx}p ${BIDS_DIR}/participants.tsv \ | grep -oP "sub-[A-Za-z0-9_]*" ) echo Subject $subject -cmd="${SINGULARITY_CMD} ${BIDS_DIR} ${OUTPUT_DIR} participant \ +cmd="${APPTAINER_CMD} ${BIDS_DIR} ${OUTPUT_DIR} participant \ --participant-label $subject \ -w $PWD/work/ \ - --omp-nthreads 8 --mem 10 \ - --verbose-reports" + --omp-nthreads 10 --nprocs 12 \ + --verbose-reports" echo Running task ${SLURM_ARRAY_TASK_ID} echo Commandline: $cmd