Can I do source estimation for a single spatial map (not time series)

Hi,

I'm trying to source localize a set of spatial filtering weights (which are obtained by methods similar to common spatial patterns). Therefore, the data are not time series. Is there any method to source localize such kind of data?

I found it was not allowed to "import MEG/EEG" with only a single time point. If I save a set of spatial filtering weights in the format of a time series, the results of "compute sources" seemed to depend on the temporal context, but in this case, the set of spatial filtering weights are actually independent from each other. So is it possible to do source localization for these spatial filtering weights?

Thanks in advance for your help!
Xinke

You can apply the ImagingKernel computed in the source estimation process to any number of time samples, it is computed independently from the recordings.
https://neuroimage.usc.edu/brainstorm/Tutorials/SourceEstimation#Computing_sources_for_single_trials

However, you can only use it to localize sources for the modality the forward model was computed for.
EEG forward model requires EEG data in input (event one single time point).
MEG forward model requires MEG data in input (event one single time point).

I guess your maps of weights are not exactly looking like EEG or MEG topographies, and therefore I'm not sure what you could expect from this process.

Hi Francois, Thank you for your reply!

But when I import a data file with only one time point, an error comes out:
image
The first line reads: "Line 191: index exceeds the number of array elements (1)."

This error won't occur if the data have two time points. The data is in fieldtrip format.

Could you figure out the problem? Thank you a lot!

Brainstorm cannot handle recordings with only one time point.
I modified a bit the reader so that if there is only one time sample found, it replicates it twice instead of crashing: https://github.com/brainstorm-tools/brainstorm3/commit/384674266ef2a48689deaca6fd7349568b238c19

Please update Brainstorm and try again.

1 Like

Thanks a lot!

Is it the same as that I replicate the data point twice as the input?

It should be. It does the following:

DataMat(i).Time = DataMat(i).Time + [0, 0.001];
DataMat(i).F = [DataMat(i).F, DataMat(i).F];
1 Like

Thanks!