Future developments
Unsolved problems
Influence of the software used to extract surfaces (BrainVisa, BrainSuite, FreeSurfer)
- Type of cortex surface to use: grey/white, grey/csf, midsurface ?
- How to get good surfaces for BEM ?
Group analysis, what to do?
1) localization on individual brain + interpolation on MNI brain
2) localization on MNI brain
Source Modeling
- Use noise covariance: compute or import, store, and integrate in inverse modeling
- Test EEG forward models with smulations
- BFS estimation from scalp surfece: use only the vertices that are above the cerebellum
- BFS estimation from cortex surface: use a convex enveloppe
- BEM: Alexandre Gramfort / OpenMEEG / INRIA
Minimum Norm: Rewrite code
John Minimum Norm: Unconstrained and loose constrain (like in Matti's MNE)
John - Dipole fitting
- RAP-MUSIC
- FEM Toolbox ?
- Magnetic extrapolation: use SSP
Problem: "Projector" field (SSP vectors) is stored in ChannelFile instead of DataFile, but when we load only ChannelFile=> "Projector" not saved...
Overlapping spheres: Somatotopy > S02 > Right-1: algorithm crashes
New interface elements
- Scripting system: for manipulating the database from a matlab script
- Time-frequency display
- Simulation: synthesize pseudo data-files from a cortex patch (duration, amplitude, noise)
- Add menu to create a new result/data/headmodel file from a single matrix in Matlab workspace
Add menu: File > save a brainstorm full protocol (produces a zipped package that can be directly imported in another bst installation). Need: import zipped package
Add menu: File> Make a copy of this file
- Movies: Use JAVE (Java)
- Screen captures: Use Yair Altman functions (in Matlab Central)
- Drag'n'drop files in tree
- Stand-alone version of MRI and surface viewers
Display PCA components for scouts
Sheraz, Rey
D = Kernel(vertices, channel) . Data(ch, time)
[U,S,V] = svd(D,'econ')
Dpca = V(:,1) . S(1,1);
Anatomy
Warping : deformation of template MRI+surface towards a set of points (eg. EEG electrodes, only fiducials, Polhemus points) to create a pseudo-individual anatomy.=> Integrer fonctions de Lyon
- Remap results computed on downsampled surfaces to initial surfaces
Segmentation of cortex in brodman areas (one scout = one area)
Karim - Check Talairach coordinates (MRIViewer)
- Add a menu : "set as template" on the subject/anat (to let user create default anatomies)
- 2D/3D recordings topography:
- Improve tess refine (add point center of face, interp in spherical coordinates)
- Use Rey's surfaces (registered with each channel file)
Processes / stat
- Regression based on several topographies: for Lionel Naccache
- Causality, coherence
- Expand scout based on correlation: Ask Dimitrios
- Resample:
- Import time: remove baseline before, or find another trick. If not, there is a big artifact at the beginning
Cannot process by blocks, data block size changes
process_apply crashes - Find a free version of Matlab's "resmple" function (Signal Processing Toolbox)
- Band-pass filtering: Find a free version (that does not requires Signal Processing Toolbox)
- Averages/differences/stat: process by blocks (like process_apply.m)
- ANOVA (need a subdivision of the conditions in factors)
Segmentation in microstates
Contacter Julien Lefevre et Christoph Michel - For long recordings: integrate signal / convolve with HRF function (to create fMRI-like datasets)
- Extend the "clusters" use to the statistical tests
- Save the the variance when computing averages
- Grand-average: adjust to individual lags
- Optical flow
Group analysis
- Project on default anatomy: do by blocks
Add possibility to filter (temporaly AND spacialy) the sources before comparing subjects
=> Use bst_smooth_fun.m- Normalize amplitudes across different subjects ? (subjects can have very different amplitudes of repsonse)
Register different MEG runs (recompute fields for a different set of sensors)
Needed to compare recordings from different runs.
=> Use MEGCoregister from old brainstorm
Display
- Display EEG/MEG time series in columns
- MRIViewer: add a neurological / radiological radio button
- Sources on MRI displayed as contact sheet slices (in any orientation)
- Magnetic extrapolation:
- Do the same thing with EEG
- Optimize Rey's function
- Add waitbar
- 2DLayout: Display time cursor
- 2DLayout: Enable channel selection
- Projection of MEG field on the scalp (with bst_extrapm)
Add time markers (viz only) : displayed in all the time series
=> Use automatically these values for in all the fields time values are required (combo-box ?)
=> Generate a list of markers when a stat value is > a given valueReplace old waitbars with java ones
=> Add a "Cancel" button on waitbars when the bounds are defined (when we control the process)- Better cortex render: interpolate on refined mesh + uniformize dark curvature areas
- Add an application icon for Brainstorm windows and figures
- Use a more representative icon for "result" / "sources" (ex. cortex with colors)
I/O
- Read / visualize / process long recordings (save data in binary format, or matlab files with more than one 'F' matrix)
Rewrite all the I/O layer to abstract the file format while reading in a file
Needed for raw viewer Output FreeSurfer
- Output Fiff
- In/out 4D/BTi (data: ask Rey, or Christian Benard from Marseille)
In/out FieldTrip structures
- In/out Gifti format
- In/out MEG160 (KIT)
- In/out Dicom
- In/out LENA format (new one)
- In Brain Products Vision Analyzer
- In EEG BESA
In EEG BrainVision
- In EEG EEProbe
- In Analyze: Detect endianness with header size
In/out cortical sources <-> 4D Analyze files (for interaction with SPM)
- Define scouts from SPM / Analyze 3D masks
- Fix Analyze output functions (cannot be imported in SPM)
- Import RAW data (Neuroscan, FIF): Remove baseline at importation
- Group interfaces for all the raw formats (EGI, Neuroscan, FIF, CTF, LENA)
Programming details
- Single trial studies:
- when parsing directory, do not read all the files, one is enough
- using only one shared "linkresults" file for all the trials
- Clean bst_headmodeler.m/ bst_sourceimaging.m
- Pluginization for : Forward models, Inverse models, I/O functions, Processes
- Use parfor instead of for when distributed computed toolbox available
- Use bsxfun when possible
- Optimize tree refresh speed: profile tree_createNodeStudy while pressing F5 many times