<div dir="ltr">Dear Researchers,<div><br></div><div><b>Question</b>: </div><div>What is "the proper" value of the cfg.normalizeparam for ft_prepare_leadfield function (<a href="https://www.fieldtriptoolbox.org/reference/ft_prepare_leadfield/" target="_blank">https://www.fieldtriptoolbox.org/reference/ft_prepare_leadfield/</a>) ?</div><div>OR in other words</div><div>Should the distribution of the leadfield norms across brain volume be uniform?</div><div><br></div><div><b>Question background:</b></div><div>I have noticed that the default value is 0.5, however in the beamforming routines from the Human Connectome Project the value is set to 1.0. </div><div>As <span style="color:rgb(0,0,0);white-space:pre-wrap">Jörn</span> Horshig pointed (<a href="https://mailman.science.ru.nl/pipermail/fieldtrip/2013-July/006759.html" target="_blank">https://mailman.science.ru.nl/pipermail/fieldtrip/2013-July/006759.html</a>), there is no correct way of normalizing. </div><div>I have plotted leadfield norm for different setting:<br></div><div><br></div><div><div><img src="cid:ii_km0pbzzh0" alt="normalizeparam_0_0_SVD.png" width="542" height="407" class="gmail-CToWUd gmail-a6T" tabindex="0" style="cursor: pointer; outline: 0px;"><br></div><div><div>Fig.1. cfg.normalizeparam = 0.0 (leadfield norm <b>increase</b> radially outwards from the center; 10^{-9} order of magnitude)</div><div></div></div><div><br></div><div><img src="cid:ii_km0pccch1" alt="normalizeparam_0_5_SVD.png" width="542" height="407" class="gmail-CToWUd gmail-a6T" tabindex="0" style="cursor: pointer; outline: 0px;"><br></div><div>Fig.2. cfg.normalizeparam = 0.5 (suggested default value; leadfield norms are more or less <b>uniformly distributed</b>)<br></div><div></div><div><br></div><div><img src="cid:ii_km0pcpwi2" alt="normalizeparam_1_0_SVD.png" width="542" height="407" class="gmail-CToWUd gmail-a6T" tabindex="0" style="cursor: pointer; outline: 0px;"></div></div><div>Fig.3. cfg.normalizeparam = 1.0 (the value used in the HCP beamforming; leadfield norm <b>decrease</b> radially outwards from the center; 10^{+8} order of magnitude)<br></div><div><b><br></b></div><div><b><br></b></div><div><b>Further details:</b></div><div>I am preparing a scalar leadfield (dipole orientations optimized using an SVD approach) for beamforming of the resting-state MEG data for further spectral analyses on the reconstructed sources level. </div><div>As the data come from the Human Connectome Project  database, I adapted leadfield computation from their beamforming script (<span style="background-color:transparent">hcp_bfblpenv.m from </span>megconnectome-3.0 pipeline):</div><div><br></div><div><font face="monospace">1.    allChansMEG         = ft_channelselection({'MEG'}, grad.label);<br>2.    cfg = [];<br>3.    cfg.grid            = grid; % Grid for individual's brain in MEG sensor space<br>4.    cfg.vol             = vol;<br>5.    cfg.grad            = grad;<br>6.    cfg.reducerank      = 2; % (default = 3 for EEG, 2 for MEG)<br>7.    cfg.normalize       = 'yes' ; % Normalise Leadfield: 'yes' for beamformer<br>8.    cfg.normalizeparam  = 1; % depth normalization parameter<br>9.    cfg.channel         = allChansMEG;<br>10.   lfg                 = ft_prepare_leadfield(cfg);<br>11.   lfg.label           = allChansMEG;<br>12.   % optimization of the leadfield orientation (SVD approach)   <br>13.   ratio  = 0.07;<br>14.   lambda = ratio * trace(Cy)/size(Cy,1);<br>15.   invCy  = pinv(Cy + lambda * eye(size(Cy)));<br>16.         <br>17.   for iDip = 1:nDip       <br>18.         if ~isempty(lfg.leadfield{iDip})<br>19.             lf = lfg.leadfield{iDip}(indB,:);            <br>20.             [u, s, v] = svd(real(pinv(lf' * invCy *lf)));<br>21.             eta = u(:,1);<br>22.             lf  = lf * eta;<br>23.             lfgSVD.leadfield{iDip} = lf;<br>24.         else<br>25.             lfgSVD.leadfield{iDip} = [];<br>26.         end<br>27.   end<br></font></div><div><br></div><div>Line 8. contains the cfg.normalizeparam setting for which I try to figure out the correct value.</div><div><br></div><div>Leadfield norms were computed this way:</div><div><font face="monospace">lfgNorm  = cellfun(@(x) norm(x, 'fro'), lfgSVD.leadfield);</font></div><div><br></div><div>Thank you very much for your hints and suggestions.<br></div><div><br></div><div>Kind regards,</div><div><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Michał Komorowski, MSc<div><font size="1">Nicolaus Copernicus University in Toruń</font></div><div><font size="1">Faculty of Physics, Astronomy and Informatics</font></div><div><span style="font-size:x-small">Department of Informatics</span></div></div></div></div></div></div></div></div></div></div></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:small"><br></div></div></div></div></div></div></div>