Help with FMRIPREP

Hi All,

Could you please help with the error I am getting?

[WARNING] This document format requires a nonempty <title> element.

Please specify either ‘title’ or ‘pagetitle’ in the metadata.

Falling back to ‘CITATION’

181015-19:17:43,319 nipype.workflow WARNING:

Some nodes exceed the total amount of memory available (8.77GB).

Thanks,
Elveda

Hi @elveda1985,

In principle, that is not an error, those are two warnings. Are you positive that FMRIPREP crashed after that?

First, the tool is complaining that memory is very low. I think a minimum of 16GB would be advisable.

Second, at that point of building the workflow FMRIPREP may seem idle for a little while. Please run it in very verbose mode (i.e. using the flag -vv or even -vvv) and you will probably see some inner workings happening.

Hi Oesteban,

I followed your recommendations, but it was crashed and I got an error as follows:

GNU libc version: 2.23

ERROR: Systems running GNU glibc version greater than 2.15

require a newly formatted license file (it’s free). Please

download a new one from the following page:

http://surfer.nmr.mgh.harvard.edu/registration.html


Linux 2b07a950df72 4.9.93-linuxkit-aufs #1 SMP Wed Jun 6 16:55:56 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

recon-all -s sub-21783 exited with ERRORS at Mon Oct 15 21:51:18 UTC 2018

For more details, see the log file /out/freesurfer/sub-21783/scripts/recon-all.log

To report a problem, see http://surfer.nmr.mgh.harvard.edu/fswiki/BugReporting

You said that the tool complaining about memory that means Docker memory right? Thanks for your help!!

Elveda

So, the error about the license can be solved after reading this: https://fmriprep.readthedocs.io/en/latest/installation.html#the-freesurfer-license

There seems to be some odd error with your installation (that libc problem). Are you using containers or got the whole framework installed manually?

I already tried it. I am using containers. Thanks!!

What is the exact command line you are using? could you share your image (docker, singularity)?

The exact command I am using:

/Users/elvadags/.local/bin/fmriprep-docker --fs-license-file $HOME/.licenses/freesurfer/license.txt /Users/elvadags/Desktop/mybids /Users/elvadags/Desktop/mybids -w /Users/elvadags/Desktop/mybids

Thanks!!

Can you get an updated license and try again?

I have tried that too. Unfortunately, I had the same error. Thanks!!

fMRIPrep is just forwarding the error from FreeSurfer:

ERROR: Systems running GNU glibc version greater than 2.15
require a newly formatted license file (it’s free). Please
download a new one from the following page:
http://surfer.nmr.mgh.harvard.edu/registration.html

So, if you downloaded a new FS license (meaning, you are not reusing a license you got some while ago while the latest version of FS was branch 5.x) then I we can only suggest you to write to FreeSurfer’s mail list.

Before that, please make sure that the license file that you are passing in to fMRIPrep is the new FS 6.x license file.

Hi, I saw your tweet. Assuming that you’re still using this command (I reordered slightly, as we tend to put the input, output and participant before any other options):

fmriprep-docker /Users/elvadags/Desktop/mybids \
                /Users/elvadags/Desktop/mybids \
                participant \
                --fs-license-file $HOME/.licenses/freesurfer/license.txt \
                -w /Users/elvadags/Desktop/mybids

I have a couple comments:

  1. I would not use the same input and output directory. If you would like your derivatives to be in a sub-folder of your BIDS directory, the spec-recommended place is <bids-root>/derivatives.
  2. I would not use the input directory as a working directory. I would not choose a sub-directory; the working directory can be deleted once processing is complete, and is emphatically not BIDS-formatted.

So you could try the following (after upgrading to the latest fmriprep-docker with pip install --user --upgrade fmriprep-docker):

fmriprep-docker /Users/elvadags/Desktop/mybids \
                /Users/elvadags/Desktop/mybids/derivatives \
                participant \
                --fs-license-file $HOME/.licenses/freesurfer/license.txt \
                -w /Users/elvadags/Desktop/mybids-wd

Note that fmriprep now bundles the BIDS validator, so if your dataset isn’t valid, you’re going to need to fix it up to some degree. Often enough, invalid datasets somehow exhibit as odd errors, so we bundle it to rule out these cases.

If that fails, you can add a --shell option to your fmriprep-docker command to drop into a bash shell inside the container. Then you should look in $FREESURFER_HOME for your license file and make sure that it’s valid. You can also test it with a basic mri_convert call.

Let me know how that all goes. Hopefully somewhere in there we’ll find your problem.

Just a quick question – why wouldn’t you use the same input and output directory? Only because it’s not according to the spec, or can it actually cause problems?

Oren

Both. BIDS tooling generally either validates the dataset according to the spec, or assumes that it is valid. Violations of the spec can produce unexpected behaviors, and introducing violating data mid-run can possibly do so as well.

Additionally:

  1. If you write outputs into your input directory, you’re putting a lot of trust in programmers not to accidentally damage your input data. Having read-only input and writable output is a safer approach.
  2. From a reproducibility perspective, if the dataset changes, multiple runs may produce different results. Isolating the outputs makes it easier to reason about the processing.