TL;DR: Can fmriprep work on a dataset whose bids organization is a symlink overlay? If yes, can you help me troubleshoot my issue?
I have created a symlink overlay of a subset of the ukbiobank dataset. I used this code as a starting point for creating the overlay, then customized it to my own file system’s organization.
Here is an example of the file organization:
ukbb_bids/
└── sub-XXX/
├── anat
│ ├── sub-XXX_FLAIR.nii.gz -> <path_to_raw>/T2_FLAIR/T2_FLAIR.nii.gz
│ └── sub-XXX_T1w.nii.gz -> <path_to_raw>/T1/T1.nii.gz
├── dwi
│ ├── sub-XXX_acq-AP_dwi.bval -> <path_to_raw>/dMRI/raw/AP.bval
│ ├── sub-XXX_acq-AP_dwi.bvec -> <path_to_raw>/dMRI/raw/AP.bvec
│ ├── sub-XXX_acq-AP_dwi.nii.gz -> <path_to_raw>/dMRI/raw/AP.nii.gz
│ ├── sub-XXX_acq-PA_dwi.bval -> <path_to_raw>/dMRI/raw/PA.bval
│ ├── sub-XXX_acq-PA_dwi.bvec -> <path_to_raw>/dMRI/raw/PA.bvec
│ └── sub-XXX_acq-PA_dwi.nii.gz -> <path_to_raw>/dMRI/raw/PA.nii.gz
└── func
├── sub-XXX_task-hariri_bold.nii.gz -> <path_to_raw>/fMRI/tfMRI.nii.gz
├── sub-XXX_task-hariri_sbref.nii.gz -> <path_to_raw>/fMRI/tfMRI_SBREF.nii.gz
├── sub-XXX_task-rest_bold.nii.gz -> <path_to_raw>/fMRI/rfMRI.nii.gz
└── sub-XXX_task-rest_sbref.nii.gz -> <path_to_raw>/fMRI/rfMRI_SBREF.nii.gz
3 directories, 12 files
I am now wanting to run fmriprep 20.2.0 on these data using singularity. My command is as follows:
singularity run --cleanenv \
-B ${TEMPLATEFLOW_HOST_HOME}:${SINGULARITYENV_TEMPLATEFLOW_HOME} \
${container} ${input} ${TMPDIR}/out participant --participant_label ${s} \
-w ${TMPDIR}/wrk \
--nthreads $SLURM_CPUS_PER_TASK \
--mem_mb $SLURM_MEM_PER_NODE \
--fs-license-file ${license} \
--output-spaces fsaverage6 fsLR MNI152NLin2009cAsym \
--cifti-output \
--skip-bids-validation \
--notrack \
--omp-nthreads 8 \
--use-aroma \
--error-on-aroma-warnings
Where input
is the symlinked bids dataset, container
is the fmriprep 20.2.0 singularity container, s
is the subject ID, and so on.
When running this on a sample subject, I receive the error:
fmriprep: error: Path does not exist: <input>.
Where input
is replaced by the directory I fed it above.
The directory certainly exists and the permissions are in order for me to access it. I have run the above command on another dataset that is not symlinked and the command works fine.
Any ideas?
Thanks in advance!