Hello everyone,
I’m currently analyzing MEG data and aiming to obtain single-trial source estimates using an LCMV beamformer in a volume source space, followed by time–frequency analysis and trial-level statistical tests (e.g., correlations with behavioral variables).
For each participant, the data structure is approximately:
~800 trials × 40 frequencies × 250 time points × ~10,000 voxels (5 mm grid).
As you can imagine, this is too large to handle directly, so I’ve tried to minimize computation as follows:
-
Use
mne.beamformer.apply_lcmv_epochswithreturn_generator=Trueto obtain a generator instead of full epoch time courses. -
Use
mne.source_estimate.extract_label_time_course(also withreturn_generator=True) to get one time course per ROI from the Desikan–Killiany atlas. -
Compute the source time course and TFR for each epoch one at a time, and separately for different frequency bands.
This workflow is manageable in terms of memory and runtime.
My questions are:
-
Do you think this is a reasonable and efficient approach? Or is there a faster/better way to handle single-trial LCMV in volume space?
-
My main issue:
extract_label_time_coursefor volume source space only allowsmode="mean"andmode="max". Why are other summary modes (available for surface space) not implemented for volume? Is there a theoretical reason for this limitation, or is it mainly a technical one?
Thanks a lot in advance for any insight or suggestions!