1 / 41

FieldTrip, a tool for GUI-less exploration of brain dynamics

FieldTrip, a tool for GUI-less exploration of brain dynamics. Jan-Mathijs Schoffelen j.schoffelen@donders.ru.nl. Powered by:. Purpose of this talk. Advertisement of FieldTrip of some of the scientific work done with FieldTrip. What is FieldTrip?.

gala
Download Presentation

FieldTrip, a tool for GUI-less exploration of brain dynamics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FieldTrip, a tool for GUI-less exploration of brain dynamics Jan-Mathijs Schoffelen j.schoffelen@donders.ru.nl Powered by:

  2. Purpose of this talk • Advertisement • of FieldTrip • of some of the scientific work done with FieldTrip

  3. What is FieldTrip? A MATLAB toolbox for electrophysiological data analysis

  4. Features: high-level functions forelectrophysiological data analysis Data reading all commercial MEG systems, many different EEG systems Preprocessing filtering, segmenting Time-locked ERF analysis Frequency and time-frequency analysis multitapers, wavelets, welch, hilbert, parametric spectral estimates

  5. Features: high-level functions forelectrophysiological data analysis Functional connectivity analysis coherence, phase locking value, granger causality, and many more Source reconstruction beamformers, dipole fitting, linear estimation Statistical analysis parametric, non-parametric, channel and source level All other operations that are required around it

  6. But… X

  7. Comparison with another well-known toolbox contra SPM buttons model-based GLM, DCM, bayesian model comparison functions data-driven

  8. Comparison with another well-known toolbox intra SPM Under the hood a lot of the code is shared

  9. Features Analysis steps are incorporated in functions

  10. Using functions in an analysis protocol preprocessing cfg = [ ] cfg.dataset = ‘Subject01.ds’ cfg.bpfilter = [0.01 150] ... rawdata = preprocessing(cfg) rejectartifact freqanalysis multiplotTFR freqstatistics multiplotTFR

  11. Typical functions dataout = functionname(cfg, datain, …) functionname(cfg, datain, …) dataout = functionname(cfg) the “cfg” argument is a configuration structure, e.g.: cfg.channel = {‘C3’, C4’, ‘F3’, ‘F4’} cfg.foilim = [1 70] and determines specific behaviour of the function

  12. Features Analysis steps are incorporated in functions Data are represented in standard MATLAB structures as small as possible contain all relevant details

  13. Raw data structure rawData = label: {151x1 cell} trial: {1x87 cell} time: {1x87 cell} fsample: 300 hdr: [1x1 struct] cfg: [1x1 struct]

  14. Event related response erpData = label: {151x1 cell} avg: [151x900 double] var: [151x900 double] time: [1x900 double] dimord: 'chan_time’ cfg: [1x1 struct]

  15. Features Analysis steps are incorporated in functions Data are represented in standard MATLAB structures as small as possible contain all relevant details Data structures bind together analysis blocks

  16. Using functions in an analysis protocol preprocessing rejectartifact freqanalysis cfg = [ ] cfg.method = ‘mtmfft’ cfg.foilim = [1 120] ... freqdata = freqanalysis(cfg, rawdata) multiplotTFR freqstatistics multiplotTFR

  17. Features Analysis steps are incorporated in functions Data are represented in standard MATLAB structures as small as possible contain all relevant details Data structures bind together analysis blocks Easy to write new functions that operate on these data structures Output of your own functions can be further processed or plotted with FieldTrip functions

  18. Example use in scripts cfg = [] cfg.dataset = ‘Subject01.ds’ cfg.bpfilter = [0.01 150] ... rawdata = ft_preprocessing(cfg) cfg = [] cfg.method = ‘mtmfft’ cfg.foilim = [1 120] ... freqdata = ft_freqanalysis(cfg, rawdata) cfg = [] cfg.method = ‘montecarlo’ cfg.statistic = ‘indepsamplesT’ cfg.design = [1 2 1 2 2 1 2 1 1 2 ... ] ... freqstat = ft_freqstatistics(cfg, freqdata) … preprocessing freqanalysis freqstatistics topoplotTFR

  19. Example use in scripts cfg = [] cfg.dataset = ‘Subject01.ds’ cfg.bpfilter = [0.01 150] ... rawdata = ft_preprocessing(cfg) cfg = [] cfg.method = ‘mtmfft’ cfg.foilim = [1 120] ... freqdata = ft_freqanalysis(cfg, rawdata) cfg = [] cfg.method = ‘montecarlo’ cfg.statistic = ‘indepsamplesT’ cfg.design = [1 2 1 2 2 1 2 1 1 2 ... ] ... freqstat = ft_freqstatistics(cfg, freqdata) … preprocessing freqanalysis freqstatistics topoplotTFR

  20. Example use in scripts cfg = [] cfg.dataset = ‘Subject01.ds’ cfg.bpfilter = [0.01 150] ... rawdata = ft_preprocessing(cfg) cfg = [] cfg.method = ‘mtmfft’ cfg.foilim = [1 120] ... freqdata = ft_freqanalysis(cfg, rawdata) cfg = [] cfg.method = ‘montecarlo’ cfg.statistic = ‘indepsamplesT’ cfg.design = [1 2 1 2 2 1 2 1 1 2 ... ] ... freqstat = ft_freqstatistics(cfg, freqdata) … preprocessing freqanalysis freqstatistics topoplotTFR

  21. Example use in scripts cfg = [] cfg.dataset = ‘Subject01.ds’ cfg.bpfilter = [0.01 150] ... rawdata = ft_preprocessing(cfg) cfg = [] cfg.method = ‘mtmfft’ cfg.foilim = [1 120] ... freqdata = ft_freqanalysis(cfg, rawdata) cfg = [] cfg.method = ‘montecarlo’ cfg.statistic = ‘indepsamplesT’ cfg.design = [1 2 1 2 2 1 2 1 1 2 ... ] ... freqstat = ft_freqstatistics(cfg, freqdata) preprocessing freqanalysis … freqstatistics topoplotTFR

  22. Example use in scripts cfg = [] cfg.dataset = ‘Subject01.ds’ cfg.bpfilter = [0.01 150] ... rawdata = ft_preprocessing(cfg) cfg = [] cfg.method = ‘mtmfft’ cfg.foilim = [1 120] ... freqdata = ft_freqanalysis(cfg, rawdata) cfg = [] cfg.method = ‘montecarlo’ cfg.statistic = ‘indepsamplesT’ cfg.design = [1 2 1 2 2 1 2 1 1 2 ... ] ... freqstat = ft_freqstatistics(cfg, freqdata) preprocessing freqanalysis … freqstatistics topoplotTFR

  23. Example use in scripts subjlist = {‘S01.ds’, ‘S02.ds’, …} triglist = [1 3 7 9] for s=1:nsubj for c=1:ncond cfg = [ ] cfg.dataset = subjlist{s} cfg.trigger = triglist(c) rawdata{s,c} = preprocessing(cfg) cfg = [ ] cfg.method = ‘mtm’ cfg.foilim = [1 120] freqdata {s,c} = freqanalysis(cfg, rawdata) end end

  24. Example use in scripts subjlist = {‘S01.ds’, ‘S02.ds’, …} triglist = [1 3 7 9] for s=1:nsubj for c=1:ncond cfg = [ ] cfg.dataset = subjlist{s} cfg.trigger = triglist(c) rawdata{s,c} = preprocessing(cfg) filename = sprintf(‘raw%s_%d.mat’, subjlist{s}, condlist(c)); • save(filename, ‘rawdata’) • end end

  25. Relevance of analysis scripts the data and the separate functions are in the hands of the end-users the scripts depend on the data properties, available memory and programming skills and style scripts correspond to analysis protocols scripts can be reviewed by supervisors scripts are often shared with colleagues

  26. end-user perspective FieldTrip toolbox structure - at a glance FieldTrip main functions FieldTrip private functions(low-level)

  27. end-user perspective FieldTrip toolbox structure - a closer look public FieldTrip main functions fileio forwinv preproc multivar. distrib. comput. private

  28. end-user perspective read_data(…) compute_leadfield(…) bandpassfilter(…) FieldTrip toolbox structure - a closer look public preprocessing freqanalysis sourcestatistics dipolefitting … fileio forwinv preproc multivar. distrib. comput. private

  29. end-user perspective FieldTrip toolbox structure - a closer look public FieldTrip main functions fileio forwinv preproc multivar. distrib. comput. private

  30. FieldTrip toolbox - code reused in SPM8 SPM8 end-user perspective SPM8 main functions with graphical user interface public main functions fieldtrip fileio forwinv preproc distrib. comput. private

  31. Why use FieldTrip? contains many algorithms demonstrated to be an effective tool for analyzing electrophysiological data active user community new methods contributed by others collaboration with other packages expertise from developers made accessible expertise from other users made available

  32. MEG-coherence ROI • CM-coherence • Power Network identification in non-invasive measurements

  33. Network identification all voxel combinations

  34. Who is hot....? ...and who is not? Network identification

  35. Power FWHM Non-homogeneous maps

  36. Simulations • 2 dipoles in 2 conditions • correlated dipoles • uncorrelated dipoles • Reconstruct all-to-all bivariate correlation map with beamformers • Non-homogeneous smoothing • 6 dimensional gaussian kernel depending on FWHM • little smoothing for high activations • more smoothing for low activations • Many dipole pairs at various SNR etc.

  37. Results: general effects

  38. Results: hit rate unsmoothed smoothed

  39. Results: false positives

  40. Summary • Identification of functionally connected nodes in a neural network based on non-invasive measurements • Spurious connections / low sensitivity • Non-homogeneous smoothing improves sensitivity • …on simulated data

  41. Do you want to give it a try yourself? http://fieldtrip.fcdonders.nl/ Acknowledgements: Monkey stuff -Conrado Bosman -Andre Bastos -Robert Oostenveld -Pascal Fries Non-homogeneous smoothing -Joachim Gross

More Related