Skip to content

Commit 31e4d2e

Browse files
committed
latest update
1 parent 44ea7a7 commit 31e4d2e

File tree

114 files changed

+881
-170
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+881
-170
lines changed

code/plugins/reformat_plugin.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def reformat_wiki_pages(filepath, filename, parent, output_file, wiki_input_dir=
1717
layout: default
1818
parent: {parent}
1919
grand_parent: Plugins
20+
render_with_liquid: false
2021
'''.format(filename=filename, parent=parent)
2122

2223
print(f"Reformatting {filename} of {parent}...")
@@ -45,7 +46,6 @@ def reformat_wiki_pages(filepath, filename, parent, output_file, wiki_input_dir=
4546
append_text += '''
4647
title: {title}
4748
long_title: {title}
48-
render_with_liquid: false
4949
'''.format(title=title)
5050

5151
append_text += 'nav_order: {order}\n'.format(order=order+1)
@@ -86,7 +86,7 @@ def reformat_plugin_dir(plugin_input_dir, plugin_name, formatted_name, order, li
8686
shutil.copytree(os.path.join(plugin_input_dir, 'images'), os.path.join(plugin_output_dir, 'images'), dirs_exist_ok=True)
8787
# copy all .jpg and .png files from input to output dir
8888
for file in os.listdir(plugin_input_dir):
89-
if file.endswith('.jpg') or file.endswith('.png'):
89+
if file.endswith(('.png', '.jpg', '.gif')):
9090
shutil.copyfile(os.path.join(plugin_input_dir, file), os.path.join(plugin_output_dir, file))
9191

9292
# if plugin is 'imat', copy the Docs directory recursively to the output directory
@@ -99,7 +99,8 @@ def reformat_plugin_dir(plugin_input_dir, plugin_name, formatted_name, order, li
9999
layout: default
100100
title: {plugin_name}
101101
long_title: {plugin_name}
102-
parent: Plugins'''.format(plugin_name=formatted_name)
102+
parent: Plugins
103+
render_with_liquid: false'''.format(plugin_name=formatted_name)
103104

104105
if plugin_type == 'wiki':
105106
append_text += '\nhas_children: true'
@@ -110,14 +111,14 @@ def reformat_plugin_dir(plugin_input_dir, plugin_name, formatted_name, order, li
110111
shutil.copytree(os.path.join(wiki_plugin_input_dir, 'images'), os.path.join(plugin_output_dir, 'images'), dirs_exist_ok=True)
111112
# copy all .jpg and .png files from wiki input to output dir
112113
for file in os.listdir(wiki_plugin_input_dir):
113-
if file.endswith('.jpg') or file.endswith('.png'):
114+
if file.endswith('.jpg') or file.endswith(('.png', '.jpg', '.gif')):
114115
shutil.copyfile(os.path.join(wiki_plugin_input_dir, file), os.path.join(plugin_output_dir, file))
115116

116117

117118
for root, dirs, files in os.walk(wiki_plugin_input_dir):
118119
for file in files:
119120
if file.endswith('.md') and not file.startswith('index') and not file.startswith('Home'):
120-
reformat_wiki_pages(os.path.join(wiki_plugin_input_dir, file), file.strip('.md'), formatted_name, os.path.join(plugin_output_dir, file), wiki_plugin_input_dir)
121+
reformat_wiki_pages(os.path.join(wiki_plugin_input_dir, file), file.replace('.md', ''), formatted_name, os.path.join(plugin_output_dir, file), wiki_plugin_input_dir)
121122

122123

123124
with open(index_file) as f:

plugins/ARfitStudio/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ layout: default
33
title: ARfitStudio
44
long_title: ARfitStudio
55
parent: Plugins
6-
nav_order: 18
6+
render_with_liquid: false
7+
nav_order: 20
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/ARfitStudio).
910

plugins/BVA-io/index.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
layout: default
3+
title: BVA-io
4+
long_title: BVA-io
5+
parent: Plugins
6+
render_with_liquid: false
7+
nav_order: 28
8+
---
9+
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/bva-io).
10+
11+
# BVA-io for Brain Vision Analyzer format
12+
13+
This repository is a plugin for EEGLAB to import/export
14+
Brain Vision Analyzer EEG data files.
15+
16+
# Version history
17+
v1.73 - Writing data now in MULTIPLEXED format as a new option; show warning when VMRK file is missing
18+
19+
v1.72 - Avoid crashing when event file is absent
20+
21+
v1.71 - Allow to import .ahdr files
22+
23+
v1.7 - Better handling of VMRK and EEG file non-consistant witht the header VHDR file; allow empty marker info section; allow importing truncated binary file
1.06 MB
Loading
2.18 MB
Loading

plugins/BrainBeats/index.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
layout: default
3+
title: BrainBeats
4+
long_title: BrainBeats
5+
parent: Plugins
6+
render_with_liquid: false
7+
nav_order: 9
8+
---
9+
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/amisepa/BrainBeats).
10+
11+
<!-- <p align="center"> -->
12+
# BrainBeats
13+
<!-- </p> -->
14+
15+
<p align="center" width="100%">
16+
<img width="30%" src="https://github.com/amisepa/BrainBeats/blob/main/brainbeats_logo2.png">
17+
</p>
18+
19+
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.
20+
21+
22+
## THREE METHODS AVAILABLE
23+
24+
<p align="center" width="100%">
25+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/diagram.png">
26+
</p>
27+
28+
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.
29+
30+
31+
<p align="center">
32+
Example of HEP at the subject level, obtained from simultaneous EEG-ECG signals
33+
</p>
34+
<p align="center" width="100%">
35+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/fig11.png">
36+
</p>
37+
38+
<p align="center">
39+
Example of HEP at the subject level, obtained from simultaneous EEG-PPG signals
40+
</p>
41+
<p align="center" width="100%">
42+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/fig17.png">
43+
</p>
44+
45+
2) Extract EEG and HRV features from continuous data in the time, frequency, and nonlinear domains.
46+
- HRV time domain: SDNN, RMSSD, pNN50.
47+
- HRV frequency domain: VLF-power, ULF-power, LF-power, HF-power, LF:HF ratio, Total power.
48+
- HRV nonlinear domain: Poincare, fuzzy entropy, fractal dimension, PRSA.
49+
50+
- EEG frequency domain: average band power (delta, theta, alpha, beta, gamma), individual alpha frequency (IAF), alpha asymmetry.
51+
- EEG nonlinear domain: fuzzy entropy, fractal dimension
52+
53+
54+
<p align="center">
55+
Example of power spectral density (PSD) estimated from HRV and EEG data
56+
</p>
57+
<p align="center" width="100%">
58+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/fig21.png">
59+
</p>
60+
61+
<p align="center">
62+
Example of EEG features extracted from sample dataset
63+
</p>
64+
<p align="center" width="100%">
65+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/fig22.png">
66+
</p>
67+
68+
69+
3) Remove heart components from EEG signals using ICA and ICLabel.
70+
71+
<p align="center">
72+
Example of extraction of cardiovascular components from EEG signals
73+
</p>
74+
<p align="center" width="100%">
75+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/fig27.png">
76+
</p>
77+
78+
79+
4) Compute brain-heart coherence (beta version, please test and give feedback)
80+
81+
<p align="center">
82+
Example of several brain-heart coherence measures computed with BrainBeats from simultaneous EEG and ECG signals
83+
</p>
84+
<p align="center" width="100%">
85+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/coherence_allfreqs.png">
86+
</p>
87+
88+
<p align="center">
89+
Scalp topography showing scalp regions coherent with ECG signal for each frequency band
90+
</p>
91+
<p align="center" width="100%">
92+
<img width="50%" src="https://github.com/amisepa/BrainBeats/blob/main/figures/coherence_topo.png">
93+
</p>
94+
95+
## Requirements
96+
97+
- MATLAB installed (https://www.mathworks.com/downloads)
98+
- EEGLAB installed (https://github.com/sccn/eeglab)
99+
- Some data containing EEG and cardiovascular signals (ECG or PPG) within the same file (i.e. recorded simultaneously).
100+
Or use the tutorial dataset provided in this repository located in the "sample_data" folder.
101+
102+
## Step-by-step tutorial
103+
104+
See our publication for a step-by-step tutorial using the sample dataset: https://www.jove.com/t/65829/brainbeats-as-an-open-source-eeglab-plugin-to-jointly-analyze-eeg
105+
106+
Full-text preprint: https://www.biorxiv.org/content/10.1101/2023.06.01.543272v3.full
107+
108+
## Version history
109+
110+
v1.5 (5/2/2024) - METHOD 4 (brain-heart coherence) added
111+
112+
v1.4 (4/1/2024) - publication JoVE (methods 1, 2, 3)

plugins/EEG-BIDS/EEG‐BIDS-docs.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
---
22
layout: default
3-
title: EEG-BIDS
4-
long_title: EEG-BIDS
53
parent: EEG-BIDS
64
grand_parent: Plugins
5+
render_with_liquid: false
6+
7+
title: EEG‐BIDS-docs
8+
long_title: EEG‐BIDS-docs
79
---
810
# Documentation and tutorial videos
911

plugins/EEG-BIDS/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ layout: default
33
title: EEG-BIDS
44
long_title: EEG-BIDS
55
parent: Plugins
6+
render_with_liquid: false
67
has_children: true
7-
nav_order: 2
8+
nav_order: 26
89
---
910
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/EEG-BIDS).
1011

plugins/ICLabel/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: ICLabel
44
long_title: ICLabel
55
parent: Plugins
6+
render_with_liquid: false
67
nav_order: 0
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/ICLabel).
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
layout: default
3+
parent: MFF-matlab-io
4+
grand_parent: Plugins
5+
render_with_liquid: false
6+
7+
title: 1.-Plugin-install
8+
long_title: 1.-Plugin-install
9+
---
10+
Select EEGLAB menu item **File > Import data > Using EEGLAB functions and plugins > From EGI/Phillips .mff file** as shown below.
11+
12+
![](EEGLAB_install2.png)
13+
14+
If the MFFmatlabio plugin has not be installed, EEGLAB will prompt you to install it (see also [plugin installation](Plugin-installation)). After this, MFFmatlabio will prompt an interface to select an MFF ressource as shown below.
15+
16+
![](mff_import.png)

0 commit comments

Comments
 (0)