Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--cifti-output issues for data processed in fsLR-32k space in 20.0.1rc1 #1986

Closed
helloTC opened this issue Feb 16, 2020 · 3 comments
Closed

Comments

@helloTC
Copy link

helloTC commented Feb 16, 2020

Hi, I installed the latest version of fmriprep (v20.0.1rc) in my servers by using pip command. I would like to get processed data in fsLR-den32k space. It looks fsLR no long need to be included in the --output-spaces in this lastest version because after running
fmriprep test_fmriprep test_fmriprep_output participant -w work --output-spaces fsLR --cifti-output
I got an error as

ValueError: space identifier "fsLR" is invalid.
Valid identifiers are: MNI152Lin, MNI152NLin2009cAsym, MNI152NLin6Asym, MNI152NLin6Sym, MNIInfant, MNIPediatricAsym, NKI, OASIS30ANTs, PNC, fsaverage, T1w, T2w, anat, fsnative, func, run, sbref, session.

While I noticed in documentation of the v20.0.1rc still implied that the users need to include fsLR in the --output-spaces, it seems a bug here.

Issue #1887 allows CIFTI output when using --cifti-output and will compliant with HCP grayordinate space (cortex in fsLR, subcortical in MNI152NLin6Asym).
However, after running command only with --cifti-output: fmriprep test_fmriprep test_fmriprep_output participant -w work -cifti-output, I got one another error as

Process Process-2:
Traceback (most recent call last):
File "/usr/local/neurosoft/miniconda3/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/local/neurosoft/miniconda3/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/fmriprep/cli/run.py", line 676, in build_workflow
work_dir=str(work_dir),
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/fmriprep/workflows/base.py", line 267, in init_fmriprep_wf
use_syn=use_syn,
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/fmriprep/workflows/base.py", line 623, in init_single_subject_wf
use_syn=use_syn,
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/fmriprep/workflows/bold/base.py", line 945, in init_func_preproc_wf
repetition_time=metadata['RepetitionTime'])
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/fmriprep/workflows/bold/resampling.py", line 744, in init_bold_grayords_wf
for hemi in 'LR'
File "/nfs/s2/userhome/huangtaicheng/.local/lib/python3.6/site-packages/nipype/interfaces/base/traits_extension.py", line 425, in validate
value = super(MultiObject, self).validate(objekt, name, newvalue)
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/traits/trait_types.py", line 2573, in validate
return TraitListObject(self, object, name, value)
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/traits/trait_handlers.py", line 2474, in init
raise excp
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/traits/trait_handlers.py", line 2466, in init
value = [validate(object, name, val) for val in value]
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/traits/trait_handlers.py", line 2466, in
value = [validate(object, name, val) for val in value]
File "/nfs/s2/userhome/huangtaicheng/.local/lib/python3.6/site-packages/nipype/interfaces/base/traits_extension.py", line 329, in validate
value = super(File, self).validate(objekt, name, value, return_pathlike=True)
File "/nfs/s2/userhome/huangtaicheng/.local/lib/python3.6/site-packages/nipype/interfaces/base/traits_extension.py", line 134, in validate
self.error(objekt, name, str(value))
File "/usr/local/neurosoft/miniconda3/lib/python3.6/site-packages/traits/trait_handlers.py", line 236, in error
object, name, self.full_info(object, name, value), value
traits.trait_errors.TraitError: Each element of the 'current_sphere' trait of a DynamicTraitedSpec instance must be a pathlike object or string representing an existing file, but a value of '[]' <class 'str'> was specified.

I guess this problem is due to configurations of fsLR template in my servers. I have set TEMPLATEFLOW_HOME in my servers but it looks useless.

I searched issues for that but haven't found any solutions, perhaps I missed something important.
Could someone give me some suggestions on this problem? Or if any lower versions of fmriprep could generate processed data in fsLR-32k space as cifti output, it would also be a great help to me.

Best,
Taicheng

@helloTC
Copy link
Author

helloTC commented Feb 16, 2020

I submitted this question in Neurostar page, closed here.

@helloTC helloTC closed this as completed Feb 16, 2020
@mgxd mgxd reopened this Feb 16, 2020
@mgxd
Copy link
Collaborator

mgxd commented Feb 16, 2020

Hi @helloTC

It looks like one of the fsLR templates is not found - you may need to clear your templateflow cache (~/.cache/templateflow) and then reinstall templateflow. Then you could ensure the templates are present by running this line in your terminal prior to running fmriprep.

python -c "import templateflow.api as tf; tf.get('fsLR')"

If possible, I'd recommend using a container service such as Docker or Singularity, which allows for running versions in a fully encapsulated environment, also avoiding the complex dependency graph that fmriprep has.

@mgxd
Copy link
Collaborator

mgxd commented Mar 13, 2020

Version 20.0.3 is out with corrected CIFTI outputs, it's highly recommended that you regenerate your files with that.

Feel free to reopen if you have any issues.

@mgxd mgxd closed this as completed Mar 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants