<div dir="ltr">Hi Matt,<div><br></div><div>Thanks so much for your reply here!</div><div><br></div><div>I believe I've correctly implemented your comments: I computed a common filter by source analyzing the combined (read: averaged) data/covariance matrix. In a second step, I used this filter to source localize each condition separately. I subsequently contrasted the two conditions, but I'm seeing that sourceU.avg.pow > sourceA.avg.pow at about 99% of the voxels. I attached an image of the ft_sourceplot to this email. (I don't know why the NaNs aren't masking appropriately, but I can figure that out on my own time).</div><div><br></div><div>I also attempted your quick and dirty solution to see if I could reproduce that, and I'm seeing the same thing as above (sourceU.avg.pow > sourceA.avg.<span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" id="gmail-m_-450562828236825630inbox-inbox-598" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat">pow in 99% of voxels), which is exactly the opposite of what you said you came up with. (The ft_sourceplot for this scenario looks identical to the first, which is unsurprising--in both cases, we used the average covariance matrix to construct the filters, so they ought to be identical). I must be doing something wrong here, but alas, I can't seem to put the pieces together.</span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat"><br></span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat">Any help/guidance you could provide would be deeply appreciated. I've attached the updated script to this email (and printed it below for posterity), and as before, the data can be found <a href="https://www.dropbox.com/s/8w99ejwrzmwc5pt/Source_fitting_dump.mat?dl=0" target="_blank">here</a>.</span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat"><br></span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat">Again, thank you for taking the time to respond.</span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat"> <br></span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat">Best,</span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat"><br></span></div><div><span class="gmail-m_-450562828236825630inbox-inbox-gr_ gmail-m_-450562828236825630inbox-inbox-gr_598 gmail-m_-450562828236825630inbox-inbox-gr-alert gmail-m_-450562828236825630inbox-inbox-gr_spell gmail-m_-450562828236825630inbox-inbox-gr_run_anim gmail-m_-450562828236825630inbox-inbox-ContextualSpelling" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat">Tommy</span></div><div><br></div><div>--- CODE ---</div><div><br></div><div><div>%% Source fitting protocol</div><div>% Fieldtrip path (to find template MRI)</div><div>ftdir = 'your\path\here\fieldtrip-20160309';</div><div><br></div><div>% Average both conditions to generate common filter</div><div>M = ft_timelockgrandaverage(struct(),A,U);</div><div>M.cov = mean(cat(3,A.cov,U.cov),3);</div><div><br></div><div>% Equate covariance matrices for now to rule out any differences in the</div><div>% source fit due to differences in covariances</div><div>% A.cov = U.cov;</div><div><br></div><div>%%% Do the LCMV sourcefitting</div><div>cfg                     = [];</div><div>cfg.method              = 'lcmv';</div><div>cfg.grid                = leadfield;</div><div>cfg.vol                 = vol;</div><div>cfg.elec                = elec;</div><div>cfg.lcmv.lambda         = '15%';</div><div>cfg.lcmv.keepfilter     = 'yes';</div><div>cfg.lcmv.fixedori       = 'yes';</div><div>cfg.lcmv.projectnoise   = 'yes';</div><div><br></div><div>% Generate common filter</div><div>sourceM = ft_sourceanalysis(cfg,M);</div><div><br></div><div>% Add the common filter to the cfg</div><div>cfg.grid.filter = sourceM.avg.filter;</div><div><br></div><div>% Source fit the originals</div><div>sourceA = ft_sourceanalysis(cfg,A);</div><div>sourceU = ft_sourceanalysis(cfg,U);</div><div><br></div><div>%%% Matt's quick and dirty version</div><div>% Replace A's cov matrix with an average of A.cov and U.cov</div><div>tmp = A.cov;</div><div>A.cov = mean(cat(3,tmp,U.cov),3);</div><div><br></div><div>cfg                     = [];</div><div>cfg.method              = 'lcmv';</div><div>cfg.grid                = leadfield;</div><div>cfg.vol                 = vol;</div><div>cfg.elec                = elec;</div><div>cfg.lcmv.lambda         = '15%';</div><div>cfg.lcmv.keepfilter     = 'yes';</div><div>cfg.lcmv.fixedori       = 'yes';</div><div>cfg.lcmv.projectnoise   = 'yes';</div><div><br></div><div>% Generate common test filter</div><div>sourceA_common_test = ft_sourceanalysis(cfg,A);</div><div><br></div><div>% Add common filter to configuration</div><div>cfg.grid.filter = sourceA_common_test.avg.filter;</div><div><br></div><div>% Replace original covariance matrix</div><div>A.cov = tmp;</div><div><br></div><div>% Now fit both A and U with the common test filter</div><div>sourceA_test = ft_sourceanalysis(cfg,A);</div><div>sourceU_test = ft_sourceanalysis(cfg,U);</div><div><br></div><div><br></div><div>%%% Attempt a contrast</div><div>% Create the contrasts</div><div>sourceContrast = sourceA;</div><div>sourceContrast.avg.pow = sourceA.avg.pow - sourceU.avg.pow;</div><div>sourceContrast_test = sourceA_test;</div><div>sourceContrast_test.avg.pow = sourceA_test.avg.pow - sourceU_test.avg.pow;</div><div><br></div><div>% Gauge what percent of the contrast is negative (i.e. sourceU power ></div><div>% sourceA power)</div><div>perc_neg = sum(sourceContrast.avg.pow(sourceContrast.inside(:))<0)./numel(sourceContrast.avg.pow(sourceContrast.inside(:)));</div><div>perc_neg_test = sum(sourceContrast_test.avg.pow(sourceContrast_test.inside(:))<0)./numel(sourceContrast_test.avg.pow(sourceContrast_test.inside(:)));</div><div><br></div><div>%%% Visualize the output</div><div>% Load template MRI</div><div>mri = ft_read_mri([ftdir '\template\anatomy\single_subj_T1.nii']);</div><div><br></div><div>% Interpolate source onto MRI</div><div>cfg            = [];</div><div>cfg.parameter  = 'avg.pow';</div><div>sourceContrast_interp  = ft_sourceinterpolate(cfg, sourceContrast, mri);</div><div>sourceContrast_test_interp = ft_sourceinterpolate(cfg, sourceContrast_test, mri);</div><div><br></div><div>% Visualize with ft_sourceplot</div><div>cfg = [];</div><div>cfg.method        = 'ortho';</div><div>cfg.funparameter  = 'avg.pow';</div><div>cfg.funcolorlim   = [-100 5];</div><div>cfg.maskparameter = cfg.funparameter; </div><div>ft_sourceplot(cfg, sourceContrast_interp);</div><div><br></div><div>cfg = [];</div><div>cfg.method        = 'ortho';</div><div>cfg.funparameter  = 'avg.pow';</div><div>cfg.funcolorlim   = [-100 5];</div><div>cfg.maskparameter = cfg.funparameter; </div><div>ft_sourceplot(cfg, sourceContrast_test_interp);</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jan 24, 2017 at 4:12 PM Matt Craddock <<a href="mailto:m.p.craddock@leeds.ac.uk" target="_blank">m.p.craddock@leeds.ac.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Tommy,<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
 > % Equate covariance matrices for now to rule out any differences in the<br class="gmail-m_-450562828236825630gmail_msg">
 > % source fit due to differences in covariances<br class="gmail-m_-450562828236825630gmail_msg">
 > U.cov = A.cov;<br class="gmail-m_-450562828236825630gmail_msg">
 ><br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
This is the problem. ft_sourceanalysis is using the covariance matrix<br class="gmail-m_-450562828236825630gmail_msg">
and leadfield to construct a spatial filter for each grid point; if the<br class="gmail-m_-450562828236825630gmail_msg">
covariance matrices are equivalent, the source solutions will be too.<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
What you need to do is something like run the source analysis on data<br class="gmail-m_-450562828236825630gmail_msg">
averaged over both conditions first, then take the filter from the<br class="gmail-m_-450562828236825630gmail_msg">
combined analysis and run source analysis on each condition seperately.<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
so say sourceAll is the result of<br class="gmail-m_-450562828236825630gmail_msg">
ft_sourceanalysis(cfg,<wbr>bothConditions)<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
You'd do<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
cfg.grid.filter = sourceAll.avg.filter<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
then<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
ft_sourceanalysis(cfg,A)<br class="gmail-m_-450562828236825630gmail_msg">
ft_sourceanalysis(cfg,U)<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
As a quick and dirty version I just replaced the covariance matrix in A<br class="gmail-m_-450562828236825630gmail_msg">
with the average of the two A.cov and U.cov, ran sourceanalysis on that,<br class="gmail-m_-450562828236825630gmail_msg">
then put A.cov back to its original value and ran sourceanalysis on each<br class="gmail-m_-450562828236825630gmail_msg">
condition seperately. Spoiler: the unattended condition has lower<br class="gmail-m_-450562828236825630gmail_msg">
activity everywhere :)<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
There's some weirdness around the boundaries of the headmodel, not sure<br class="gmail-m_-450562828236825630gmail_msg">
what's causing that exactly. Maybe try using a different source grid<br class="gmail-m_-450562828236825630gmail_msg">
instead of the standard one...<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
Cheers,<br class="gmail-m_-450562828236825630gmail_msg">
Matt<br class="gmail-m_-450562828236825630gmail_msg">
<br class="gmail-m_-450562828236825630gmail_msg">
On 24/01/2017 16:36, Tommy Wilson wrote:<br class="gmail-m_-450562828236825630gmail_msg">
> Hi Julian,<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> Thank you so much for your reply.<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> I've pasted the commented code below (I apologize for the code dump).<br class="gmail-m_-450562828236825630gmail_msg">
> I've also attached an m-file to this email if you'd prefer to download<br class="gmail-m_-450562828236825630gmail_msg">
> it that way. If relevant, you can download the leadfield, headmodel and<br class="gmail-m_-450562828236825630gmail_msg">
> electrode locations here<br class="gmail-m_-450562828236825630gmail_msg">
> <<a href="https://www.dropbox.com/s/8w99ejwrzmwc5pt/Source_fitting_dump.mat?dl=0" rel="noreferrer" class="gmail-m_-450562828236825630gmail_msg" target="_blank">https://www.dropbox.com/s/<wbr>8w99ejwrzmwc5pt/Source_<wbr>fitting_dump.mat?dl=0</a>><br class="gmail-m_-450562828236825630gmail_msg">
> (that file also includes the raw data stored in variables A and U that I<br class="gmail-m_-450562828236825630gmail_msg">
> am attempting to source-fit).<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> As per your questions: I do indeed have a contrast between attended (A)<br class="gmail-m_-450562828236825630gmail_msg">
> and unattended (U) conditions. I've written the code below to source-fit<br class="gmail-m_-450562828236825630gmail_msg">
> both conditions and create the contrast. However, despite that the raw<br class="gmail-m_-450562828236825630gmail_msg">
> topographies (see attached images) are different, the source-fits are<br class="gmail-m_-450562828236825630gmail_msg">
> the same (...?). As a consequence, the contrast has no non-zero values.<br class="gmail-m_-450562828236825630gmail_msg">
> If instead, I normalize to noise (i.e. generate the Neural Activity<br class="gmail-m_-450562828236825630gmail_msg">
> Index<br class="gmail-m_-450562828236825630gmail_msg">
> <<a href="http://www.fieldtriptoolbox.org/tutorial/beamformer#neural_activity_index" rel="noreferrer" class="gmail-m_-450562828236825630gmail_msg" target="_blank">http://www.fieldtriptoolbox.<wbr>org/tutorial/beamformer#<wbr>neural_activity_index</a>>)<br class="gmail-m_-450562828236825630gmail_msg">
> and look at a contrast there, we again see no non-zero values.<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> Outside of the contrast, I've implemented your other suggestions. I've<br class="gmail-m_-450562828236825630gmail_msg">
> rescaled the original ft_sourceplot such that you can see the extent of<br class="gmail-m_-450562828236825630gmail_msg">
> it (see attached image). To my mind, it shouldn't look like this, but<br class="gmail-m_-450562828236825630gmail_msg">
> having never done this before, I'm not quite sure what to expect. I've<br class="gmail-m_-450562828236825630gmail_msg">
> also included an image of the ft_sourceplot for the Neural Activity<br class="gmail-m_-450562828236825630gmail_msg">
> Index of sourceA which also appears to me to be artefactual. More to the<br class="gmail-m_-450562828236825630gmail_msg">
> point, I'd expect that since the topographies for A and U are different,<br class="gmail-m_-450562828236825630gmail_msg">
> the NAIs should be different, which is not the case.<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> I'm sort of at a loss about how to proceed here. So, thank you very much<br class="gmail-m_-450562828236825630gmail_msg">
> for taking the time to look into this. If I can supply anything else to<br class="gmail-m_-450562828236825630gmail_msg">
> help, please don't hesitate to let me know.<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> Best,<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> Tommy Wilson<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> --- CODE ---<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> %% Source fitting protocol<br class="gmail-m_-450562828236825630gmail_msg">
> % Fieldtrip path (to find template MRI)<br class="gmail-m_-450562828236825630gmail_msg">
> ftdir = 'your\path\here\';<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> % Equate covariance matrices for now to rule out any differences in the<br class="gmail-m_-450562828236825630gmail_msg">
> % source fit due to differences in covariances<br class="gmail-m_-450562828236825630gmail_msg">
> U.cov = A.cov;<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> %%% Do the LCMV sourcefitting<br class="gmail-m_-450562828236825630gmail_msg">
> cfg                     = [];<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.method              = 'lcmv';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.grid                = leadfield;<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.vol                 = vol;<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.elec                = elec;<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.lcmv.lambda         = '15%';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.lcmv.keepfilter     = 'yes';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.lcmv.fixedori       = 'yes';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.lcmv.projectnoise   = 'yes';<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> sourceA = ft_sourceanalysis(cfg,A);<br class="gmail-m_-450562828236825630gmail_msg">
> sourceU = ft_sourceanalysis(cfg,U);<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> %%% Attempt a contrast<br class="gmail-m_-450562828236825630gmail_msg">
> % Create the contrast<br class="gmail-m_-450562828236825630gmail_msg">
> sourceContrast = sourceA;<br class="gmail-m_-450562828236825630gmail_msg">
> sourceContrast.avg.pow = sourceA.avg.pow - sourceU.avg.pow;<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> % Check to see if any non-zero values exist in the contrast<br class="gmail-m_-450562828236825630gmail_msg">
> if all(sourceContrast.avg.pow(<wbr>sourceContrast.inside(:)) == 0)<br class="gmail-m_-450562828236825630gmail_msg">
>     warning('No non-zero contast values exist. ft_sourceplot will give<br class="gmail-m_-450562828236825630gmail_msg">
> an error. Do not plot.');<br class="gmail-m_-450562828236825630gmail_msg">
> end<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> %%% Instead of a contrast, look at the Neural Activity Index (NAI)<br class="gmail-m_-450562828236825630gmail_msg">
> % See:<br class="gmail-m_-450562828236825630gmail_msg">
> <a href="http://www.fieldtriptoolbox.org/tutorial/beamformer#neural_activity_index" rel="noreferrer" class="gmail-m_-450562828236825630gmail_msg" target="_blank">http://www.fieldtriptoolbox.<wbr>org/tutorial/beamformer#<wbr>neural_activity_index</a><br class="gmail-m_-450562828236825630gmail_msg">
> sourceA_NAI = sourceA;<br class="gmail-m_-450562828236825630gmail_msg">
> sourceA_NAI.avg.pow = sourceA.avg.pow./sourceA.avg.<wbr>noise;<br class="gmail-m_-450562828236825630gmail_msg">
> sourceU_NAI = sourceU;<br class="gmail-m_-450562828236825630gmail_msg">
> sourceU_NAI.avg.pow = sourceU.avg.pow./sourceU.avg.<wbr>noise;<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> if all(sourceA_NAI.avg.pow(<wbr>sourceA_NAI.inside(:)) -<br class="gmail-m_-450562828236825630gmail_msg">
> sourceU_NAI.avg.pow(sourceU_<wbr>NAI.inside(:))==0)<br class="gmail-m_-450562828236825630gmail_msg">
>     warning('No non-zero contast values exist. ft_sourceplot will give<br class="gmail-m_-450562828236825630gmail_msg">
> an error. Do not plot.')<br class="gmail-m_-450562828236825630gmail_msg">
> end<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> %%% Visualize the output<br class="gmail-m_-450562828236825630gmail_msg">
> % Load template MRI<br class="gmail-m_-450562828236825630gmail_msg">
> mri = ft_read_mri([ftdir<br class="gmail-m_-450562828236825630gmail_msg">
> '\fieldtrip-20160309\template\<wbr>anatomy\single_subj_T1.nii']);<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> % Interpolate source onto MRI<br class="gmail-m_-450562828236825630gmail_msg">
> cfg            = [];<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.parameter  = 'avg.pow';<br class="gmail-m_-450562828236825630gmail_msg">
> sourceA_interp  = ft_sourceinterpolate(cfg, sourceA, mri);<br class="gmail-m_-450562828236825630gmail_msg">
> sourceA_NAI_interp  = ft_sourceinterpolate(cfg, sourceA_NAI, mri);<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> % Visualize with ft_sourceplot<br class="gmail-m_-450562828236825630gmail_msg">
> cfg = [];<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.method        = 'ortho';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.funparameter  = 'avg.pow';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.funcolorlim   = [0 3e3];<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.maskparameter = cfg.funparameter;<br class="gmail-m_-450562828236825630gmail_msg">
> ft_sourceplot(cfg, sourceA_interp);<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> cfg = [];<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.method        = 'ortho';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.funparameter  = 'avg.pow';<br class="gmail-m_-450562828236825630gmail_msg">
> cfg.maskparameter = cfg.funparameter;<br class="gmail-m_-450562828236825630gmail_msg">
> ft_sourceplot(cfg, sourceA_NAI_interp);<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> On Tue, Jan 24, 2017 at 3:42 AM Julian Keil <<a href="mailto:julian.keil@gmail.com" class="gmail-m_-450562828236825630gmail_msg" target="_blank">julian.keil@gmail.com</a><br class="gmail-m_-450562828236825630gmail_msg">
> <mailto:<a href="mailto:julian.keil@gmail.com" class="gmail-m_-450562828236825630gmail_msg" target="_blank">julian.keil@gmail.com</a>><wbr>> wrote:<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
>     Hi Tommy,<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
>     did you do some sort of contrast (e.g. with the noise estimate or a<br class="gmail-m_-450562828236825630gmail_msg">
>     baseline) after your source analysis?<br class="gmail-m_-450562828236825630gmail_msg">
>     Right now, it's not clear what you are looking at. Could you paste<br class="gmail-m_-450562828236825630gmail_msg">
>     your code not only of the sourceanalysis, but the rest after which<br class="gmail-m_-450562828236825630gmail_msg">
>     got you to the plot?<br class="gmail-m_-450562828236825630gmail_msg">
>     It might also be the case that the automatic scaling in the source<br class="gmail-m_-450562828236825630gmail_msg">
>     plot throws you off - maybe try setting it by hand.<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
>     Good luck,<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
>     Julian<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
>     Am 23.01.2017 um 22:00 schrieb Tommy Wilson:<br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
>     > Hi all,<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > I'm working with EEG data and I'm trying to get some basic source<br class="gmail-m_-450562828236825630gmail_msg">
>     fitting up and running. Unfortunately, I don't have individual<br class="gmail-m_-450562828236825630gmail_msg">
>     subject MRIs, so I'm using the templates provided by fieldtrip. I've<br class="gmail-m_-450562828236825630gmail_msg">
>     co-registered my 160 Biosemi electrodes to the standard_bem template<br class="gmail-m_-450562828236825630gmail_msg">
>     (see attached picture). For the sourcemodel, I'm using the<br class="gmail-m_-450562828236825630gmail_msg">
>     standard_sourcemodel3d5mm grid (picture attached, overlaid on<br class="gmail-m_-450562828236825630gmail_msg">
>     standard_bem). I can prepare the leadfield from there with<br class="gmail-m_-450562828236825630gmail_msg">
>     ft_prepare_leadfield (cfg.normalize = 'yes'), as per the LCMV tutorial.<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > To test this configuration, I've selected a time window in my data<br class="gmail-m_-450562828236825630gmail_msg">
>     and averaged across it (the covariance matrix was also calculated);<br class="gmail-m_-450562828236825630gmail_msg">
>     the topography of this averaged data is attached. I then attempted a<br class="gmail-m_-450562828236825630gmail_msg">
>     source fit with the LCMV beamformer:<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg                     = [];<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.method              = 'lcmv';<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.grid                = leadfield;<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.vol                 = vol;<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.elec                = elec;<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.lcmv.lambda         = '15%';<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.lcmv.keepfilter     = 'yes';<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.lcmv.fixedori       = 'yes';<br class="gmail-m_-450562828236825630gmail_msg">
>     > cfg.lcmv.projectnoise   = 'yes';<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > sourceA = ft_sourceanalysis(cfg,A);<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > After interpolating to the single_subj_T1.nii provided with<br class="gmail-m_-450562828236825630gmail_msg">
>     ft_sourceinterpolate and plotting with ft_sourceplot, I am given a<br class="gmail-m_-450562828236825630gmail_msg">
>     sourceplot that is highly focal in nature (see attached picture).<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > I'd find it very surprising if this topography were generated<br class="gmail-m_-450562828236825630gmail_msg">
>     primarily by a source that isn't even inside the brain (as the<br class="gmail-m_-450562828236825630gmail_msg">
>     sourceplot indicates). So, I'm not sure exactly where/how I'm going<br class="gmail-m_-450562828236825630gmail_msg">
>     wrong with this one, nor am I sure how to trouble shoot it. Any<br class="gmail-m_-450562828236825630gmail_msg">
>     guidance you might provide would be greatly appreciated.<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > Thanks so much,<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > Tommy<br class="gmail-m_-450562828236825630gmail_msg">
>     ><br class="gmail-m_-450562828236825630gmail_msg">
>     > <Grid.PNG><Electrode<br class="gmail-m_-450562828236825630gmail_msg">
>     localization.PNG><Topo.PNG><<wbr>Source.PNG>___________________<wbr>____________________________<br class="gmail-m_-450562828236825630gmail_msg">
>     > fieldtrip mailing list<br class="gmail-m_-450562828236825630gmail_msg">
>     > <a href="mailto:fieldtrip@donders.ru.nl" class="gmail-m_-450562828236825630gmail_msg" target="_blank">fieldtrip@donders.ru.nl</a> <mailto:<a href="mailto:fieldtrip@donders.ru.nl" class="gmail-m_-450562828236825630gmail_msg" target="_blank">fieldtrip@donders.ru.<wbr>nl</a>><br class="gmail-m_-450562828236825630gmail_msg">
>     > <a href="https://mailman.science.ru.nl/mailman/listinfo/fieldtrip" rel="noreferrer" class="gmail-m_-450562828236825630gmail_msg" target="_blank">https://mailman.science.ru.nl/<wbr>mailman/listinfo/fieldtrip</a><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
>     _____________________________<wbr>__________________<br class="gmail-m_-450562828236825630gmail_msg">
>     fieldtrip mailing list<br class="gmail-m_-450562828236825630gmail_msg">
>     <a href="mailto:fieldtrip@donders.ru.nl" class="gmail-m_-450562828236825630gmail_msg" target="_blank">fieldtrip@donders.ru.nl</a> <mailto:<a href="mailto:fieldtrip@donders.ru.nl" class="gmail-m_-450562828236825630gmail_msg" target="_blank">fieldtrip@donders.ru.<wbr>nl</a>><br class="gmail-m_-450562828236825630gmail_msg">
>     <a href="https://mailman.science.ru.nl/mailman/listinfo/fieldtrip" rel="noreferrer" class="gmail-m_-450562828236825630gmail_msg" target="_blank">https://mailman.science.ru.<wbr>nl/mailman/listinfo/fieldtrip</a><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
> ______________________________<wbr>_________________<br class="gmail-m_-450562828236825630gmail_msg">
> fieldtrip mailing list<br class="gmail-m_-450562828236825630gmail_msg">
> <a href="mailto:fieldtrip@donders.ru.nl" class="gmail-m_-450562828236825630gmail_msg" target="_blank">fieldtrip@donders.ru.nl</a><br class="gmail-m_-450562828236825630gmail_msg">
> <a href="https://mailman.science.ru.nl/mailman/listinfo/fieldtrip" rel="noreferrer" class="gmail-m_-450562828236825630gmail_msg" target="_blank">https://mailman.science.ru.nl/<wbr>mailman/listinfo/fieldtrip</a><br class="gmail-m_-450562828236825630gmail_msg">
><br class="gmail-m_-450562828236825630gmail_msg">
______________________________<wbr>_________________<br class="gmail-m_-450562828236825630gmail_msg">
fieldtrip mailing list<br class="gmail-m_-450562828236825630gmail_msg">
<a href="mailto:fieldtrip@donders.ru.nl" class="gmail-m_-450562828236825630gmail_msg" target="_blank">fieldtrip@donders.ru.nl</a><br class="gmail-m_-450562828236825630gmail_msg">
<a href="https://mailman.science.ru.nl/mailman/listinfo/fieldtrip" rel="noreferrer" class="gmail-m_-450562828236825630gmail_msg" target="_blank">https://mailman.science.ru.nl/<wbr>mailman/listinfo/fieldtrip</a><br class="gmail-m_-450562828236825630gmail_msg">
</blockquote></div></div>