Fmriprep handling of multi-echo data with single-band reference scans

Hi!

The use of single-band reference images is currently not supported with multi-echo data in fmriprep. From previous discussions (links below), I get the impression that this decision was taken mainly due to a dataset that was missing sbrefs for the first/shortest echo (but it was a long discussion, I might have missed some points).

We’re collecting multi-echo multi-band data with sbrefs for each of the 3 echos, and as the contrast of course is massively better in the sbrefs (see below for an example), I was wondering whether there has been any discussions about re-enabling sbref support for ME-data in fmriprep? Or are sbrefs considered “superfluous” in an ME-context as one can achieve good coregistration using the --t2s_coreg flag?

_echo-1_bold.nii.gz, first volume


_echo-1_sbref.nii.gz

On a related note, it seems like fmriprep currently doesn’t detect the multi-echo sbrefs at all. Would expect to get line 323-324 (from fmriprep/workflows/bold/base.py)
image

however we get line 335

With this BIDS-naming

Thanks!
Markus



)

3 Likes

Hi @markushs. I think you’re right that the big thing holding us back from correctly handling ME sbrefs was a lack of a good dataset to test on, but it’s been a bit for me as well.

For the issue with not finding your files, I think this is a pybids problem. When I do the following:

mkdir -p sub-1700021/ses-01/func
touch sub-1700021/ses-01/func/sub-1700021_ses-01_task-grid_run-01_echo-{1,2,3}_{bold,sbref}.nii.gz

Then:

In [1]: from bids import BIDSLayout

In [2]: layout = BIDSLayout('.', validate=False)

In [3]: ref_file = layout.get(echo='1')[0]                                                          

In [4]: ref_file.entities                                                                           
Out[4]: 
{'subject': '1700021',
 'session': '01',
 'task': 'grid',
 'run': 1,
 'echo': '1',
 'suffix': 'bold',
 'datatype': 'func'}

In [5]: sbref_file = layout.get(suffix='sbref')[0]                                                 

In [6]: sbref_file.entities                                                                        
Out[6]: 
{'subject': '1700021',
 'session': '01',
 'task': 'grid',
 'run': 1,
 'suffix': 'sbref',
 'datatype': 'func'}

The echo entity isn’t showing up. If we check pybids, we see echo is matched with:

        {
            "name": "echo",
            "pattern": "[_/\\\\]+echo-([0-9]+)\\_bold."
        },

Which looks like it’s being treated as a bold-specific entity. The Entity table, however, indicates that it should apply to bold, sbref and events. I’ll open an issue to fix that. Meanwhile, would you like to open an issue on fMRIPrep to support multiecho sbref? If you have data you can share for validation, that would be very helpful.

1 Like

Hi @effigies,
Thanks! I’ll open an issue on fmriprep, will check if we are allowed to share those data.

1 Like

Issue opened over at fmriprep: https://github.com/poldracklab/fmriprep/issues/1745

Btw @tsalo (as you liked this post) - we’ve collected a tiny dataset with multi-echo multi-band-data for the purpose of sharing which might be of interest for the tedana-developers. Two volunteers, one run of resting-state data, one run of a visual localizer-task (after seeing that the denoising routines sometimes struggle with visual block-designs: https://github.com/ME-ICA/tedana/issues/153#issuecomment-442873370). Let me know if you’re interested in having a look!

1 Like