Efficient single-trial source reconstruction and ROI extraction in volume source space

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:

  1. Use mne.beamformer.apply_lcmv_epochs with return_generator=True to obtain a generator instead of full epoch time courses.

  2. Use mne.source_estimate.extract_label_time_course (also with return_generator=True) to get one time course per ROI from the Desikan–Killiany atlas.

  3. 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:

  1. 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?

  2. My main issue: extract_label_time_course for volume source space only allows mode="mean" and mode="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!