<div dir="ltr">Dear all,<br><br>I'm having a hard time understanding my beamforming analysis/results. I set up the analysis pipeline as described in the tutorial(s). First, I create my template grid as shown below:<br>
<br>----------------------<br>% Step 1: CREATE A TEMPLATE<br>template = ft_read_mri([TemplateDir 'T1.nii']);<br>template.coordsys = 'spm';<br>    <br>% Step 2: Segment the template brain and construct a volume conduction<br>
% model (i.e. head model): this is needed for the inside/outside detection of voxels<br>cfg = [];<br>template_seg = ft_volumesegment(cfg,template);<br><br>cfg = [];<br>cfg.method = 'singleshell';<br>template_vol = ft_prepare_headmodel(cfg,template_seg);<br>
template_vol = ft_convert_units(template_vol,'cm');<br>    <br>% Step 3: Construct the dipole grid in the template brain coordinates. <br>% The source units are in cm<br>cfg = [];<br>cfg.grid.xgrid  = -20:1:20;<br>
cfg.grid.ygrid  = -20:1:20;<br>cfg.grid.zgrid  = -10:1:20;<br>cfg.unit        = 'cm';<br>cfg.grid.tight  = 'yes';<br>cfg.inwardshift = -1.5; % negative inwardshift leads to an outwardshift of the brain's surface<br>
cfg.reducerank  = 'no';<br>cfg.vol         = template_vol;<br>template_grid = ft_prepare_sourcemodel(cfg);<br><br>% Step 4: Make a figure with the template head model and dipole grid<br>figure<br>hold on;<br>ft_plot_vol(template_vol,'facecolor','cortex','edgecolor','none'); alpha 0.5; camlight;<br>
ft_plot_mesh(template_grid.pos(template_grid.inside,:));<br>----------------------<br><br>Some of my colleagues also add another step where they convert the template grid units from 'cm' to 'mm' since MNI space is in 'mm'. Since this is not mentioned in the tutorial, I skipped that step.<br>
<br>In the next steps for creating the single subject's grid and headmodel I follow exactly the steps described in the tutorial to create single subject grids in MNI space. When I check the segmentation everything looks fine. <br>
<br>I then of course use this grid to calculate the sources, also as described in the tutorial. At the end I put the template grid position fields onto the subject's baseline normalized source (sourceDiff_tem).<br><br>
-----------------------------------------------------<br>for k = 1:length(cond)<br>        cfg               = []; <br>        eval(['cfg.frequency = freqAll.Cond_',num2str(cond(k)),'.freq;']);  <br>        cfg.method        = 'dics';<br>
        cfg.grid          = grid; % Here it gives .pos, .inside, .outside to the structure<br>        cfg.vol           = vol;<br>        cfg.dim           = grid.dim; <br>        eval(['cfg.grad = Cond_',num2str(cond(k)),'.hdr.grad;']);<br>
        cfg.lambda        = '5%'; <br>        cfg.reducerank    = 'no';<br>        cfg.projectnoise  = 'yes';<br>        cfg.realfilter    = 'yes';<br>    cfg.keepfilter    = 'yes'; % the output saves the computed inverse filter<br>
        <br>        eval(['sourceAll.Cond_',num2str(cond(k)),' = ft_sourceanalysis(cfg,freqAll.Cond_',num2str(cond(k)),');']) <br>        % use the pre-calculated common filter here<br>        eval(['cfg.grid.filter = sourceAll.Cond_',num2str(cond(k)),'.avg.filter;']);<br>
        eval(['sourcePre.Cond_',num2str(cond(k)),' = ft_sourceanalysis(cfg,freqPre.Cond_',num2str(cond(k)),');']) <br>        eval(['sourcePost.Cond_',num2str(cond(k)),' = ft_sourceanalysis(cfg,freqPost.Cond_',num2str(cond(k)),');'])<br>
        <br>        % compute the contrast of (post-pre)/pre (normalization of the power with the baseline activity)<br>        eval(['sourceDiff.Cond_',num2str(cond(k)),' = sourcePost.Cond_',num2str(cond(k)),';'])<br>
        eval(['sourceDiff.Cond_',num2str(cond(k)),'.avg.pow = (sourcePost.Cond_',num2str(cond(k)),'.avg.pow-sourcePre.Cond_',num2str(cond(k)),'.avg.pow) ./ sourcePre.Cond_',num2str(cond(k)),'.avg.pow;']);   <br>
        <br>        % put the template grid positions (x,y,z & pos) into the source structure<br>        eval(['sourceDiff_tem.Cond_',num2str(cond(k)),' = sourceDiff.Cond_',num2str(cond(k)),';']);<br>
        eval(['sourceDiff_tem.Cond_',num2str(cond(k)),'.pos = template_grid.pos;']);<br>        eval(['sourceDiff_tem.Cond_',num2str(cond(k)),'.xgrid = template_grid.xgrid;']);<br>        eval(['sourceDiff_tem.Cond_',num2str(cond(k)),'.ygrid = template_grid.ygrid;']);<br>
        eval(['sourceDiff_tem.Cond_',num2str(cond(k)),'.zgrid = template_grid.zgrid;']);    <br>    end<br>-----------------------------------------------------<br><br>If I then look at the data of this sourceDiff_tem, i.e. of condition 1, plotted on a surface file, it looks a bit strange to me (see Fig1). Also, I am not able to plot this data with cfg.method 'slice'. I get the error that the dimensions do not match.<br>
<br>pos: [5780x3 double]<br>dim: [17 20 17]<br>avg: [1x1 struct]<br>var: [1x1 struct]<br>dimord: 'voxel'<br>inside: [2985x1 double]<br>outside: [2795x1 double]<br>df: [5780x1 double]<br>cfg: [1x1 struct]<br><br>I then tried it the 'old' way and took the Diff_Source of each subject, interpolated this to the subject's anatomy and normalized it. With that I get a result that makes more sense to me (Fig2). However, also with this I am not able to plot it with cfg.method 'slice'. Actually, the slices I can only use for plotting the stats. <br>
<br>So I guess that something is wrong here and that I have an error somewhere in my script. However, I really can't find it. Our guess is that it has something to do with the units and the conversion(s) from one space to the other. I went through all the tutorials again and again but I can't see the mistake. I am stuck and therefore would really appreciate any help on that matter! <br>
<br>Thanks a lot!<br><br>Best,<br><br>Andreas<br clear="all"><br>-- <br><div></div><div>Andreas Sauer</div><div>Max Planck Institute for Brain Research</div><div>Deutschordenstraße 46</div><div>60528 Frankfurt am Main</div>
<div>Germany</div><div><br></div><div>T: +49 69 96769 278</div><div>F: +49 69 96769 327</div><div>Email: <a href="mailto:sauer.mpih@gmail.com" target="_blank">sauer.mpih@gmail.com</a></div><div><a href="http://www.brain.mpg.de" target="_blank">www.brain.mpg.de</a></div>

</div>