Unconstrained Sources with dSPM: within-subjects group comparison

Greetings,

I was investigating within-subjects sensor-level ERPs in response to non-invasive vagus nerve stimulation, but I'd like to investigate the source of the differences. Since I am using an MNI template, I opted for unconstrained sources, partly because I'm interested in deeper sources like the insula, but also because I lack individual MRI scans.

I have read the documentation, and settled on dSPM for examining source-level differences and have tried following guidelines for testing |A| - |B| = 0. Are the following steps I took appropriate?

  1. Compute sources (2018) on the average ERP: Minimum norm with dSPM, unconstrained, with default options on depth weighting, noise cov. regularization, and SNR.
  2. Flatten the unscaled dSPM outputs for each subj/condition so I have Ai and Bi.
  3. To test |A| - |B| = 0, I used Fieldtrip permutation based testing. Got nice results in regions that are consistent with my expectations, but....

For (3) I was pondering the interpretation of "This test does not consider the sign difference within a subject, and therefore cannot detect correctly when A and B have opposite signs. Works well and indicates which condition has higher values when A and B have the same sign within a subject". It seemed to me that if you use dSPM to test |A| - |B| = 0, you must necessarily follow the form: norm(z-score(A)) - norm(zscore(B)).

If I have computed norm(z-score(A)) - norm(zscore(B)) that gives you "ambiguous amplitude, but meaningful sign" as described in the Differences tutorial. This seems incompatible with interpretability of the test |A| - |B| = 0 where sign doesn't matter. Can this be reconciled?

Some other questions:

  1. From computing dSPM to flattening, did I miss a step, i.e. did I not actually norm the orientations for Ai and Bi?
    Otherwise said, the only time I can find a way to apply the norm of the three orientations is if I try to compute the subject level difference (i.e. yielding me only one value per subject).
  2. I am better off doing a "where and when" analysis? If so, do I get the subject difference on the unscaled dSPM output, (check the norm box), then flatten the difference?

If I am unclear at all, please let me know and I will attempt to rephrase my confusion.

Thank you, also for answering other recent inquires!

norm(z-score(A)) - norm(zscore(B)) that gives you "ambiguous amplitude, but meaningful sign"

This means: meaningful sign of the difference.

This seems incompatible with interpretability of the test |A| - |B| = 0 where sign doesn't matter.

The sign of A and the sign of B do not matter. The sign of the difference |A| - |B| does.
No incompatibilities between the two statements.

From computing dSPM to flattening, did I miss a step, i.e. did I not actually norm the orientations for Ai and Bi?

Flattening = transforming at each point 3 values (x,y,z) into one = computing the norm sqrt(x^2+y^2+z^2) = ignoring the concept of "orientation" of the source to keep only its "activation".

Otherwise said, the only time I can find a way to apply the norm of the three orientations is if I try to compute the subject level difference (i.e. yielding me only one value per subject).

You can "flatten" the source maps with unconstrained source orientations at anytime with the dedicated process.

  1. I am better off doing a "where and when" analysis? If so, do I get the subject difference on the unscaled dSPM output, (check the norm box), then flatten the difference?

If I am unclear at all, please let me know and I will attempt to rephrase my confusion.

This last question is indeed a bit unclear to me, please rephrase your confusion :slight_smile:

Hello Francois,

Thanks for the quick responses. So, if I test |A| - |B| = 0, and have significant clusters with positive t-values this only reflects the situation where A had greater amplitude, but only if A and B had the same sign (whether positive or negative)? So then if there are moments where A = -3 and B = +3, etc., this will be undetectable/cancelled out.
Is being able to detect only situations where A and B are different but the same sign an adequate representation/reflection of what is happening in the brain?

Thanks also for the clarification on flattening. With the different terminology I got it in my head that that was something distinct from taking the norm.

The last question concerns Power(A-B) = 0 with the Chi-sq statistic for unconstrained sources. Since I last wrote, I could get this working for current density maps but not for dSPM.

For dSPM, I took the difference of the unscaled dSPM maps to obtain Di = Ai - Bi (I unchecked the box that gives you the option to norm at this stage), then normed/flattened Di in the next step. When I pop in the data to run the Chi-sq test, it apparently runs, but there is no result.

This is the message from the MATLAB console: BST> All values are null. Please check your input file.

Each Di map looks fine, however.

Thanks again!

Thanks for the quick responses. So, if I test |A| - |B| = 0, and have significant clusters with positive t-values this only reflects the situation where A had greater amplitude, but only if A and B had the same sign (whether positive or negative)?

Not exactly, it can be with different signs.
|-4| - |3| > 0

So then if there are moments where A = -3 and B = +3, etc., this will be undetectable/cancelled out.

This is exactly what is explained in the Difference tutorial, indeed.

Is being able to detect only situations where A and B are different but the same sign an adequate representation/reflection of what is happening in the brain?

It depends on the hypotheses of your experiment.
For example: If you know from the literature that a well-known ERP wave is present in both experimental conditions, it is valid to question whether a given parameter of the experiment results in higher or lower peak amplitude.
If you have no idea what is going in the brain, then no, it does not make sense. But then, maybe you should not be doing this experiment at all... :slight_smile:

For dSPM, I took the difference of the unscaled dSPM maps to obtain Di = Ai - Bi (I unchecked the box that gives you the option to norm at this stage), then normed/flattened Di in the next step. When I pop in the data to run the Chi-sq test, it apparently runs, but there is no result.

You result is correct, but the test is not adapted to detect the difference then.
Testing power values against zero is complicated...

@pantazis Any suggestion?