10274
Comment:
|
18287
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
==== Functionnal connectivity ==== * Integration of different metrics to study the brain connectivity: <<BR>>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 ==== * New tools for exploring EEG recordings (custom montages, faster viewer) * Full EEG/epilepsy online tutorial * Editing the position of intracranial electrodes in the MRI viewer |
==== Documentation ==== * New online tutorials (work in progress) |
Line 15: | Line 9: |
* 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 <<BR>><<BR>><<BR>> |
* Implementation of a new unified minimum norm/beamformer framework (work in progress) ==== Functional connectivity ==== * Significance thresholding of the connectivity matrices (2016) ==== Computation ==== * Removing the dependence to the Java interface to run in headless mode (not started) * Interacting directly with distributed computing systems (not started) ==== Compatibility ==== * Reading and writing FieldTrip structures (work in progress) * Calling FieldTrip functions from the pipeline (work in progress) <<BR>><<BR>> |
Line 25: | Line 25: |
* Nicer 2D topographies, standardized (using FieldTrip .lay files?) * 2DLayout: * Use the same standard positions, too much space between sensors (Recordings + TF) * Overlay multiple conditions * RAW files: Doesn't work when changing page => need refresh of GlobalData.Preferences.TopoLayoutOptions.TimeWindow * Same shortcuts as the raw file viewer (right-click + move for gain) |
|
Line 27: | Line 33: |
* Allow multiple RAW windows(columns display) * Screen setups * Time scale: define in fixed s/mm (like the CTF tools) * Secondary windows: display length of time selection * If "Use SSP " option is selected, automatically select "Remove baseline" and "CTF compensations" * Documentation: Add definition of bad segments * Set the amplidute scale for the time series * CTRL+S : Save modifications * RAW processing: * Make it work for all the file formats(at least bandpass filter) * Events: advanced process for recombining. Example: http://www.erpinfo.org/erplab/erplab-documentation/manual/Binlister.html * Improve interface for SSP on imported recordings * Bad channels that can be specified at the program level (for sites that have permanently bad channels) => AS Dubarry |
* Events: advanced process for recombining. * Example: http://www.erpinfo.org/erplab/erplab-documentation/manual/Binlister.html * Bad channels specified at the program level (for sites that have permanent bad channels: AS) * 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 * 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 == Interface == |
Line 41: | Line 46: |
* Define manually minimum => 3 options: [0,max], [-max,max], [min,max] | * Manage multiple custom colormaps * Allow brightness/contrast manipulations on the custom colormaps |
Line 43: | Line 49: |
* Grey out the portion of the colorbars not displayed because of the threshold * bst_selections: * Add user defined combinations of sensors (eg. "double banana" for EEG) * Use this to produce "inversed polarity" displayes too (useful in EEG) * 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 * Intracranial electrodes: * Define and display in the MRI viewer * Images of amplitude: [sensor x time], [trial x time], scout: [trial x time] (similaire to erpimage in eeglab) |
* Global colormap max: Should get the maximum across all the open files * Open new figures as tab (docked in the Figures window) * Copy figures to clipboard (with the screencapture function) * Removing all the CTRL and SHIFT in the keyboard shortcuts * Display warning before opening files that are too big |
Line 57: | Line 56: |
* Figures: interaction with sensor selection / scouts selections * Display NxN as 1xN * Adapt colormaps for correlation (min and max properties) * PLV: Add a time integration * Work on progress bars * Circle plot: * Display Neuromag sensors * Event-related coherence? |
* Thresholding the connectivity matrices * t-tests on connectivity measures * Multi-tapers? * Graph view: <<BR>> * Re-write using pure Matlab code and smoothed graphics * Fixed scales for intensity sliders * Text bigger * Too much data in appdata * Fixed scales for intensity sliders * Add "=" shortcut for having graphs with similar configurations * Disable zoom in one region (serious bugs) * Coherence: * Average cross-spectra instead of concatenating epochs (to avoid discontinuities) * Granger: * Crashes sometimes: improve stability * Re-write and optimize code * Add progress bar * PLV: * Add p-values * Remove evoked * Optimize code * Add time integration * Unconstrained sources * PAC: * Refine frequency vector of low frequencies * How many central frequencies to use in bst_pac? * Change filters: no chirplet functions * bst_freqfilter: Use nfcomponents like in bst_pac * Esther recommended a larger frequency binning of the PAC estimation * Other metrics: * Coherence by bands: bst_coherence_band_welch.m * Granger by bands: bst_granger_band.m * Inter-trial coherence * Tutorial coherence [1xN] : Reproduce FieldTrip results? |
Line 67: | Line 92: |
* ICA: * Exploration: Add window with spectral decomposition (useful for muscle artifacts) * Comparison JADE/Infomax: <<BR>> http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0030135 * Add methods: SOBI, Fastica, AMICA/CUDICA (recommended by S Makeig) * Dimension reduction with PCA adds artifacts: Not done by default in EEGLAB<<BR>>Contact: Stephen Shall Jones ( shall-jones@infoscience.otago.ac.nz )<<BR>>Student Carl Leichter detailed this in his thesis * S Makeig: Use ICA to select the IC of interest instead of only removing artifacts * Display of spectrum for components (PSD/FFT) * 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 for the menu "Add process" * SSP:<<BR>> * Display warning if changing the ChannelFlag while there is a Projector applied * Show where the attenuation is projected:<<BR>>(sum(IK,2)-sum(SSP(k,:)*IK,2)./sum(IK,2) * Bandpass: * Offer option: bst_bandpass_fft / bst_bandpass_filter * Rewrite without the forced low-pass filter at Fs/3 * Show warning when using inappropriate high-pass filter (precision too high) * Use FIR filter * Spectral flattening (John): * ARIMA(5,0,1): Apply on the signal before any frequency/connectivity/PAC analysis * PSD: * Rewrite to have the same input as coherence * Normalize with the total power (TF/sum(TF,3)) * Remove line noise: http://www.nitrc.org/projects/cleanline * Interpolate the bad channels * Band-limited power envelope * Reports: * Save as HTML / PDF * Do not display the intermediate files * Pipeline editor: * Add loops over subjects/conditions/trial groups |
|
Line 68: | Line 128: |
* Standardize using: diff before calculation + cumsum (checkbox "flatten data") | |
Line 69: | Line 130: |
* Scouts values for timefreq on surfaces * How to combine 3 orientations for unconstrained sources |
|
Line 74: | Line 133: |
* Parallel processing: Use parfor * Distributed processing: * Version of Brainstorm that can run without JAVA * Use the BIC/MEG cluster from the pipeline interface (PSOM, P.Bellec) * SSP: * Display warning if changing the !ChannelFlag while there is a Projector applied * When processing multiple files: waitbar is not behaving well |
* TF scouts: should display average of TF maps * Impossible to keep complex values for unconstrained sources * Pad short epochs with zero values for getting lower frequencies * 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 * Allow the detection on differences of signals (bipolar montages) |
Line 88: | Line 148: |
* Apply to continuous recordings for correcting for head movements (using head position coils) | * Apply to continuous recordings for correcting head movements * Resample continuous files |
Line 97: | Line 158: |
* 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) |
|
Line 99: | Line 164: |
* Filter display of the database explorer (filename, file type, comment...) | * Optimize startup speed * Start Brainstorm without Java (-nodesktop) * Sort files by comment |
Line 101: | Line 168: |
* GUI: Save configuration of windows (per protocol) | * Group matrix files => allow to process matrix files by trial types |
Line 105: | Line 172: |
* 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/ |
|
Line 106: | Line 188: |
* Dipole fitting * Scouts: * Represent border as the middle of the adjacent triangles (to have a full segmentation) * Visualize Beamformer results (contact Zainab Fatima): |
* Dipoles: * Finish dipole scanning (allow the tab to control multiple figures separately) * Dipole fitting: We will not implement non-linear fits, recommended use of dense volume grids * panel_dipoles: Doesn't work with multiple figures * Read easily dipole coordinates: Click on one selects it and open the panel Get coordinates * Panel Get coordinates: Add button "find maximum" * Create scout form maximum: Not available yet for mixed/volume head model. * 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: |
Line 111: | Line 201: |
* Create new file type in the database | |
Line 115: | Line 204: |
* Define as default * Check all the processes |
|
Line 118: | Line 205: |
* Stat and connectivity: what to do? (re-send email John+Sylvain) | |
Line 120: | Line 208: |
* Scouts 3D | |
Line 122: | Line 209: |
* Optimize: 3D display (better that 9x9 cubes) | * Optimize: 3D display (better than 9x9 cubes) |
Line 124: | Line 211: |
* Optimize: grid_interp_mri * Magnetic extrapolation: * Do the same thing with EEG * Project sources: * Adapt smooth factor to the number of vertices * Number of neighbors to consider = average number of neighbors in the target mesh. * Compute by small time blocks |
* Magnetic extrapolation: Do the same thing with EEG |
Line 132: | Line 213: |
* Display with figure_image() | |
Line 136: | Line 218: |
* When deploying to other conditions: Apply destination SSP (!NoiseCov = SSP . !NoiseCov . SSP' ) | * When deploying to other conditions: Apply destination SSP (NoiseCov = SSP . NoiseCov . SSP' ) |
Line 139: | Line 221: |
* Calculate !ImagingKernel * Gain for a scout | * 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 * Display volume scouts and surface scouts at the same time * Process "Extract scouts time series": Add PCA option (replace isnorm with choice PCA/Norm) * BEM: Fix unstable results when one vertex is too close from the layers (5mm ?) * Hui-Ling beamformers: * More explanations about what is in NAI and Spatial filters * Explain that is this is better to study effects extended in time (Ntime > Nsensors) * Group LCMV+MCB * Condition LEFT median nerve: very bad results * Menu Sources > Simulate recordings: * Do not close the 3D figures after generating a new file * Add a process equivalent to this menu |
Line 142: | Line 241: |
* Use the !FreeSurfer subject co-registration (downsample: keep the correspondance) | * Problem of difference between RAS and TkRegRAS: http://neuroimage.usc.edu/forums/showthread.php?1958-SEEG-electrodes-and-subject-s-anatomy-are-not-alligned * 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 |
Line 144: | Line 253: |
* Improve ICP registration headpoints / scalp (chanfrein, multi-resolution, see with C Grova...) * Auto-reorientation of MRI after selected NAS / LPA / RPA |
|
Line 147: | Line 254: |
* Clustering cortex: Dimitrios, David, Yu-Teng |
* 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 |
Line 151: | Line 261: |
* ANOVA: Use LENA functions | * ANOVA: Use LENA functions(?) |
Line 154: | Line 264: |
* Permutation tests: * t-test only (wilcoxon? sign-test?): paired, equal var, unequal var * 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<<BR>> => Process that creates a static representation of a temporal window |
* Problem t-test on unconstrained sources: (convert to flat + Z-score) => AnneSo * Waiting for test from Dimitrios * 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 * Stat FieldTrip: impossible to do Abs(Mean(Sources)) => Is it a problem? * PLS: Partial Least Squares |
Line 164: | Line 276: |
* 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_*) |
|
Line 165: | Line 280: |
* EEG !CeeGraph * NEUROFILE = COHERENCE EEG/video !LongTerm Monitoring |
* EEG CeeGraph |
Line 168: | Line 282: |
* !FieldTrip structures: In / Out | |
Line 170: | Line 283: |
* !FreeSurfer: orig.mgz | * EEGLAB import:<<BR>> * 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) |
Line 173: | Line 290: |
* Shortcuts: * Add Help buttons and menus (in popups, dialog windows...) => Links to the website. * List of all the keyboard and mouse shortcuts * Equivalents for MacOS * Introduction tutorials: * Estimate time to complete each tutorial * 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) * Processes: Describe all the processes * Processes: How to write your own processes (user folder for processes) * Import raw recordings: Add "detect bad trials/channels" in the pipeline * Temporary folder * How to export sources for analysis in SPM * Advanced tutorials: * EEG (How to import an EEG cap) * Epilepsy / spike analysis * Ask users to send their channel files, align on Colin, distribute |
* Reference tutorials on Google scholar + ResearchGate * Cleaning threads on the forum * Add Help buttons and menus (in popups, dialog windows...) => Links to the website. * Finish existing tutorials: * Dipoles * Auditory: Finish scripts * Group MEM/Epilepsy + Epilepsy tutorials * New tutorials: * MEG connectome * Scrambled faces (SPM/MNE-Python) * 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 * Sources: Model evaluation (by simulating recordings) * Time-frequency: Description of "log freq scale" option * Modify a structure manually: Export to Matlab/Import from Matlab * File manipulation: file_short, file_fullpath, in_bst_*... * Description of all fields in MRI and surfaces * Missing in tutorial "Export to SPM": Add section "Compare with Brainstorm" * Missing in page "Cite Brainstorm": Add all the methods used in the software == Current bugs == * Workshops: * Create scouts doesn't work: scout created on the other side of the brain * Import anatomy folder: Out of memory on Win 32bits (restart Matlab) * Compute head model: Out of memory on Win 32bits * Bandpass filter: Out of memory (Auditory workshop) * Bug workshop Michael (Mint 12/gnome3/linux 3.0.0-12, KWin/Mutter/Compiz) * Cannot import two .ds folders at once * Colors inverted in the PSD/TF plots (power vs. log) * Cannot type the name of a channel in "Detect ECG" * Image viewer: Difficult to get to 100% * Canolty maps computation: Fix progress bar * Smooth TF windows that contain multiple plots * Record tab: Text of epoch number is too big on MacOS * 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 when there is a fading effect in the window manager: captures the window * Close figure with coherence results should hide the "frequency" slider * Edit scout in MRI: small modifications cause huge increase of the scout size * Reports: Text size is too small with Java 1.5 (2006b-2007a) * Optimize MRI viewer with patch() instead of image() * Matlab 2014b bug with rmdir/movefile: Enter but never returns from the call * 2DLayout (time series): * Sometimes the lines are not visible * Does not work when DC offset is not removed * 2DLayout (TF): Images are too far apart with EEG 20 channels * Colormap menus: Do not work well on compiled MacOSX 10.9.5 and 10.10 * Event markers are not visible anymore with the sequence: Open MEG, open EOG, close MEG. |
Line 195: | Line 344: |
* Cleaning surfaces: should work with atlases | |
Line 197: | Line 345: |
* mri2scs: convert arguments to meters * Zip files created cannot be open with !WinZip * Waitbars: * Replace old waitbars with java ones * Add a "Cancel" button on waitbars when the bounds are defined (ie. when bst controls the process) * Bug: Menu "Use default EEG cap" doesn't work for a multiple selection (setting the same EEG cap for several subjects) * Bug 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 |
* Interpolations: Use scatteredInterpolant, griddedInterpolant, triangulation.nearestNeighbor (2014b) |
Line 205: | Line 347: |
* Bug in_bst_data_multi: If trials have different sizes, output is random (the one of the first file)... * Shared kernels: do the "get bad channels" operation in a different way (reading all the files is too slow) * Write shepards.m with new algorithm for nearest neighbors * Use Matlab Coder to compile / optimize some processes * Optimize calls to bst_get, now study and subject have necessarily the same folder name |
* Shared kernels: "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 * Fix all the 'todo' blocks in the code * Replace handle "0" with bst_get('groot') * At the end of bst_startup in compiled mode, replace loop with waitfor(jFrame) * Error message: Add a link to report directly the bug on the forum * in_bst_results (isFull=1): DataFile should be relative |
What's next
A roadmap to the future developments of Brainstorm.
Current topics
Documentation
- New online tutorials (work in progress)
Source modeling
- Implementation of a new unified minimum norm/beamformer framework (work in progress)
Functional connectivity
- Significance thresholding of the connectivity matrices (2016)
Computation
- Removing the dependence to the Java interface to run in headless mode (not started)
- Interacting directly with distributed computing systems (not started)
Compatibility
Reading and writing FieldTrip structures (work in progress)
Calling FieldTrip functions from the pipeline (work in progress)
Recordings
Nicer 2D topographies, standardized (using FieldTrip .lay files?)
- 2DLayout:
- Use the same standard positions, too much space between sensors (Recordings + TF)
- Overlay multiple conditions
RAW files: Doesn't work when changing page => need refresh of GlobalData.Preferences.TopoLayoutOptions.TimeWindow
- Same shortcuts as the raw file viewer (right-click + move for gain)
- RAW file viewer:
- Pre-load next page of recordings
- Events: advanced process for recombining.
Example: http://www.erpinfo.org/erplab/erplab-documentation/manual/Binlister.html
- Bad channels specified at the program level (for sites that have permanent bad channels: AS)
- 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
- 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
Interface
- Colormaps:
- Manage multiple custom colormaps
- Allow brightness/contrast manipulations on the custom colormaps
- Create a colormap similar to MNE, where extrema are bright
- Global colormap max: Should get the maximum across all the open files
- Open new figures as tab (docked in the Figures window)
- Copy figures to clipboard (with the screencapture function)
- Removing all the CTRL and SHIFT in the keyboard shortcuts
- Display warning before opening files that are too big
Connectivity
- Thresholding the connectivity matrices
- t-tests on connectivity measures
- Multi-tapers?
Graph view:
- Re-write using pure Matlab code and smoothed graphics
- Fixed scales for intensity sliders
- Text bigger
- Too much data in appdata
- Fixed scales for intensity sliders
- Add "=" shortcut for having graphs with similar configurations
- Disable zoom in one region (serious bugs)
- Coherence:
- Average cross-spectra instead of concatenating epochs (to avoid discontinuities)
- Granger:
- Crashes sometimes: improve stability
- Re-write and optimize code
- Add progress bar
- PLV:
- Add p-values
- Remove evoked
- Optimize code
- Add time integration
- Unconstrained sources
- PAC:
- Refine frequency vector of low frequencies
- How many central frequencies to use in bst_pac?
- Change filters: no chirplet functions
- bst_freqfilter: Use nfcomponents like in bst_pac
- Esther recommended a larger frequency binning of the PAC estimation
- Other metrics:
- Coherence by bands: bst_coherence_band_welch.m
- Granger by bands: bst_granger_band.m
- Inter-trial coherence
Tutorial coherence [1xN] : Reproduce FieldTrip results?
Processes
- ICA:
- Exploration: Add window with spectral decomposition (useful for muscle artifacts)
Comparison JADE/Infomax:
http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0030135- Add methods: SOBI, Fastica, AMICA/CUDICA (recommended by S Makeig)
Dimension reduction with PCA adds artifacts: Not done by default in EEGLAB
Contact: Stephen Shall Jones ( shall-jones@infoscience.otago.ac.nz )
Student Carl Leichter detailed this in his thesis- S Makeig: Use ICA to select the IC of interest instead of only removing artifacts
- Display of spectrum for components (PSD/FFT)
- 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 for the menu "Add process"
SSP:<<BR>>
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:
- Offer option: bst_bandpass_fft / bst_bandpass_filter
- Rewrite without the forced low-pass filter at Fs/3
- Show warning when using inappropriate high-pass filter (precision too high)
- Use FIR filter
- Spectral flattening (John):
- ARIMA(5,0,1): Apply on the signal before any frequency/connectivity/PAC analysis
- PSD:
- Rewrite to have the same input as coherence
- Normalize with the total power (TF/sum(TF,3))
Remove line noise: http://www.nitrc.org/projects/cleanline
- Interpolate the bad channels
- Band-limited power envelope
- Reports:
- Save as HTML / PDF
- Do not display the intermediate files
- Pipeline editor:
- Add loops over subjects/conditions/trial groups
- Time-frequency:
- Standardize using: diff before calculation + cumsum (checkbox "flatten data")
- Frequency bands: extended syntax (ex: [2 3 4], 10:5:90, ...)
- 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
- Impossible to keep complex values for unconstrained sources
- Pad short epochs with zero values for getting lower frequencies
- 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
- Allow the detection on differences of signals (bipolar montages)
- 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
Source modeling
- Dipoles:
- Finish dipole scanning (allow the tab to control multiple figures separately)
- Dipole fitting: We will not implement non-linear fits, recommended use of dense volume grids
- panel_dipoles: Doesn't work with multiple figures
- Read easily dipole coordinates: Click on one selects it and open the panel Get coordinates
- Panel Get coordinates: Add button "find maximum"
- Create scout form maximum: Not available yet for mixed/volume head model.
- 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:
- Test volume sources with all the subsequent processes (timefreq, stat...)
- Optimize: 3D display (better than 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
- Display volume scouts and surface scouts at the same time
- Process "Extract scouts time series": Add PCA option (replace isnorm with choice PCA/Norm)
- BEM: Fix unstable results when one vertex is too close from the layers (5mm ?)
- Hui-Ling beamformers:
- More explanations about what is in NAI and Spatial filters
Explain that is this is better to study effects extended in time (Ntime > Nsensors)
- Group LCMV+MCB
- Condition LEFT median nerve: very bad results
Menu Sources > Simulate recordings:
- Do not close the 3D figures after generating a new file
- Add a process equivalent to this menu
Anatomy
Problem of difference between RAS and TkRegRAS: http://neuroimage.usc.edu/forums/showthread.php?1958-SEEG-electrodes-and-subject-s-anatomy-are-not-alligned
- 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
Problem t-test on unconstrained sources: (convert to flat + Z-score) => AnneSo
- Waiting for test from Dimitrios
- Question of Gaussianity of the samples: take a subset of samples + Kolmogorov-Smirnov / Shapiro-Wilk test
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
Stat FieldTrip: impossible to do Abs(Mean(Sources)) => Is it a problem?
- PLS: Partial Least Squares
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:
- 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
Reference tutorials on Google scholar + ResearchGate
- Cleaning threads on the forum
Add Help buttons and menus (in popups, dialog windows...) => Links to the website.
- Finish existing tutorials:
- Dipoles
- Auditory: Finish scripts
- Group MEM/Epilepsy + Epilepsy tutorials
- New tutorials:
- MEG connectome
- Scrambled faces (SPM/MNE-Python)
- 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
- Sources: Model evaluation (by simulating recordings)
- Time-frequency: Description of "log freq scale" option
- Modify a structure manually: Export to Matlab/Import from Matlab
- File manipulation: file_short, file_fullpath, in_bst_*...
- Description of all fields in MRI and surfaces
- Missing in tutorial "Export to SPM": Add section "Compare with Brainstorm"
- Missing in page "Cite Brainstorm": Add all the methods used in the software
Current bugs
- Workshops:
- Create scouts doesn't work: scout created on the other side of the brain
- Import anatomy folder: Out of memory on Win 32bits (restart Matlab)
- Compute head model: Out of memory on Win 32bits
- Bandpass filter: Out of memory (Auditory workshop)
- Bug workshop Michael (Mint 12/gnome3/linux 3.0.0-12, KWin/Mutter/Compiz)
- Cannot import two .ds folders at once
- Colors inverted in the PSD/TF plots (power vs. log)
- Cannot type the name of a channel in "Detect ECG"
- Image viewer: Difficult to get to 100%
- Canolty maps computation: Fix progress bar
- Smooth TF windows that contain multiple plots
- Record tab: Text of epoch number is too big on MacOS
- 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 when there is a fading effect in the window manager: captures the window
- Close figure with coherence results should hide the "frequency" slider
- Edit scout in MRI: small modifications cause huge increase of the scout size
- Reports: Text size is too small with Java 1.5 (2006b-2007a)
- Optimize MRI viewer with patch() instead of image()
- Matlab 2014b bug with rmdir/movefile: Enter but never returns from the call
- 2DLayout (time series):
- Sometimes the lines are not visible
- Does not work when DC offset is not removed
- 2DLayout (TF): Images are too far apart with EEG 20 channels
- Colormap menus: Do not work well on compiled MacOSX 10.9.5 and 10.10
- Event markers are not visible anymore with the sequence: Open MEG, open EOG, close MEG.
Geeky programming details
- Hide Java panels instead of deleting them
- Interpolations: Use scatteredInterpolant, griddedInterpolant, triangulation.nearestNeighbor (2014b)
- bst_warp and channel_project: Use tess_parametrize_new instead of tess_parametrize
- Shared kernels: "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
- Fix all the 'todo' blocks in the code
- Replace handle "0" with bst_get('groot')
- At the end of bst_startup in compiled mode, replace loop with waitfor(jFrame)
- Error message: Add a link to report directly the bug on the forum
in_bst_results (isFull=1): DataFile should be relative