Multitaper & DICS

  • MNE-Python version: 0.22.1
  • operating system: Ubuntu 20.04.2 LTS

Thank you always for your great work and support.

I would like to ask you about conducting multitaper time-frequency analysis in the source domain using beamformer (DICS). From my understanding, in mne.time_frequency.csd_multitaper, one specifies fmin & fmax, and the function computes the CSD at frequencies obtained from scipy.fft.rfftfreq(n_times, sample_frequency) that are between fmin and fmax.

On the other hand, in mne.time_freuqency.tfr_multitaper, one can put any frequencies at which they want to compute multitaper analysis.

What is the difference between csd_multitaper and tfr_multitaper in terms of performing multitaper analysis? I assume that the power spectrum by DFT will be computed at the frequencies obtained from scipy.fft.rfftfreq with a given number of time points and sample frequency. I used tfr_multitaper by sliding a fixed time window (0.3 s) across time points at each frequency bin I specified (from 4Hz to 98Hz with 3/4 octave frequency smoothing) to analyze at the sensor domain, and I wish to do something similar in the source domain. I would appreciate if you could give me some advice.

Warmly,
Yuki

What is the difference between csd_multitaper and tfr_multitaper in terms of performing multitaper analysis?

I don’t think there is a difference in the actual multitaper computations being performed. Currently, CSDs are mainly used in DICS computations and the choice was made to make the user select a limited amount of frequencies in this case.

To perform TFR analysis in source space over time, I currently recommend first performing regular MNE source estimation, followed by using tfr_array_multitaper on stc.data. Be aware that the resulting data is going to be quite large (epochs x vertices x frequencies x times) so you probably want to process little snippets of data at the time.

This is an area where MNE-Python API is missing some functionality. I vaguely remember there being some proposal to add source-level time-frequency objects to the API, which would be a great help for doing this sort of analysis.

Hi Marijn,

Thank you for your response and information!

I initially wanted to use DICS with multitapers to see if my data will match the result of a previous study (they used Fieldtrip), but I will definitely try your suggestion: source-estimating with MNE filters and then multitapering. As I already have the labels of interest so I’m assuming that the data size won’t be too crazy. :slight_smile:

Thanks again!
Yuki