fMRIprep path error after upgading to version 20.2.0

Hi,

I have been running fMRIprep successfully on our university clusters with version 20.0.6 but had an issue with one of my participants which seemed to be caused during skull stripping. I have now manually skull stripped this subject with BET and wanted to use --skull-strip-t1w skip. To do this I asked IT to add the updated version of fMRIprep but I now get the below error (note: I haven’t changed my script or added in the --skull-strip-t1w command yet, so I am not sure what is causing this).

Does anybody have any ideas why this might be? Our IT team replied with:
‘I am guessing this means that the expected format of part of the input has changed. Though it is unclear to me as to what this means needs to be different.’

Best,
Sean

Output and Error:

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/os-scratch 121G 33M 121G 1% /scratch

Starting fmriprep…
subject: 12
threads: 2
memory: 122880
working directory: /rds/projects/2018/fernandd-sc-phd/sic613_22011803_12.Z180VN
data directory: /rds/projects/2018/fernandd-sc-phd/chbh00030

/rds/bear-apps/2019a/EL7-haswell/software/FMRIprep/20.2.0-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/bids/layout/validation.py:46: UserWarning: The ability to pass arguments to BIDSLayout that control indexing is likely to be removed in future; possibly as early as PyBIDS 0.14. This includes the config_filename, ignore, force_index, and index_metadata arguments. The recommended usage pattern is to initialize a new BIDSLayoutIndexer with these arguments, and pass it to the BIDSLayout via the indexer argument.
warnings.warn("The ability to pass arguments to BIDSLayout that control "
bids-validator does not appear to be installed
201007-12:04:44,852 nipype.workflow IMPORTANT:

Running fMRIPREP version 20.2.0:
  * BIDS dataset path: /rds/projects/2018/fernandd-sc-phd/chbh00030/BIDS/rawdata.
  * Participant list: ['12'].
  * Run identifier: 20201007-120359_720117d9-2785-4f80-b84a-d76fc9ecd28c.
  * Output spaces: MNI152NLin2009cAsym:res-native.
  * Pre-run FreeSurfer's SUBJECTS_DIR: /rds/projects/2018/fernandd-sc-phd/chbh00030/BIDS/derivatives2/freesurfer.

A process has executed an operation involving a call to the
“fork()” system call to create a child process. Open MPI is currently
operating in a condition that could result in memory corruption or
other system errors; your job may hang, crash, or produce silent
data corruption. The use of fork() (or system() or other calls that
create child processes) is strongly discouraged.

The process that invoked fork was:

Local host: [[19386,1],0] (PID 24597)

If you are absolutely sure that your application will successfully
and correctly survive a call to fork(), you may disable this warning
by setting the mpi_warn_on_fork MCA parameter to 0.

201007-12:04:47,419 nipype.workflow INFO:
No single-band-reference found for sub-12_ses-AnodOff_task-sart_bold.nii.
201007-12:04:48,513 nipype.workflow IMPORTANT:
Slice-timing correction will be included.
Process Process-2:
Traceback (most recent call last):
File “/rds/bear-apps/2019a/EL7-haswell/software/Python/3.7.2-GCCcore-8.2.0/lib/python3.7/multiprocessing/process.py”, line 297, in _bootstrap
self.run()
File “/rds/bear-apps/2019a/EL7-haswell/software/Python/3.7.2-GCCcore-8.2.0/lib/python3.7/multiprocessing/process.py”, line 99, in run
self._target(*self._args, **self._kwargs)
File “/rds/bear-apps/2019a/EL7-haswell/software/FMRIprep/20.2.0-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/fmriprep/cli/workflow.py”, line 84, in build_workflow
retval[“workflow”] = init_fmriprep_wf()
File “/rds/bear-apps/2019a/EL7-haswell/software/FMRIprep/20.2.0-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/fmriprep/workflows/base.py”, line 64, in init_fmriprep_wf
single_subject_wf = init_single_subject_wf(subject_id)
File “/rds/bear-apps/2019a/EL7-haswell/software/FMRIprep/20.2.0-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/fmriprep/workflows/base.py”, line 304, in init_single_subject_wf
func_preproc_wf = init_func_preproc_wf(bold_file)
File “/rds/bear-apps/2019a/EL7-haswell/software/FMRIprep/20.2.0-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/fmriprep/workflows/bold/base.py”, line 818, in init_func_preproc_wf
name=‘carpetplot_wf’)
File “/rds/bear-apps/2019a/EL7-haswell/software/FMRIprep/20.2.0-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/fmriprep/workflows/bold/confounds.py”, line 476, in init_carpetplot_wf
interpolation=‘MultiLabel’),
File “/rds/bear-apps/2019a/EL7-haswell/software/Nipype/1.5.1-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/nipype/interfaces/ants/base.py”, line 75, in init
super(ANTSCommand, self).init(**inputs)
File “/rds/bear-apps/2019a/EL7-haswell/software/Nipype/1.5.1-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/nipype/interfaces/base/core.py”, line 695, in init
super(CommandLine, self).init(**inputs)
File “/rds/bear-apps/2019a/EL7-haswell/software/Nipype/1.5.1-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/nipype/interfaces/base/core.py”, line 183, in init
self.inputs = self.input_spec(**inputs)
File “/rds/bear-apps/2019a/EL7-haswell/software/Nipype/1.5.1-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/nipype/interfaces/base/specs.py”, line 66, in init
super(BaseTraitedSpec, self).init(**kwargs)
File “/rds/bear-apps/2019a/EL7-haswell/software/Nipype/1.5.1-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/nipype/interfaces/base/traits_extension.py”, line 330, in validate
value = super(File, self).validate(objekt, name, value, return_pathlike=True)
File “/rds/bear-apps/2019a/EL7-haswell/software/Nipype/1.5.1-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/nipype/interfaces/base/traits_extension.py”, line 135, in validate
self.error(objekt, name, str(value))
File “/rds/bear-apps/2019a/EL7-haswell/software/Nipype/1.5.1-foss-2019a-Python-3.7.2/lib/python3.7/site-packages/traits/base_trait_handler.py”, line 75, in error
object, name, self.full_info(object, name, value), value
traits.trait_errors.TraitError: The ‘input_image’ trait of a _FixTraitApplyTransformsInputSpec instance must be a pathlike object or string representing an existing file, but a value of ‘[]’ <class ‘str’> was specified.

At first glance, it seems fmriprep is unable to find a template used to generate the carpetplot report. This could be due to some incompatibility between your templateflow / pybids versions. Generally, we recommend using the pre-packaged Docker/Singularity containers which include all default templates by default.

Many thanks for your response.

I contacted our IT team again explaining your suggestions.
Unfortunately, we are unable to use Docker as it created security issues that made it unsuitable for the HPC environment.
We did try Singularity for a long time but it kept crashing - the issue seemed to be that Singularity was unable to use all of the memory allocated (i.e. we could allocate 100GB for the job, but the Singularity process could only use 32GB of it).

Do you have any advice on templateflow / pybids versions then we can then change. The versions of these used in this version of fMRIprep are listed at https://bear-apps.bham.ac.uk/applications/FMRIprep/20.2.0-foss-2019a-Python-3.7.2/

Otherwise, do you know why the Singularity image cannot use all of the available memory?

Thanks & best,
Sean

Hi Sean,

You’ll have to bump templateflow up to version 0.6.3. That should play nicely with pybids >= 0.11

Hi,

Thank you, that has worked perfectly now.

1 Like