Error with dSPM calculation

Hi all,

I am currently trying to calculate the dSPM model on my dataset. I'm using Compute Source [2018], with minimum norm imaging, dSPM and constrained dipole orientation. However, the map I get doesn't seem to work because all voxels are at maximum thresholds. See attached screenshot. I've calculated the noise covariance matrix on my baseline interval. sLORETA seems to work well, but it's a bit noisy.

Thanks for your help!
Maxime

dSPM estimation is not supposed to have units, in fact should show No units, and the values are often smaller than 5.

Can you send an screenshot of the parameters used in the Compute Sources [2018] GUI?
Do not forget also the parameters that appear by clicking on [Show details]

Hi Raymundo,

Thank you for your reply and sorry for the delay. Please find attached a screenshot of the settings I am using to compute the dSPM.

Best,
Maxime

Parameters ar the default and look fine.

  • How did you compute the noise covariance matrix?

These are the scripts I used to calculate the noise and data covariance matrices.

% Process: Noise covariance matrice
sFilesDataNoise = bst_process('CallProcess', 'process_noisecov', sFilesEpochs, [], ...
'baseline', [-0.5, 0], ...
'datatimewindow', [0, 2], ...
'sensortypes', 'MEG', ...
'target', 1, ... % Noise covariance (covariance over baseline time window)
'dcoffset', 1, ... % Block by block, to avoid effects of slow shifts in data
'identity', 0, ...
'copycond', 0, ...
'copysubj', 0, ...
'copymatch', 0, ...
'replacefile', 1); % Replace
% Process: Data covariance matrice
sFilesNoise = bst_process('CallProcess', 'process_noisecov', sFilesEpochs, [], ...
'baseline', [-0.5, 0], ...
'datatimewindow', [0, 2], ...
'sensortypes', 'MEG', ...
'target', 2, ... % Data covariance (covariance over data time window)
'dcoffset', 1, ... % Block by block, to avoid effects of slow shifts in data
'identity', 0, ...
'copycond', 0, ...
'copysubj', 0, ...
'copymatch', 0, ...
'replacefile', 1);

Please give a try to this version of your code:

% Process: Noise covariance matrix
% Baseline should be a period with no event-related activity
sFilesDataNoise = bst_process('CallProcess', 'process_noisecov', sFilesEpochs, [], ...
'baseline', [-0.5, 0], ... % Only use pre-stimulus interval for noise estimation
'sensortypes', 'MEG', ...
'target', 1, ... % Noise covariance (covariance over baseline time window)
'dcoffset', 1, ... % Block by block, to avoid effects of slow shifts in data
'identity', 0, ...
'copycond', 0, ...
'copysubj', 0, ...
'copymatch', 0, ...
'replacefile', 1); % Replace

% Process: Data covariance matrix
% Data time window should be the entire epoch if you are looking for event-related changes
sFilesDataCov = bst_process('CallProcess', 'process_noisecov', sFilesEpochs, [], ...
'baseline', 'no', ... % No baseline for data covariance, as we want the entire epoch
'datatimewindow', [0, 2], ... % Time window of the event-related activity
'sensortypes', 'MEG', ...
'target', 2, ... % Data covariance (covariance over data time window)
'dcoffset', 1, ... % Block by block, to avoid effects of slow shifts in data
'identity', 0, ...
'copycond', 0, ...
'copysubj', 0, ...
'copymatch', 0, ...
'replacefile', 1); % Replace