[FieldTrip] visualize source localization data
Zizlsperger Leopold
zizlsperger at gmail.com
Sun Nov 17 12:26:42 CET 2013
Hello Jan-Mathijs,
thanks, you made my day ! Using funparameter instead of maskparameter and rescaling the plot worked fine, now I can see the data in ft_sourcemovie.
All the best
Leo
On Nov 12, 2013, at 12:05 PM, jan-mathijs schoffelen <jan.schoffelen at donders.ru.nl> wrote:
> Hi Leo,
>
> Could you just do a simple plot to first get a feel of what the range of the data is, i.e. plot(source.time, source.avg.pow);
>
> This will inform you about sensible axis limits. Then, don't use a maskparameter for the time being (only a funparameter).
>
> Does this allow you to see the data in ft_sourcemovie?
>
> Best,
> Jan-Mathijs
>
>
>
>
> On Oct 29, 2013, at 10:30 AM, Leopold Zizlsperger wrote:
>
>> Dear all,
>> I have a question concerning source localization implementation. I need help in the very last step of visualizing a difference between 2 conditions over time:
>>
>> I get there by using the tutorial steps on single subject functional EEG data (fieldtrip-20130914; tried both WIN and MAC):
>>
>> clear all;
>> load('F:\fieldtrip-20130914\EEG1_HC35_GA_XY_ICA_rHFdemeanktkt.mat')
>> load('F:\fieldtrip-20130914\EEG1_HC35_GA_XY_ICA_lHFdemeanktkt.mat')
>> load leadfield;
>> load vol;
>> load elec_aligned;
>>
>>
>> cfg = [];
>> cfg.method = 'mne';
>> cfg.elec = elec_aligned;
>> cfg.grid = leadfield;
>> cfg.vol = vol;
>> cfg.mne.prewhiten = 'yes';
>> cfg.mne.lambda = 3;
>> cfg.mne.scalesourcecov = 'yes';
>> cfg.mne.normalize = 'yes';
>> sourcerHF = ft_sourceanalysis(cfg, EEG1_HC35_GA_XY_ICA_rHFdemeanktkt);
>> sourcelHF = ft_sourceanalysis(cfg, EEG1_HC35_GA_XY_ICA_lHFdemeanktkt);
>>
>> save source sourcerHF sourcelHF;
>>
>> clear all;
>>
>> load source;
>> load sourcespace;
>>
>> bnd.pnt = sourcespace.pnt;
>> bnd.tri = sourcespace.tri;
>> m=sourcerHF.avg.pow(:,1200);
>> ft_plot_mesh(bnd, 'vertexcolor', m);
>>
>>
>>
>> > In ft_defaults at 74
>> In ft_sourceanalysis at 146
>> the input is timelock data with 32 channels and 7000 timebins
>> using headmodel specified in the configuration
>> using electrodes specified in the configuration
>> determining source compartment (3)
>> projecting electrodes on skin surface
>> combining electrode transfer and system matrix
>> creating dipole grid based on user specified dipole positions
>> using headmodel specified in the configuration
>> using gradiometers specified in the configuration
>> 8196 dipoles inside, 0 dipoles outside brain
>> the call to "ft_prepare_sourcemodel" took 0 seconds
>> estimating current density distribution for repetition 1
>> using pre-computed leadfields: some of the specified options will not have an effect
>> computing the solution where the noise covariance is used for regularisation
>> prewhitening the leadfields using the noise covariance
>> scaling the source covariance
>> the call to "ft_sourceanalysis" took 10 seconds
>> the input is timelock data with 32 channels and 7000 timebins
>> using headmodel specified in the configuration
>> using electrodes specified in the configuration
>> determining source compartment (3)
>> projecting electrodes on skin surface
>> combining electrode transfer and system matrix
>> creating dipole grid based on user specified dipole positions
>> using headmodel specified in the configuration
>> using gradiometers specified in the configuration
>> 8196 dipoles inside, 0 dipoles outside brain
>> the call to "ft_prepare_sourcemodel" took 0 seconds
>> estimating current density distribution for repetition 1
>> using pre-computed leadfields: some of the specified options will not have an effect
>> computing the solution where the noise covariance is used for regularisation
>> prewhitening the leadfields using the noise covariance
>> scaling the source covariance
>> the call to "ft_sourceanalysis" took 87 seconds
>> >>
>>
>> cfg = [];
>> cfg.projectmom = 'yes';
>> sdrHF = ft_sourcedescriptives(cfg,sourcerHF);
>> sdlHF = ft_sourcedescriptives(cfg, sourcelHF);
>>
>> sdDIFF = sdrHF;
>> sdDIFF.avg.pow = sdrHF.avg.pow - sdlHF.avg.pow;
>> sdDIFF.tri = sourcespace.tri;
>>
>> save sd sdrHF sdlHF sdDIFF;
>>
>> Then I tried different suggestions from the tutorial or the mailing list:
>>
>> cfg = [];
>> cfg.mask = 'avg.pow';
>> ft_sourcemovie(cfg,sdDIFF);
>>
>> the input is source data with 8196 positions
>> baseline correcting dipole moments [--------------------------------------\]
>> projecting dipole moment [------------------------------------------------/]
>> computing power [---------------------------------------------------------|]
>> the call to "ft_sourcedescriptives" took 32 seconds
>> the input is source data with 8196 positions
>> baseline correcting dipole moments [---------------------------------------]
>> projecting dipole moment [------------------------------------------------\]
>> computing power [----------------------------------------------------------]
>> the call to "ft_sourcedescriptives" took 33 seconds
>> the input is source data with 8196 vertex positions and 16384 triangles
>> Warning: use cfg.maskparameter instead of cfg.mask
>> > In ft_checkconfig at 120
>> In ft_sourcemovie at 48
>> ??? Error using ==> set
>> Bad property value found.
>> Object Name : axes
>> Property Name : 'CLim'
>> Values must be increasing and non-NaN.
>>
>> Error in ==> caxis at 80
>> set(ax,'CLim',arg);
>>
>> Error in ==> ft_sourcemovie at 263
>> caxis(cfg.zlim);
>>
>>
>>
>> If I set a break before this point I can see that "arg" indeed contains two NaNs only.
>>
>> Do you have any suggestions why the script above fails to determine the axes properties?
>>
>> Alternatively I tried:
>>
>> figure
>> sdDIFF.tri = sourcespace.tri;
>> cfg = [];
>> cfg.alim = [0 0.5];
>> cfg.zlim = [0 0.5];
>> cfg.maskparameter = 'avg.pow';
>> ft_sourcemovie(cfg,sdDIFF);
>>
>>
>> That results in a GUI that does seem to work but in the time course there is no activity displayed.
>>
>> Any advice how to visualize the difference properly?
>> Thanks in advance.
>> Best
>> Leo
>> RWTH Aachen Neurology
>>
>>
>> P.S.
>> structure of the difference sdDIFF:
>>
>> time: [1x7000 double]
>> pos: [8196x3 double]
>> inside: [8196x1 double]
>> outside: [1x0 double]
>> method: 'average'
>> avg: [1x1 struct]
>> cfg: [1x1 struct]
>> tri: [16384x3 int32]
>>
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
> Jan-Mathijs Schoffelen, MD PhD
>
> Donders Institute for Brain, Cognition and Behaviour,
> Centre for Cognitive Neuroimaging,
> Radboud University Nijmegen, The Netherlands
>
> Max Planck Institute for Psycholinguistics,
> Nijmegen, The Netherlands
>
> J.Schoffelen at donders.ru.nl
> Telephone: +31-24-3614793
>
> http://www.hettaligebrein.nl
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20131117/9410f317/attachment-0002.html>
More information about the fieldtrip
mailing list