I would like to figure out a minimal preprocessing pipeline for complex-valued fMRI data (i.e., data with both magnitude and phase), with the end goal of adding support for these data to standardized pipelines like fMRIPrep. However, I’m definitely not an expert on this kind of data, so I thought that I would post here to get some external input.
To start, I’ll summarize my understanding of the benefits to reconstructing your phase data:
- Single-echo complex data allows for dynamic distortion correction via the TOAST method (Hahn, Nencka, & Rowe, 2008). With multi-echo complex data, you can use DOCMA (Visser, Poser, Barth, & Zwiers, 2012).
- Per Caballero-Gaudes & Reynolds (2017), phase data can be used for several denoising strategies, including phase regression (Menon, 2002), RETROICOR (Petridou, Schafer, Gowland, & Bowtell, 2009), removal of large vessel-based signal contamination (Curtis, Hutchison, & Menon, 2014), and HighCor (Hagberg et al., 2012).
- Also per Caballero-Gaudes & Reynolds (2017), there are several modeling approaches that use both magnitude and phase data to improve sensitivity and specificity of analyses.
- Allows functional quantitative susceptibility mapping (Ozbay et al., 2016).
The main cost seems to be space, since you’re retaining twice the amount of data. Also, phase data haven’t been supported in BIDS and BIDS-related tools, but I think it should be covered now in the standard/validator and in data ingestion/indexing tools like heudiconv and pybids.
Preprocessing (based on fMRIPrep):
- Anatomical processing workflow
- Reference magnitude image identification
- Rescaling of functional phase data to [0 2pi] range.
- Unwrapping of functional phase data with PRELUDE (potentially across echoes as well)
- Slice timing correction of functional magnitude data.
- Should this be done to phase data as well?
- Dynamic distortion correction, either with TOAST for single-echo or DOCMA for multi-echo (using first two echoes).
- Phase regression
- According to Caballero-Gaudes & Reynolds (2017), this should be done before further processing of the magnitude data.
- Perhaps this could be an optional argument or an output that is generated in addition to the non-regressed data?
- Employ a Savitzky-Golay filter to smooth the phase data
- Motion correction on unwarped magnitude data
- Parameters can be applied to phase data
- Phase-related confound calculation
- HighCor (tCompCor with voxels identified by phase variation)
- Phase quality map calculation (Rodriguez et al., 2010)
- If multi-echo, T2* estimation
- Should phase data be combined across echoes or should the echo-specific data (both magnitude and phase) be retained?
- EPI to T1 registration
- Registration to standard spaces
Post-processing and analysis:
- Remove high-frequency phase variations with filtering using Stockwell Transform (Goodyear, Zhu, Brown, & Mitchell, 2004)
- RETROICOR
- Complex fMRI data analysis model
Does anyone have any input on the proposed processing workflow and the costs/benefits I’ve identified?