= What's next = A roadmap to the future developments of Brainstorm. == Current topics == ==== Documentation ==== * Merging the 12+3 introduction tutorials to illustrate better the latest developments ==== Source modeling ==== * Implementation of a new unified minimum norm/beamformer framework ==== Functionnal connectivity ==== * Significance thresholding of the connectivity matrices ==== Compatibility ==== * Reading and writing FieldTrip structures * Calling FieldTrip functions from the pipeline <
><
> == Recordings == * Nicer 2D topographies, standardized (using FieldTrip .lay files?) * 2DLayout (recordings + TF): Use the same standard positions, too much space between sensors * 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 in the MRI viewer * 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 * 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 * Filtering: Use short FIR filters instead of IIR for bandpass, to limit the ringing<
>Or allow the users to edit the LowStop parameter in bst_bandpass. * Show easily recordings maximum/values in the file viewer * Copy figures to clipboard (with the screencapture function) == Connectivity == * Tutorial coherence [1xN] * Thresholding the connectivity matrices * 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 == * Distributed processing: Brainstorm that can run without Java * Use Matlab Coder to optimize some processes: Wavelets, bandpass filter, sinusoid removal * Allow processes in Python and Java * Call FieldTrip functions from pipeline editor * Optimize opening time ofr for the menu "Add process" * SSP: * Make average the default option * 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) * Bandpass: * Rewrite without the force low-pass filter at Fs/3 * Show warning when using inappropriate high-pass filter (precision too high) * Use FIR filter * Spectral flattening (John): * Apply on the signal before any frequency/connectivity/PAC analysis * Using ARIMA(5,0,1) * Example code:<
><
> {{{ arm = mean(lpc(diff(detrend(Fbase')),5)); % detrend and diff PRE = filter(arm,1,diff(detrend(Fbase')))'; % apply to the data| X = filter(arm,1,diff(detrend(F')))'; X(:,1:length(arm)) = []; Time = tndx((length(arm)+2):end)/1000 - SOT; }}} * PSD: * Estimation of the output size buggy * Rewrite to have the same input as coherence * Remove line noise: http://www.nitrc.org/projects/cleanline * Interpolate the bad channels * ICA for cleaning eye movements in EEG low density (SSP don't work well) * Reports: * Save as HTML / PDF * Do not display the intermediate files * Pipeline editor: * Add loops over subjects/conditions/trial groups * 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 ?) * TF scouts: should display average of TF maps * Artifact detection: * Detection of bad segments in the RAW files (Beth) * Artifact rejection like SPM: if bad in 20%, bad everywhere * Test difference between adjacent samples * 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 * Resample continuous files * Current Source Density (CSD) => Ghislaine<
>http://psychophysiology.cpmc.columbia.edu/software/CSDtoolbox/index.html * Other processes:<
> * 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 * Simulation: * Fix units in simulation processes => no *1e-9 in "simulate recordings" * Use "add noise" process from Hui-Ling (in Work/Dev/Divers) == Database == * Optimize startup speed * Start Brainstorm without Java (-nodesktop) * Sort files by comment * 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 * Rename multiple files * Allow matrix files to be attached to other files == Distributed computing == * Options from FieldTrip: * Loose collection of computers: https://github.com/fieldtrip/fieldtrip/tree/master/peer * Alternative, with less limitations: http://research.cs.wisc.edu/htcondor/ * Single multicore machine: https://github.com/fieldtrip/fieldtrip/tree/master/engine * Batch system: https://github.com/fieldtrip/fieldtrip/tree/master/qsub * Documentation: http://fieldtrip.fcdonders.nl/faq#distributed_computing_with_fieldtrip_and_matlab * PSOM: http://psom.simexp-lab.org/ == Source modeling == * Finish dipole scanning (allow the tab to control multiple figures separately) * Dipole fitting * Panel Get coordinates: Add button "find maximum" * 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 * 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: * Display with figure_image() * 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 * Time-frequency beamformers: * Band-pass everything in different frequency bands + Source estimation + TF * Ask data to Sarang where he sees effects that cannot be extracted with MN followed by TF * bst_wmne: Dirty patch with schur() to redo the decompositions where eig return complex values. Should be done in a cleaner way == Anatomy == * Project all sub-cortical structures to default anatomy * Warping: Scale option has to be fixed, it is currently very unstable * Scouts: * 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 * Co-register MRI and CT for electrodes marking in the MRI Viewer * 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? * Smooth surface: Fix little spikes to irregularities in the mesh * Menu head model > Copy to other conditions/subjects (check if applicable first) * Add cerebellum to default model generated with "Import FS anatomy" * Add eyes models to attract eye activity == 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 == * Finish MINC/CIVET integration (finir lecture MINC2: P Bellec) * Send email to CIVET mailing list when done * FieldTrip structures: In / Out (see fieldtrip/utilities/ft_datatype_*) * EEG File formats: * EEG CeeGraph * EGI: Finish support for epoched files (formats 3,5,7) * BCI2000 Input (via EEGLAB plugin) * EEGLAB import: * Selection of conditions in script mode * Support for binary AND epoched files (now it's one or the other) * Allow epoched files with recordings saved in external files (now external files implies continuous recordings) * BST-BIN: Add compression * Review raw on all the file formats (ASCII EEG and Cartool missing) == Distribution & documentation == * Rewrite basic 12+3 tutorials: group in one series * Illustrate 2D Layout * Illustrate unconstrained sources * Cleaning threads on the forum * Add Help buttons and menus (in popups, dialog windows...) => Links to the website. * Publication list: Fold by years * Finish existing tutorials: * Dipoles * Auditory: Extend to MNE/EEGLAB/SPM * Auditory: Finish scripts * Group MEM/Epilepsy + Epilepsy tutorials * New tutorials: * MEG connectome * Scrambled faces (SPM/MNE-Python) * Describe all the processes * Statistics * Coherence (cortico-muscular ?) * Intra-cranial recordings (Average ref by groups using Comment field) * Co-register MEG runs (Beth) * Missing in the introduction tutorials: * Volume scouts * First steps: Brainstorm preferences * First steps: Temporary folder * Exploration: Clusters * Headmodel: explain the fields + how to get the constrained leadfield * Sources: Model evaluation (by simulating recordings) * Sources: Theshold min. size (not documented yet) * Time-frequency: Description of "log freq scale" option * Missing in tutorial "Export to SPM": Add section "Compare with Brainstorm" * Missing in page "Cite Brainstorm": Add all the methods used in the software * Reference tutorials on Google scholar * Play videos on wiki with