+
+
diff --git a/Graveyard/00_release_instructions.md b/Graveyard/00_release_instructions.md
index 21f27ebe..ddea3d1e 100644
--- a/Graveyard/00_release_instructions.md
+++ b/Graveyard/00_release_instructions.md
@@ -2,13 +2,14 @@
1. Check that there is no bug in the unit test cases
2. Update the revision page at https://eeglab.org/others/EEGLAB_revision_history.html
-3. Change version number and date in eeg_getversion.m
-4. Compile as Windows and Mac, and check automated test (menu item "test compiled version")
-5. Manually upload and update links in /home/www/eeglab/eeglabversions (zip archive can have the extension rc for release candidate)
-6. Compile as Matlab with rc (release candidate), plugin will automatically be submitted.
-7. Check automated install by changing the EEGLAB preferences.
-8. Create a new branch for the old version (use GIT)
-9. Issue release candidate email to EEGLABLIST list with direct link to executables
+3. Change the version number and date in eeg_getversion.m
+4. Create the release candidate usign maketoolboxgit20xx
+5. Compile as Windows and Mac, and check automated test (menu item "test compiled version")
+6. Manually upload and update links in /home/www/eeglab/eeglabversions (zip archive can have the extension rc for release candidate)
+7. Compile as Matlab with rc (release candidate), plugin will automatically be submitted.
+8. Check the automated installation by changing the EEGLAB preferences.
+9. Create a new branch for the old version (use GIT)
+10. Issue release candidate email to EEGLABLIST list with direct link to executables
## Final candidate
@@ -19,9 +20,9 @@ One week later after release candidate.
2. Change revision
3. Accept plugin.
4. Accept new plugin and check that update is seen.
-5. Download Fieldtrip and Picard and run "test_compiled_version" script
+5. Run "test_compiled_version" script
6. Final edits in the revision page
-7. Unpate links in /home/arno/www/eeglab/currentversion
+7. Update links in /home/arno/www/eeglab/currentversion
8. Send email to EEGLABNEWS list
## Post release
diff --git a/assets/images/MATLAB_set_path_gui.png b/assets/images/MATLAB_set_path_gui_2.png
similarity index 100%
rename from assets/images/MATLAB_set_path_gui.png
rename to assets/images/MATLAB_set_path_gui_2.png
diff --git a/assets/images/Matlab_set_path_gui.png b/assets/images/Matlab_set_path_gui.png
deleted file mode 100644
index 84a0411e..00000000
Binary files a/assets/images/Matlab_set_path_gui.png and /dev/null differ
diff --git a/index.markdown b/index.markdown
index bbb8f371..826ccc1d 100644
--- a/index.markdown
+++ b/index.markdown
@@ -6,7 +6,7 @@ layout: home
nav_exclude: true
has_toc: true
---
-
+
diff --git a/others/Compiled_EEGLAB.md b/others/Compiled_EEGLAB.md
index 8517e79a..23c7c906 100644
--- a/others/Compiled_EEGLAB.md
+++ b/others/Compiled_EEGLAB.md
@@ -234,6 +234,7 @@ plugin_askinstall('xdfimport', 'eegplugin_xdfimport', true);
plugin_askinstall('mffmatlabio', 'pop_mffimport', true);
plugin_askinstall('scd', 'eegplugin_scd', true);
plugin_askinstall('snapmaster', 'eegplugin_snapmaster', true);
+plugin_askinstall('biosig', 'sread', true);
% Removing clean_rawdata files
% For clean_rawdata, remove folder manopt/reference/m2html.
@@ -249,7 +250,6 @@ iclabel_folder = fileparts(which('iclabel.m'));
% For Fieldtrip remove folders compat, external/afni, external/spm8, external/spm12, external/gifti, external/eeglab, external/bemcp and external/npmk
FieldTrip_folder = fileparts(which('ft_defaults.m'));
rmdir(fullfile(FieldTrip_folder,'compat'), 's');
-rmdir(fullfile(FieldTrip_folder,'test'), 's');
rmdir(fullfile(FieldTrip_folder,'external','afni'), 's');
rmdir(fullfile(FieldTrip_folder,'external','spm8'), 's');
rmdir(fullfile(FieldTrip_folder,'external','spm12'), 's');
diff --git a/others/EEGLAB_and_python.md b/others/EEGLAB_and_python.md
index 69e377fa..8924b85c 100644
--- a/others/EEGLAB_and_python.md
+++ b/others/EEGLAB_and_python.md
@@ -25,7 +25,7 @@ has fewer bugs.
Below is the figure in an independent [2024 article](https://apertureneuro.org/article/116386-the-art-of-brainwaves-a-survey-on-event-related-potential-visualization-practices) showing the popularity of all software packages.

-See also this third-party [2023 report](https://doi.org/10.1016/j.neuri.2023.100154), which compares EEGLAB citations with other EEG analysis software packages.
+See also this third-party [2023 report](https://doi.org/10.1016/j.neuri.2023.100154) and [2024 report](https://www.preprints.org/manuscript/202411.0750/v1), which compares EEGLAB citations with other EEG analysis software packages.
Major differences between MATLAB and Python
-------------------------------------------
diff --git a/others/EEGLAB_revision_history.md b/others/EEGLAB_revision_history.md
index dabca2b9..fc03e029 100644
--- a/others/EEGLAB_revision_history.md
+++ b/others/EEGLAB_revision_history.md
@@ -5,7 +5,7 @@ parent: Download EEGLAB
---
EEGLAB revision history
===
-EEGLAB downloads in ZIP format are available [here](https://sccn.ucsd.edu/eeglab/download.php).
+EEGLAB downloads in MATLAB and executable formats are available [here](https://sccn.ucsd.edu/eeglab/download.php).
These include the latest release as well as older versions of EEGLAB.
As of 2019, we are using the year of the release as the main revision number.
@@ -14,7 +14,42 @@ Minor revisions are indicated using a second number; thus,
There will usually be one or two releases per year.
Previous major EEGLAB versions (e.g., versions 13, 14, etc.) did not use this naming scheme and did observe a regular release schedule.
-## EEGLAB version 2024.2
+## EEGLAB version 2025.1.0
+
+- Issue date: 9/26/2025; GIT tag: 2025.1.0
+- **Version statistics**: 39 files changed with 862 additions and 551 deletions.
+- **Summary of changes:** EEGLAB 2025.1.0 introduces broad compatibility updates for MATLAB 2025, including fixes in eegplot rendering, font scaling, pophelp modernization, and automatic renderer adjustments to prevent darkened figures on Windows. It also corrects the representation of two-way ANOVA designs in STUDY functions, fixing factor ordering, labeling, and p-value mapping for more accurate visualization of 2×2 designs.
+- **MATLAB compatibility:** MATLAB 2025 visual adjustments in many functions, including eegplot, to decrease font size and ensure visibility.
+- **STUDY and statistics:** std_limo adds a verbose noGUI mode for pipeline use and writes chanlocs under derivatives when appropriate. Contrast construction updated to handle one categorical factor with multiple conditions alongside continuous factors. FieldTrip stats on averaged channels fixed. Same color scale enforcement corrected. Corrects the representation of two-way ANOVA designs in STUDY functions, fixing factor ordering, labeling, and p-value mapping for more accurate visualization of 2×2 designs (labels were misleading).
+- **Referencing and ICA:** New Huber average reference added to reref.m and exposed in pop_reref UI. Automatic recomputation of ICA activities now occurs on rereference unless backwardcomp is selected. AMICA path switched to runamica15 with guidance to install and use the AMICA plugin GUI.
+- **Interpolation and channel handling:** eeg_interp accepts bad channel lists as cell arrays and supports sphericalCRD. eeg_checkchanlocs removes stale urchan when urchanlocs is empty and avoids creating a new urchan field spuriously. pop_chanedit avoids showing urchan when urchanlocs are unset. pop_rmbase now operates strictly on the selected channel list.
+- **Event and epoching fixes:** biosig2eeglabevent and pop_biosig improve EDF+ decoding logic, including handling CodeDesc for extended event codes and importing EDF annotations into EEG.event when requested.
+- **Import/export and I/O:** pop_writeeeg now tolerates empty filename while letting users pick format and warns about known BDF header issues.
+- **GUI and UX:** pophelp substantially reworked for MATLAB 2025.
+- **EEGLAB integrity checks:** eeg_checkset large refactor and cleanups across warnings and edge cases.
+- **BIDS and pipeline:** EEG-BIDS submodule updated; lookups now search directly for derivatives folder. pop_exportbids and related scripts refreshed; bids_reexport streamlined. Fix issues with using samples when importing event latencies.
+- **Dipfit:** Update compatibility atlas mapping and LORETA source localization.
+- **Known behavior changes:** Re-referencing now recomputes ICA activities by default in 2025.1.0; use backwardcomp to preserve previous versions’ behavior.
+- Use this [Github link](https://github.com/sccn/eeglab/compare/2025.0.0..2025.1.0) to see all changes compared to the previous EEGLAB version.
+
+## EEGLAB version 2025.0.0
+
+- Issue date: 2/17/2025; GIT tag: 2025.0.0
+- **Version statistics**: 45 files changed with 697 additions and 234 deletions.
+- **Minor Code Adjustments:** Several functions have undergone minor tweaks. These include functions related to checking channel locations (eeg_checkchanlocs), dataset integrity (eeg_checkset), retrieving datasets (eeg_retrieve), updating EEGLAB (eeglab_update), adjusting event latencies (pop_adjustevents), editing channel information (pop_chanedit), selecting channels (pop_chansel), file I/O (pop_fileio), re-referencing data (pop_reref), running ICA (pop_runica), plotting data (eegplot), and statistical tests (ttest2_cell). These changes address specific edge cases, improve error handling, and enhance functionality.
+- **UI bug**: input GUI (input UI) was fixed, and all functions that depend on it will now behave properly. This may include coregister.m, pop_editeventvals.m.
+- **Plugin Updates:** Several plugins have been updated, including EEG-BIDS, ICLabel, clean_rawdata, and dipfit. EEG-BIDS is now one of the default plugins included in EEGLAB.
+- Use this [Github link](https://github.com/sccn/eeglab/compare/2024.2.1..2025.0.0) to see all changes compared to the previous EEGLAB version.
+
+## EEGLAB version 2024.2.1
+
+- Issue date: 11/12/2024; GIT tag: 2024.2.1
+- **Version statistics**: 3 files changed with 8 additions and 4 deletions.
+- **Bug fix**: Fix crashes when EEGLAB is offline, WIFI is on and Biosig is installed.
+- **Bug fix**: Minor fix crash to channel location field.
+- Use this [Github link](https://github.com/sccn/eeglab/compare/2024.2..2024.2.1) to see all changes compared to the previous EEGLAB version.
+
+## EEGLAB version 2024.2.0
- Issue date: 08/28/2024; GIT tag: 2024.2
- **Version statistics**: 7 files changed, 21 additions and 12 deletions.
@@ -34,7 +69,7 @@ Previous major EEGLAB versions (e.g., versions 13, 14, etc.) did not use this na
- **Bug fix**: Fix the issue with not clearing the STUDY cache when editing a STUDY.
- **Bug fix**: Better detection of a dataset modified by users.
- **Bug fix**: Fix issue with STUDY [ICA component clustering](https://github.com/sccn/eeglab/issues/767). This is also related to the ICLabel bug below.
-- ICLabel plugin: The ICLabel version (1.5) released in the previous EEGLAB version had the same as above. Make sure to use this EEGLAB distribution or to update to ICLabel 1.6 if you are using EEGLAB 2024.0
+- ICLabel plugin: The ICLabel version (1.5) released in the previous EEGLAB version had the same problem as described above. Make sure to use this EEGLAB distribution or update to ICLabel 1.6 if you are using EEGLAB 2024.0
- Use this [Github link](https://github.com/sccn/eeglab/compare/2024.0..2024.1) to see all changes compared to the previous EEGLAB version.
## EEGLAB version 2024.0
diff --git a/others/TIPS_and_FAQ.md b/others/TIPS_and_FAQ.md
index c5eeebcc..077f051c 100644
--- a/others/TIPS_and_FAQ.md
+++ b/others/TIPS_and_FAQ.md
@@ -450,7 +450,7 @@ epochs from the data, which are 3000 frames each. There are only about
Should I apply ICA to the continuous data, then epoch the ICs, or apply
ICA to the concatenated epochs?
**Answer:** You can apply ICA to either of them. Usually, we prefer to
-apply ICA to the concatenated epochs so ICA component are more likely
+apply ICA to the concatenated epochs so ICA components are more likely
to represent activity related to the task, but continuous data are fine
too, especially if you have few epochs or few data points, since most of
the same EEG and artifact processes are likely to be active 'between'
@@ -462,11 +462,34 @@ For multiple-epoch data, the scalp map obtained for the
different epochs is the same for a particular component. Is this normal
or is there some mistake that's being done in the analysis?
**Answer:** Because the ICA algorithm is applied in the electrode space
-domain, the same scalp maps are returned for all epochs. However the
+domain, the same scalp maps are returned for all epochs. However, the
time course of one ICA component is different for each epoch (if its
activation value is 0 at a given time, it means that this component is
not expressed in the data at that particular time).
+### ICA activity warning
+
+I am seeing the warning message below. What does it mean?
+
+```
+Warning: ICA activities and weights mismatch, click on the link below for more information
+```
+
+**Answer:** If you re-reference the data after running ICA, or if you remove channels, you might see the warning message above.
+**As a rule of thumb, never perform a lossy re-referencing or channel
+removal after running ICA.** Instead, remove the channel or re-reference the data, then run ICA again.
+When data is referenced or when channels are removed, the ICA scalp topographies are also referenced, while the ICA activity remains unchanged.
+However, this process violates the assumptions of ICA. Specifically, the relationship *ICA_activations = ICA_weights * EEG_data* no longer holds.
+Despite this, we contend that this altered representation is the closest approximation to the state before re-referencing or the removal of channel(s).
+
+The alternative approach of recomputing activities from the modified weight matrix is not ideal, as it does not constitute a standard ICA decomposition.
+It is important to note that if you save and reload the data, ICA activations are not saved by default. As a result, EEGLAB will recompute them using the ICA weights and data when you load the data again, which deviates from the standard ICA decomposition. If it is important for you to retain the ICA activities when saving the data, we
+advise that you save the data from the command line using
+
+```
+save('-mat', 'EEG_dataset_with_ica.set', '-struct', 'EEG');
+```
+
Time Frequency
--------------
@@ -555,13 +578,13 @@ more complex to use. I guess it would also be possible to use the welch
method on top of multitaper. It is all a matter of preference. I would
advised using the pwelch method which is easy (you just give as an
option the length of the windows and the overlap). Multitaper would
-require you to select the number of basis vector in your othogonal base
+require you to select the number of basis vector in your orthogonal base
and this is much less intuitive (and also has consequences on the
frequency resolution you can achieve).
-### Multitaper, FTT, wavelets for time-frequency decomposition?
+### Multitaper, FFT, wavelets for time-frequency decomposition?
-I have been using the new EELAB toolbox for the past
+I have been using the new EEGLAB toolbox for the past
couple of weeks, especially timef() and crossf(). The multitaper method
with bootstrap statistics has been giving me very nice stable results.
Timef() with wavelets gives slightly different results, but also
diff --git a/plugins/BrainBeats/index.md b/plugins/BrainBeats/index.md
index 5e1fa3e0..585b53a0 100644
--- a/plugins/BrainBeats/index.md
+++ b/plugins/BrainBeats/index.md
@@ -13,33 +13,39 @@ To view the plugin source code, please visit the plugin's [GitHub repository](ht
-
+
+
The BrainBeats toolbox, implemented as an EEGLAB plugin, allows joint processing and analysis of EEG and cardiovascular signals (ECG and PPG) for brain-heart interplay research. Both the general user interface (GUI) and command line are supported (see tutorial). BrainBeats currently supports: 1) Heartbeat-evoked potentials (HEP) and oscillations (HEO); 2) Extraction of EEG and HRV features; 3) Extraction of heart artifacts from EEG signals; 4) brain-heart coherence.
-## THREE METHODS AVAILABLE
+## 4 METHODS AVAILABLE
-
+
-1) Process EEG data for heartbeat-evoked potentials (HEP) analysis using ECG or PPG signals. Steps include signal processing of EEG and cardiovascular signals, inserting R-peak markers into the EEG data, segmentation around the R-peaks with optimal window length, time-frequency decomposition.
+
+1) Process EEG data for heartbeat-evoked potentials (HEP) analysis using ECG or PPG signals. Steps include signal processing of EEG and cardiovascular signals, inserting R-peak markers into the EEG data, segmentation around the R-peaks with optimal window length, and time-frequency decomposition.
- Example of HEP at the subject level, obtained from simultaneous EEG-ECG signals
+ Example of HEP at the subject level, obtained from simultaneous EEG-ECG signals (the cardiac field artifact was preserved here for illustration).
-
+
- Example of HEP at the subject level, obtained from simultaneous EEG-PPG signals
+ Example of HEP at the subject level, obtained from simultaneous EEG-PPG signals (note that with PPG, we must correct for the delay between the electrical and mechanical cardiac events so that the estimated heartbeat times correspond to the R-peaks of an ECG; ~200-400 ms).
-
+
2) Extract EEG and HRV features from continuous data in the time, frequency, and nonlinear domains.
@@ -55,49 +61,53 @@ The BrainBeats toolbox, implemented as an EEGLAB plugin, allows joint processing
Example of power spectral density (PSD) estimated from HRV and EEG data
-
+
Example of EEG features extracted from sample dataset
-
+
-
3) Remove heart components from EEG signals using ICA and ICLabel.
Example of extraction of cardiovascular components from EEG signals
-
+
-
4) Compute brain-heart coherence (beta version, please test and give feedback)
Example of several brain-heart coherence measures computed with BrainBeats from simultaneous EEG and ECG signals
-
+
Scalp topography showing scalp regions coherent with ECG signal for each frequency band
-
+
+
## Requirements
- MATLAB installed (https://www.mathworks.com/downloads)
- EEGLAB installed (https://github.com/sccn/eeglab)
- Some data containing EEG and cardiovascular signals (ECG or PPG) within the same file (i.e. recorded simultaneously).
- Or use the tutorial dataset provided in this repository located in the "sample_data" folder.
+ Or use the tutorial dataset provided in this repository located in the "sample_data" folder. Source: sub-32 in https://nemar.org/dataexplorer/detail?dataset_id=ds003838
## Step-by-step tutorial
@@ -110,3 +120,46 @@ Full-text preprint: https://www.biorxiv.org/content/10.1101/2023.06.01.543272v3.
v1.5 (5/2/2024) - METHOD 4 (brain-heart coherence) added
v1.4 (4/1/2024) - publication JoVE (methods 1, 2, 3)
+
+## When using BrainBeats, please cite:
+
+Cannard, C., Wahbeh, H., & Delorme, A. (2024). BrainBeats as an Open-Source EEGLAB Plugin to Jointly Analyze EEG and Cardiovascular Signals. Journal of visualized experiments: JoVE, (206).
+
+
+## BrainBeats was used and cited in:
+
+Carbone, F., Silva, M., Leemann, B., Hund-Georgiadis, M., & Hediger, K. (2025). Registered Report Stage I: Neurological and physiological effects of animal-assisted treatments for patients in a minimally conscious state: a randomized, controlled cross-over study. Neuroscience.
+
+Balasubramanian, K. et al. (2025). Complexity Measures in Biomedical Signal Analysis: A Clinically-Grounded Survey Across EEG, ECG, Intracranial Pressure, and Photoplethysmogram Modalities. IEEE Access.
+
+Park, S. et al. (2025). Improving single-trial detection of error-related potentials by considering the effect of heartbeat-evoked potentials in a motor imagery-based brain-computer interface. Computers in Biology and Medicine, 195, 110563.
+
+Abdullah, J. et al. (2025). Mathematical Decoding of the Correlation Between Different Organs' Activities: A Review. Fractals.
+
+Carbone, F. et al. (2025). Registered Report Stage I: Neurological and physiological effects of animal-assisted treatments for patients in a minimally conscious state: a randomized, controlled cross-over study. Neuroscience.
+
+Remiszewski, M. (2025). Long-term Aerobic Exercise Enhances Interoception and Reduces Symptoms of Depression and Anxiety in Physically Inactive Young Adults: A Randomized Controlled Trial. Psychology of Sport and Exercise, 102939.
+
+Chowdhury, et al. (2025). Neural Signals, Machine Learning, and the Future of Inner Speech Recognition. Frontiers in Human Neuroscience, 19, 1637174.
+
+Naaz, R., & Ahmad, S. (2025). ECG Data Mining Approach for Detection of Arrhythmia Using Machine Learning. In 2025 3rd International Conference on Device Intelligence, Computing and Communication Technologies (DICCT) (pp. 52-57). IEEE.
+
+Cheng, X., Maess, B., & Schirmer, A. (2025). A Pleasure That Lasts: Convergent neural processes underpin comfort with prolonged gentle stroking. Cortex.
+
+Georgaras, E., & Vourvopoulos, A. (2025). Physiological assessment of brain, cardiovascular, and respiratory changes in multimodal motor imagery brain-computer interface training. Research in Biomedical Engineering and Technology, 12(1), 2471680.
+
+Park, S., Ha, J., & Kim, L. (2025). Improving single-trial detection of error-related potentials by considering the effect of heartbeat-evoked potentials in a motor imagery-based brain-computer interface. Computers in Biology and Medicine, 195, 110563.
+
+Perez, T. M., Drake, E., & Sullivan, S. (2024). Assessing central nervous system and peripheral nervous system functioning in resting and non-resting conditions in a healthy adult population: A feasibility study. Chiropractic Journal of Australia (Online), 51(1), 1-32.
+
+Akuthota, S., Rajkumar, K., & Janapati, R. (2024). Intelligent EEG Artifact Removal in Motor ImageryBCI: Synergizing FCIF, FCFBCSP, and Modified DNN with SNR, PSD, and Spectral Coherence Evaluation. In 2024 International Conference on Circuit, Systems and Communication (ICCSC) IEEE.
+
+Ingolfsson et al. (2024). Brainfusenet: Enhancing wearable seizure detection through eeg-ppg-accelerometer sensor fusion and efficient edge deployment. IEEE Transactions on Biomedical Circuits and Systems.
+
+Fields, C., et al. (2024). Search for entanglement between spatially separated Living systems: Experiment design, results, and lessons learned. Biophysica, 4(2), 168-181.
+
+Cannard, C., Delorme, A., & Wahbeh, H. (2024). Identifying HRV and EEG correlates of well-being using ultra-short, portable, and low-cost measurements. bioRxiv, 2024-02.
+
+Arao, H., Suwazono, S., Kimura, A., Asano, H., & Suzuki, H. (2023). Measuring auditory event‐related potentials at the external ear canal: A demonstrative study using a new electrode and error‐feedback paradigm. European Journal of Neuroscience, 58(11), 4310-4327.
+
+Goodwin, A. J., et al. (2023). The truth Hertz—synchronization of electroencephalogram signals with physiological waveforms recorded in an intensive care unit. Physiological Measurement, 44(8), 085002.
diff --git a/plugins/SIFT/Chapter-7.-Statistics-in-SIFT.md b/plugins/SIFT/Chapter-7.-Statistics-in-SIFT.md
index 72dc392b..2bb27965 100644
--- a/plugins/SIFT/Chapter-7.-Statistics-in-SIFT.md
+++ b/plugins/SIFT/Chapter-7.-Statistics-in-SIFT.md
@@ -43,8 +43,8 @@ suffer from inaccuracies when the number of samples is not very large or
when assumptions are violated. Nonetheless, these tests can provide a
useful way to quickly check for statistical significance, possibly
following up with a more rigorous surrogate statistical test. These
-tests are implemented in SIFT’s **`stat_analyticStats()`** function. To
-our knowledge, SIFT is the only publically available toolbox that
+tests are implemented in SIFT's **`stat_analyticStats()`** function. To
+our knowledge, SIFT is the only publicly available toolbox that
implements these analytic tests.
## 7.2. Nonparametric surrogate statistics
@@ -60,7 +60,7 @@ corresponding to the expected distribution of the estimator when a
particular null hypothesis has been enforced. Two popular surrogate
methods are **bootstrap resampling and phase
randomization.** These
-tests are implemented in SIFT’s **`stat_surrogateStats()`** function.
+tests are implemented in SIFT's **`stat_surrogateStats()`** function.
### 7.2.1. Bootstrap resampling
@@ -112,7 +112,7 @@ collection of values (for example, obtaining p-values for a complete
time-frequency image), we should expect some number of non-significant
values to exceed the significance threshold. As such, it is important to
correct for multiple comparisons using tests such as False Discovery
-Rate (FDR) (Benjamini and Hochberg, 1995) using EEGLAB’s **`fdr()`** function.
+Rate (FDR) (Benjamini and Hochberg, 1995) using EEGLAB's **`fdr()`** function.
## 7.3. Practical statistics in SIFT
@@ -163,9 +163,9 @@ The connectivity matrix in the **dDTF08** substructure, for example, is of size
### 7.3.2.1. Comparing post-stimulus connectivity to baseline
-Bootstraping to compute confidence intervals remains relatively simple. You may randomly select data epochs and rerun the connectivity analysis multiple times.
+Bootstrapping to compute confidence intervals remains relatively simple. You may randomly select data epochs and rerun the connectivity analysis multiple times.
-**Important note:** You can look for effect using the simple thresholding method presented in the visualization section. However, computing significance of connectivity measures can take hours. This is also why it is only presented as a script. Be patient.
+**Important note:** You can look for effects using the simple thresholding method presented in the visualization section. However, computing significance of connectivity measures can take hours. This is also why it is only presented as a script. Be patient.
If you have followed the tutorial, you need not prepare the data, but if you have not, the following script will apply the analyses performed in the previous sections of the tutorial (you still need to import the data with EEGLAB and perform EEGLAB-based preprocessing presented in section 5.2).
@@ -304,8 +304,8 @@ As mentioned above, users need to export connectivity matrices stored in the **E
This approach adopts a 3-stage process:
-**1. Identify K ROI’s (clusters).** You may use affinity clustering of sources
-across subject populations using EEGLAB’s Measure-Product clustering.
+**1. Identify K ROI's (clusters).** You may use affinity clustering of sources
+across subject populations using EEGLAB's Measure-Product clustering.
**2. Compute all incoming and outgoing individually statistically
significant connections between each pair of ROIs.** To do so, for each connection between 2 clusters, assess if it is significant across subjects, then create a \[ K X K
@@ -320,7 +320,7 @@ high agreement in terms of source locations (missing variable problem).
A more robust approach (in development with Wes Thompson) uses smoothing splines and Monte-Carlo methods
for joint estimation of posterior probability (with confidence
intervals) of cluster centroid location and between-cluster
-connectivity. This method takes into account the “missing variable”
+connectivity. This method takes into account the "missing variable"
problem inherent to the disjoint clustering approach and provides robust
group connectivity statistics. A poster was [published](https://sccn.ucsd.edu/~scott/pdf/Thompson_and_Mullen_Poster_ICONXI.pdf) on this topic, but the code is not yet available.
diff --git a/plugins/imat/index.md b/plugins/imat/index.md
index e875d937..5ef3a1f6 100644
--- a/plugins/imat/index.md
+++ b/plugins/imat/index.md
@@ -11,7 +11,7 @@ To view the plugin source code, please visit the plugin's [GitHub repository](ht
# IMAT - Independent Modulator Analysis Toolbox
## What is IMA?
-Independent Modulator Analysis (IMA) is a method for decomposing spectral fluctuations of temporally independent EEG sources into ‘spatio-spectrally’ distinct spectral modulator processes. Such processes might might derive from and isolate coordinated multiplicative scaling effects of functionally near-independent modulatory factors, for example the effects of modulations roduced in cortico-subcortical or sensory-cortical loops, or by signalling from brainstem-centered import recognition systems using dopamine, serotonin, noradrenaline, etc. (see schematic figure below from [Onton & Makeig, 2009](https://www.frontiersin.org/articles/10.3389/neuro.09.061.2009/full)). Rather than attempting to decompose the mean power spectrum for a component process to identify narrow-band processes superimposed on a 1/f baseline spectum, IMAT identifies characteristic frequency bands in which spectral power *varies* across time. This allows IMA to find *both* narrow and wide band modes. Also, the identified modes need not be singular. For example, IMA will separate the joint activity of an alpha or mu rhythm and its harmonics from endogenous beta band fluctuations occupying overlapping frequency ranges. IMA is applied to independent component (IC) source processes in the data which can be localized in the brain or to a specific scalp muscle, etc. IMA thereby identifies IC subsets that are co-modulated in a specified IM frequency band; these might be thought of as co-modulation networks with a common influence and susceptibility.
+Independent Modulator Analysis (IMA) is a method for decomposing spectral fluctuations of temporally independent EEG sources into 'spatio-spectrally' distinct spectral modulator processes. Such processes might derive from and isolate coordinated multiplicative scaling effects of functionally near-independent modulatory factors, for example the effects of modulations produced in cortico-subcortical or sensory-cortical loops, or by signaling from brainstem-centered import recognition systems using dopamine, serotonin, noradrenaline, etc. (see schematic figure below from [Onton & Makeig, 2009](https://www.frontiersin.org/articles/10.3389/neuro.09.061.2009/full)). Rather than attempting to decompose the mean power spectrum for a component process to identify narrow-band processes superimposed on a 1/f baseline spectrum, IMAT identifies characteristic frequency bands in which spectral power *varies* across time. This allows IMA to find *both* narrow and wide band modes. Also, the identified modes need not be singular. For example, IMA will separate the joint activity of an alpha or mu rhythm and its harmonics from endogenous beta band fluctuations occupying overlapping frequency ranges. IMA is applied to independent component (IC) source processes in the data which can be localized in the brain or to a specific scalp muscle, etc. IMA thereby identifies IC subsets that are co-modulated in a specified IM frequency band; these might be thought of as co-modulation networks with a common influence and susceptibility.
@@ -30,7 +30,7 @@ All plug-ins in EEGLAB, including IMAT, can be installed in two ways. To install
1. **From the EEGLAB Plug-in Manager:** Launch EEGLAB and select menu item **File > Manage EEGLAB Extensions** in the main EEGLAB window. A plug-in manager window will pop up. Look for and select the IMAT plug-in, then press **Install/Update**.
-2. **From the web:** Download the IMAT plug-in zip file either from [this](https://github.com/sccn/imat) GitHub page (select ‘Download Zip‘) or from [this EEGLAB wiki plug-ins page](https://sccn.ucsd.edu/wiki/Plugin_list_all) (select **IMAT**). Decompress the zip file in the plug-ins folder in the main EEGLAB folder (*../eeglab/plugins/*).
+2. **From the web:** Download the IMAT plug-in zip file either from [this](https://github.com/sccn/imat) GitHub page (select 'Download Zip') or from [this EEGLAB wiki plug-ins page](https://sccn.ucsd.edu/wiki/Plugin_list_all) (select **IMAT**). Decompress the zip file in the plug-ins folder in the main EEGLAB folder (*../eeglab/plugins/*).
Restart EEGLAB. If the installation is successful, a menu item to call IMAT, **Tools > Decompose IC spectograms by IMAT**, will appear in the EEGLAB menu.
@@ -40,7 +40,7 @@ Restart EEGLAB. If the installation is successful, a menu item to call IMAT, **T
2. For component selection and clustering it is of advantage to also estimate equivalent current dipole models for the brain-based ICs.
3. For automatic selection of components you need to install the EEGLAB plug-in [IC Label](https://sccn.ucsd.edu/wiki/ICLabel)
4. For plotting dipole density of clusters you need to install the EEGLAB plug-in Fieldtrip lite.
-5. IMAT can handle either epoched or continuous data. Be aware that for epoched data, the epochs should have length to accomodate at least 3 cycles of the lowest frequency at which IMA is to be computed.
+5. IMAT can handle either epoched or continuous data. Be aware that for epoched data, the epochs should have length to accommodate at least 3 cycles of the lowest frequency at which IMA is to be computed.
Please refer to the section above on how to install EEGLAB plug-ins.
@@ -50,7 +50,7 @@ Please refer to the section above on how to install EEGLAB plug-ins.
## Running IMAT
Before running IMAT, start EEGLAB and load an EEG dataset.
-To run IMAT on the loaded dataset, launch the Run IMA (*pop\_runIMA*) window, either by typing *pop\_runIMA* on the MATLAB command line or by calling it from the EEGLAB menu by selecting **Tools > Decompose spectograms by IMA > Run IMA**, as highlighted in the figure below.
+To run IMAT on the loaded dataset, launch the Run IMA (*pop_runIMA*) window, either by typing *pop_runIMA* on the MATLAB command line or by calling it from the EEGLAB menu by selecting **Tools > Decompose spectograms by IMA > Run IMA**, as highlighted in the figure below.
In the resulting window (above right) we can specify:
@@ -59,12 +59,12 @@ In the resulting window (above right) we can specify:
2. Which frequency range in which to compute IMA (**Freq. limits (Hz)**)
3. The frequency scale (**Freq scale**) linear of log scale
4. A factor to regulate dimensionality reduction in the time windows of the spectral data using PCA dimension reduction before ICA decomposition (**pcfac**) - the smaller the *pcfac*, the more dimensions will be retained *ndims = (freqsxICs)/pcfac* where *freqs* is the number of estimated frequencies and *ICs* is the number of ICs (default is 7)
-5. Other IMA options (**pop\_runima options**) – e.g., which ICA algorithm to use (see *pop_runima* help for more details)
+5. Other IMA options (**pop_runima options**) – e.g., which ICA algorithm to use (see *pop_runima* help for more details)
**Running IMA from the command line**
-*[EEG, IMA] = pop\_runIMA(EEG, 'freqscale', 'log', 'frqlim', [6 120], 'pcfac', 7, 'cycles', [6 0.5], 'selectICs', {'brain'}, 'icatype', 'amica');*
+*[EEG, IMA] = pop_runIMA(EEG, 'freqscale', 'log', 'frqlim', [6 120], 'pcfac', 7, 'cycles', [6 0.5], 'selectICs', {'brain'}, 'icatype', 'amica');*
Here we are computing IMA on a single subject's data, selecting ''Brain ICs'' using ICLabel, with parameters for time-frequency decomposition: log frequency scaling, frequency limits: 6 to 120 Hz, wavelet cycles [6 0.5], reducing the dimensions of timewindows
of the time/frequency decomposition using pfac 7, and using AMICA for ICA decomposition.
@@ -72,7 +72,7 @@ of the time/frequency decomposition using pfac 7, and using AMICA for ICA decomp
## The IMA structure
-*pop\_runIMA* saves the IMA results in an IMA structure, in the same folder as the EEG file it is run on.
+*pop_runIMA* saves the IMA results in an IMA structure, in the same folder as the EEG file it is run on.
After running IMA (either from the gui or from the command line) type *IMA* in the Matlab command line to display the IMA structure.
@@ -177,7 +177,7 @@ On the command line enter: *pop_plotspecdecomp(EEG, 'plottype', 'ims', 'comps',
-**2. Spectral envelope** (*pop\_plotspecenv*)
+**2. Spectral envelope** (*pop_plotspecenv*)
To visualize the contributions of IMs to the mean log spectrum of an IC, launch **Tools > Decompose spectograms by IMA > Plot IMA results > Spectral envelope**
@@ -192,9 +192,9 @@ In the resulting window (above right) we can specify:
3. Indices of the ICs and IMs to plot
On the command line enter:
-*pop\_plotspecenv(EEG,'comps', [1 2 5], 'factors', [1 2 3 6], 'frqlim', [6 120], 'plotenv', 'full');*
+*pop_plotspecenv(EEG,'comps', [1 2 5], 'factors', [1 2 3 6], 'frqlim', [6 120], 'plotenv', 'full');*
-Here is an example of plotting IMs **Full envelope** of inflence on the IC power spectra. The IC mean log power spectrum is shown as a black trace. Outer light grey limits represent the 1st and 99th percentiles of IC spectral variation associated with the IM. Dark grey areas represent the 1st and 99th percentiles of the PCA-reduced spectral data used in the IMA analysis.
+Here is an example of plotting IMs **Full envelope** of influence on the IC power spectra. The IC mean log power spectrum is shown as a black trace. Outer light grey limits represent the 1st and 99th percentiles of IC spectral variation associated with the IM. Dark grey areas represent the 1st and 99th percentiles of the PCA-reduced spectral data used in the IMA analysis.
@@ -250,7 +250,7 @@ Before running IMAT on multiple conditions or for group analysis, you need to bu
Before running IMAT, start EEGLAB and load the STUDY set.
-To run IMAT on the loaded STUDY, launch the Run IMA (*pop\_runIMA_study*) window, either by typing *pop\_runIMA_study* on the MATLAB command line or by calling it from the EEGLAB menu by selecting **STUDY > STUDY IMA > Run STUDY IMA** as highlighted in the figure below. This will run a separate IMA decomposition for each subject in the study. That is, a joint IMA is computed over all the conditions for each single subject in the STUDY.
+To run IMAT on the loaded STUDY, launch the Run IMA (*pop_runIMA_study*) window, either by typing *pop_runIMA_study* on the MATLAB command line or by calling it from the EEGLAB menu by selecting **STUDY > STUDY IMA > Run STUDY IMA** as highlighted in the figure below. This will run a separate IMA decomposition for each subject in the study. That is, a joint IMA is computed over all the conditions for each single subject in the STUDY.
In the resulting window (above right) we can specify:
@@ -259,12 +259,12 @@ In the resulting window (above right) we can specify:
2. Which frequency range to compute IMA on (**Freq. limits (Hz)**).
3. The frequency scaling (**Freq scale**), linear or log.
4. A factor to regulate dimensionality reduction on the time windows of the spectral data using PCA before spectrogram ICA decomposition (**pcfac**) - the smaller the pcfac, the more dimensions will be retained *ndims = (freqsxICs)/pcfac* where *freqs* is the number of frequencies estimated and *ICs* is the number of ICs (default is 7)
-5. Other IMA options (**pop\_runima_study options**) – e.g., which ICA algorithm to use (see *pop_runima_study* help for more details)
+5. Other IMA options (**pop_runima_study options**) – e.g., which ICA algorithm to use (see *pop_runima_study* help for more details)
**Running IMA from the command line**
-*[STUDY] = pop\_runIMA_study(STUDY, ALLEEG, 'freqscale', 'log','frqlim', [6 120],
+*[STUDY] = pop_runIMA_study(STUDY, ALLEEG, 'freqscale', 'log','frqlim', [6 120],
'pcfac', 7,
'cycles', [6 0.5],
'selectICs', {'brain'},
@@ -275,7 +275,7 @@ Here we are computing IMA on the subject data contained in the STUDY set; a sepa
## The IMA structure in the STUDY environment
-*pop\_runIMA_study* saves the IMA results in the IMA structure which is associated with the subject-specific EEG files and saved in the same folder as the EEG files it is run on.
+*pop_runIMA_study* saves the IMA results in the IMA structure which is associated with the subject-specific EEG files and saved in the same folder as the EEG files it is run on.
The filenames of the subject-specific IMA files are saved in:
{% raw %}
@@ -372,7 +372,7 @@ There are three main plotting functions for visualizing IMAT results for single
2. Spectral envelope
3. Time courses
-**1. Superimposed Components** (*pop\_plotspecdecomp_study*)
+**1. Superimposed Components** (*pop_plotspecdecomp_study*)
To visualize the IM decomposition for single subjects in the study, launch **STUDY > STUDY IMA > Plot IMA results > Superimposed Components**
@@ -388,13 +388,13 @@ In the resulting window (above right) we can specify:
4. Indices of the ICs and IMs to plot
On the command line enter:
-*pop\_plotspecdecomp_study(STUDY, 'plottype', 'comb', 'subject', '3')*
-*pop\_plotspecdecomp_study(STUDY, 'plottype', 'ics', 'subject', '3')*
-*pop\_plotspecdecomp_study(STUDY, 'plottype', 'ims', 'subject', '3')*
+*pop_plotspecdecomp_study(STUDY, 'plottype', 'comb', 'subject', '3')*
+*pop_plotspecdecomp_study(STUDY, 'plottype', 'ics', 'subject', '3')*
+*pop_plotspecdecomp_study(STUDY, 'plottype', 'ims', 'subject', '3')*
The type of plots are the same as for single subjects visualizations, please refer to the section above for more information.
-**2. Spectral envelope** (*pop\_plotspecenv_study*)
+**2. Spectral envelope** (*pop_plotspecenv_study*)
To visualize the contribution of IMs added to the mean log spectrum of an IC for a single subject launch **STUDY > STUDY IMA > Plot IMA results > Spectral envelope**
@@ -412,7 +412,7 @@ In the resulting window (above right) we can specify:
The function plots separate spectral loadings for each condition. Here is an example plotting the **Full envelope** of IMs for two *Eyes_open* and *Eyes_closed* conditions separately. The IC mean log power spectrum is shown as a black trace. The outer light grey limits represent the 1st and 99th percentiles of variation in the IC log spectrum across time. Dark grey areas represent the 1st and 99th percentiles for the PCA-reduced IC spectral data that has been used in the IMA analysis.
On the command line enter:
-*pop\_plotspecenv_study(STUDY,'comps', [1 2 5], 'factors', [1 2 3 6], 'frqlim', [6 120],'plotcond', 'on', 'subject', '3');*
+*pop_plotspecenv_study(STUDY,'comps', [1 2 5], 'factors', [1 2 3 6], 'frqlim', [6 120],'plotcond', 'on', 'subject', '3');*
@@ -487,7 +487,7 @@ In the resulting window (above right) we can specify:
3. **Target peak freq** The target peak frequency specifies the target frequency to stretch spectra to when the 'stretch_spectra' flag is 'on', if 'Target peak freq' is empty, uses the center frequency of the 'Freq. range'
On the command line enter:
-*pop\_collecttemplates(STUDY, 'peakrange', [8 12],
+*pop_collecttemplates(STUDY, 'peakrange', [8 12],
'stretch_spectra', 'on',
'targetpeakfreq', 10,
'plot_templ', 'on');*
diff --git a/plugins/nsgportal/nsgportal-graphical-user-interface:-pop_nsg.md b/plugins/nsgportal/nsgportal-graphical-user-interface:-pop_nsg.md
deleted file mode 100644
index 7769a004..00000000
--- a/plugins/nsgportal/nsgportal-graphical-user-interface:-pop_nsg.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-layout: default
-parent: nsgportal
-grand_parent: Plugins
----
-
-# *nsgportal* graphical user interface: pop_nsg
-
-Interaction with key function in EEGLAB is mostly supported through both, command line and graphical user interface (GUI). The plugin *nsgportal* also follows this philosophy. In this section, we introduce the GUI supporting the plugin *nsgportal* through its main function, *pop_nsg*. A more advanced tutorial on using the plugin from its GUI will be addressed in the next sections (see [here](https://github.com/sccn/nsgportal/wiki/Creating-and-managing-a-job-from-pop_nsg-GUI)).
-
-## The *pop_nsg* GUI
-To call the *pop_nsg* GUI, simply type *pop_nsg* from the MATLAB command windows. The GUI depicted below will pop up. the GUI can also be invoked from the EEGLAB main GUI by clicking ***Tools > NSG Tools > Manage NSG jobs***. For this, the plugin *nsgportal* has to be installed before (see [this](https://github.com/sccn/nsgportal/wiki/Registering-on-NSG-R) section).
-
-
-
-
-
-The main functionalities supported from the pop_nsg GUI are listed below:
-
-1. Submit an EEGLAB job to NSG. See GUI section "Submit new NSG job"
-2. Test NSG jobs locally on your computer.
-3. Delete jobs from your NSG account
-4. Download NSG job results.
-5. Load results from a completed and downloaded NSG job.
-6. Visualize error and intermediate logs
-7. Access *pop_nsg* help.
-
-## GUI main sections
-### Submitting new NSG job
-From this section of the GUI you will be able to test and submit a job for processing in NSG.
-
-Component list:
-
- 1. Edit **Job folder or zip file** : Full path to the zip file or folder for a job to submit to NSG
- 2. Button **Browse**: Browse a zip file or folder for a job to submit to NSG
- 3. Edit **Matlab script to execute**: Matlab script for NSG to execute upon job submission
- 4. Button **Test job locally**: Test job locally on this computer. A downscaled version of the job MUST be used.
- 5. Edit **Job ID (default or custom)**: Unique identifier for the NSG job. Modify this field at your convenience.
- 6. Edit **NSG run options (see Help)**: NSG options for the job to be submitted. See *>> pop_nsg help* for the list of all options.
- 7. Button **Run job on NSG**: Submit the job to run on NSG
-
-### Interacting with your jobs
- From this section of the GUI, you will be able to interact with the jobs submitted to NSG under your credentials.
- This section is comprised of the following components:
-
- 1. Button **Refresh job list**: Refresh the list of all of your NSG jobs.
- 2. Checkbox **Auto-refresh job list**: Automatically refresh the list of all of your NSG jobs.
- 3. Button **Delete this NSG job**: Delete the currently selected job
- 4. List box **Select job**: List of all jobs under your credentials in NSG. A color code is used here to inform on the status of the jobs in this list. The legend can be found below the list box.
- 5. Button **Matlab output log**: Download and display MATLAB command line output for the currently selected job. Intermediate job logs can be also visualized from here. In the figure above, this option appears disabled since there is no current job on the list.
- 6. Button **Matlab error log**: Download and display the MATLAB error log for the currently selected job. In the figure above, this option appears disabled since there is no current job on the list.
- 7. Button **Download job result**: Download result files from the currently selected job
- 8. Button **Load/plot results**: Launch a GUI for loading and displaying results of the currently selected job
-
-### Checking your NSG job status
-In this section are displayed the messages issued by NSG during the submission and processing of the job currently selected from the list box **Select job**.
\ No newline at end of file
diff --git a/tutorials/01_Install/Install.md b/tutorials/01_Install/Install.md
index 534c92fd..60909490 100644
--- a/tutorials/01_Install/Install.md
+++ b/tutorials/01_Install/Install.md
@@ -6,86 +6,76 @@ categories: tutorial
parent: Tutorials
nav_order: 1
---
+
Installing and starting EEGLAB
-================
+==============================
-First, download [EEGLAB](http://sccn.ucsd.edu/eeglab/install.html),
-which contains the tutorial dataset in the _sample_data_ subfolder of the EEGLAB distribution.
-When you uncompress EEGLAB you will obtain a folder named "eeglabxxxx"
-(note: current version number 'xxxx' will vary).
+First, download [EEGLAB](http://sccn.ucsd.edu/eeglab/install.html),
+which contains the tutorial dataset in the _sample_data_ subfolder of the EEGLAB distribution.
+When you decompress EEGLAB, you will obtain a folder named "eeglabxxxx"
+(note: the current version number 'xxxx' will vary).
-Under Windows, MATLAB
-usually recommends but does not require that you place toolboxes
-in the *Application/MATLABRxxxx/toolbox/* folder (note: this name should
-vary with the MATLAB version 'xxxx'). In Linux, the MATLAB toolbox
-folder is typically located at */usr/local/pkgs/MATLAB-rxxxx/toolbox/*. In MacOS it is in "/Application/MATLAB_Rxxxx". You may also place the folder anywhere else on your path.
+Under Windows, MATLAB usually recommends but does not require that you place toolboxes
+in the *Application/MATLABRxxxx/toolbox/* folder (note: this name should
+vary with the MATLAB version 'xxxx'). In Linux, the MATLAB toolbox
+folder is typically located at */usr/local/pkgs/MATLAB-rxxxx/toolbox/*. In **macOS**, it is in */Applications/MATLAB_Rxxxx/*. You may also place the folder anywhere else on your path.
Now, we will start MATLAB and EEGLAB.
Start MATLAB
-------
+------------
-- Windows: Go to Start, find MATLAB, and run it.
-- MacOS: Start from the MATLAB icon in the dock or the
- application folder.
-- Linux: Open a terminal window and type *matlab* and hit enter.
+- **Windows**: Go to Start, find MATLAB, and run it.
+- **macOS**: Start from the MATLAB icon in the Dock or the Applications folder.
+- **Linux**: Open a terminal window and type *matlab*, then hit Enter.
-Switch to the EEGLAB directory (folder)
-------
+Switch to the EEGLAB directory
+------------------------------
You may browse for the directory by clicking on the button marked *"…"* in the upper right of the screen.
-

-
- This opens the window below. Double-click on a directory to enter it.
- Double-clicking on ".." in the folder list takes you up one level. Hit
- *Ok* once you find the folder or directory you wish to be in.
- Alternatively, from the command line, use *cd* (change directory) to
- get to the desired directory.
+This opens the window below. Double-click on a directory to enter it.
+Double-clicking on ".." in the folder list takes you up one level. Hit *OK* once you find the folder or directory you wish to be in.
+Alternatively, from the command line, use *cd* (change directory) to get to the desired directory.
Start EEGLAB
-------
+------------
-Type *eeglab* at the MATLAB command line and hit enter. EEGLAB will
+Type *eeglab* at the MATLAB command line and hit Enter. EEGLAB will
automatically add itself to the MATLAB path.
-

-
- The blue main EEGLAB window below should pop up, with its seven menu
- headings: File, Edit, Tools, Plot, Study, Datasets, Help arranged in typical (left-to-right) order of use.
+The blue main EEGLAB window below should pop up, with its seven menu
+headings: File, Edit, Tools, Plot, Study, Datasets, Help arranged in typical (left-to-right) order of use.

-
Adding EEGLAB to the MATLAB path
-------
+--------------------------------
-You may want to add the EEGLAB folder to the MATLAB search path so the
+You may want to add the EEGLAB folder to the MATLAB search path so the
next time you start MATLAB, you will be able to directly open EEGLAB.
-If you started MATLAB through its graphical interface, go to the
-file menu item and select set
-path. This will open the following window.
-
+If you started MATLAB through its graphical interface, go to the
+File menu item and select Set Path. This will open the following window.
-
+
-Or, if you are running MATLAB from the command line, type *pathtool*
-and hit return; this will also call up this window.
+Or, if you are running MATLAB from the command line, type *pathtool* at the command line
+and hit Enter; this will also call up this window.
-Click on the button marked *Add folder* and select the folder
-"eeglabxxxxx", then hit *Ok* (EEGLAB will take care of adding its
-subfolder itself).
+Click on the button marked *Add Folder* and select the folder
+"eeglabxxxx", then hit *OK* (EEGLAB will take care of adding its
+subfolders itself).
-Hit *save* in the *pathtool* window. This will make the EEGLAB call-up
-function *eeglab* available in future MATLAB sessions. Note that if
-you are installing a more recent version of EEGLAB, it is best to
-remove the old version from the MATLAB path (select, then hit
-*Remove*) to avoid the possibility of calling up outdated routines. It
-is preferable NOT to add the *eeglab* path with its subfolder and let
-EEGLAB manage paths (when you start EEGLAB, it automatically adds
-the path it needs).
+Hit *Save* in the *pathtool* window. This will make the EEGLAB call-up
+function *eeglab* available in future MATLAB sessions. Note that if
+you are installing a more recent version of EEGLAB, it is best to
+remove the old version from the MATLAB path (select it, then hit
+*Remove*) to avoid the possibility of calling up outdated routines. It
+is preferable **not** to add the *eeglab* path with its subfolders manually—let
+EEGLAB manage paths (when you start EEGLAB, it automatically adds
+the paths it needs).
diff --git a/tutorials/02_Quickstart/quickstart.md b/tutorials/02_Quickstart/quickstart.md
index db4cb111..ec8fc8a1 100644
--- a/tutorials/02_Quickstart/quickstart.md
+++ b/tutorials/02_Quickstart/quickstart.md
@@ -9,7 +9,7 @@ nav_order: 2
Quickstart guide
================
-This page lets you import and visualizes an EEG dataset. It is a way to get started quickly.
+This page lets you import and visualize an EEG dataset. It is a way to get started quickly.
Load the sample EEGLAB dataset
---------------------------
diff --git a/tutorials/04_Import/BIDS.md b/tutorials/04_Import/BIDS.md
index 802c9da6..01892b45 100644
--- a/tutorials/04_Import/BIDS.md
+++ b/tutorials/04_Import/BIDS.md
@@ -8,7 +8,7 @@ grand_parent: Tutorials
Importing BIDS data
===========================
{: .no_toc }
-The Brain Imaging Data Structure (BIDS) data standards is a community standard for organizing, describing, and annotating collections of neuro-imaging datasets. A magnetoencephalography (MEG) data extension has been developed and, in 2019, another [electrophysiology](https://github.com/bids-standard/bids-specification/blob/master/src/04-modality-specific-files/03-electroencephalography.md) data extension for EEG and intracranial EEG (iEEG) data. EEGLAB allows importing and exporting EEG data to the BIDS format using the [bids-matlab-io](https://github.com/sccn/bids-matlab-tools/wiki) EEGLAB plugin.
+The Brain Imaging Data Structure (BIDS) data standards is a community standard for organizing, describing, and annotating collections of neuro-imaging datasets. A magnetoencephalography (MEG) data extension has been developed and, in 2019, another [electrophysiology](https://github.com/bids-standard/bids-specification/blob/master/src/04-modality-specific-files/03-electroencephalography.md) data extension for EEG and intracranial EEG (iEEG) data. EEGLAB allows importing and exporting EEG data to the BIDS format using the [EEG-BIDS](https://github.com/sccn/bids-matlab-tools/wiki) EEGLAB plugin.
@@ -60,4 +60,4 @@ We can clearly see the alpha peak at about 10 Hz for most subjects (with one sub
You may follow the [batch processing tutorial](/tutorials/10_Group_analysis/multiple_subject_proccessing_overview.html#perform-batch-processing) to pre-process all datasets simultaneously from the EEGLAB GUI, and perform standard [EEGLAB group analyses](/tutorials/10_Group_analysis/).
-You may also look at the [BIDS script processing tutorial](/tutorials/11_Scripting/Analyzing_EEG_data_in_EEGLAB_The_Wakeman-Henson_dataset.html), which processes the same dataset from the MATLAB command line.
\ No newline at end of file
+You may also look at the [BIDS script processing tutorial](/tutorials/11_Scripting/Analyzing_EEG_data_in_EEGLAB_The_Wakeman-Henson_dataset.html), which processes the same dataset from the MATLAB command line.
diff --git a/tutorials/05_Preprocess/rereferencing.md b/tutorials/05_Preprocess/rereferencing.md
index 2f900bc4..72d98ab5 100644
--- a/tutorials/05_Preprocess/rereferencing.md
+++ b/tutorials/05_Preprocess/rereferencing.md
@@ -27,9 +27,7 @@ Select Tools → Re-reference the data to
convert the dataset to average reference by calling the [pop_reref.m](https://sccn.ucsd.edu/eeglab/locatefile.php?file=pop_reref.m) function. When you call this menu item for the
first time for a given dataset, the following window pops up.
-
-
-
+
The (sample) data above were recorded using a mastoid reference. Since
we do not wish to include this reference channel (neither in the data
@@ -47,6 +45,8 @@ undoing an average reference transform -- as long as you chose to
include the initial reference channel in the data when you transformed
to average reference).
+The Huber mean is a robust estimator of central tendency that reduces the impact of outliers by iteratively optimizing Huber’s loss function. This function acts quadratically for small errors, much like the arithmetic mean, but switches to a linear treatment for larger deviations, effectively down-weighting extreme values. The threshold, measured in microvolts, specifies the deviation from the mean at which channel values are treated linearly rather than quadratically. This approach uses the same type of reference as the PREP pipeline. However, the PREP pipeline iteratively removes channels with excessive deviations and recomputes the reference—a step that isn’t necessary in EEGLAB if bad channels have already been eliminated using clean_rawdata. It is important to note that the Huber mean should not be used before ICA because it violates the linearity assumption; it is best applied after ICA.
+
Note that the re-referencing function also re-references the stored
ICA weights and scalp maps, if they exist.
diff --git a/tutorials/11_Scripting/automated_pipeline.md b/tutorials/11_Scripting/automated_pipeline.md
index 4d8de15c..a40d9448 100644
--- a/tutorials/11_Scripting/automated_pipeline.md
+++ b/tutorials/11_Scripting/automated_pipeline.md
@@ -54,7 +54,7 @@ pop_editoptions( 'option_storedisk', 1); % only one dataset in memory at a time
ALLEEG = pop_select( ALLEEG,'rmchannel',{'EXG1','EXG2','EXG3','EXG4','EXG5','EXG6','EXG7','EXG8', 'GSR1', 'GSR2', 'Erg1', 'Erg2', 'Resp', 'Plet', 'Temp'});
% compute average reference
-ALLEEG = pop_reref( ALLEEG,[]);
+ALLEEG = pop_reref( ALLEEG, []);
% clean data using the clean_rawdata plugin
ALLEEG = pop_clean_rawdata( ALLEEG,'FlatlineCriterion',5,'ChannelCriterion',0.87, ...
@@ -62,9 +62,8 @@ ALLEEG = pop_clean_rawdata( ALLEEG,'FlatlineCriterion',5,'ChannelCriterion',0.87
'WindowCriterion',0.25,'BurstRejection','on','Distance','Euclidian', ...
'WindowCriterionTolerances',[-Inf 7] ,'fusechanrej',1);
-% recompute average reference interpolating missing channels (and removing
-% them again after average reference - STUDY functions handle them automatically)
-ALLEEG = pop_reref( ALLEEG,[],'interpchan',[]);
+% recompute average reference
+ALLEEG = pop_reref( ALLEEG,[]);
% run ICA reducing the dimension by 1 to account for average reference
plugin_askinstall('picard', 'picard', 1); % install Picard plugin
@@ -74,6 +73,14 @@ ALLEEG = pop_runica(ALLEEG, 'icatype','picard','concatcond','on','options',{'pca
ALLEEG = pop_iclabel(ALLEEG, 'default');
ALLEEG = pop_icflag( ALLEEG,[NaN NaN;0.9 1;0.9 1;NaN NaN;NaN NaN;NaN NaN;NaN NaN]);
+% Optional: remove flagged ICA components (otherwise done at the STUDY level), then recompute the
+% average reference using the Huber method interpolating missing channels (and removing them again
+% after average reference). See tutorial section 5.b.
+if 0
+ ALLEEG = pop_subcomp(ALLEEG, []);
+ ALLEEG = pop_reref( ALLEEG, [], 'huber', 25, 'interpchan',[], 'refica', 'remove');
+end
+
% extract data epochs
ALLEEG = pop_epoch( ALLEEG,{'oddball_with_reponse','standard'},[-1 2] ,'epochinfo','yes');
ALLEEG = eeg_checkset( ALLEEG );
@@ -101,7 +108,7 @@ A figure similar to the one below will be plotted. The figure may differ as some

-Running an spectral pipeline
+Running a spectral pipeline
----------------
The pipeline below takes the raw data from all subjects, clean the data, extracts epochs of interest, and plots the spectrum to compare conditions. The first part is identical to the ERP script above. The end of the script computes the spectrum. Note that if you have continuous data, you need not extract epochs. We extracted epochs in this case since we wanted to reuse the same dataset as above.
@@ -123,7 +130,7 @@ pop_editoptions( 'option_storedisk', 1); % only one dataset in memory at a time
ALLEEG = pop_select( ALLEEG,'rmchannel',{'EXG1','EXG2','EXG3','EXG4','EXG5','EXG6','EXG7','EXG8', 'GSR1', 'GSR2', 'Erg1', 'Erg2', 'Resp', 'Plet', 'Temp'});
% compute average reference
-ALLEEG = pop_reref( ALLEEG,[]);
+ALLEEG = pop_reref( ALLEEG, []);
% clean data using the clean_rawdata plugin
ALLEEG = pop_clean_rawdata( ALLEEG,'FlatlineCriterion',5,'ChannelCriterion',0.87, ...
@@ -133,7 +140,7 @@ ALLEEG = pop_clean_rawdata( ALLEEG,'FlatlineCriterion',5,'ChannelCriterion',0.87
% recompute average reference interpolating missing channels (and removing
% them again after average reference - STUDY functions handle them automatically)
-ALLEEG = pop_reref( ALLEEG,[],'interpchan',[]);
+ALLEEG = pop_reref( ALLEEG, []);
% run ICA reducing the dimension by 1 to account for average reference
plugin_askinstall('picard', 'picard', 1); % install Picard plugin
@@ -143,6 +150,14 @@ ALLEEG = pop_runica(ALLEEG, 'icatype','picard','concatcond','on','options',{'pca
ALLEEG = pop_iclabel(ALLEEG, 'default');
ALLEEG = pop_icflag( ALLEEG,[NaN NaN;0.9 1;0.9 1;NaN NaN;NaN NaN;NaN NaN;NaN NaN]);
+% Optional: remove flagged ICA components (otherwise done at the STUDY level), then recompute the
+% average reference using the Huber method interpolating missing channels (and removing them again
+% after average reference). See tutorial section 5.b.
+if 0
+ ALLEEG = pop_subcomp(ALLEEG, []);
+ ALLEEG = pop_reref( ALLEEG, [], 'huber', 25, 'interpchan',[], 'refica', 'remove');
+end
+
% extract data epochs
% this is not necessary if you have resting state data or eyes open
% eyes closed data, you need to define the design in the STUDY
diff --git a/tutorials/ConceptsGuide/Data_Structures.md b/tutorials/ConceptsGuide/Data_Structures.md
index 69ce9f68..e19a021b 100644
--- a/tutorials/ConceptsGuide/Data_Structures.md
+++ b/tutorials/ConceptsGuide/Data_Structures.md
@@ -67,7 +67,7 @@ line output:
group: ''
condition: ''
session: []
- comments: [9x769 charater]
+ comments: [9x769 character]
nbchan: 32
trials: 80
pnts: 384
@@ -1116,9 +1116,9 @@ For example:
```
The data measures used in the clustering were the component spectra in a
-given frequency range ('' ‘freqrange' \[3 25\]*), the spectra were
-reduced to 10 principal dimensions (* 'npca' \[10\]*), normalized (*
-'norm' \[1\]*), and each given a weight of 1 (* 'weight' \[1\]'). When
+given frequency range ('' 'freqrange' [3 25]*), the spectra were
+reduced to 10 principal dimensions (* 'npca' [10]*), normalized (*
+'norm' [1]*), and each given a weight of 1 (* 'weight' [1]'). When
more than one method is used for clustering, then *preclustparams* will
contain several cell arrays.
The *preclust.preclustdata* field contains the data given to the
diff --git a/tutorials/ConceptsGuide/Setting_up_your_EEG_lab.md b/tutorials/ConceptsGuide/Setting_up_your_EEG_lab.md
index c38a06f5..8bd291ed 100644
--- a/tutorials/ConceptsGuide/Setting_up_your_EEG_lab.md
+++ b/tutorials/ConceptsGuide/Setting_up_your_EEG_lab.md
@@ -115,17 +115,17 @@ Recording EEG data in a Faraday cage will lead to better signal quality and no l
* The subject and the experimenter should be isolated in a separate room. If they communicate with an intercom, make sure the intercom is far away from the subject. Do not use an intercom that relies on the electrical circuit to transmit the signal.
-* Remove metal objects touching the subject (or very close). For example, the subject should not be sitting on a metal chair. If the subject needs to respond to stimuli, make sure the button press or mouse pap is nonmetallic.
+* Remove metal objects touching the subject (or very close). For example, the subject should not be sitting on a metal chair. If the subject needs to respond to stimuli, make sure the button press or mouse pad is nonmetallic.
* Remove any non-shielded battery or backup power. Non-shielded batteries can create very large noise artifacts, especially when plugged into the wall. Laptops, if held far away from the subject, are probably OK. Laptops should not be plugged into the wall and run on battery if present with the subject in the recording room.
* It is probably a good idea for the subject to remove anything that could be used as an antenna on his body (e.g., a metal watch).
-* Compute screens and light are the major sources of 50 Hz noise in the EEG. These should be placed as far as possible from the subject. Reduction of the 50 Hz noise is very important, as in practice, the lower the 50 noise is, the lower the noise is at other frequencies. One technique we have used is to have one electrode on a pole and go around the room to try to detect the source of noise (outlet, screen, etc.). EMF detectors can probably also be used.
+* Computer screens and light are the major sources of 50 Hz noise in the EEG. These should be placed as far as possible from the subject. Reduction of the 50 Hz noise is very important, as in practice, the lower the 50 Hz noise is, the lower the noise is at other frequencies. One technique we have used is to have one electrode on a pole and go around the room to try to detect the source of noise (outlet, screen, etc.). EMF detectors can probably also be used.
## Applying gel
-Using the syringe filled with gel, push down on the electrode well (so the gel doesn’t spread to other parts of the cap), and part the participant’s hair with the needle until you reach the skin. Then squeeze a small amount of gel into each well. Press firmly but not so firmly that the subject experiences pain. DO NOT PUT TOO MUCH GEL IN, otherwise, the gel will spread between electrode wells across the scalp, merging multiple distinct EEG signals into one.
+Using the syringe filled with gel, push down on the electrode well (so the gel doesn't spread to other parts of the cap), and part the participant's hair with the needle until you reach the skin. Then squeeze a small amount of gel into each well. Press firmly but not so firmly that the subject experiences pain. DO NOT PUT TOO MUCH GEL IN, otherwise, the gel will spread between electrode wells across the scalp, merging multiple distinct EEG signals into one.
Slightly irritating the scalp of the subject by asking them to brush their hair for 5 minutes may decrease electrode impedance and increase signal quality.
@@ -137,7 +137,7 @@ Decreasing electrode impedance and maximizing data quality (even for high-impeda
Scanning electrode position is easy (a smartphone and an app can construct detailed 3-D models) and can improve source location (even in the absence of the subject MRI). It should be done systematically even if you are not sure you are going to use that information (see this [page](https://github.com/sccn/get_chanlocs/wiki) for more information).
-## EEG synchronisation
+## EEG synchronization
Synchronizing EEG with experimental events is critical and needs to be performed with millisecond precision (in psychophysics, a 10-millisecond difference in reaction time is considered large). Here are a few tips.
diff --git a/tutorials/misc/EEGLAB_and_MEG_data.md b/tutorials/misc/EEGLAB_and_MEG_data.md
index 3fe024f2..01b8a5aa 100644
--- a/tutorials/misc/EEGLAB_and_MEG_data.md
+++ b/tutorials/misc/EEGLAB_and_MEG_data.md
@@ -77,9 +77,9 @@ Then we select MEG channels since this dataset contains both EEG and MEG data. U

-Then call menu item Tools > Source localization using DIPFIT > Create a head model from an MRI. A window asks you to choose an MR head image, and the following GUI appears.
+Then call menu item Tools > Source localization using DIPFIT > Create a head model from an MRI. A window asks you to choose an MR head image, and the following GUI appears. In this example, we use file name "sub-01_ses-mri_acq-mprage_T1w.nii.gz" from the anat folder.
-
+
This will first pop up the fiducials. The fiducials are automatically aligned with the MR head image in this example. However, it is always good to check the alignment. We can see below that the fiducials are where we would expect them to be (the thin blue lines indicate their positions).
@@ -87,7 +87,7 @@ This will first pop up the fiducials. The fiducials are automatically aligned wi
Then the MRI is segmented into the brain, skull, and scalp, and meshes are extracted. It is important to note that it is better to use Freesurfer to segment MRI and create meshes, as it is a more precise (albeit more time-consuming process). The [pop_dipfit_headmodel.m](http://sccn.ucsd.edu/eeglab/locatefile.php?file=pop_dipfit_headmodel.m) uses the "bemcp" method, a module external to Fieldtrip, to extract meshes. Again, this is the most cross-platform compatible solution but might not be the best one.
-
+
Once this is done, call menu item Tools > Source localization using DIPFIT > Head model and settings. We can see that the head model, MRI, and associated coordinate landmarks are blanked out. The graphic interface also shows that we are editing a custom head model in the Fieldtrip format.
@@ -107,7 +107,7 @@ When the anatomical MRI is not available, not all is lost. For example, this [pu
One way to fix this and use a template head model is to use the location of the EEG channels when they are available. EEG channels are usually scanned in the same coordinate space as the MEG sensors, so aligning and stretching the MEG head model to match the channel coordinates should be able to fix the problem above. A *headshape.pos* file is also sometimes available along with the MEG. It contains data points lying on the head of the subject and may be used to align the MEG sensor space to the anatomical MRI. However, this file may also be used to align and stretch the EEGLAB template MEG boundary element model to match the subject's head. To use this file, create a random data array on the MATLAB command line with the same number of scanned positions *a=rand(150, 1000);* and import it as a MATLAB array. Then, call the channel editor and import the *headshape.pos* file as an *SFP* file. You can then align the scanned position with the BEM head model. Write down the homogeneous transformation matrix and reuse it for the MEG model alignment.
-Using templace head model for MEG
+Using template head models for MEG
---------------------------------
Although it is preferable to use the subject's MRI, it is possible to use the template MNE head model with MEG data. The alignment between the head model and the sensors may be performed using Fiducials. EEG and MEG will use the same boundary element model. For MEG, only the inner surface of the model is being used. Model fitting is performed using FieldTrip.
diff --git a/tutorials/misc/EEGLAB_and_iEEG_data.md b/tutorials/misc/EEGLAB_and_iEEG_data.md
index 6949e538..0785bdf5 100644
--- a/tutorials/misc/EEGLAB_and_iEEG_data.md
+++ b/tutorials/misc/EEGLAB_and_iEEG_data.md
@@ -54,3 +54,4 @@ You can then use menu item Plot > Channel ERPs > with
Other relevant resources for processing iEEG data:
- [Fieldtrip sEEG tutorial](https://www.fieldtriptoolbox.org/tutorial/human_ecog/)
- [MIA](http://www.neurotrack.fr/mia/) toolbox. Also accessible as a Brainstorm plugin.
+- [RAVE](https://rave.wiki/) toolbox (R language).
diff --git a/workshops/EEGLAB_2017_Aspet.md b/workshops/EEGLAB_2017_Aspet.md
index d5999195..4927fa96 100644
--- a/workshops/EEGLAB_2017_Aspet.md
+++ b/workshops/EEGLAB_2017_Aspet.md
@@ -7,9 +7,6 @@ grand_parent: Workshops

-
-
Twenty-fourth EEGLAB Workshop
=============================
diff --git a/workshops/EEGLAB_2025_Aspet.md b/workshops/EEGLAB_2025_Aspet.md
new file mode 100644
index 00000000..82600b3e
--- /dev/null
+++ b/workshops/EEGLAB_2025_Aspet.md
@@ -0,0 +1,233 @@
+---
+layout: default
+title: EEGLAB 2025 Aspet
+long_title: EEGLAB 2025 Aspet workshop
+parent: Workshops
+---
+
+
+
+
+
+EEGLAB Workshop
+============================
+
+Aspet France - June 30-July 4th, 2025
+
+The 34th EEGLAB Workshop will take place at the Bois Perche, about two hours by
+chartered bus from Toulouse. Participants will be expected to bring laptops with
+MATLAB installed so as to be able to participate in the practical
+sessions. The tutorial workshop will introduce and demonstrate the use
+of the EEGLAB software environment and EEGLAB-linked tools for
+performing advanced analysis of EEG and related data, with detailed
+method expositions and practical exercises. There will be an excursion.
+
+A Free symposium on Cloud EEG data processing will precede the workshop in Toulouse.
+
+Registration and cost
+---------------------
+Space at the workshop is limited to about 40 participants.
+
+To reimburse travel expenses of Workshop faculty and facilities rental,
+costs for the workshop will be as follows:
+
+Registration cost is 280 Euros for students (plus 490 euros for accommodation) and post-docs, 380 Euros (plus 490 euros for accommodation) for
+faculty and other professionals. Professionals are 580 Euros (plus 490 euros for accommodation). These registration costs include
+conference space rental, all coffee breaks, and a short excursion.
+When registering, participants are also expected to pay for accommodation and all meals at the Bois Perche retreat center (a total of 490 euros). Included accommodation is in a private room at the Bois Perche resort for 4 days. Because of a grant from the CNRS, registration (and accommodation) is free for participants for the first three CNRS employees (including PhD students and post-docs) -- first come, first served.
+
+[REGISTER HERE](https://dr14.azur-colloque.fr/inscription/fr/239/inscription)
+
+
+Warning: This workshop is not aimed for real beginners
+in EEG - such persons would be wasting much of their time.
+Some parts of the workshop are fairly technical. The main topics will be
+advanced methods for analyzing EEG and allied behavioral data, methods
+including spectral decomposition, independent component analysis,
+inverse source analysis, information flow, etc.. Some other parts of the
+workshop will require basic MATLAB scripting capabilities. Some basic
+web resources for learning MATLAB are discussed below. Beginners may
+also gain experience using MATLAB by applying the steps discussed in the
+EEGLAB wiki tutorial to the sample dataset which you can freely
+download.
+
+MATLAB tutorial
+----------------
+
+*IMPORTANT NOTE:* A portion of the workshop will be dedicated to writing EEGLAB scripts -- Not being able
+to understand MATLAB syntax will mean you will miss out on a large
+portion of the workshop.
+
+If you are new to MATLAB or need a refresher, please consult the material on the [Getting started with MATLAB page](/tutorials/misc/tutorial_matlab.html)
+
+If you do not have MATLAB, you can obtain a 30-day trial license for free on the MathWorks website (https://www.mathworks.com/campaigns/products/trials.html).
+
+Workshop material
+-----------------
+
+Workshop materials are provided on a USB flash drive. Copy the entire contents of the drive to your computer. Locate the file eeglab.zip, extract it, and follow the setup instructions. If you are using a Mac, make sure to follow these [instructions](https://www.fieldtriptoolbox.org/faq/matlab/mex_osx/) to enable binary files for source localization.
+
+Workshop Program (with corresponding PDFs)
+------------------------------------------
+
+The presented slides will be made
+available on this page. You only need to bring a
+laptop with MATLAB installed.
+
+Purple lettering = lecture
+Orange lettering = tutorial
+
+### Monday, June 30th
+
+[**Free symposium: Cloud EEG/MRI/fMRI automated processing pipelines, the SIESTA project**](Symposium_SIESTA_2025.html)
+(Toulouse CerCo laboratory)
+
+16:30 -- Shuttle bus pick up at Toulouse train station
+
+17:00 -- Shuttle bus pick up at Toulouse airport
+
+
+
+20:30 -- Dinner in Aspet (included in registration). Note that the optional evening MATLAB session was canceled due to a late dinner and also because the speaker, Ramon, could not make it.
+
+### Tuesday, July 1st
+
+7:00 - 8:30 Breakfast
+
+**Overview and ICA Theory/Practice**
+
+ 8:30 – 9:45 -- Mining event-related brain dynamics I (Scott Makeig)
+
+
+9:45 – 10:15 -- EEGLAB overview (Arnaud Delorme)
+[PDF](https://github.com/user-attachments/files/20992965/EEGLAB_overview2025.pdf)
+
+-- Break--
+
+10:30 – 11:30 -- ICA theory (Scott Makeig)
+
+
+11:30 – 13:00 -- Data import, Artifact rejection (Claire Braboszcz)
+[PDF](https://github.com/user-attachments/files/20995739/Preprocessing_braboszcz2025_edit.pdf)
+
+
+13:00-14:00 Lunch --
+
+**ICA and source analysis**
+
+14:00 – 15:00 -- ICA decomposition practicum (Claire Braboszcz) [ICLabel Practice](https://labeling.ucsd.edu/tutorial/practice) [PDF](https://github.com/user-attachments/files/20999025/ICLabel.pdf)
+
+15:00 – 16:15 -- Forward and inverse models - the Dipfit tools (Robert Oostenveld)
+[PDF](https://github.com/user-attachments/files/20999227/forward_and_inverse_models_2025.pdf)
+
+-- Break--
+
+16:30 – 17:45 -- EEGLAB Dipfit plugin (Arnaud Delorme)
+[PDF DIPFIT](https://github.com/user-attachments/files/21000200/Delorme2025_dipole_connectivity.pdf)
+
+
+19:45 -- Dinner
+
+### Wednesday, July 2nd
+
+**Group analysis and ICA clustering in EEGLAB**
+
+8:30 - 9:15 -- The Brain Imaging Data Structure (Robert Oostenveld\)
+[PDF](https://github.com/user-attachments/files/21012586/fair.and.bids.pdf)
+
+9:15 - 10:30 -- Creating a STUDY and preprocessing data (Arnaud Delorme)
+[PDF](https://github.com/user-attachments/files/21012603/EEGLAB2019_AD_STUDY_design_newreduced.pdf)
+
+-- Break--
+
+11:20 – 11:50 -- PCA vs. ICA and bootstraping ICA using RELICA (Fiorenzo Artoni)
+[PDF](https://github.com/user-attachments/files/21012617/RELICA_presentation_2025.pdf)
+
+11:50 - 12:30 -- Why cluster ICA components? (Scott Makeig)
+[PDF](https://github.com/user-attachments/files/21024507/Makeig_Aspet25_Clustering.pdf)
+
+12:30-14:00 Lunch --
+
+
+14:00 - 14:30 -- Practical ICA clustering (Arnaud Delorme)
+[PDF](https://github.com/user-attachments/files/21015560/PracticalMEEG2022_GroupAnalysis.pdf)
+
+14:30 - 16:00 -- Statistical analysis: Hierarchical Linear Modelling of EEG data (Cyril Pernet)
+[PDF LIMO](https://github.com/user-attachments/files/20999644/2025_LIMO_QuickStarter.pdf) [PDF HLM](https://github.com/user-attachments/files/20999647/2025_HLM_LIMO_EEGLAB.pdf)
+
+-- Break--
+
+16:30-18:00-- Hiking excursion
+
+
+
+
+19:45 -- Dinner
+
+### Thursday, July 3rd
+
+7:30 - 8:30 Breakfast
+
+**Advanced EEG signal processing methods**
+
+8:30 – 9:30 -- Time-frequency decompositions: Theory and practice (Scott Makeig)
+
+9:30 – 10🕙0 -- Finding the best parameter for clean_rawdata/ASR (Fiorenzo Artoni)
+[PDF](https://github.com/user-attachments/files/21012611/ASRPresentation_2025.pdf)
+
+10:00 – 10:30 -- What are EEG microstates? (Fiorenzo Artoni)
+
+-- Break--
+
+**General Linear Modeling**
+
+10:50 - 11:30 -- Correcting for multiple comparisons (Cyril Pernet) [PDF](https://github.com/user-attachments/files/20999665/2025_MCC_and_boot_EEGLAB_workshop.pdf)
+
+11:30 - 12:00 -- More STUDY designs and GLM (Cyril Pernet and Arnaud Delorme)
+[PDF LIMO](https://github.com/user-attachments/files/20999644/2025_LIMO_QuickStarter.pdf) [PDF HLM](https://github.com/user-attachments/files/20999647/2025_HLM_LIMO_EEGLAB.pdf)
+
+12:00 – 13:00 -- Theory and practice of applying general linear models to EEG data using the LIMO EEGLAB plug-in (Cyril Pernet)
+[PDF](https://github.com/user-attachments/files/21040782/2025_GLM_design.pdf)
+
+13:00-14:30 Lunch --
+
+**Source information flow**
+
+14:30 – 15:40 -- Continued processing of HW dataset (STUDY design and LIMO) (Cyril Pernet and Arnaud Delorme)
+
+-- Break--
+
+16:00 – 17:00 -- Source information flow and Granger-Causal modeling tools, SIFT and ROIconnect toolbox (Arnaud Delorme)
+[PDF connectivity](https://github.com/user-attachments/files/21000181/Connectivity_lecture2025.pdf)
+
+19:45 -- Dinner
+
+### Friday, July 4th
+
+7:30-8:30 -- Breakfast
+
+8:30 – 9:30 -- Deep learning and EEG (Arnaud Delorme)
+[PDF](https://github.com/user-attachments/files/21043470/workshop_DL-EEG_2025.pdf)
+
+9:30 – 10:15 -- Mining event-related brain dynamics II (Scott Makeig)
+
+-- Break--
+
+10:30 – 11:30 -- Practicum, small group projects
+
+11:30 – 12:00 -- General discussion
+
+
+
+12:15 -- Lunch
+
+13:00 -- Airport/train station shuttle bus leaves Bois Perche
+
+Between 14:15 and 14:45 -- drop off at Toulouse/Blagnac Airport
+
+Between 14:30 and 15:15 -- drop off at Toulouse Matabiau train station
+
+
+Further reading
+----------------
+You can consult a list of relevant EEGLAB papers [here](/others/EEGLAB_References.html)
diff --git a/workshops/EEGLAB_2025_UCSD.md b/workshops/EEGLAB_2025_UCSD.md
new file mode 100644
index 00000000..82cd2fcc
--- /dev/null
+++ b/workshops/EEGLAB_2025_UCSD.md
@@ -0,0 +1,9 @@
+---
+layout: default
+title: EEGLAB 2025 UCSD
+long_title: EEGLAB 2025 UCSD workshop
+parent: Workshops
+---
+
+Click [here](https://eeglabworkshop.ucsd.edu/2025) to reach the official workshop page.
+
diff --git a/workshops/Future_workshops.md b/workshops/Future_workshops.md
index dd6acaf2..8a87dcc3 100644
--- a/workshops/Future_workshops.md
+++ b/workshops/Future_workshops.md
@@ -9,9 +9,9 @@ Future EEGLAB workshops
===
Below are EEGLAB workshops currently planned
-In 2024:
-
-- The EEGLAB team will have a mini-workshop at the [MOBI conference in Slovenia](https://sites.google.com/view/mobi-2024/home).
+In 2025:
+- The workshop in San Diego, USA (UCSD campus) in November was canceled.
+- There is a workshop in Marseille, France, at the end of October 2025 as part of the [PracticalMEEG conference](https://cuttingeeg.org/practicalmeeg2025/).
Do not forget to subscribe to the EEGLAB News list to be notified of new
workshop and registration information (you may register by clicking a
diff --git a/workshops/Symposium_SIESTA_2025.md b/workshops/Symposium_SIESTA_2025.md
new file mode 100644
index 00000000..157834bd
--- /dev/null
+++ b/workshops/Symposium_SIESTA_2025.md
@@ -0,0 +1,47 @@
+---
+layout: default
+title: SIESTA Symposium 2025
+long_title: SIESTA Symposium 2025
+parent: Workshops
+---
+
+
+Secure NeuroImaging in the Cloud, the SIESTA project
+============================
+SIESTA explores how cloud computing can revolutionize neuroimaging research. By leveraging scalable infrastructure and standardized workflows, we make complex MRI, EEG, and MEG analysis more accessible, reproducible, and efficient. This session will showcase how automated pipelines, containerized environments, and cloud-based data sharing streamline neuroimaging studies across different platforms and operating systems.
+
+Join us on June 30th in Toulouse to see how cutting-edge computing can power your research, simplify collaboration, and push the boundaries of medical imaging.
+
+Registration
+---------------------
+There’s no fee, but if you would like to get a (free) lunch, please email [Adrien](mailto:adrien.romain.marque@gmail.com).
+
+Location and date
+-------
+June 30th, 2025, Toulouse CerCo laboratory, [Baudot building, first floor conference room (not ground floor)](https://cerco.cnrs.fr/en/visit-us/)
+
+Program
+--------
+10:00 -- **Isabelle Berry** -- Opening statements
+
+10:05 -- **Robert Oostenveld** -- Introduction to the SIESTA project
+
+10:20 -- **Cyril Pernet** -- Data privacy & Information privacy in neuroimaging
+
+11:00 -- **Marcel Zwiers** -- BIDScramble to create synthetic and anonymous neuroimaging data
+
+11:20 -- **Adrien Marque** -- An example fMRI pipeline in the SIESTA framework
+
+12:00 -- **Arnaud Delorme** -- EEG databases and pipelines for cloud computing solutions
+
+12:30 -- Lunch (included for participants but email [Adrien](mailto:adrien.romain.marque@gmail.com))
+
+1:20 -- **Camille Maumet** (remotely) -- Reproducible NeuroImaging - a case for automated pipelines
+
+1:50 -- **Scott Makeig** -- Hierarchical Event Descriptors for cloud computing solutions
+
+2:10 -- **Jan-Mathijs Schoffelen** -- Tips and tricks for implementing reproducible SIESTA pipelines
+
+2:30 -- Round table and general discussion led by **Robert Oostenveld**
+
+3:00 -- Close
diff --git a/workshops/eeglab_course.md b/workshops/eeglab_course.md
new file mode 100644
index 00000000..f00a4622
--- /dev/null
+++ b/workshops/eeglab_course.md
@@ -0,0 +1,345 @@
+---
+layout: default
+title: Complete Course Material
+long_title: Complete Course Material
+parent: Workshops
+nav_order: 1
+---
+
+
+# Complete Course Material
+
+This [repository](https://github.com/sccn/EEGLAB_course) contains materials for EEGLAB course sessions. This course was originally conducted at the [practical MEEG 2025 workshop](https://cuttingeeg.org/practicalmeeg2025/). Although this course is centered on EEGLAB, 90% of the material is not EEGLAB-specific.
+
+You may adapt the materials as needed for your own course, although please acknowledge the authors of the materials.
+
+## Prerequisites
+
+### Step 1 – Download and install MATLAB
+
+If you are organizing a course, you can usually obtain a [MATLAB trial version](https://www.mathworks.com/support/contact_us.html) for your participants by contacting the licensing department. Please have your participants install MATLAB in advance so you're ready to run EEGLAB during the course.
+
+### Step 2 – Download the course scripts
+
+During the course, participants will follow along and do hands-on work using the EEGLAB graphical interface. However, they can also run the scripts provided in this repository.
+
+Clone this repository:
+
+```bash
+git clone https://github.com/sccn/EEGLAB_course.git
+```
+
+Or download the ZIP on GitHub. Then run all the scripts one of by one starting with the first script.
+
+### Step 3 – Download the data
+
+This course uses data from the multimodal face recognition BIDS dataset, a pruned version of the OpenNeuro dataset ds000117.
+
+**Download the pruned single-subject dataset (ds000117_pruned):**
+[https://zenodo.org/record/7410278](https://zenodo.org/record/7410278)
+
+This dataset contains only one subject and is used in Sessions 1, 2, 3, and 5.
+
+**For group-level analyses, also download the BIDS dataset (ds002718):**
+[https://nemar.org/dataexplorer/detail?dataset_id=ds002718](https://nemar.org/dataexplorer/detail?dataset_id=ds002718)
+(download the ZIP file on that page)
+
+### Folder Structure Setup
+
+The scripts expect the following folder structure:
+
+```
+EEGLAB_course/
+├── eeglab/ (eeglab distribution with plugins installed)
+├── ds002718/ (raw BIDS data)
+│ └── derivatives/ (processed data will be saved here)
+├── ds000117_pruned/ (raw data for Sessions 1 of subject 1, not a valid BIDS dataset)
+│ └── derivatives/
+│ └── meg_derivatives/
+│ └── sub-01/
+│ └── ses-meg/
+│ └── meg/ (processed .set files saved here)
+├── script_01_import_data.m
+├── script_02_preprocess_data.m
+├── script_03_epochs_and_erp.m
+├── script_04_time_frequency.m
+├── script_05_source_reconstruction.m
+├── script_06_connectivity.m
+└── ... (other scripts)
+```
+
+**Setup instructions:**
+1. Clone or download this repository to create the `EEGLAB_course` folder
+2. Download and extract the `ds000117_pruned` folder **inside** the `EEGLAB_course` folder
+3. Download and extract the `ds002718` folder **inside** the `EEGLAB_course` folder
+
+### Step 4 – Download EEGLAB
+
+Now it's time to clone the EEGLAB Git repository on your computer.
+
+**Warning:** Do not download the ZIP file directly from GitHub, as it does not include EEGLAB submodules.
+
+Instead, use the following command to clone the repository and pull its submodules:
+
+```bash
+git clone --recurse-submodules https://github.com/sccn/eeglab.git
+```
+
+Or download from the [EEGLAB website](https://sccn.ucsd.edu/eeglab/download.php).
+
+### Step 5 – Check that EEGLAB runs
+
+1. Start MATLAB
+2. In MATLAB, navigate to the folder containing the EEGLAB repository
+3. At the MATLAB command prompt (>>), type: `eeglab`
+4. The EEGLAB main interface should appear
+
+If it opens without errors, you're all set for the workshop!
+
+### Step 6 – Download EEGLAB plugins
+
+This is step is critical or a lot of the excercises will not run. This is the list of plugins to downlaod:
+* File-IO
+* Fieldtrip-lite
+* LIMO
+
+It is best to use the EEGLAB plugin manager (EEGLAB menu item **File > Manage extension** and to select the plugins to install).
+
+## Course Content Overview
+
+The course materials are organized into several sessions, each focusing on different aspects of EEG/MEG data analysis using EEGLAB. Some sesisons are longer than others.
+
+### Session_1.1_overview.pptx
+
+The 18-slides presentation introduces EEGLAB, its history, capabilities, ecosystem, and practical setup steps. It also highlights preprocessing pipeline comparisons and key reference articles.
+
+* EEGLAB origins and development timeline
+* Usage statistics and ecosystem scale
+* Plugin manager and plugin count
+* MATLAB version and toolbox requirements
+* Advantages and limitations of MATLAB based EEGLAB
+* Operating system and compilation options
+* Automated preprocessing pipeline comparison
+* EEGLAB minor performance advantage explanation
+* Links to tutorial videos and test data
+* Key EEGLAB reference publications
+* Installation instructions and datasets
+* Git setup and cloning repositories
+
+### Session_1.2_BIDS_and_NEMAR_data_repository.pptx
+
+The 31 slides present the principles of open and FAIR data, the structure and purpose of BIDS, and the components of BIDS-EEG. They also introduce NEMAR resources, available tools, and computational infrastructure. This presentation is optional; however, since the data is in BIDS format, it is beneficial to introduce the format.
+
+* Drivers of increased data sharing
+* FAIR data principles and requirements
+* BIDS purpose and scope
+* Components of a BIDS-EEG dataset
+* Examples of dataset organization
+* Supported raw EEG formats
+* Event and task description structure
+* Tools for BIDS import and export
+* NEMAR repository overview
+* Manuscripts describing NEMAR tools
+* Available GPU and CPU compute resources
+* EEGDash platform introduction
+
+### Session_1.3_preprocessing.pptx
+
+The 67 slides explain the full EEG preprocessing pipeline from raw data to analysis, including filtering, referencing, artifact handling, ICA, and evaluation of preprocessing choices. They also present evidence on how preprocessing steps influence statistical outcomes and describe practical EEGLAB workflows.
+
+* Reasons for preprocessing EEG data
+* Overview of the full preprocessing pipeline
+* BIDS support in major MEEG toolboxes
+* Event import and raw data inspection
+* Hands on data loading and visualization
+* HED tagging and NEMAR BIDS experiments
+* Channel location scanning and alignment
+* Influence of reference choice on ERPs
+* Effects of downsampling decisions
+* High pass filtering and ERP significance
+* Artifact types and identification methods
+* Bad channel detection via correlation
+* Line noise handling and interpolation
+* ASR performance and human rater comparison
+* Automated rejection methods and limitations
+* ICA decomposition and quality criteria
+* ICLabel classification and component removal
+* Clean_rawdata preprocessing workflow
+* Baseline effects on ERP significance
+* Comparison of automated preprocessing pipelines
+
+### Session_2.1_ERP.pptx
+
+The 48 slides introduce ERP analysis at the sensor level, covering conceptual foundations, visualization methods, preprocessing influences, and EEGLAB based workflows. They illustrate how ERPs arise, how to inspect them, and how ICA components contribute to ERP features.
+
+* Historical context and ERP foundations
+* ERP experiment structure and data flow
+* Examples of ERP morphology
+* ERP images and trial sorting
+* Phase synchronization as ERP mechanism
+* Time, frequency, and time frequency approaches
+* Epoch extraction and baseline handling
+* Artifact rejection and ICA influence on ERPs
+* Scalp distribution and topographic visualization
+* Three dimensional channel registration and warping
+* Component level ERP envelopes and contributions
+* Difference ERPs across conditions
+* Hands on ERP analysis steps
+
+### Session_2.2_TimeFrequencyAnalysis.pptx
+
+The 55 slides present the theory and practice of time frequency analysis for biophysical signals, from Fourier methods to wavelets. They explain key trade offs, practical spectral estimation techniques, and EEGLAB based ERSP and ITC analysis.
+
+* Biophysics of EEG and brain oscillations
+* Stationary versus non stationary signals
+* Fourier theorem and frequency decomposition
+* Discrete Fourier Transform and FFT basics
+* Zero padding and spectral interpolation limits
+* Tapering, windowing, and Gibbs phenomenon
+* Window trade offs and Welch spectral estimation
+* Trial averaging and variance reduction in spectra
+* Spectrograms and ERSP for non stationary activity
+* Absolute versus relative power and normalization
+* Time frequency uncertainty and Heisenberg limit
+* Wavelet construction and Morlet convolution
+* Time frequency trade off in wavelet families
+* Comparing FFT based and wavelet approaches
+* Phase resetting, induced versus evoked responses
+* Inter trial coherence and phase visualization
+* IC level ERSP and ITC plots in EEGLAB
+* Hands on steps for channel time frequency analysis
+
+### Session_3.1_Source_Localization_ICA.pptx
+
+The 53 slides explain how ICA contributes to source estimation, covering the forward and inverse problems, ICA theory, and practical DIPFIT based localization. They describe how IC scalp projections relate to dipolar sources and how to fit anatomical models in EEGLAB.
+
+* Forward and inverse modeling principles
+* Ill posed nature of EEG source reconstruction
+* Dipole and distributed inverse methods
+* Role of ICA in separating cortical sources
+* ICA versus PCA and key ICA algorithms
+* Applications of ICA to biomedical data
+* Two step workflow for IC source localization
+* Dipole fitting and residual variance evaluation
+* Co registration of electrodes and head models
+* BEM models and transformation parameters
+* Autofit options and dual dipole fitting
+* Distributed localization with eLORETA and beamforming
+* Leadfield computation and component modeling
+* Hands on DIPFIT localization procedures
+
+### Session_3.2_connectivity.pptx
+
+The 54 slides introduce dynamic brain connectivity analysis in EEG, covering VAR modeling, Granger causality, non stationarity handling, ROI based source space connectivity, and SIFT workflows. They explain key pitfalls, model selection principles, and visualization of causal interactions, with an accompanying brain movie illustrating connectivity dynamics.
+
+* Goals and challenges of EEG connectivity analysis
+* Spurious connectivity and common input problems
+* Granger causality principles and VAR modeling
+* Model order selection and information criteria
+* Handling non stationarity with sliding windows
+* Connectivity during visually guided movement
+* ICA based source space analysis and ROI extraction
+* SIFT workflow and causal network reconstruction
+* Influence of atlas choice and number of nodes
+* Coherence and phase relationships between regions
+* Channel versus source space considerations
+* Hands on steps for ROI connectivity computation
+
+(see also the associated brain movie: Session_3.2_connectivity_brain_movie.mov)
+
+### Session4_IC_Clustering.pptx
+
+The 51 slides describe how to cluster ICA components across subjects in EEGLAB, from STUDY setup and measure precomputation to K-means clustering and interpretation. They also show how clustering validates ICA solutions and helps identify functionally meaningful source groups.
+
+* Steps of IC clustering workflow
+* STUDY loading and dataset information editing
+* Residual variance computation and IC selection
+* Precomputation of spectra, ERSP, dipoles, and moments
+* PCA based preclustering and singular value selection
+* K means clustering in feature space of IC measures
+* Choice of measures based on scientific question
+* Examples of within subject and across subject clusters
+* Validation of ICA dipolarity and algorithm reliability
+* Visualization and manual editing of IC clusters
+* Identification of frontal midline theta and occipital alpha clusters
+* Hands on protocol for clustering and outlier removal
+
+### Session_5.1_univariate_statistics.pptx
+
+The 72 slides present robust statistical methods for EEG, covering parametric and nonparametric inference, bootstrap and permutation strategies, multiple comparison corrections, and GLM based analysis at single subject and group levels. They emphasize robust estimation, visualization, and principled control of false positives.
+
+* Parametric and nonparametric hypothesis testing
+* Power, effect size, and sample size considerations
+* Robust central tendency and trimmed means
+* Bootstrap confidence intervals and inference
+* Bootstrap versus permutation logic
+* Corrections for multiple comparisons
+* Bonferroni, Holm, FDR, cluster, and TFCE methods
+* Cluster based permutation for EEG time series
+* Strengths and limitations of correction strategies
+* Introduction to GLMs for EEG data
+* Design matrices and modeling factors
+* Level one and level two GLM analysis
+* Mixed effects modeling and random effects
+* Software implementations in MATLAB, Python, and R
+
+### Session_5.2_univariate_statistics_practicum.pptx
+
+The 23 slides give a hands on walkthrough of GLM based univariate statistics in EEGLAB/LIMO, using the ds002718 face dataset. They focus on STUDY design setup, single trial modeling, and running first and second level analyses with appropriate corrections.
+
+* Overview of the ds002718 face repetition dataset
+* Level one GLM and beta significance estimation
+* Experimental factors and condition structure
+* BIDS import, cleaning, ICA, and epoching steps
+* STUDY creation and design specification
+* Precomputation of single trial measures
+* Standard EEGLAB statistics and corrections
+* Exercises on ERP comparison across conditions
+* LIMO plugin based model estimation
+* Group level ANOVA and contrast interpretation
+* Practical workflow for GLM based EEG statistics
+
+(see also the associated movies referenced in the presentation: Session_5.2_movie_1.mp4 and Session_5.2_movie_2.mp4; distributed separately because of GitHub 100mb limit)
+
+## Exercices
+
+* **Session_1.1_overview.pptx** – No Exercice
+* **Session_1.2_BIDS_and_NEMAR.pptx** – No Exercice
+* **Session_1.3_preprocessing.pptx** – Load raw data, apply cleaning, run ICA with ICLabel, and compare preprocessing choices.
+* **Session_2.1_ERP.pptx** – Create epochs, compute ERPs, visualize scalp maps and ERPimages, and examine ICA contributions.
+* **Session_2.2_TimeFrequencyAnalysis.pptx** – Compute ERSP and ITC, compare baseline strategies, and study induced versus evoked activity.
+* **Session_3.1_Source_Localization_ICA.pptx** – Fit ICA dipoles, assess residual variance, and perform distributed source localization.
+* **Session_3.2_connectivity.pptx** – Compute ROI activity, estimate VAR based connectivity, and interpret connectivity dynamics.
+* **Session_4_IC_Clustering.pptx** – Precompute IC measures, run PCA based preclustering, apply K means, and interpret IC clusters.
+* **Session_5.1_univariate_statistics.pptx** – No Exercice
+* **Session_5.2_univariate_statistics_practicum.pptx** – Perform full GLM analysis on a multi subject dataset, including model specification and correction.
+
+## Scripts
+
+The scripts accompany the presentations, although they are not required for students to complete the course. The material is aimed primarily at beginners who may not yet know how to script, so the presentations do not explicitly describe these files. The scripts nevertheless mirror the workflow shown in each session and can be used to reproduce the results demonstrated during the lectures. Students who wish to explore further can consult the help messages of the functions used in each script.
+
+* **script_01_import_data.m** - Imports raw EEG or MEG data and events into EEGLAB. Refers to Session_1.3_preprocessing.
+* **script_02_preprocess_data.m** - Runs filtering, bad channel detection, ASR, ICA and IC cleaning. Refers to Session_1.3_preprocessing.
+* **script_03_epochs_and_erp.m** - Creates epochs, computes ERPs and prepares data for ERP analysis. Refers to Session_2.1_ERP.
+* **script_04_time_frequency.m** - Computes ERSP, ITC and other time frequency measures. Refers to Session_2.2_TimeFrequencyAnalysis.
+* **script_05_source_reconstruction.m** - Runs DIPFIT, computes dipoles and distributed source models. Refers to Session_3.1_Source_Localization_ICA.
+* **script_06_connectivity.m** - Computes VAR models, Granger causality and ROI connectivity. Refers to Session_3.2_connectivity.
+* **script_07_group_analysis_preprocess.m** - Prepares multi subject datasets and STUDY structures for group analysis. Refers to Session4_IC_Clustering and Session_5.x statistics.
+* **script_08_group_analysis.m** - Runs group level STUDY measures including clustering and group ERPs. Refers to Session4_IC_Clustering.
+* **script_09_ica_clustering.m** - Performs IC clustering across subjects using STUDY. Refers to Session4_IC_Clustering.
+* **script_10_limo_erp.m** - Runs GLM based univariate statistics using LIMO EEG. Refers to Session_5.1 and Session_5.2 univariate statistics.
+
+## Advises on conducting the course
+
+Present the lectures for the course and run the hands on exercises that accompany the PowerPoint slides. The scripts can support the demonstrations, although relying on them too heavily can overwhelm beginners. Most participants will follow the GUI more easily, so position the scripts as a reference rather than the primary workflow.
+
+As an intructer, we advise that you download and install the material. Then run all the scripts so the data is precomputed for participants (otherwise for session 3, participants must either run the script [script_01_import_data.m](script_01_import_data.m) and [script_02_preprocess_data.m](script_02_preprocess_data.m) or manually reproduce all import steps in the GUI, which is impractical for this dataset). The raw files require several technical adjustments made by the scripts that are not beginner friendly so it is better to have everything precomputed. Script [script_03_epochs_and_erp.m](script_03_epochs_and_erp.m) extract epoch and also need to be executed. Script 4 to 6 function mainly as optional examples. Script 7 needs to be run for the group and limo analysis. All core operations can be performed in the GUI. Instructors can choose whether to demonstrate scripts to illustrate reproducible workflows, but this should not be required for participants to progress. If you precompute all the measures for students, the scripts are simply add on that may or may not be used. We recommend that option.
+
+Once you have confirmed that everything runs correctly, **zip the full course folder and copy it to a USB flash drive** for distribution. This allows students to begin immediately without dealing with data downloads, EEGLAB installation, or plugin setup. We also advise that you include EEGLAB and its plugin (either as a zip archive or uncompressed) on the flash drive so all students have the latest version of EEGLAB.
+
+A few additional tips to improve the course experience: Clarify early that ICA may yield slightly different outcomes across computers and that this variability is normal. Finally, alternate between explanation and hands on exploration so participants stay engaged and do not fall behind. Have a teaching assistant present throughout the session so participants who get stuck can receive prompt one to one support without interrupting the flow of the course.
+
+## Contributors
+
+* Arnaud Delorme, creator of this course
+* Other contributors include Scott Makeig, Romain Grandchamp, Johanna Wagner, Ramon Martinez-Cancino, Tim Mullen, John Iversen, and Cyril Pernet.