I want to run fmriprep and get an output from the space res-native.
Per the doc here: Defining standard and nonstandard spaces where data will be resampled — fmriprep version documentation
I should run
--output-spaces MNI152NLin6Asym:res-2 MNI152NLin2009cAsym:res-native
However, I get the error:
fmriprep: error: argument --output-space: invalid choice: 'MNI152NLin6Asym:res-2' (choose from 'T1w', 'template', 'fsnative', 'fsaverage', 'fsaverage6', 'fsaverage5')
What can I do?
I am using fmriprep singularity
You should update to the most recent fMRIPrep (21.0.0).
singularity build fmriprep_21.0.0.simg docker://nipreps/fmriprep:21.0.0
Yes you can keep two fmriprep outputs. Just be sure to rename your current folder to something like fmriprep_1.3.0 and use a new working directory when running the new fmriprep.
I’d recommend using the most recent release, as older versions have been flagged for errors that are fixed in the new versions.
@Steven Is it possible to determine or customize the path of the new installation instead?
We have many scripts and users that use the current version so I want to keep the current environment completely intact
If you need the new output directory from the fmriprep to go somewhere else you can set that with the
output_dir argument, which is the second positional argument.
singularity build fmriprep_21.0.0.simg docker://nipreps/fmriprep:21.0.0 --output_dir <dest_path>
Should have no effect on anything in the existing version? will not override any resource, etc?
Singularity build Just makes the fmriprep container. Before you build it, you can
cd to the directory you want the container to go.
You’ll need to use
singularity run to use fmriprep. You can probably just find the script you used to run the old version and replace the container file with the new one.
Output-dir is part of the
run command and is not a named argument, but a positional one. You can look at usage notes in fmripreps documentation.
@Steven I upgraded fmri and downloaded on my data.
I have this error:
1.38kB [00:06, 216B/s]
10.8kB [00:01, 5.99kB/s]
147B [00:00, 313B/s]
fMRIPrep failed: Workflow did not execute cleanly. Check log for details
Preprocessing did not finish successfully. Errors occurred while processing data from participants: 088 (1), 115 (1), 116 (1), 117 (1), 118 (1), 119 (1), 120 (1), 121 (1), 122 (1), 123 (1), 124 (1), 125 (1), 126 (1), 127 (1), 128 (1), 129 (1), 130 (1), 131 (1). Check the HTML reports for details.
(These of course are all the subjects).
And also in the logs I see this print for all the subjects:
220103-16:37:03,550 nipype.workflow ERROR:
could not run node: fmriprep_wf.single_subject_<subj_id>_wf.anat_preproc_wf.surface_recon_wf.autorecon1
Any idea what can it be or how I can find the problem?
I ran via singularity:
fmriprep_20.0.5.simg bids_dir out_dir participant --fs-license-file . --ignore slicetiming -w .work/work_$PartIDs --output-spaces MNI152NLin6Asym:res-2 MNI152NLin2009cAsym:res-native
You can check 1) The subject HTML outputs in the output directory or 2) The log files that should be in the subject-specific folders in the output directory.
I’m a bit curious about the
--fs-license-file . you put in. You should put in the path to the license file (or if that is the path, rename the license to something like license.txt). Are you reusing anything from prior runs (e.g. FreeSurfer, work directory, other anatomical derivatives)? That can cause problems, especially when upgrading from such an old version. I don’t know what version freesurfer you already have run on your subjects, but if it version 6 then it may be okay to reuse the freesurfer outputs. Also, It is possible the error is something that would be fixed by upgrading to 21.0.0.
@Steven I couldn’t find any HTML where it should be generated? Anyway, from the log it seems as it is related to the FS license. Will check and update
The HTML files would be in the directory you set to be the output, along with the subject-specific folders. If fMRIPrep crashes then the HTML files may not generate. Hopefully the license specification will fix it.