= What's next = A roadmap to the future developments of Brainstorm. == Current topics == ==== Functionnal connectivity ==== * Integration of different metrics to study the brain connectivity: <
>Correlation, coherence, Granger causality, phase locking value * Development of new ways to represent the connectivity between sensors or brain regions ==== EEG / epilepsy / intra-cranial recordings ==== * Editing the position of intracranial electrodes in the MRI viewer ==== Source modeling ==== * Computation of equivalent current dipoles * Beamformers ==== Large scale analysis ==== * Parallel processing: Reduce the computation times using the parallel processing toolbox * Distributed processing: Integrate tools for sending Brainstorm processes on computation clusters <
><
><
> == Recordings == * RAW file viewer: * Pre-load next page of recordings * Documentation: Add definition of bad segments * 2DLayout: Doesn't work when changing page => need refresh of GlobalData.Preferences.TopoLayoutOptions.TimeWindow * EEG reference/storage: * Intracranial electrodes: Define and display in the MRI viewer + 3D figures * Bad locations: indicate with [NaN NaN NaN] instead of [0 0 0] * Bad channels that can be specified at the program level (for sites that have permanently bad channels) => AS Dubarry * RAW processing: * Make it work for all the file formats (at least bandpass filter + sin removal) * Events: advanced process for recombining. Example: http://www.erpinfo.org/erplab/erplab-documentation/manual/Binlister.html * Colormaps: * Create a colormap similar to MNE, where extrema are bright * Import data: * Save properties "baseline" and "resample" at the level of the protocol (to re-use for all the files) * NIRS: * Add new data type * Display of sensors by pairs oxy/deoxy (red/blue), overlaid * Images of amplitude: [sensor x time], [trial x time], scout: [trial x time] * Can be done with Matrix > View as image: extract cluster, concatenate for all trials * 2D Layout for multiple conditions == Connectivity == * Tutorial coherence [1xN] * t-tests on connectivity measures * Graph view: * Fixed scales for intensity sliders * Fix zoom in one region * Text bigger * Too much data in appdata * Other metrics: * Coherence by bands: bst_coherence_band_welch.m * Granger by bands: bst_granger_band.m * Inter-trial coherence * Work on progress bars == Processes == * Time-frequency: * Frequency bands: extended syntax (ex: [2 3 4], 10:5:90, ...) * How to combine 3 orientations for unconstrained sources * Display logs as negative * 2D Layout in spectrum * Make much faster and more memory efficient (C functions coded by Matti ?) * Smooth display of TF/PAC maps (option) * TF scouts: should display average of TF maps * Bandpass: Show warning when using inappropriate high-pass filter (precision too high) * Artifact detection: * Detection of bad segments in the RAW files * Artifact rejection like SPM: if bad in 20%, bad everywhere * Test difference between adjacent samples * Distributed processing: Brainstorm that can run without Java * SSP: * Display warning if changing the !ChannelFlag while there is a Projector applied * Show where the attenuation is projected:<
>(sum(IK,2)-sum(SSP(k,:)*IK,2)./sum(IK,2) * Average: * Remember how many trials were used per channel * Save standard deviation * Display standard deviation as a halo around the time series * Co-registration of MEG runs: * SSP: Group projectors coming from different files * Finish validation of the method * Apply to continuous recordings for correcting head movements * Current Source Density (CSD) => Ghislaine<
>http://psychophysiology.cpmc.columbia.edu/software/CSDtoolbox/index.html * Other processes: * Detrending * Moving average * Max * Median * Significance test (Dimitrios, Leo) * Spatial smoothing: check / document parameters * Contact sheets & movies: use average of time windows instead of single instants, for each picture. * Optical flow == Database == * MEG protocols: More flexible organization of the database; sub-conditions to allow different runs X different conditions. * Group matrix files => allow to process matrix files by trial types * Add notes in the folders (text files, visible as nodes in the tree) * Screen captures: save straight to the database == Source modeling == * Stenroos 2014 paper: Include the following methods * Inner and outer skull surfaces generator from !FieldTrip (needs SPM, probably not so different from BST) * Nolte corrected-sphere model (good model re:Alex) * Fast BEM models * Dipole fitting * Visualize Beamformer results: * Read CTF SAM .svl * Display as layers in the MRI viewer * Unconstrained sources: * Compute unconstrained and then project on the normal ? * Difference and stat should be: norm(A) - norm(B) * Stat and connectivity: what to do? (re-send email John+Sylvain) * Overlapping spheres: improve the estimation of the spheres for the frontal lobes * Volume grid: * Scouts 3D * Test volume sources with all the subsequent processes (timefreq, stat...) * Optimize: 3D display (better that 9x9 cubes) * Optimize: vol_dilate (with 26 neighbors) * Magnetic extrapolation: Do the same thing with EEG * Noise covariance matrix: * Storage of multiple noise covariance matrices (just like the head models) * Always save as full, then at inversion time, we can decide between full, heteroskedastic (diagonal) or homoskedastic (i.i.d, scalar) * Problem of having inividual trials + averages in the condition => Display warning or not? * Save nAvg in noisecov file, to make it easier to scale to other recordings * When deploying to other conditions: Apply destination SSP (!NoiseCov = SSP . !NoiseCov . SSP' ) * Sources on surface: Display peak regions over time (time = color) => A.Gramfort * Simulation: synthesize pseudo data-files from a cortex patch (duration, amplitude, noise) * Calculate !ImagingKernel * Gain for a scout * EEG Source modeling: Manage references and bipolar montages properly (maybe not necessary) * MEG source modeling: Do reconstruction only for a subset of sensors for estimating dipoles? * Processes compute head model and sources: Additional option to set the file comment == Anatomy == * Scouts: * Mix constrained/unconstrained/volume sources, using the "Source model" atlas * Display edges in the middle of the faces instead of the vertices * Project scouts betweens subjects and between hemispheres * Display scouts in a tree: hemisphere, region, subregion * Downsample to atlas: allow on timefreq/connect files * Sort scouts by region in process options * Generate mixed density surfaces * Import / registration: * Major bug when importing surfaces for an MRI that was re-oriented manually * Use mid-gray instead of pial surface? == Statistics == * ANOVA: Use LENA functions * Output = 1 file per effect, all grouped in a node "ANOVA" * Display several ANOVA maps (from several files) on one single figure, using a "graphic accumulator", towards which one can send any type of graphic object * Permutation tests: * t-test only (wilcoxon? sign-test?): paired, equal var, unequal var * http://www.adscience.fr/uploads/ckfiles/files/html_files/StatEL/statel_wilcoxon.htm * http://www.mathworks.fr/fr/help/stats/signrank.html * Less powerful than t-tests * nb permutations ~ 1000 * maximum statistic over "time" or "time and space" * Permutations / clustering: cf fieldtrip * http://fieldtrip.fcdonders.nl/tutorial/cluster_permutation_timelock * http://fieldtrip.fcdonders.nl/tutorial/cluster_permutation_freq * Threshold in time: keep only the regions that are significative for contiguous blocks of time, or over a certain number of time points<
> => Process that creates a static representation of a temporal window * t-test on volume sources * Paired t-test on unconstrained sources: (convert to flat + Z-score) => !AnneSo * Question of Gaussianity of the samples: take a subset of samples + Kolmogorov-Smirnov / Shapiro-Wilk test * http://fr.wikipedia.org/wiki/Test_de_Shapiro-Wilk * http://stats.stackexchange.com/questions/362/what-is-the-difference-between-the-shapiro-wilk-test-of-normality-and-the-kolmog * http://www.mathworks.fr/fr/help/symbolic/mupad_ug/perform-shapiro-wilk-test.html * http://www.mathworks.fr/fr/help/symbolic/mupad_ref/stats-swgoft.html * http://stackoverflow.com/questions/14383115/shapiro-wilk-test-in-matlab * Create icons for Stat/PAC, Stat/Sprectrum, etc. * One sample t-test across subjects == Input / output == * EEG File formats: * EEG !CeeGraph * EGI: Finish support for epoched files (formats 3,5,7) * !FieldTrip structures: In / Out * BCI2000 Input (via EEGLAB plugin) * Export TF maps to SPM / volumes * EEGLAB import: Selection of conditions in script mode == Distribution & documentation == * Add Help buttons and menus (in popups, dialog windows...) => Links to the website. * Introduction tutorials: * Processes: Describe all the processes * Clusters * First steps: Brainstorm preferences * Headmodel: explain the fields + how to get the constrained leadfield * Sources: Modelized data * Sources: theshold min. size (not documented yet) * Import raw recordings: Add "detect bad trials/channels" in the pipeline * Temporary folder == Current bugs == * Import anatomy folder menu crashes on MacOSX 10.8.5 / Matlab 2013b * Record tab: Text of epoch number is too big on MacOS * Menu "Use default EEG cap" doesn't work for a multiple selection (setting the same EEG cap for several subjects) * in_bst_data_multi: If trials have different sizes, output is random (the one of the first file) * tree_dependencies: sources files, reprojected on default anatomy; If based on data files that are bad trials, they should be ignored by tree_dependencies, and they are not * Image viewer has some bugs on some systems * Screen capture for reports never works: Find another solution * Screen capture when there is a fading effect in the window manager: captures the window * Close figure with coherence results should hide the "frequency" slider * Problems growing scouts on merged surfaces (Emily) * Edit scout in MRI: small modifications cause huge increase of the scout size == Geeky programming details == * Use Matlab Coder to optimize some processes: Bandpass filter, sinusoid removal * Hide Java panels instead of deleting them * mri2scs: convert arguments to meters * bst_warp and channel_project: Use tess_parametrize_new instead of tess_parametrize * Shared kernels: do the "get bad channels" operation in a different way (reading all the files is too slow) * Optimize bst_get: * Now study and subject have necessarily the same folder name * Replace big switch with separate functions * Progress bar: * Add different levels (to handle sub-processes) * Make work correctly with RAW on resting tutorial * Uniformize calls in bst_process/Run * Add a "Cancel" button * Line smoothing / anti-aliasing (time series figures)