Summary of what happened:
Hi there,
In my project I have a PEPOLAR scheme for sdc correction and made everything work perfectly. However, I have a couple subjects for whom I don’t have fmaps collected. For some reason, SyN-based SDC was not run whenever fmaps weren’t in the directory, even if --use-syn-sdc
and --force-syn
are present. Fmriprep finishes with no error, just doesn’t perform syn-based sdc.
Thanks in advance.
Command used (and if a helper script was used, a link to the helper script or the command generated):
#!/bin/bash
#SBATCH --job-name=fmri_nofmap_pipeline
#SBATCH --output=pipeline_nofmap_%A_%a.out
#SBATCH --error=pipeline_nofmap_%A_%a.err
#SBATCH --ntasks=1 # Two tasks for simultaneous execution
#SBATCH --cpus-per-task=4 # 8 CPUs per task
#SBATCH --mem=24G # 127GB of memory
#SBATCH --time=48:00:00 # 48 hours
#SBATCH --partition=normal # Partition to use
ml load contribs
ml load poldrack
ml load fsl
ml load system ruse
export TEMPLATEFLOW_HOME=~/.cache/templateflow
# Define paths
FMRI_PROJECT_DIR="/scratch/groups/nolanw/OCD_TMS_fMRI_Data_No_Fmap"
FMRI_OUTPUT_DIR="$FMRI_PROJECT_DIR/fmriprep_output"
FMRI_WORK_DIR="$FMRI_PROJECT_DIR/fmriprep_work"
LICENSE_FILE="/scratch/groups/nolanw/freesurfer_license.txt"
FMRIPREP_SIF="/scratch/groups/nolanw/fmriprep_24.1.1.sif"
QSIPREP_SIF="/scratch/groups/nolanw/qsiprep-1.0.0rc1.sif"
# Generate a list of all subjects dynamically
SUBJECTS=($(ls -d $FMRI_PROJECT_DIR/sub-* | xargs -n 1 basename))
SUBJECT=${SUBJECTS[$SLURM_ARRAY_TASK_ID]} # Get the subject for this job array
PARTICIPANT_LABEL=$(echo $SUBJECT | cut -d- -f2) # Extract subject ID
echo "Processing subject: $PARTICIPANT_LABEL"
# Run fMRIPrep in the background
singularity run --cleanenv \
-B $FMRI_PROJECT_DIR:/data:ro \
-B $FMRI_OUTPUT_DIR:/out \
-B $FMRI_WORK_DIR:/work \
-B $LICENSE_FILE:/fs_license.txt \
-B ~/.cache/templateflow:/templateflow \
$FMRIPREP_SIF \
/data /out participant \
--participant-label $PARTICIPANT_LABEL \
--fs-license-file /fs_license.txt \
--output-spaces MNI152NLin2009cAsym T1w \
--me-output-echos \
--skip-bids-validation \
--use-syn-sdc \
--force-syn \
--nthreads 8 \
--omp-nthreads 4 \
--work-dir /work > fmriprep_${PARTICIPANT_LABEL}.out 2> fmriprep_${PARTICIPANT_LABEL}.err &
FMRIPREP_PID=$! # Capture the process ID of fMRIPrep
# Wait for both processes to finish
wait $FMRIPREP_PID
echo "fMRIPrep completed for subject: $PARTICIPANT_LABEL"
echo "Completed processing for subject: $PARTICIPANT_LABEL"
Version:
24.1.1
Environment (Docker, Singularity / Apptainer, custom installation):
Singularity
Data formatted according to a validatable standard? Please provide the output of the validator:
Data is BIDS validated.
I skipped BIDS validation here.
Relevant log outputs (up to 20 lines):
250110-16:46:39,559 nipype.workflow IMPORTANT:
Running fMRIPrep version 24.1.1
License NOTICE ##################################################
fMRIPrep 24.1.1
Copyright The NiPreps Developers.
This product includes software developed by
the NiPreps Community (https://nipreps.org/).
Portions of this software were developed at the Department of
Psychology at Stanford University, Stanford, CA, US.
This software is also distributed as a Docker container image.
The bootstrapping file for the image ("Dockerfile") is licensed
under the MIT License.
This software may be distributed through an add-on package called
"Docker Wrapper" that is under the BSD 3-clause License.
#################################################################
250110-16:46:39,882 nipype.workflow IMPORTANT:
Building fMRIPrep's workflow:
* BIDS dataset path: /data.
* Participant list: ['53879s005'].
* Run identifier: 20250110-164617_678ec2dd-b37f-4eb5-ba24-bf248620cf16.
* Output spaces: MNI152NLin2009cAsym:res-native T1w.
* Pre-run FreeSurfer's SUBJECTS_DIR: /out/sourcedata/freesurfer.
250110-16:46:40,867 nipype.workflow INFO:
ANAT Stage 1: Adding template workflow
250110-16:46:41,708 nipype.workflow INFO:
ANAT Stage 2: Preparing brain extraction workflow
250110-16:46:41,850 nipype.workflow INFO:
ANAT Stage 3: Preparing segmentation workflow
250110-16:46:41,857 nipype.workflow INFO:
ANAT Stage 4: Preparing normalization workflow for ['MNI152NLin2009cAsym']
250110-16:46:41,873 nipype.workflow INFO:
ANAT Stage 5: Preparing surface reconstruction workflow
250110-16:46:41,903 nipype.workflow INFO:
ANAT Stage 6: Preparing mask refinement workflow
250110-16:46:41,907 nipype.workflow INFO:
ANAT No T2w images provided - skipping Stage 7
250110-16:46:41,907 nipype.workflow INFO:
ANAT Stage 8: Creating GIFTI surfaces for ['white', 'pial', 'midthickness', 'sphere_reg', 'sphere']
250110-16:46:41,935 nipype.workflow INFO:
ANAT Stage 8: Creating GIFTI metrics for ['thickness', 'sulc']
250110-16:46:41,946 nipype.workflow INFO:
ANAT Stage 8a: Creating cortical ribbon mask
250110-16:46:41,952 nipype.workflow INFO:
ANAT Stage 9: Creating fsLR registration sphere
250110-16:46:41,963 nipype.workflow INFO:
ANAT Stage 10: Creating MSM-Sulc registration sphere
250110-16:46:42,559 nipype.workflow INFO:
No single-band-reference found for sub-53879s005_ses-V15_task-resting_run-01_echo-02_bold.nii.gz.
250110-16:46:42,695 nipype.workflow INFO:
Stage 1: Adding HMC boldref workflow
250110-16:46:42,710 nipype.workflow INFO:
Stage 2: Adding motion correction workflow
250110-16:46:42,726 nipype.workflow INFO:
Stage 3: Adding coregistration boldref workflow
250110-16:46:42,808 nipype.workflow IMPORTANT:
BOLD series will be slice-timing corrected to an offset of 0.525s.
250110-16:46:43,61 nipype.workflow INFO:
No single-band-reference found for sub-53879s005_ses-V15_task-resting_run-01_echo-03_bold.nii.gz.
250110-16:46:43,135 nipype.workflow INFO:
Stage 1: Adding HMC boldref workflow
250110-16:46:43,144 nipype.workflow INFO:
Stage 2: Adding motion correction workflow
250110-16:46:43,159 nipype.workflow INFO:
Stage 3: Adding coregistration boldref workflow
250110-16:46:43,225 nipype.workflow IMPORTANT:
BOLD series will be slice-timing corrected to an offset of 0.525s.
250110-16:46:43,425 nipype.workflow INFO:
No single-band-reference found for sub-53879s005_ses-V15_task-resting_run-02_echo-01_bold.nii.gz.
250110-16:46:43,491 nipype.workflow INFO:
Stage 1: Adding HMC boldref workflow
250110-16:46:43,498 nipype.workflow INFO:
Stage 2: Adding motion correction workflow
250110-16:46:43,504 nipype.workflow INFO:
Stage 3: Adding coregistration boldref workflow
250110-16:46:43,560 nipype.workflow IMPORTANT:
BOLD series will be slice-timing corrected to an offset of 0.525s.
250110-16:46:43,730 nipype.workflow INFO:
No single-band-reference found for sub-53879s005_ses-V15_task-resting_run-02_echo-02_bold.nii.gz.
250110-16:46:43,794 nipype.workflow INFO:
Stage 1: Adding HMC boldref workflow
250110-16:46:43,801 nipype.workflow INFO:
Stage 2: Adding motion correction workflow
250110-16:46:43,806 nipype.workflow INFO:
Stage 3: Adding coregistration boldref workflow