I’m using fmriprep and would like to apply a temporal up-sampling of my functional data, from a TR of 1.4s to 1s. Theoretically, that up-sampling could be done when the slice time correction is applied, as both are temporal interpolation.
Does fmriprep allow for a change in temporal resolution during slice time correction? I haven’t seen any input parameters for that.
fMRIPrep does not have any options to permit temporal upsampling during STC. What tools would you usually use to do this?
Hi Chris - thanks for the reply. I haven’t done temporal upsampling before, but I recently realized it would be very useful when stimulus timing doesn’t overlap exactly with functional TRs. I could apply the upsampling as a final step in pre-processing, after fmriprep is complete: in Matlab, upsample each voxel’s BOLD timeseries with some kind of interpolation. But, I think it would be cleaner to do all the interpolation in one step, during slice time correction. I imagine that could be broadly useful. The slice time correction algorithm could have an additional parameter for the output temporal resolution. What do you think?
I would be very cautious about temporal upsampling, and ensure it works with your tools. In general, I would let the analysis stage model this (e.g. SPM’s micro-time resolution). For event-related designs where you are averaging across lots of trials, it might even be useful to have the sampling out of phase with events to better model the temporal derivative of the canonical HRF. I would also worry about what method would be used for interpolation. A method like linear interpolation might fail to model a peak (as shown below), whereas higher order methods might induce ringing. I am not saying this should never be done, but I would proceed with great caution. If these are important characteristics, one probably want to do it at the time of acquisition (e.g. if your events are stimuli you control, present them in phase with the TR; if they are events like behavioral responses, trade-off spatial resolution or SNR for higher sampling rate).
I take your point about the risks of interpolation, Chris. However, the slice time correction also requires interpolation, correct? This idea I have in mind has been used before. See panel B in this figure from a pre-print by Kendrick Kay & colleagues (https://www.biorxiv.org/content/10.1101/868455v1). The idea is: when you’re interpolating to correct slice time differences, interpolate at a finer temporal resolution than the original measurement. If that’s all done in one interpolation step, then any loss of information should be minimized. The advantage is that you don’t have to align your stimuli with the TRs during acquisition.
My original question was whether fmriprep could do this. But I see that fmriprep uses AFNI’s 3dTshift function, which may not have that capability.