Multitapers and DICS

Dear all,
I have a question regarding the use of multitapers and DICS.
As far as I know, the power spectral density using multitaper is the
mean power averaged across tapers (e.g., equation 6 in the paper from
Mitra and Pesaran
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1300074/pdf/9929474.pdf)
At the source level, using DICS for example, I assume that we should
compute the power for each taper and then average across tapers to get
the mean power estimate for each source.
While looking at the example on "Compute source power using DICS
beamfomer"
(http://martinos.org/mne/stable/auto_examples/inverse/plot_dics_source_power.html#sphx-glr-auto-examples-inverse-plot-dics-source-power-py),
however it looks like that you compute the mean cross-spectral density
averaged across tapers (which has complex values), and then you use it
to compute the power at the source level.
Is that the case ?
If yes, would it be possible to modify it so to:
1) keep the csd for each taper
2) apply the spatial filter for each taper to the channel data to
compute the source power for each taper
3) average source power across tapers

Here are the lines of code I refer to in the Example

# Computing the data and noise cross-spectral density matrices
# The time-frequency window was chosen on the basis of spectrograms from
# example time_frequency/plot_time_frequency.py
# As fsum is False compute_epochs_csd returns a list of CrossSpectralDensity
# instances than can then be passed to dics_source_power
data_csds = compute_epochs_csd
<http://martinos.org/mne/stable/generated/mne.time_frequency.compute_epochs_csd.html#mne.time_frequency.compute_epochs_csd>(epochs, mode='multitaper', tmin=0.04, tmax=0.15,
                                fmin=15, fmax=30, fsum=False)
noise_csds = compute_epochs_csd
<http://martinos.org/mne/stable/generated/mne.time_frequency.compute_epochs_csd.html#mne.time_frequency.compute_epochs_csd>(epochs, mode='multitaper', tmin=-0.11,
                                 tmax=-0.001, fmin=15, fmax=30, fsum=False)

# Compute DICS spatial filter and estimate source power
stc = dics_source_power
<http://martinos.org/mne/stable/generated/mne.beamformer.dics_source_power.html#mne.beamformer.dics_source_power>(epochs.info, forward, noise_csds, data_csds)

Thanks a lot,
Best,
Andrea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20160524/132f033f/attachment.html

hi Andrea,

hum I think you're right.

If I follow what you're saying we should have a noise_csds per
frequency and per taper. Then compute the STCs for each taper and then
average. Is that what you have in mind?

Alex

Hi Alexandre,
yes, exactly.
In order to compute the single-trial power at the source level *at a
**single frequency, *the steps I normally use (in Fieldtrip) are:
1) Multitaper at the sensor level: compute complex-valued estimates of
spectral measures Xsensor(n, t, k), for each trial n, time t, and taper
k. The cross-spectral density matrices, however, is computed across
trials (average csd).
2) DICS: compute complex-value spectral measures at the source level,
Xsource(s, at, k) = A * Xsensor(n, t, k), where A(t) is the
real-valued spatial filter that transforms the data from the sensor to
source level, which is computed from the real part of the csd in (1).
The Xsource(s, at, k) is calculated for each source s, time t, and taper k
3) The single-trial power at each source location is computed by
multiplying the complex spectral estimates with their complex conjugate,
and averaged over tapers k. Psource(s, at) = < Xsource dot Xsource(s,
at, k)* > over k
4) Finally, I log-transform the power values to make the data
approximate Gaussian and lowpass filtered at 50 Hz to reduce noise.
Then, the single-trial mean power and SD in the baseline period (i.e.,
multiple estimates of noise) are computed for each source and trial, and
used to z-transform single-trial event-related power time courses.

I hope this is clear. If you want a detailed description you can read
the paragraph "Single-trial HGA at BAs" in the Methods in this paper:
http://www.jneurosci.org/content/35/37/12643.short

However, I am not familiar with MNE yet, I am slowly learning. So, I
don't know exactly how I could contribute to implement this. But I can
help ! Just let me know.

bye
Andrea

Le 25/05/2016 ? 13:46, Alexandre Gramfort a ?crit :

hi Andrea,

hum I think you're right.

If I follow what you're saying we should have a noise_csds per
frequency and per taper. Then compute the STCs for each taper and then
average. Is that what you have in mind?

Alex

Dear all,
I have a question regarding the use of multitapers and DICS.
As far as I know, the power spectral density using multitaper is the mean
power averaged across tapers (e.g., equation 6 in the paper from Mitra and
Pesaran http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1300074/pdf/9929474.pdf)
At the source level, using DICS for example, I assume that we should compute
the power for each taper and then average across tapers to get the mean
power estimate for each source.
While looking at the example on "Compute source power using DICS beamfomer"
(http://martinos.org/mne/stable/auto_examples/inverse/plot_dics_source_power.html#sphx-glr-auto-examples-inverse-plot-dics-source-power-py),
however it looks like that you compute the mean cross-spectral density
averaged across tapers (which has complex values), and then you use it to
compute the power at the source level.
Is that the case ?
If yes, would it be possible to modify it so to:
1) keep the csd for each taper
2) apply the spatial filter for each taper to the channel data to compute
the source power for each taper
3) average source power across tapers

Here are the lines of code I refer to in the Example

# Computing the data and noise cross-spectral density matrices
# The time-frequency window was chosen on the basis of spectrograms from
# example time_frequency/plot_time_frequency.py
# As fsum is False compute_epochs_csd returns a list of CrossSpectralDensity
# instances than can then be passed to dics_source_power
data_csds = compute_epochs_csd(epochs, mode='multitaper', tmin=0.04,
tmax=0.15,
                                fmin=15, fmax=30, fsum=False)
noise_csds = compute_epochs_csd(epochs, mode='multitaper', tmin=-0.11,
                                 tmax=-0.001, fmin=15, fmax=30, fsum=False)

# Compute DICS spatial filter and estimate source power
stc = dics_source_power(epochs.info, forward, noise_csds, data_csds)

Thanks a lot,
Best,
Andrea

_______________________________________________
Mne_analysis mailing list
Mne_analysis at nmr.mgh.harvard.edu
https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the
e-mail
contains patient information, please contact the Partners Compliance
HelpLine at
http://www.partners.org/complianceline . If the e-mail was sent to you in
error
but does not contain patient information, please contact the sender and
properly
dispose of the e-mail.

_______________________________________________
Mne_analysis mailing list
Mne_analysis at nmr.mgh.harvard.edu
https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20160525/83a47ff1/attachment.html

hi Andrea,

thanks for clarifying. I created an issue on github:

https://github.com/mne-tools/mne-python/issues/3249

hopefully someone will look into it soon.

Alex

Thanks !

Andrea

Le 26/05/2016 ? 03:14, Alexandre Gramfort a ?crit :