16999
Comment:
|
23171
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
== 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 ==== Functional connectivity ==== * Significance thresholding of the connectivity matrices ==== Computation ==== * Removing the dependence to the Java interface to run in headless mode * Interacting directly with distributed computing systems ==== Compatibility ==== * Reading and writing FieldTrip structures * Calling FieldTrip functions from the pipeline <<BR>><<BR>> |
<<TableOfContents(2,2)>> |
Line 25: | Line 7: |
* Nicer 2D topographies, standardized (using FieldTrip .lay files?) * 2DLayout (recordings + TF): Use the same standard positions, too much space between sensors * RAW file viewer: |
* Default montages for EEG (sensor selection) * Sleep scoring wish list (Emily C): * Configurable horizontal lines (for helping detecting visually some thresholds) * Mouse ruler: Measure duration and amplitude by dragging the mouse. * Automatic spindle detector * https://neuroimage.usc.edu/forums/t/page-overlap-while-reviewing-raw-file-a-way-to-set-to-0/11229/13 * RAW file viewer speed: * Downsample before filtering? (attention to the filter design) * Add parameter to make the visual downsampling more or less aggressive |
Line 29: | Line 17: |
* 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 |
* Keep the filter specifications in memory instead of recomputing for every page * MEG/EEG registration: Apply the same transformation to multiple runs * Create heat maps: Maybe with matlab function heatmap? * BioSemi: Add menu "Convert naming system" to rename channels into 10-10 (A1=>FPz) == Interface == * Add a warning when computing a forward model with > 100000 sources (check selection) * Snapshot: Save as image / all figures (similar to Movie/all figure) * Generalize the use of the units (field .DisplayUnits): Rewrite processes to save the units correctly |
Line 38: | Line 27: |
* 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<<BR>>Or allow the users to edit the LowStop parameter in bst_bandpass. * Show easily recordings maximum/values in the file viewer |
* Allow brightness/contrast manipulations on the custom colormaps * Global colormap max: Should get the maximum across all the open files |
Line 49: | Line 30: |
* Contact sheets & movies: use average of time windows instead of single instants, for each picture. * Contact sheets: Allow explicit list of times in input (+ display as in MNE-Python with TS) * Display CTF coils: Show discs instead of squares * Progress bar: Add a "Cancel" button * Error message: Add a link to report directly the bug on the forum * Reorganize menus (Dannie's suggestion): {{attachment:dannie_menus.png||width="382",height="237"}} |
|
Line 51: | Line 39: |
* 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 |
* Thresholding and stat tests for connectivity matrices * Connectivity on unconstrained sources: "Default signal extraction for volume grids should be the time series of the first principal component of the triplet signals after each has been zero-meaned" (SB) * Connect NxN display: * Graph on sensors: does not place the sensors correctly in space * Display as image: Add legend of the elements along X and Y axis * Display as time series: Display warning before trying to open too many signals * Time-resolved correlation/coherence: Display as time bands * Weighted Phase Lag Index (WPLI) * Coherence: Average cross-spectra instead of concatenating epochs (to avoid discontinuities)<<BR>>Explore inter-trial approaches (Esther refers to chronux toolbox) * Granger: Check for minimum time window (Esther: min around 500-1000 data points) * PLV: * Remove evoked * Add time integration * Unconstrained sources * Add warning when running of short windows (because of filters) |
Line 66: | Line 56: |
* 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" |
* Plugin manager: * Export all the software environment to a .zip file (brainstorm + all plugins) * Generate fully reproducible scripts, including all the interactive/graphical parts: * Saving all the interactive operations as process calls * Improving the pipeline editor to handle loops over data files or subjects * Keeping a better track of the provenance of all the data (History field, and maybe more uniform file names) * Add MNE-Python functions: * scikit-learn classifiers * https://neuroimage.usc.edu/forums/t/ica-on-very-long-eeg/23556/4 * https://neuroimage.usc.edu/forums/t/best-way-to-export-to-mne-python/12704/3 * Reproduce other tutorials / examples * Point-spread functions (PSFs) and cross-talk functions: https://mne.tools/stable/auto_examples/inverse/plot_psf_ctf_vertices.html#sphx-glr-auto-examples-inverse-plot-psf-ctf-vertices-py * Spatial resolution metrics in source space:<<BR>>https://mne.tools/stable/auto_examples/inverse/plot_resolution_metrics.html#sphx-glr-auto-examples-inverse-plot-resolution-metrics-py * Change the graphic renderer from Matlab * Add FieldTrip functions: * ft_sourceanalysis: * Check noise covariance * Check all the options of all the methods * Single trial reconstructions + noise covariance? * Filters?? http://www.fieldtriptoolbox.org/example/common_filters_in_beamforming * Beamformers: Save ftSource.avg.mom <<BR>>http://www.fieldtriptoolbox.org/workshop/meg-uk-2015/fieldtrip-beamformer-demo * http://www.natmeg.se/ft_beamformer/beamformer.html * http://www.fieldtriptoolbox.org/tutorial/beamformingextended * Baseline? Two inputs? * ft_prepare_heamodel: Add support from BEM surfaces from the Brainstorm database * Freqanalysis: ITC * ft_volumereslice: http://www.fieldtriptoolbox.org/faq/how_change_mri_orientation_size_fov * ft_freqanalysis * ft_combineplanar * Optimization: * Use CUDA for speeding up some operations (filtering, wavelets, etc) * Use Matlab Coder to optimize: Wavelets, bandpass filter, sinusoid removal * Pipeline editor: * Bug: After "convert to continuous", the time of the following processes should change * Add loops over subjects/conditions/trial groups * Events: Allow selection from a drop-down list (similar to option "channelname" in panel_process_selection) * ITC: Inter-trial coherence (see MNE reports for group tutorial)<<BR>>http://www.sciencedirect.com/science/article/pii/S1053811916304232 * ICA: * Add Alex's suggestions: https://neuroimage.usc.edu/forums/t/ica-on-very-long-eeg/23556/4 * Add methods: SOBI, Fastica, AMICA/CUDICA/CUDAAMICA (recommended by S Makeig) * Why doesn't the ICA process converge when using 25 components in the EEG tutorial? * Add an option to resample the signals before computing the ICA decomposition * Exploration: Add window with spectral decomposition (useful for muscle artifacts) * Export IC time series (and then compute their spectrum): solves the problem above * Comparison JADE/Infomax: <<BR>> http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0030135 * 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 * Import ICA matrices available in EEGLAB .set files * EEGLAB recommends ICA + trial rejection + ICA again: Impossible right now with Brainstorm<<BR>>(http://sccn.ucsd.edu/wiki/Chapter_09:_Decomposing_Data_Using_ICA) * ICA+machine learning: https://www.ncbi.nlm.nih.gov/pubmed/28497769 * Automated artifact rejection: https://arxiv.org/abs/1612.08194 * Use EYE-EEG: EEGLAB toolbox for eye-tracker guided ICA (Olaf Dimigen): http://www2.hu-berlin.de/eyetracking-eeg/ |
Line 72: | Line 109: |
* Make average the default option | |
Line 74: | Line 110: |
* Show where the attenuation is projected:<<BR>>(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:<<BR>><<BR>> {{{ 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: Rewrite to have the same input as coherence |
|
Line 93: | Line 111: |
* Interpolate the bad channels * ICA for cleaning eye movements in EEG low density (SSP don't work well) * 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 102: | Line 112: |
* 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 ?) |
* Optimization: bst_timefreq (around l.136), remove evoked in source space: Average should be computed in sensor space instead of source space (requested by Dimitrios) * Short-time Fourier transform: http://www.mikexcohen.com/lectures.html * Bug: Display logs as negative * Bug: 3D figures: Colormaps with "log" option doesn't work * Bug: Difference of power displayed in log: problems (Soheila) |
Line 108: | Line 118: |
* 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<<BR>>http://psychophysiology.cpmc.columbia.edu/software/CSDtoolbox/index.html * Other processes:<<BR>> * 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) |
* Impossible to keep complex values for unconstrained sources * Hilbert with time bands very slow on very long files (eg. 3600s at 1000Hz) because the time vector is still full (10^7 values): save compressed time vector instead. * When normalizing with baseline: Propagate with the edge effects marked in TFmask * Allow running TF on montages * Review continuous files in time-frequency space (for epilepsy) * Bug when computing TF on constrained and unconstrained scouts at the same time (in mixed head models for instance): uses only the constrained information and doesn't sum the 3 orientations for the unconstrained regions. * Use field process field "Group" to separate Input/Processing/Output options * Use new Matlab functions: movmean, movsum, movmedian, movmax, movmin, movvar, movstd |
Line 135: | Line 128: |
* Optimize startup speed * Start Brainstorm without Java (-nodesktop) * Sort files by comment |
|
Line 139: | Line 129: |
* 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 |
* Matrix files: Allow to be dependent from other files |
Line 147: | Line 133: |
* Allow matrix files to be attached to other files | * Default headmodel lost when reloaded: Keep selection on the hard drive (in brainstormstudy.mat) * Auto-save: * protocol.mat can be too big: do not store the results links in it (and recreate when loading)- http://neuroimage.usc.edu/forums/t/abnormally-slow-behavior/2065/10 * Improve auto-save: add tracking file next to protocol.mat, do not save all the time, only when closing app, and reload protocol at stratup if tracking file is still there |
Line 152: | Line 143: |
* Alternative, with less limitations: http://research.cs.wisc.edu/htcondor/ | |
Line 155: | Line 145: |
* Documentation: http://fieldtrip.fcdonders.nl/faq#distributed_computing_with_fieldtrip_and_matlab | * Documentation: https://www.fieldtriptoolbox.org/faq/what_are_the_different_approaches_i_can_take_for_distributed_computing/ |
Line 159: | Line 149: |
* Finish dipole scanning (allow the tab to control multiple figures separately) * 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 |
* Unconstrained to flat: Default PCA for stat and connectivity? * Sensitivity maps: https://mne.tools/stable/auto_examples/forward/plot_forward_sensitivity_maps.html * Reproduce results in "Simultaneous human intracerebral stimulation and HD-EEG, ground-truth for source localization methods": https://www.nature.com/articles/s41597-020-0467-x * Use eLORETA instead of sLORETA? <<BR>>https://neuroimage.usc.edu/forums/t/compute-eeg-sources-with-sloreta/13425/6 * "eLORETA algorithm is available in the MEG/EEG Toolbox of Hamburg (METH)": https://www.biorxiv.org/content/biorxiv/early/2019/10/17/809285.full.pdf * Point-spread and cross-talk functions (code in MNE-Python): * https://www.biorxiv.org/content/biorxiv/early/2019/06/18/672956.full.pdf * https://github.com/olafhauk/EEGMEGResolutionAtlas * Dipoles: * Project individual dipoles files on a template * panel_dipoles: Doesn't work with multiple figures * Project sources: Very poor algorithm to project sub-cortical regions and cerebellum (algorithm to fit surfaces should be imrpoved) * Menu head model > Copy to other conditions/subjects (check if applicable first) * Menu Sources > Maximum value: Doesn't work with volume or mixed head models * Mixed head models: * Bug when displaying interpolated in MRI viewer |
Line 175: | Line 166: |
* Scouts 3D * Test volume sources with all the subsequent processes (timefreq, stat...) |
|
Line 179: | Line 168: |
* 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' ) |
* Menu Sources > Simulate recordings: * Do not close the 3D figures after generating a new file * Add a process equivalent to this menu * Panel Get coordinates: Add button "find maximum" * BEM single sphere: Get implementation from MNE * Unconstrained sources: * Stat and connectivity: what to do? (re-send email John+Sylvain) |
Line 188: | Line 176: |
* 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 * Dipole fitting: We will not implement non-linear fits, recommended use of dense volume grids * Display volume scouts and surface scouts at the same time |
* Process "Extract scouts time series": Add PCA option (replace isnorm with choice PCA/Norm) * Add eyes models to attract eye activity * Display spectrum scouts (PSD plots when clicking on "Display scouts" on PSD/full cortex) |
Line 200: | Line 181: |
* Project all sub-cortical structures to default anatomy * Warping: Scale option has to be fixed, it is currently very unstable |
* FastSurfer: https://deep-mi.org/research/fastsurfer/ * '''SimNIBS''': Replace HEADRECO with CHARM (headreco will be removed in SimNIBS 4) * Infant templates: Add electrodes positions (at least 10-10) * Neurodev MRI database: https://jerlab.sc.edu/projects/neurodevelopmental-mri-database/ * Multi-Scale Brain Parcellator (Lausanne2008): * [[https://github.com/sebastientourbier/multiscalebrainparcellatorhttps://hub.docker.com/r/sebastientourbier/multiscalebrainparcellator|https://github.com/sebastientourbier/multiscalebrainparcellator]] * [[https://github.com/sebastientourbier/multiscalebrainparcellatorhttps://hub.docker.com/r/sebastientourbier/multiscalebrainparcellator|https://hub.docker.com/r/sebastientourbier/multiscalebrainparcellator]] * https://multiscalebrainparcellator.readthedocs.io/en/latest/ * Registration: * Getting electrode positions from 3D scanners: https://sccn.ucsd.edu/wiki/Get_chanlocs * GARDEL: http://meg.univ-amu.fr/wiki/GARDEL:presentation * Use the same registration for multiple recording sessions that have already re-registered previously (eg. with MaxFilter) * When linking multiple EEG recordings including 3D positions, do the registration only once and copy it to all the runs * Select and remove bad digitized head points before automatic coregistration * Load the MNE -transf.fif: http://neuroimage.usc.edu/forums/showthread.php?2830 * MRI Viewer: * Pan in zoomed view (shift + click + move?) * Zoom in/out with mouse (shift + scroll?) * Ruler tool to measure distances * Display scouts as additional volumes * Render surface envelope in the MRI as a thin line instead of the full interpolation matrix<<BR>>Or use inpolyhedron to get a surface mask and then erode it to get the volume envelope * Optimize computation interpolation MRI-surface (tess_tri_interp) => spm_mesh_to_grid * BrainSuite: * Add new labels to all BrainSuite anatomy templates * Use same colors for left and right for anatomical atlases * Use for volume coregistration (rigid / non-rigid) * USCBrain: Add default electrodes positions * FEM templates for different ages: * Pediatric head atlases: https://www.pedeheadmod.net/pediatric-head-atlases-v1-2/ * https://iopscience.iop.org/article/10.1088/2057-1976/ab4c76 * https://www.biorxiv.org/content/biorxiv/early/2020/02/09/2020.02.07.939447.full.pdf * John Richards: https://www.nitrc.org/frs/?group_id=1361 |
Line 204: | Line 220: |
* Project scouts betweens subjects and between hemispheres | |
Line 206: | Line 221: |
* Sort scouts by region in process options | |
Line 207: | Line 223: |
* 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 |
* Project from one hemisphere to the other using registered spheres/squares (http://neuroimage.usc.edu/forums/t/how-to-create-mirror-roi-in-the-other-hemisphere/5910/8) * Parcellating volume grids: scikit-learn.cluster.Ward * Major bug when importing surfaces for an MRI that was re-oriented manually * Surface>Volume interpolation: Use spm_mesh_to_grid * Bug: Hide scouts in the preview of the grid for volume head models * Geodesic distance calculations:<<BR>>https://www.mathworks.com/matlabcentral/fileexchange/6110-toolbox-fast-marching * Allen Institute gene expression atlases: Import in Brainstorm as source maps and display on cortex == ECOG/SEEG == * Electrodes models: Import / export * Contact positions: Import / set / detect * New option: Align on none|inner|cortex to replace ECOG-mid * Add history: Save modifications and transformations applied to the channel files (Marcel) * Project contact positions across subjects or templates (Marcel) * Add menu to import implantation channel file in imported recordings * SEEG/ECOG: Identify contacts in resected areas / identify ROIs for each contact * SEEG/ECOG: Identify contacts in a given anatomical region (volume scout, surface mesh, or label in a volume atlas) / allow extracting the signals from all the contacts in an ROI * Automatic segmentation of CT: * GARDEL: http://meg.univ-amu.fr/wiki/GARDEL:presentation * SEEG DEETO Arnulfo 2015: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-015-0511-6 * Used routinely at Niguarda Hospital + other hospitals worldwide, reliable tool. * To be used with SEEG-assistant/3DSlicer: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-017-1545-8 * ECOG Centracchio 2021: https://link.springer.com/content/pdf/10.1007/s11548-021-02325-0.pdf * Classifier on thresholded CT: https://github.com/Jcentracchio/Automated-localization-of-ECoG-electrodes-in-CT-volumes * SEEG Granados 2018 (no code shared): https://link.springer.com/content/pdf/10.1007/s11548-018-1740-8.pdf * ECOG: * Project and display contacts on cortex surface should consider the rigidity of the grids: Contacts cannot rotate, and distance between contacts should remain constant across runs * Method for contacts projection: https://pdfs.semanticscholar.org/f10d/6b899d851f3c4b115404298d7b997cf1d5ab.pdf * ECOG: Brain shift: When creating contact positions on a post-implantation image, the brain shift should be taken into account for creating images of the ECOG contacts on the pre-op brain => iELVis (http://ielvis.pbworks.com/w/page/116347253/FrontPage) * Display: * Bad channels: Contacts greyed out instead of ignored (Marcel) * Display time in H:M:S * Display curved SEEG electrodes * Export list of contacts with a probability of anatomical regions from various atlases: https://neuroimage.usc.edu/forums/t/seeg-contacts-anatomical-location/14756 * Detection CEEP stim artifacts: Use ImaGIN code ImaGIN_StimDetect |
Line 219: | Line 260: |
* ANOVA: Use LENA functions | * ANOVA: * Which functions to use? * Write panel similar to Process1 and Process2 to allow the |
Line 222: | Line 265: |
* 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<<BR>> => 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 |
* Quality control before statistics, on condition averages across subjects:<<BR>>mean(baseline)/std(baseline): shows bad subject quickly. * Use SurfStat: Impements interesting things, like an analytical cluster-based p-value correction (Random-field theory which is used in SPM) - Peter * Export to R or SPSS for advanced stat |
Line 245: | Line 270: |
* 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_*) |
* Bug import multiple files: use same "time" for all files * BIDS import: * Read real fiducials (OMEGA) / transformation matrices: * https://groups.google.com/g/bids-discussion/c/BeyUeuNGl7I * https://github.com/bids-standard/bids-specification/issues/752#issuecomment-795880992 * Read associated empty room * Test all the BIDS examples * BIDS Export: * Add events tsv, channel tsv, EEG, iEEG * '''XDF import''': Use FieldTRip or the EEGLAB plugin, contact Martin Bleichner (Oldenburg)<<BR>>https://github.com/sccn/xdf/blob/master/xdf_sample.xdf * DICOM converter: * Add dcm2nii (MRICron) * Add MRIConvert * FieldTrip: Import/Export time-frequency: * Export: http://neuroimage.usc.edu/forums/t/export-time-frequency-to-fieldtrip/1968 * Import: http://neuroimage.usc.edu/forums/t/import-time-frequency-data-from-fieldtrip/2644 * 4D file format: * Use reader from MNE-Python: mne.io.read_raw_kit (doesn't require Yokogawa slow library) * Reference gradiometers: Keep the orientation of the first or second coil? * Reference gradiometers: Add the sensor definition from coil_def.dat * Validate with phantom recordings that noise compensation is properly taken into account * The noise compensation is considered to be always applied on the recordings, not sure this assumption is always correct * 4D phantom tutorial (JM Badier?) |
Line 251: | Line 297: |
* XLTEK: https://github.com/danielmhanover/OpenXLT * Persyst .lay: https://github.com/ieeg-portal/Persyst-Reader * Nervus .eeg: https://github.com/ieeg-portal/Nervus-Reader * Biopac .acq: https://github.com/ieeg-portal/Biopac-Reader |
|
Line 252: | Line 302: |
* 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 |
* BST-BIN: Add compression to .bst |
Line 258: | Line 304: |
* SPM .mat/.dat: Fix the import of the EEG/SEEG coordinates * Get acquisition date from files: Missing for 4D * Support for OpenJData / JNIfTI: https://github.com/brainstorm-tools/brainstorm3/issues/284 |
|
Line 260: | Line 309: |
* 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 * Modify a structure manually: Export to Matlab/Import from Matlab * 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 <video> tag (save videos in .ogg) |
* Tutorial OMEGA/BIDS: * Update the organization of derivatives folder (same for ECOG tutorial) * Add review of literature for the resting state MEG * Download example datasets directly from the OMEGA repository * New tutorials: <<BR>> * Other public datasets: [[https://github.com/INCF/BIDS-examples/tree/bep008_meg|https://github.com/INCF/BIDS-examples/tree/bep008_meg/]] * EEG/research * FieldTrip ECOG tutorial: http://www.fieldtriptoolbox.org/tutorial/human_ecog * FieldTrip cortico-muscular coherence tutorial: http://www.fieldtriptoolbox.org/tutorial/coherence * Reproduce tutorials from MNE-Python: https://martinos.org/mne/stable/tutorials.html * Cam-CAN database: https://camcan-archive.mrc-cbu.cam.ac.uk/dataaccess/<<BR>>(download new datasets, including maxfiltered files and manual fiducial placements) * MEG steady-state / high-gamma visual / frequency tagging * BIDS-EEG example datasets * Reproduce results from "Simultaneous human intracerebral stimulation and HD-EEG, ground-truth for source localization methods": https://www.nature.com/articles/s41597-020-0467-x * Stand-alone ICA tutorial * Workflows FieldTrip: http://www.fieldtriptoolbox.org/faq/what_types_of_datasets_and_their_respective_analyses_are_used_on_fieldtrip * Count GitHub clones in the the download stats * Deface the MRIs of all the tutorials |
Line 296: | Line 329: |
* Workshops: * Create scouts doesn't work: scout created on the other side of the brain * Import anatomy folder: Out of memory sometimes (restart Matlab) * 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% |
* MacOS 10.14.5 (Mojave): * Toggle buttons do not show their status * Panel Record: Text is too large for text boxes * Image viewer: * Difficult to get to 100% * Buggy on some systems * 2DLayout: * (TF) Units are weird with % values * (TF) Difficult to navigate in frequencies: Scaling+changing frequency resets the scaling * Progress bar: * Doesn't close properly on some Linux systems * Focus requests change workspace when processing constantly (Linux systems) * MacOS bugs: * Buttons {Yes,No,Cancel} listed backwards * Record tab: Text of epoch number is too big * Colormap menus: Do not work well on compiled MacOSX 10.9.5 and 10.10 |
Line 306: | Line 346: |
* 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 |
|
Line 323: | Line 348: |
* Removing all the CTRL and SHIFT in the keyboard shortcuts * Hide Java panels instead of deleting them * mri2scs: convert arguments to meters * Interpolations: Use scatteredInterpolant, griddedInterpolant, triangulation.nearestNeighbor (Matlab 2014b) |
* Replace all calls to inpolyhd.m with inpolyhedron.m * bst_bsxfun: After 2016b, we can use directly the scalar operators (./ .* ...) instead of bsxfun. Update bst_bsxfun to skip the use of bsxfun when possible. * Interface scaling: Rewrite class IconLoader to scale only once the icons at startup instead of at each request of an icon (might improve the speed of the rendering of the tree) * Processes with "radio" and "radio_line" options: Replace with "radio_label" and "radio_linelabel" * Interpolations: Use scatteredInterpolant, griddedInterpolant, triangulation.nearestNeighbor (2014b) |
Line 328: | Line 354: |
* 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) * 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 |
* Shared kernels: "get bad channels" operation in a different way (reading all the files is too slow) |
What's next
A roadmap to the future developments of Brainstorm.
Contents
Recordings
- Default montages for EEG (sensor selection)
- Sleep scoring wish list (Emily C):
- Configurable horizontal lines (for helping detecting visually some thresholds)
- Mouse ruler: Measure duration and amplitude by dragging the mouse.
- Automatic spindle detector
https://neuroimage.usc.edu/forums/t/page-overlap-while-reviewing-raw-file-a-way-to-set-to-0/11229/13
- RAW file viewer speed:
- Downsample before filtering? (attention to the filter design)
- Add parameter to make the visual downsampling more or less aggressive
- Pre-load next page of recordings
- Keep the filter specifications in memory instead of recomputing for every page
- MEG/EEG registration: Apply the same transformation to multiple runs
- Create heat maps: Maybe with matlab function heatmap?
BioSemi: Add menu "Convert naming system" to rename channels into 10-10 (A1=>FPz)
Interface
Add a warning when computing a forward model with > 100000 sources (check selection)
- Snapshot: Save as image / all figures (similar to Movie/all figure)
Generalize the use of the units (field .DisplayUnits): Rewrite processes to save the units correctly
- Colormaps:
- Allow brightness/contrast manipulations on the custom colormaps
- Global colormap max: Should get the maximum across all the open files
- Copy figures to clipboard (with the screencapture function)
Contact sheets & movies: use average of time windows instead of single instants, for each picture.
- Contact sheets: Allow explicit list of times in input (+ display as in MNE-Python with TS)
- Display CTF coils: Show discs instead of squares
- Progress bar: Add a "Cancel" button
- Error message: Add a link to report directly the bug on the forum
Reorganize menus (Dannie's suggestion):
Connectivity
- Thresholding and stat tests for connectivity matrices
- Connectivity on unconstrained sources: "Default signal extraction for volume grids should be the time series of the first principal component of the triplet signals after each has been zero-meaned" (SB)
- Connect NxN display:
- Graph on sensors: does not place the sensors correctly in space
- Display as image: Add legend of the elements along X and Y axis
- Display as time series: Display warning before trying to open too many signals
- Time-resolved correlation/coherence: Display as time bands
- Weighted Phase Lag Index (WPLI)
Coherence: Average cross-spectra instead of concatenating epochs (to avoid discontinuities)
Explore inter-trial approaches (Esther refers to chronux toolbox)- Granger: Check for minimum time window (Esther: min around 500-1000 data points)
- PLV:
- Remove evoked
- Add time integration
- Unconstrained sources
- Add warning when running of short windows (because of filters)
Processes
- Plugin manager:
- Export all the software environment to a .zip file (brainstorm + all plugins)
- Generate fully reproducible scripts, including all the interactive/graphical parts:
- Saving all the interactive operations as process calls
- Improving the pipeline editor to handle loops over data files or subjects
- Keeping a better track of the provenance of all the data (History field, and maybe more uniform file names)
- Add MNE-Python functions:
- scikit-learn classifiers
https://neuroimage.usc.edu/forums/t/ica-on-very-long-eeg/23556/4
https://neuroimage.usc.edu/forums/t/best-way-to-export-to-mne-python/12704/3
- Reproduce other tutorials / examples
Point-spread functions (PSFs) and cross-talk functions: https://mne.tools/stable/auto_examples/inverse/plot_psf_ctf_vertices.html#sphx-glr-auto-examples-inverse-plot-psf-ctf-vertices-py
Spatial resolution metrics in source space:
https://mne.tools/stable/auto_examples/inverse/plot_resolution_metrics.html#sphx-glr-auto-examples-inverse-plot-resolution-metrics-py- Change the graphic renderer from Matlab
Add FieldTrip functions:
- ft_sourceanalysis:
- Check noise covariance
- Check all the options of all the methods
- Single trial reconstructions + noise covariance?
Filters?? http://www.fieldtriptoolbox.org/example/common_filters_in_beamforming
Beamformers: Save ftSource.avg.mom
http://www.fieldtriptoolbox.org/workshop/meg-uk-2015/fieldtrip-beamformer-demohttp://www.fieldtriptoolbox.org/tutorial/beamformingextended
- Baseline? Two inputs?
- ft_prepare_heamodel: Add support from BEM surfaces from the Brainstorm database
- Freqanalysis: ITC
ft_volumereslice: http://www.fieldtriptoolbox.org/faq/how_change_mri_orientation_size_fov
- ft_freqanalysis
- ft_combineplanar
- ft_sourceanalysis:
- Optimization:
- Use CUDA for speeding up some operations (filtering, wavelets, etc)
- Use Matlab Coder to optimize: Wavelets, bandpass filter, sinusoid removal
- Pipeline editor:
- Bug: After "convert to continuous", the time of the following processes should change
- Add loops over subjects/conditions/trial groups
- Events: Allow selection from a drop-down list (similar to option "channelname" in panel_process_selection)
ITC: Inter-trial coherence (see MNE reports for group tutorial)
http://www.sciencedirect.com/science/article/pii/S1053811916304232- ICA:
Add Alex's suggestions: https://neuroimage.usc.edu/forums/t/ica-on-very-long-eeg/23556/4
- Add methods: SOBI, Fastica, AMICA/CUDICA/CUDAAMICA (recommended by S Makeig)
- Why doesn't the ICA process converge when using 25 components in the EEG tutorial?
- Add an option to resample the signals before computing the ICA decomposition
- Exploration: Add window with spectral decomposition (useful for muscle artifacts)
- Export IC time series (and then compute their spectrum): solves the problem above
Comparison JADE/Infomax:
http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0030135Dimension 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- Import ICA matrices available in EEGLAB .set files
EEGLAB recommends ICA + trial rejection + ICA again: Impossible right now with Brainstorm
(http://sccn.ucsd.edu/wiki/Chapter_09:_Decomposing_Data_Using_ICA)ICA+machine learning: https://www.ncbi.nlm.nih.gov/pubmed/28497769
Automated artifact rejection: https://arxiv.org/abs/1612.08194
Use EYE-EEG: EEGLAB toolbox for eye-tracker guided ICA (Olaf Dimigen): http://www2.hu-berlin.de/eyetracking-eeg/
- SSP:
Display warning if changing the ChannelFlag while there is a Projector applied
Remove line noise: http://www.nitrc.org/projects/cleanline
- Time-frequency:
- Optimization: bst_timefreq (around l.136), remove evoked in source space: Average should be computed in sensor space instead of source space (requested by Dimitrios)
Short-time Fourier transform: http://www.mikexcohen.com/lectures.html
- Bug: Display logs as negative
- Bug: 3D figures: Colormaps with "log" option doesn't work
- Bug: Difference of power displayed in log: problems (Soheila)
- TF scouts: should display average of TF maps
- Impossible to keep complex values for unconstrained sources
- Hilbert with time bands very slow on very long files (eg. 3600s at 1000Hz) because the time vector is still full (10^7 values): save compressed time vector instead.
- When normalizing with baseline: Propagate with the edge effects marked in TFmask
- Allow running TF on montages
- Review continuous files in time-frequency space (for epilepsy)
- Bug when computing TF on constrained and unconstrained scouts at the same time (in mixed head models for instance): uses only the constrained information and doesn't sum the 3 orientations for the unconstrained regions.
- Use field process field "Group" to separate Input/Processing/Output options
- Use new Matlab functions: movmean, movsum, movmedian, movmax, movmin, movvar, movstd
Database
- MEG protocols: More flexible organization of the database; sub-conditions to allow different runs X different conditions.
- Matrix files: Allow to be dependent from other files
- Rename multiple files
- Default headmodel lost when reloaded: Keep selection on the hard drive (in brainstormstudy.mat)
- Auto-save:
protocol.mat can be too big: do not store the results links in it (and recreate when loading)- http://neuroimage.usc.edu/forums/t/abnormally-slow-behavior/2065/10
- Improve auto-save: add tracking file next to protocol.mat, do not save all the time, only when closing app, and reload protocol at stratup if tracking file is still there
Distributed computing
Options from FieldTrip:
Loose collection of computers: https://github.com/fieldtrip/fieldtrip/tree/master/peer
Single multicore machine: https://github.com/fieldtrip/fieldtrip/tree/master/engine
Batch system: https://github.com/fieldtrip/fieldtrip/tree/master/qsub
Documentation: https://www.fieldtriptoolbox.org/faq/what_are_the_different_approaches_i_can_take_for_distributed_computing/
Source modeling
- Unconstrained to flat: Default PCA for stat and connectivity?
Sensitivity maps: https://mne.tools/stable/auto_examples/forward/plot_forward_sensitivity_maps.html
Reproduce results in "Simultaneous human intracerebral stimulation and HD-EEG, ground-truth for source localization methods": https://www.nature.com/articles/s41597-020-0467-x
Use eLORETA instead of sLORETA?
https://neuroimage.usc.edu/forums/t/compute-eeg-sources-with-sloreta/13425/6"eLORETA algorithm is available in the MEG/EEG Toolbox of Hamburg (METH)": https://www.biorxiv.org/content/biorxiv/early/2019/10/17/809285.full.pdf
- Point-spread and cross-talk functions (code in MNE-Python):
- Dipoles:
- Project individual dipoles files on a template
- panel_dipoles: Doesn't work with multiple figures
- Project sources: Very poor algorithm to project sub-cortical regions and cerebellum (algorithm to fit surfaces should be imrpoved)
Menu head model > Copy to other conditions/subjects (check if applicable first)
Menu Sources > Maximum value: Doesn't work with volume or mixed head models
- Mixed head models:
- Bug when displaying interpolated in MRI viewer
- Volume grid:
- Optimize: 3D display (better than 9x9 cubes)
- Optimize: vol_dilate (with 26 neighbors)
Menu Sources > Simulate recordings:
- Do not close the 3D figures after generating a new file
- Add a process equivalent to this menu
- Panel Get coordinates: Add button "find maximum"
- BEM single sphere: Get implementation from MNE
- Unconstrained sources:
- Stat and connectivity: what to do? (re-send email John+Sylvain)
Sources on surface: Display peak regions over time (time = color) => A.Gramfort
- Process "Extract scouts time series": Add PCA option (replace isnorm with choice PCA/Norm)
- Add eyes models to attract eye activity
- Display spectrum scouts (PSD plots when clicking on "Display scouts" on PSD/full cortex)
Anatomy
FastSurfer: https://deep-mi.org/research/fastsurfer/
SimNIBS: Replace HEADRECO with CHARM (headreco will be removed in SimNIBS 4)
- Infant templates: Add electrodes positions (at least 10-10)
Neurodev MRI database: https://jerlab.sc.edu/projects/neurodevelopmental-mri-database/
- Multi-Scale Brain Parcellator (Lausanne2008):
- Registration:
Getting electrode positions from 3D scanners: https://sccn.ucsd.edu/wiki/Get_chanlocs
Use the same registration for multiple recording sessions that have already re-registered previously (eg. with MaxFilter)
- When linking multiple EEG recordings including 3D positions, do the registration only once and copy it to all the runs
- Select and remove bad digitized head points before automatic coregistration
Load the MNE -transf.fif: http://neuroimage.usc.edu/forums/showthread.php?2830
- MRI Viewer:
- Pan in zoomed view (shift + click + move?)
- Zoom in/out with mouse (shift + scroll?)
- Ruler tool to measure distances
- Display scouts as additional volumes
Render surface envelope in the MRI as a thin line instead of the full interpolation matrix
Or use inpolyhedron to get a surface mask and then erode it to get the volume envelopeOptimize computation interpolation MRI-surface (tess_tri_interp) => spm_mesh_to_grid
BrainSuite:
Add new labels to all BrainSuite anatomy templates
- Use same colors for left and right for anatomical atlases
- Use for volume coregistration (rigid / non-rigid)
- USCBrain: Add default electrodes positions
- FEM templates for different ages:
- Scouts:
- Display edges in the middle of the faces instead of the vertices
- Display scouts in a tree: hemisphere, region, subregion
- Sort scouts by region in process options
- Downsample to atlas: allow on timefreq/connect files
Project from one hemisphere to the other using registered spheres/squares (http://neuroimage.usc.edu/forums/t/how-to-create-mirror-roi-in-the-other-hemisphere/5910/8)
- Parcellating volume grids: scikit-learn.cluster.Ward
- Major bug when importing surfaces for an MRI that was re-oriented manually
Surface>Volume interpolation: Use spm_mesh_to_grid
- Bug: Hide scouts in the preview of the grid for volume head models
Geodesic distance calculations:
https://www.mathworks.com/matlabcentral/fileexchange/6110-toolbox-fast-marching- Allen Institute gene expression atlases: Import in Brainstorm as source maps and display on cortex
ECOG/SEEG
- Electrodes models: Import / export
- Contact positions: Import / set / detect
- New option: Align on none|inner|cortex to replace ECOG-mid
- Add history: Save modifications and transformations applied to the channel files (Marcel)
- Project contact positions across subjects or templates (Marcel)
- Add menu to import implantation channel file in imported recordings
- SEEG/ECOG: Identify contacts in resected areas / identify ROIs for each contact
- SEEG/ECOG: Identify contacts in a given anatomical region (volume scout, surface mesh, or label in a volume atlas) / allow extracting the signals from all the contacts in an ROI
- Automatic segmentation of CT:
SEEG DEETO Arnulfo 2015: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-015-0511-6
- Used routinely at Niguarda Hospital + other hospitals worldwide, reliable tool.
To be used with SEEG-assistant/3DSlicer: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-017-1545-8
ECOG Centracchio 2021: https://link.springer.com/content/pdf/10.1007/s11548-021-02325-0.pdf
Classifier on thresholded CT: https://github.com/Jcentracchio/Automated-localization-of-ECoG-electrodes-in-CT-volumes
SEEG Granados 2018 (no code shared): https://link.springer.com/content/pdf/10.1007/s11548-018-1740-8.pdf
- ECOG:
- Project and display contacts on cortex surface should consider the rigidity of the grids: Contacts cannot rotate, and distance between contacts should remain constant across runs
Method for contacts projection: https://pdfs.semanticscholar.org/f10d/6b899d851f3c4b115404298d7b997cf1d5ab.pdf
ECOG: Brain shift: When creating contact positions on a post-implantation image, the brain shift should be taken into account for creating images of the ECOG contacts on the pre-op brain => iELVis (http://ielvis.pbworks.com/w/page/116347253/FrontPage)
- Display:
- Bad channels: Contacts greyed out instead of ignored (Marcel)
- Display time in H:M:S
- Display curved SEEG electrodes
Export list of contacts with a probability of anatomical regions from various atlases: https://neuroimage.usc.edu/forums/t/seeg-contacts-anatomical-location/14756
Detection CEEP stim artifacts: Use ImaGIN code ImaGIN_StimDetect
Statistics
- ANOVA:
- Which functions to use?
- Write panel similar to Process1 and Process2 to allow the
- 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
Quality control before statistics, on condition averages across subjects:
mean(baseline)/std(baseline): shows bad subject quickly.Use SurfStat: Impements interesting things, like an analytical cluster-based p-value correction (Random-field theory which is used in SPM) - Peter
- Export to R or SPSS for advanced stat
Input / output
- Bug import multiple files: use same "time" for all files
- BIDS import:
- Read real fiducials (OMEGA) / transformation matrices:
- Read associated empty room
- Test all the BIDS examples
- BIDS Export:
- Add events tsv, channel tsv, EEG, iEEG
XDF import: Use FieldTRip or the EEGLAB plugin, contact Martin Bleichner (Oldenburg)
https://github.com/sccn/xdf/blob/master/xdf_sample.xdf- DICOM converter:
- Add dcm2nii (MRICron)
- Add MRIConvert
FieldTrip: Import/Export time-frequency:
- 4D file format:
- Use reader from MNE-Python: mne.io.read_raw_kit (doesn't require Yokogawa slow library)
- Reference gradiometers: Keep the orientation of the first or second coil?
- Reference gradiometers: Add the sensor definition from coil_def.dat
- Validate with phantom recordings that noise compensation is properly taken into account
- The noise compensation is considered to be always applied on the recordings, not sure this assumption is always correct
- 4D phantom tutorial (JM Badier?)
- EEG File formats:
EEG CeeGraph
- EGI: Finish support for epoched files (formats 3,5,7)
Persyst .lay: https://github.com/ieeg-portal/Persyst-Reader
Nervus .eeg: https://github.com/ieeg-portal/Nervus-Reader
Biopac .acq: https://github.com/ieeg-portal/Biopac-Reader
- BCI2000 Input (via EEGLAB plugin)
- BST-BIN: Add compression to .bst
- Review raw on all the file formats (ASCII EEG and Cartool missing)
- SPM .mat/.dat: Fix the import of the EEG/SEEG coordinates
- Get acquisition date from files: Missing for 4D
Support for OpenJData / JNIfTI: https://github.com/brainstorm-tools/brainstorm3/issues/284
Distribution & documentation
- Tutorial OMEGA/BIDS:
- Update the organization of derivatives folder (same for ECOG tutorial)
- Add review of literature for the resting state MEG
- Download example datasets directly from the OMEGA repository
New tutorials:
Other public datasets: https://github.com/INCF/BIDS-examples/tree/bep008_meg/
- EEG/research
FieldTrip ECOG tutorial: http://www.fieldtriptoolbox.org/tutorial/human_ecog
FieldTrip cortico-muscular coherence tutorial: http://www.fieldtriptoolbox.org/tutorial/coherence
Reproduce tutorials from MNE-Python: https://martinos.org/mne/stable/tutorials.html
Cam-CAN database: https://camcan-archive.mrc-cbu.cam.ac.uk/dataaccess/<<BR>>(download new datasets, including maxfiltered files and manual fiducial placements)
- MEG steady-state / high-gamma visual / frequency tagging
- BIDS-EEG example datasets
Reproduce results from "Simultaneous human intracerebral stimulation and HD-EEG, ground-truth for source localization methods": https://www.nature.com/articles/s41597-020-0467-x
- Stand-alone ICA tutorial
Workflows FieldTrip: http://www.fieldtriptoolbox.org/faq/what_types_of_datasets_and_their_respective_analyses_are_used_on_fieldtrip
Count GitHub clones in the the download stats
- Deface the MRIs of all the tutorials
Current bugs
- MacOS 10.14.5 (Mojave):
- Toggle buttons do not show their status
- Panel Record: Text is too large for text boxes
- Image viewer:
- Difficult to get to 100%
- Buggy on some systems
- 2DLayout:
- (TF) Units are weird with % values
- (TF) Difficult to navigate in frequencies: Scaling+changing frequency resets the scaling
- Progress bar:
- Doesn't close properly on some Linux systems
- Focus requests change workspace when processing constantly (Linux systems)
- MacOS bugs:
- Buttons {Yes,No,Cancel} listed backwards
- Record tab: Text of epoch number is too big
- Colormap menus: Do not work well on compiled MacOSX 10.9.5 and 10.10
- Canolty maps computation: Fix progress bar
Geeky programming details
- Replace all calls to inpolyhd.m with inpolyhedron.m
- bst_bsxfun: After 2016b, we can use directly the scalar operators (./ .* ...) instead of bsxfun. Update bst_bsxfun to skip the use of bsxfun when possible.
Interface scaling: Rewrite class IconLoader to scale only once the icons at startup instead of at each request of an icon (might improve the speed of the rendering of the tree)
- Processes with "radio" and "radio_line" options: Replace with "radio_label" and "radio_linelabel"
- 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)