Query about beamforming procedure

Hello everyone,

I am new to Brainstorm and might not be familiar with all its functionalities. I have some questions regarding my research pipeline.
I want to analyze my preprocessed data in two frequency ranges by looping through each and follow the same procedure in each:

  • Filter in each freq range
  • Create events and epochs
  • Compute noise and data covariance
  • Compute beamformer and do some post-processing
  1. I am not sure how to create a for loop in the pipeline itself. Though scripting is an option, I am not sure how to carry out the entire procedure in a loop and if it is supported in Brainstorm.
  2. I want to compute beamformer on the epoched data but doing which gives me separate source reconstructed files for all the epochs. I cannot use the single source file because it has only the inversion kernel.
  3. Is there a way to compute a scalar LCMV beamformer and save the spatial filters later? From what I have seen is Brainstorm has the option of beamformer on unconstrained sources (vector beamformer) only. I would do some transformation on the spatial filters and would like to save them. Also, is there an option of creating the spatial filters but not applying them right away?

Thanks in advance!

Hi @SrijitaD,

If you are completely new to Brainstorm, we suggest you start with the Get started tutorials:
https://neuroimage.usc.edu/brainstorm/Tutorials

Regarding your questions:

Creating loops is not supported yet in the Pipeline editor GUI. However, it can be done easily with a Matlab script. Check the info in these links:

Hello, I'm not sure I understand what you're trying to do, but it sounds like you want to compute the "full results" which will give the source time series for each epoch that you selected. If you instead select "shared kernel" that will save the "beamformer weights" instead. "kernel links" appear in the tree for each epoch but those are not computed until you use them somehow (e.g. for display).

Brainstorm does not currently offer a scalar beamformer. However, you can select constrained sources (normal to cortex surface) and it returns a single orientation by combining the 3 orientations of the vector beamformer accordingly. But it's not the same as the scalar beamformer that finds an "optimal" source orientation at each location.

That's the "shared kernel" option. The weights/filters are saved in the ImagingKernel field.

Cheers,
Marc