Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b55f163

Browse files
committedJul 25, 2024··
merge master
1 parent 9e1d8ce commit b55f163

File tree

33 files changed

+460
-1101
lines changed

33 files changed

+460
-1101
lines changed
 

‎code/plugins/reformat_plugin.py

Lines changed: 13 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,7 @@
33
import shutil
44

55
# open a text file ending with .md and append a paragraph to it
6-
def reformat_plugin(dirpath, plugin_name):
7-
plugins_dir = '../../plugins'
8-
index_file = os.path.join(plugins_dir, 'index.md')
9-
shutil.copyfile(os.path.join(dirpath, 'README.md'), index_file)
10-
with open(index_file) as f:
11-
text = f.read()
12-
append_text = '''---
13-
layout: default
14-
title: {plugin_name}
15-
long_title: {plugin_name}
16-
parent: Plugins
17-
---
18-
'''.format(plugin_name=plugin_name)
19-
text = append_text + text
20-
with open(index_file, 'w') as out:
21-
out.write(text)
22-
23-
# open a text file ending with .md and append a paragraph to it
24-
# Usage: python test.py <filename>.md
25-
def append_to_file(filepath, filename, parent, output_file):
6+
def reformat_wiki_pages(filepath, filename, parent, output_file):
267
with open(filepath) as f:
278
text = f.read()
289
append_text = '''---
@@ -42,53 +23,36 @@ def reformat_plugin_dir(plugin_input_dir, plugin_name, order, plugin_type='wiki'
4223
plugin_output_dir = os.path.join('../../plugins', plugin_name)
4324
if not os.path.exists(plugin_output_dir):
4425
os.makedirs(plugin_output_dir)
26+
4527
# copy image directory from input to output dir
4628
if os.path.exists(os.path.join(plugin_input_dir, 'images')):
4729
shutil.copytree(os.path.join(plugin_input_dir, 'images'), os.path.join(plugin_output_dir, 'images'), dirs_exist_ok=True)
4830

4931
index_file = os.path.join(plugin_output_dir, 'index.md')
50-
if plugin_type == 'wiki':
51-
shutil.copyfile(os.path.join(plugin_input_dir, 'Home.md'), index_file)
52-
with open(index_file) as f:
53-
text = f.read()
54-
append_text = '''---
32+
shutil.copyfile(os.path.join(plugin_input_dir, 'README.md'), index_file)
33+
with open(index_file) as f:
34+
text = f.read()
35+
append_text = '''---
5536
layout: default
5637
title: {plugin_name}
5738
long_title: {plugin_name}
5839
parent: Plugins
59-
categories: plugins
6040
has_children: true
6141
nav_order: {order}
6242
---
6343
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/{plugin_name}).
6444
6545
'''.format(plugin_name=plugin_name, order=order)
66-
text = append_text + text
67-
with open(index_file, 'w') as out:
68-
out.write(text)
46+
text = append_text + text
47+
with open(index_file, 'w') as out:
48+
out.write(text)
6949

70-
for root, dirs, files in os.walk(plugin_input_dir):
50+
if plugin_type == 'wiki':
51+
wiki_plugin_input_dir = plugin_input_dir + '.wiki'
52+
for root, dirs, files in os.walk(wiki_plugin_input_dir):
7153
for file in files:
7254
if file.endswith('.md') and not file.startswith('index') and not file.startswith('Home'):
73-
append_to_file(os.path.join(plugin_input_dir, file), file.strip('.md'), plugin_name, os.path.join(plugin_output_dir, file))
74-
else:
75-
shutil.copyfile(os.path.join(plugin_input_dir, 'README.md'), index_file)
76-
with open(index_file) as f:
77-
text = f.read()
78-
append_text = '''---
79-
layout: default
80-
title: {plugin_name}
81-
long_title: {plugin_name}
82-
parent: Plugins
83-
nav_order: {order}
84-
---
85-
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/{plugin_name}).
86-
87-
'''.format(plugin_name=plugin_name, order=order)
88-
text = append_text + text
89-
with open(index_file, 'w') as out:
90-
out.write(text)
91-
55+
reformat_wiki_pages(os.path.join(wiki_plugin_input_dir, file), file.strip('.md'), plugin_name, os.path.join(plugin_output_dir, file))
9256
# main
9357
def main():
9458
if len(sys.argv) != 5:

‎code/plugins/update_plugins.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,15 @@ def update_repo(repo, order, plugin_type='readme'):
1717
os.chdir(repo_path)
1818
run_command('git pull')
1919
else:
20-
if plugin_type == "wiki":
21-
run_command(f'git clone https://github.com/sccn/{repo}.wiki.git {repo_path}')
20+
run_command(f'git clone https://github.com/sccn/{repo}.git {repo_path}')
21+
22+
if plugin_type == "wiki":
23+
wiki_repo_path = f"{repo_path}.wiki"
24+
if os.path.exists(wiki_repo_path):
25+
os.chdir(wiki_repo_path)
26+
run_command('git pull')
2227
else:
23-
run_command(f'git clone https://github.com/sccn/{repo}.git {repo_path}')
28+
run_command(f'git clone https://github.com/sccn/{repo}.wiki.git {wiki_repo_path}')
2429

2530
os.chdir(current_dir)
2631
script = 'reformat_plugin.py'
@@ -31,20 +36,26 @@ def update_repo(repo, order, plugin_type='readme'):
3136
# if 'github' not in current directory, create it
3237
if not os.path.exists('github'):
3338
os.makedirs('github')
34-
if len(sys.argv) == 0:
39+
wiki_plugins = ['SIFT', 'get_chanlocs', 'NFT', 'PACT', 'nsgportal', 'clean_rawdata']
40+
readme_plugins = ['ARfitStudio', 'roiconnect', 'EEG-BIDS', 'trimOutlier', 'groupSIFT', 'nwbio', 'ICLabel', 'dipfit', 'eegstats', 'PowPowCAT', 'PACTools', 'zapline-plus', 'amica', 'fMRIb', 'relica', 'std_dipoleDensity', 'imat', 'viewprops', 'cleanline','NIMA', 'firfilt']
41+
if len(sys.argv) == 1:
3542
order = 1
36-
wiki_plugins = ['SIFT', 'get_chanlocs', 'NFT', 'PACT', 'nsgportal', 'clean_rawdata']
3743
for plugin in wiki_plugins:
3844
update_repo(plugin, order, 'wiki')
3945
order += 1
40-
readme_plugins = ['ARfitStudio', 'roiconnect', 'EEG-BIDS', 'trimOutlier', 'groupSIFT', 'nwbio', 'ICLabel', 'dipfit', 'eegstats', 'PowPowCAT', 'PACTools', 'zapline-plus', 'amica', 'fMRIb', 'relica', 'std_dipoleDensity', 'imat', 'viewprops', 'cleanline','NIMA', 'firfilt']
4146
for plugin in readme_plugins:
4247
update_repo(plugin, order, "readme")
4348
order += 1
44-
elif len(sys.argv) == 3:
49+
elif len(sys.argv) == 2:
4550
plugin_name = sys.argv[1]
46-
plugin_type = sys.argv[2]
47-
update_repo(plugin_name, 1, plugin_type)
51+
if plugin_name not in wiki_plugins and plugin_name not in readme_plugins:
52+
print(f"Plugin {plugin_name} not found.")
53+
sys.exit(1)
54+
55+
plugin_type = 'wiki' if plugin_name in wiki_plugins else 'readme'
56+
plugin_order = wiki_plugins.index(plugin_name) + 1 if plugin_type == 'wiki' else len(wiki_plugins) + readme_plugins.index(plugin_name) + 1
57+
58+
update_repo(plugin_name, plugin_order, plugin_type)
4859
else:
49-
print('Usage: python update_plugins.py <plugin_name> <plugin_type>')
60+
print('Usage: python update_plugins.py <plugin_name>')
5061
sys.exit(1)

‎code/plugins/update_plugins.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
DIRECTORY="/path/to/directory"
4+
5+
if [ -d "$DIRECTORY" ]; then
6+
# Directory exists, pull changes
7+
cd "$DIRECTORY"
8+
git pull
9+
else
10+
# Directory doesn't exist, clone from GitHub
11+
git clone https://github.com/username/repository.git "$DIRECTORY"
12+
fi

‎plugins/ARfitStudio/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: ARfitStudio
44
long_title: ARfitStudio
55
parent: Plugins
6+
has_children: true
67
nav_order: 7
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/ARfitStudio).

‎plugins/EEG-BIDS/index.md

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

‎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+
has_children: true
67
nav_order: 13
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/ICLabel).

‎plugins/NFT/index.md

Lines changed: 16 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -3,119 +3,31 @@ layout: default
33
title: NFT
44
long_title: NFT
55
parent: Plugins
6-
categories: plugins
76
has_children: true
87
nav_order: 3
98
---
109
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/NFT).
1110

12-
### Open Source Matlab Toolbox for Neuroelectromagnetic Forward Head Modeling
11+
Pre-compiled binaries for the following 3rd party programs are distributed
12+
within the NFT toolbox for convinience of the users. The binaries are compiled
13+
for 32 and 64 bit Linux distributions.
1314

14-
![right](NFTsmall.jpg "wikilink")
15+
All of these programs have opensource licenses and provide full source-code.
16+
Please visit home-pages of individual programs for more information on usage,
17+
source-code and license information.
1518

16-
### What is NFT?
19+
ASC: Adaptive skeleton climbing
20+
homepage: http://www.cse.cuhk.edu.hk/~ttwong/papers/asc/asc.html
1721

18-
Neuroelectromagnetic Forward Modeling Toolbox (NFT) is a MATLAB toolbox
19-
for generating realistic head models from available data (MRI and/or
20-
electrode locations) and for computing numerical solutions for solving
21-
the forward problem of electromagnetic source imaging (Zeynep Akalin
22-
Acar & S. Makeig, 2010). NFT includes tools for segmenting scalp, skull,
23-
cerebrospinal fluid (CSF) and brain tissues from T1-weighted magnetic
24-
resonance (MR) images. The Boundary Element Method (BEM) is used for the
25-
numerical solution of the forward problem. After extracting the
26-
segmented tissue volumes, surface BEM meshes may be generated. When a
27-
subject MR image is not available, a template head model may be warped
28-
to 3-D measured electrode locations to obtain an individualized BEM head
29-
model. Toolbox functions can be called from either a graphic user
30-
interface (gui) compatible with EEGLAB (sccn.ucsd.edu/eeglab), or from
31-
the MATLAB command line. Function help messages and a user tutorial are
32-
included. The toolbox is freely available for noncommercial use and open
33-
source development under the GNU Public License.
22+
QSLIM: Quadric-based surface simplification
23+
homepage: http://mgarland.org/software/qslim.html
3424

35-
### Why NFT?
25+
BEM_MATRIX: The METU-FP Toolkit
26+
homepage: http://www.eee.metu.edu.tr/metu-fp/
3627

37-
The NFT is released under an open source license, allowing researchers
38-
to contribute and improve on the work for the benefit of the
39-
neuroscience community. By bringing together advanced head modeling and
40-
forward problem solution methods and implementations within an easy to
41-
use toolbox, the NFT complements EEGLAB, an open source toolkit under
42-
active development. Combined, NFT and EEGLAB form a freely available EEG
43-
(and in future, MEG) source imaging solution.
28+
PROCMESH: Mesh correction and processing. No web page yet. Please contact NFT developers for source code.
4429

45-
The toolbox implements the major aspects of realistic head modeling and
46-
forward problem solution from available subject information:
30+
MATITK: Matlab and ITK
31+
homepage: http://www.sfu.ca/~vwchu/matitk.html
4732

48-
1. Segmentation of T1-weighted MR images: The preferred method of
49-
generating a realistic head model is to use a 3-D whole-head
50-
structural MR image of the subject's head. The toolbox can generate
51-
a segmentation of scalp, skull, CSF and brain tissues from a
52-
T1-weighted image.
53-
54-
2. High-quality BEM meshes: The accuracy of the BEM solution depends on
55-
the quality of the underlying mesh that models tissue
56-
conductance-change boundaries. To avoid numerical instabilities, the
57-
mesh must be topologically correct with no self-intersections. It
58-
should represent the surface using high-quality elements while
59-
keeping the number of elements as small as possible. The NFT can
60-
create high-quality linear surface BEM meshes from the head
61-
segmentation.
62-
63-
3. Warping a template head model: When a whole-head structural MR image
64-
of the subject is not available, a semi-realistic head model can be
65-
generated by warping a standard template BEM mesh to the digitized
66-
electrode coordinates (instead of vice versa).
67-
68-
4. Registration of electrode positions with the BEM mesh: The digitized
69-
electrode locations and the BEM mesh must be aligned to compute
70-
accurate forward problem solutions and lead field matrices.
71-
72-
5. Accurate high-performance forward problem solution: The NFT uses a
73-
high-performance BEM implementation from the open source METU-FP
74-
Toolkit for bioelectromagnetic field computations.
75-
76-
### Required Resources
77-
78-
Matlab 7.0 or later running under any operating system (Linux, Windows).
79-
A large amount of RAM is useful - at least 2 GB (4-8 GB recommended for
80-
forward problem solution of realistic head models). The Matlab Image
81-
Processing toolbox is also recommended.
82-
83-
### NFT Reference Paper
84-
85-
Zeynep Akalin Acar & Scott Makeig, [Neuroelectromagnetic Forward Head
86-
Modeling
87-
Toolbox](http://sccn.ucsd.edu/%7Escott/pdf/Zeynep_NFT_Toolbox10.pdf).
88-
<em>Journal of Neuroscience Methods</em>, 2010
89-
90-
Download
91-
--------
92-
93-
To download the NFT, go to the [NFT download
94-
page](http://sccn.ucsd.edu/nft/).
95-
96-
NFT User's Manual
97-
-----------------
98-
99-
- [Chapter 01: Getting Started with NFT](Chapter_01_Getting_Started_with_NFT "wikilink")
100-
- [Chapter 02: Head Modeling from MR Images](Chapter_02_Head_Modeling_from_MR_Images "wikilink")
101-
- [Chapter 03: Forward Model Generation](Chapter_03_Forward_Model_Generation "wikilink")
102-
- [Chapter 04: NFT Examples](Chapter_04_NFT_Examples "wikilink")
103-
- [Chapter 05: NFT Commands and Functions](Chapter_05_NFT_Commands_and_Functions "wikilink")
104-
- [Appendix A: BEM Mesh Format](NFT_Appendix_A)
105-
- [Appendix B: Function Reference](NFT_Appendix_B)
106-
- [Appendix C: Effect of brain-to-skull conductivity ratio estimate](NFT_Appendix_C)
107-
108-
109-
- [Click here to download the NFT User Manual as a PDF book](NFT_Tutorial.pdf)
110-
111-
<div align=right>
112-
113-
Creation and documentation by:
114-
115-
Zeynep Akalin Acar
116-
117-
Project Scientist
118-
119-
zeynep@sccn.ucsd.edu
120-
121-
</div>
33+
Note: The MATITK shared libraries are installed in the 'mfiles' directory.

‎plugins/NIMA/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: NIMA
44
long_title: NIMA
55
parent: Plugins
6+
has_children: true
67
nav_order: 26
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/NIMA).

‎plugins/PACT/index.md

Lines changed: 0 additions & 286 deletions
This file was deleted.

‎plugins/PACTools/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: PACTools
44
long_title: PACTools
55
parent: Plugins
6+
has_children: true
67
nav_order: 17
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/PACTools).

‎plugins/PowPowCAT/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: PowPowCAT
44
long_title: PowPowCAT
55
parent: Plugins
6+
has_children: true
67
nav_order: 16
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/PowPowCAT).

‎plugins/SIFT/README.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
layout: default
3+
title: README
4+
long_title: README
5+
parent: SIFT
6+
grand_parent: Plugins
7+
---
8+
![263416749-1abc1d2d-36bb-4cfb-9328-b57a96044f55](https://github.com/user-attachments/assets/b45a5caa-6b39-4291-b137-125132e5ade0)
9+
10+
## The Source Information Flow Toolbox
11+
12+
Developed by: Tim Mullen 2009-
13+
Maintained: Tim Mullen and Arnaud Delorme
14+
15+
SIFT is an EEGLAB-compatible toolbox for the analysis and visualization of
16+
multivariate causality and information flow between sources of
17+
electrophysiological (EEG/ECoG/MEG) activity. It consists of a suite of
18+
command-line functions with an integrated Graphical User Interface for
19+
easy access to multiple features. There are currently six modules: data
20+
preprocessing, model fitting and connectivity estimation, statistical
21+
analysis, visualization, group analysis, and neuronal data simulation.
22+
23+
Methods currently implemented include:
24+
25+
- Preprocessing routines
26+
- Time-varying (adaptive) multivariate autoregessive modeling
27+
- Granger causality
28+
- directed transfer function (DTF, dDTF)
29+
- partial directed coherence (PDC, GPDC, PDCF, RPDC)
30+
- multiple and partial coherence
31+
- event-related spectral perturbation (ERSP)
32+
- and many other measures...
33+
- Bootstrap/resampling and analytical statistics
34+
- event-related (difference from baseline))
35+
- between-condition (test for condition A = condition B)
36+
- A suite of programs for interactive visualization of information
37+
flow dynamics across time and frequency (with optional 3D
38+
visualization in MRI-coregistered source-space).
39+
40+
## Acknowledgements
41+
42+
- Arnaud Delorme was instrumental in the development of the SIFT framework and integration into EEGLAB as well as contributing initial BrainMovie3D code.
43+
- Christian Kothe contributed the arg() framework for function I/O and auto-GUI generation
44+
- Wes Thompson consulted on statistics and methods for bayesian smoothing and multi-subject analysis
45+
- Alejandro Ojeda contributed routines for fast ridge regression
46+
47+
SIFT makes use of routines from (or is inspired by) the following open-source packages:
48+
49+
- [ARFIT](https://github.com/tapios/arfit) (Schneider et al)
50+
- [TSA/Biosig](http://octave.sourceforge.net/tsa/) (Schlögl et al)
51+
- [Chronux](https://chronux.org) (Mitra et al)
52+
- [DAL/SCSA](https://ttic.uchicago.edu/~ryotat/softwares/dal/) (Tomioka / Haufe et al)
53+
- [BCILAB](http://sccn.ucsd.edu/wiki/BCILAB) (Kothe et al)
54+
55+
56+
## Official Website
57+
58+
[SIFT page in the SCCN wiki](http://sccn.ucsd.edu/wiki/SIFT)
59+
60+
## Citation
61+
62+
If you find this toolbox useful for your research, PLEASE include the following citations with any publications and/or presentations which make use of SIFT:
63+
64+
1. Mullen, T. R. (2014). The dynamic brain: Modeling neural dynamics and interactions from human electrophysiological recordings (Order No. 3639187). Available from Dissertations & Theses @ University of California; ProQuest Dissertations & Theses A&I. (1619637939)
65+
2. Delorme, A., Mullen, T., Kothe C., Akalin Acar, Z., Bigdely Shamlo, N., Vankov, A., Makeig, S. (2011) "EEGLAB, SIFT, NFT, BCILAB, and ERICA: New tools for advanced EEG/MEG processing." Computational Intelligence and Neuroscience vol. 2011, Article ID 130714, 12 pages.
66+
67+
## License
68+
69+
SIFT is licensed under the GPL-2, see LICENSE.txt
70+
ANY USE OF SIFT IMPLIES THAT YOU HAVE READ AND AGREE WITH THE TERMS AND CONDITIONS OF THE SIFT LICENSE AS STATED BELOW:
71+
72+
## ADDITIONAL NOTE
73+
74+
SIFT is designed and distributed for research purposes only. SIFT should not be used for medical purposes. The authors accept no responsibility for its use in this manner.
75+
76+
## Verions
77+
78+
v1.6 - fix conflict with BrainMovie plugin. Fix minor GUI issues.

‎plugins/SIFT/index.md

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,17 @@ layout: default
33
title: SIFT
44
long_title: SIFT
55
parent: Plugins
6-
categories: plugins
76
has_children: true
87
nav_order: 1
98
---
109
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/SIFT).
1110

11+
![263416749-1abc1d2d-36bb-4cfb-9328-b57a96044f55](https://github.com/user-attachments/assets/b45a5caa-6b39-4291-b137-125132e5ade0)
1212

13-
![700px\|link=](https://github.com/sccn/SIFT/assets/1872705/1abc1d2d-36bb-4cfb-9328-b57a96044f55)
13+
## The Source Information Flow Toolbox
1414

15-
# The Source Information Flow Toolbox tutorial (SIFT)
16-
17-
Developed and Maintained by: Tim Mullen and Arnaud Delorme (SCCN, INC, UCSD) 2009
15+
Developed by: Tim Mullen 2009-
16+
Maintained: Tim Mullen and Arnaud Delorme
1817

1918
SIFT is an EEGLAB-compatible toolbox for the analysis and visualization of
2019
multivariate causality and information flow between sources of
@@ -28,7 +27,7 @@ Methods currently implemented include:
2827

2928
- Preprocessing routines
3029
- Time-varying (adaptive) multivariate autoregessive modeling
31-
- granger causality
30+
- Granger causality
3231
- directed transfer function (DTF, dDTF)
3332
- partial directed coherence (PDC, GPDC, PDCF, RPDC)
3433
- multiple and partial coherence
@@ -40,3 +39,43 @@ Methods currently implemented include:
4039
- A suite of programs for interactive visualization of information
4140
flow dynamics across time and frequency (with optional 3D
4241
visualization in MRI-coregistered source-space).
42+
43+
## Acknowledgements
44+
45+
- Arnaud Delorme was instrumental in the development of the SIFT framework and integration into EEGLAB as well as contributing initial BrainMovie3D code.
46+
- Christian Kothe contributed the arg() framework for function I/O and auto-GUI generation
47+
- Wes Thompson consulted on statistics and methods for bayesian smoothing and multi-subject analysis
48+
- Alejandro Ojeda contributed routines for fast ridge regression
49+
50+
SIFT makes use of routines from (or is inspired by) the following open-source packages:
51+
52+
- [ARFIT](https://github.com/tapios/arfit) (Schneider et al)
53+
- [TSA/Biosig](http://octave.sourceforge.net/tsa/) (Schlögl et al)
54+
- [Chronux](https://chronux.org) (Mitra et al)
55+
- [DAL/SCSA](https://ttic.uchicago.edu/~ryotat/softwares/dal/) (Tomioka / Haufe et al)
56+
- [BCILAB](http://sccn.ucsd.edu/wiki/BCILAB) (Kothe et al)
57+
58+
59+
## Official Website
60+
61+
[SIFT page in the SCCN wiki](http://sccn.ucsd.edu/wiki/SIFT)
62+
63+
## Citation
64+
65+
If you find this toolbox useful for your research, PLEASE include the following citations with any publications and/or presentations which make use of SIFT:
66+
67+
1. Mullen, T. R. (2014). The dynamic brain: Modeling neural dynamics and interactions from human electrophysiological recordings (Order No. 3639187). Available from Dissertations & Theses @ University of California; ProQuest Dissertations & Theses A&I. (1619637939)
68+
2. Delorme, A., Mullen, T., Kothe C., Akalin Acar, Z., Bigdely Shamlo, N., Vankov, A., Makeig, S. (2011) "EEGLAB, SIFT, NFT, BCILAB, and ERICA: New tools for advanced EEG/MEG processing." Computational Intelligence and Neuroscience vol. 2011, Article ID 130714, 12 pages.
69+
70+
## License
71+
72+
SIFT is licensed under the GPL-2, see LICENSE.txt
73+
ANY USE OF SIFT IMPLIES THAT YOU HAVE READ AND AGREE WITH THE TERMS AND CONDITIONS OF THE SIFT LICENSE AS STATED BELOW:
74+
75+
## ADDITIONAL NOTE
76+
77+
SIFT is designed and distributed for research purposes only. SIFT should not be used for medical purposes. The authors accept no responsibility for its use in this manner.
78+
79+
## Verions
80+
81+
v1.6 - fix conflict with BrainMovie plugin. Fix minor GUI issues.

‎plugins/amica/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: amica
44
long_title: amica
55
parent: Plugins
6+
has_children: true
67
nav_order: 19
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/amica).

‎plugins/clean_rawdata/README.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
layout: default
3+
title: README
4+
long_title: README
5+
parent: clean_rawdata
6+
grand_parent: Plugins
7+
---
8+
# Clean_rawdata EEGLAB plug-in
9+
10+
The Clean Rawdata plug-in (version 2.0) interface has been redesigned and will soon become the default EEGLAB method for removing artifacts from EEG and related data. The plug-in detects and can separate low-frequency drifts, flatline and noisy channels from the data. It can also apply ASR (automated subspace removal) to detect and reject or remove high-amplitude non-brain ('artifact') activity (produced by eye blinks, muscle activity, sensor motion, etc.) by comparing its structure to that of known artifact-free reference data, thereby revealing and recovering (possibly smaller) EEG background activity that lies outside the subspace spanned by the artifact processes.
11+
12+
**Note:** This plug-in uses the Signal Processing toolbox for pre- and post-processing of the data (removing drifts, channels and time windows); the core ASR method (clean_asr) does not require this toolbox but you will need high-pass filtered data if you use it directly.
13+
14+
# This project needs you
15+
16+
We need community maintain to this project. Please review existing issues and issue pull requests. A section in this documentation with link to all the existing methodological papers is also needed.
17+
18+
# Credit
19+
20+
This plug-in, clean_rawdata uses methods (e.g., Artifact Subspace
21+
Reconstruction, ASR) by Christian Kothe from the BCILAB Toolbox
22+
(Kothe & Makeig, 2013), first wrapped into an EEGLAB plug-in by
23+
Makoto Miyakoshi and further developed by Arnaud Delorme with
24+
Scott Makeig.
25+
26+
This plug-in cleans raw EEG data. Methods from the BCILAB toolbox
27+
are being used (in particular Artifact Subspace Reconstruction)
28+
designed by Christian Kothe.
29+
30+
These functions were wrapped up into an EEGLAB plug-in by Makoto
31+
Myakoshi, then later by Arnaud Delorme with input from Scott
32+
Makeig.
33+
34+
The private folder contains 3rd party utilities, including:
35+
- findjobj.m Copyright (C) 2007-2010 Yair M. Altman
36+
- asr_calibrate.m and asr_process.m
37+
Copyright (C) 2013 The Regents of the University of California
38+
Note that this function is not free for commercial use.
39+
- sperhicalSplineInterpolate.m Copyright (C) 2009 Jason Farquhar
40+
- oct_fftfilt Copyright (C) 1996, 1997 John W. Eaton
41+
- utility functions from the BCILAB toolbox Copyright (C) 2010-2014 Christian Kothe
42+
43+
The folder "manopt" contains the Matlab toolbox for optimization on manifolds.
44+
45+
# Graphic interface
46+
47+
Below we detail the GUI interface. Individual function contain additional help information.
48+
49+
![](gui_interface.png)
50+
51+
## High pass filter the data
52+
53+
Check checkbox **(1)** if the data have not been high pass filtered yet. If you use this option, the edit box in **(2)** allows setting the transition band for the high-pass filter in Hz. This is formatted as[transition-start, transition-end]. Default is 0.25 to 0.75 Hz.
54+
55+
## Reject bad channels
56+
57+
Check checkbox **(3)** to reject bad channels. Options **(4)** allows removal of flat channels. The edit box sets the maximum tolerated (non-rejected) flatline duration in seconds. If a channel has a longer flatline than this, it will be considered abnormal and rejected. The default is 5 seconds. Option **(5)** sets the Line Noise criterion: If a channel has more line noise relative to its signal than this value (in standard deviations based on the total channel signal), it is considered abnormal. The default is 4 standard deviations. Option **(6)** sets the minimum channel correlation. If a channel is correlated at less than this value to an estimate based on other nearby channels, it is considered abnormal in the given time window. This method requires that channel locations be available and roughly correct; otherwise a fallback criterion will be used. The default is a correlation of 0.8.
58+
59+
## Artifact Subspace Reconstruction
60+
61+
Check checkbox **(7)** to use Artifact Subspace Reconstruction (ASR). ASR is described in this [publication](https://www.ncbi.nlm.nih.gov/pubmed/26415149). In edit box **(8)** you may change the standard deviation cutoff for removal of bursts (via ASR). Data portions whose variance is larger than this threshold relative to the calibration data are considered missing data and will be removed. The most aggressive value that can be used without losing much EEG is 3. For new users it is recommended to first visually inspect the difference between the aw and the cleaned data (using eegplot) to get a sense of the content the is removed at various levels of this input variable. Here, a quite conservative value is 20; this is the current default value. Use edit box **(9)** to use Riemannian distance instead of Euclidian distance. This is a beta option as the advantage of this method has not yet been clearly demonstrated. Checkbox **(10)** allows removal instead of correction of artifact-laden portions of data identified by ASR. One of the strength of ASR is its ability to detect stretches of 'bad data' before correcting them. This option allows use of ASR for data-period rejection instead of correction, and is the default for offline data processing. ASR was originally designed as an online data cleaning algorithm, in which case 'bad data' correction may be used.
62+
63+
## Additional removal of 'bad data' periods
64+
65+
Check checkbox **(11)** to perform additional removal of bad-data periods. Edit box **(12)** sets the maximum percentage of contaminated channels that are tolerated in the final output data for each considered window. Edit box **(13)** sets the noise threshold for labeling a channel as contaminated.
66+
67+
## Display rejected and corrected regions
68+
69+
Check checkbox **(14)** plots rejection results overlaid on the original data. This option is useful to visually assess the performance of a given ASR method.
70+
71+
Additional parameters are accessible through the command line interface of the clean_artifacts function.
72+
73+
## Additional documentation
74+
75+
Makoto Miyakoshi wrote a page in the [wiki section](https://github.com/sccn/clean_rawdata/wiki) of this repository discussing ASR.
76+
77+
# Version history
78+
v0.34 and earlier - original versions
79+
80+
v1.0 - new default values for some of the rejection tools, new GUI
81+
82+
v2.0 - new improved GUI, compatibility with studies
83+
84+
v2.1 - fix issue with 'distance' variable for burst detection
85+
86+
v2.2 - fix history call for pop_clean_rawdata
87+
88+
v2.3 - add maxmem to asr_calibrate to ensure reproducibility of results
89+
90+
v2.4 - fixing issue with running function in parallel for Matlab 2020a
91+
92+
v2.5 - move asr_calibrate out of the private folder so it can be used directly
93+
94+
v2.6 - allowing to exclude channels and a variety of small bug fixes
95+
96+
v2.7 - allowing to fuse channel rejection for datasets with same subject and session (STUDY processing)
97+
98+
v2.8 - better error messages, and fix excluding channels (there was a rare crash)
99+
100+
v2.9 - fix bug when ignoring channels and removing channels at the same time, fix plotting issue with vis_artifact
101+
102+
v2.91 - add support for fractional sampling rate; fix too many splits with high sampling frequencies

‎plugins/clean_rawdata/index.md

Lines changed: 95 additions & 402 deletions
Large diffs are not rendered by default.

‎plugins/dipfit/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: dipfit
44
long_title: dipfit
55
parent: Plugins
6+
has_children: true
67
nav_order: 14
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/dipfit).

‎plugins/eegstats/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: eegstats
44
long_title: eegstats
55
parent: Plugins
6+
has_children: true
67
nav_order: 15
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/eegstats).

‎plugins/fMRIb/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: fMRIb
44
long_title: fMRIb
55
parent: Plugins
6+
has_children: true
67
nav_order: 20
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/fMRIb).

‎plugins/firfilt/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: firfilt
44
long_title: firfilt
55
parent: Plugins
6+
has_children: true
67
nav_order: 27
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/firfilt).

‎plugins/get_chanlocs/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
layout: default
3+
title: README
4+
long_title: README
5+
parent: get_chanlocs
6+
grand_parent: Plugins
7+
---
8+
# get_chanlocs
9+
*get_chanlocs* performs electrode localization using 3D head image. It is an EEGLAB plug-in also using some functions from the Fieldtrip toolbox.
10+
11+
See [documentation](https://github.com/sccn/get_chanlocs/wiki) for more information.

‎plugins/get_chanlocs/index.md

Lines changed: 3 additions & 236 deletions
Original file line numberDiff line numberDiff line change
@@ -3,245 +3,12 @@ layout: default
33
title: get_chanlocs
44
long_title: get_chanlocs
55
parent: Plugins
6-
categories: plugins
76
has_children: true
87
nav_order: 2
98
---
109
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/get_chanlocs).
1110

12-
<h3>
13-
14-
<b>*get_chanlocs*: Compute 3-D electrode positions from a 3-D head image
15-
==\> <u>[Download the *get_chanlocs* User Guide](https://sccn.ucsd.edu/eeglab/download/Get_chanlocs_userguide.pdf)</u></b>
16-
17-
</h3>
18-
19-
![](Get_chanlocs.jpg)
20-
21-
### What is *get_chanlocs*?
22-
23-
The *get_chanlocs* EEGLAB plug-in is built on functions in
24-
[FieldTrip](http://www.fieldtriptoolbox.org/) to locate 3-D electrode
25-
positions from a 3-D scanned head image. Robert Oostenveld, originator
26-
of the FieldTrip toolbox, alerted us in 2017 that he and his students in
27-
Nijmegen had put functions into FieldTrip to compute positions of scalp
28-
electrodes from the recorded 3-D images for one 3-D camera, the
29-
[Structure scanner](https://structure.io/) mounted to an Apple iPad.
30-
(Read [Homölle and Oostenveld
31-
(2019)](https://doi.org/10.1016/j.jneumeth.2019.108378) and [notes on
32-
the incorporated FieldTrip
33-
functions](http://www.fieldtriptoolbox.org/tutorial/electrode/)). We at
34-
SCCN have created an EEGLAB plug-in extension, *get_chanlocs*, to ease
35-
the process of digitizing the positions of the electrodes from the
36-
acquired 3-D and entering them into the *EEG.chanlocs* data structure
37-
for use with other EEGLAB (plotting and source localization) functions
38-
that require electrode position information.
39-
40-
The <b>major advantages</b> of using <em>get_chanlocs</em> to measure
41-
electrode positions are that: 1) <b>the 3D image can be recorded quickly
42-
(\<1 min)</b>, thereby saving precious subject time (and attention
43-
capacity) better used to record EEG data! The researchers who have been
44-
most enthusiastic to hear about <em>get_chanlocs</em> are those
45-
collecting data from children and infants -- though even normal adult
46-
participants must feel less cognitive capacity for the experimental
47-
tasks after sitting, wearing the EEG montage, for 20 min while research
48-
assistants record the 3D location of each scalp electrode. 2) <b>The 3D
49-
image connects the electrode locations to the head fidicuals in a very
50-
concrete and permanent way</b>; future improved head modeling will be
51-
able to use the 3D head surface scans to fit to subject MR images or to
52-
warp template head models to the actual subject head. 3) Unlike with
53-
wand-based electrode localizing (neurologists call this electrode
54-
'digitizing'), <b>retaining the 3D head image allows rechecking the
55-
electrode positions</b> (e.g., if some human error occurs on first
56-
readout).
57-
58-
In brief, the process is as follows:
59-
60-
<b>Scanning the head surface:</B> A 3-D head image (3-D head ‘scan’) is
61-
acquired using the Structure scanner showing the subject wearing the
62-
electrode cap; this image acquisition typically requires a minute or
63-
less to perform. The resulting 3-D *.obj* image file is stored along
64-
with the EEG data. *get_chanlocs* also supports use of *.obj* 3D image
65-
files obtained using the [itSeez3D scanning app](https://itseez3d.com/),
66-
which we have found to be easier to capture good 3D images with than the
67-
Structure scanner's native app (Suggestion: Ask iSeez3D about a
68-
non-commercial license).
69-
70-
<B>Localizing the electrodes in the 3D scan:</B> When the data are to be
71-
analyzed, the *get_chanlocs* plug-in, called from the Matlab command
72-
line or EEGLAB menu, guides the data analyst through the process of
73-
loading the recorded 3-D head image and then clicking on each of the
74-
electrodes in the image in a pre-planned order to compute and store
75-
their 3-D positions relative to 3 fidicual points on the head (bridge of
76-
nose and ears). (Note: in future, this digitizing step may be automated
77-
at some point in the future using a machine vision approach). The
78-
electrode labels and their 3-D positions relative to the three skull
79-
landmarks (‘fiducial points’) are then written directly into the dataset
80-
*EEG.chanlocs* structure. During this process, a montage template
81-
created for the montage used in the recorded experiment can be shown by
82-
*get_chanlocs* as a convenient visual reference to speed and minimize
83-
human error in the electrode digitization process.
84-
85-
<B>User Guide</B> See the illustrated [*get_chanlocs* User
86-
Guide](https://sccn.ucsd.edu/mediawiki/images/5/5f/Get_chanlocs_userguide.pdf) for details.
87-
88-
<B>Uses:</B> Once the digitized electrode positions have been stored in
89-
the dataset, further (scalp field plotting and source localization)
90-
processes can use the digitized positions.
91-
92-
<b>Ethical considerations:</B> An institutional review board (or
93-
equivalent ethics review body) will likely consider head images as
94-
personally identifiable information. <b>Here is the IRB-approved [UCSD
95-
subject Consent
96-
form](/Media:Get_chanlocs_sampleConsent.pdf "wikilink")</B>, allowing
97-
participants to consent to different degrees of use of their 3D head
98-
image, that we use at SCCN.
99-
100-
### Why *get_chanlocs*?
101-
102-
To achieve <b>high-resolution EEG (effective) source imaging</b>
103-
requires (a) <b>an accurate 3-D electrical head model</b>, and (b)
104-
<b>accurate co-registration of the 3-D scalp electrode positions to the
105-
head model</b>. Several packages are available for fashioning a
106-
geometrically accurate head model from an anatomic MR head image. We use
107-
Zeynep Akalin Acar's [Neuromagnetic Forward problem Toolbox
108-
(NFT)](https://sccn.ucsd.edu/wiki/NFT), which she is now coupling to the
109-
first non-invasive, universally applicable method (SCALE) for estimating
110-
individual skull conductivity from EEG data (Akalin Acar et al., 2016;
111-
more news of this soon!). When a subject MR head image is *not*
112-
available, equivalent dipole models for independent component brain
113-
sources can use a template head model. Zeynep has shown that the dipole
114-
position fitting process is more accurate when the template head is
115-
warped to fit the actual 3-D positions of the electrodes -- IF these are
116-
recorded accurately. This kind of warping is performed in Zeynep's
117-
[**NFT** toolbox for EEGLAB](https://sccn.ucsd.edu/wiki/NFT).
118-
119-
For too long, it has been expensive and/or time consuming (for both
120-
experimenter and subject) to record (or 'digitize') the 3-D positions of
121-
the scalp electrodes for each subject. In recent years, however, cameras
122-
capable of recording images in 3-D have appeared and are now becoming
123-
cheaper and more prevalent. Robert Oostenveld, originator of the
124-
FieldTrip toolbox, alerted us that he and his students in Nijmegen had
125-
added functions to FieldTrip to compute the 3-D positions of scalp
126-
electrodes from scanned 3-D images acquired by one such camera, the
127-
[Structure scanner](https://store.structure.io/store) mounted to an
128-
Apple iPad.
129-
130-
Recording the actual electrode positions in a 3-D head image minimizes
131-
the time spent by the experimenter and subject on electrode position
132-
recording during the recording session to a minute or less, while also
133-
minimizing position digitizing system cost (to near $1000) and the space
134-
required (to an iPad-sized scanner plus enough space to walk around the
135-
seated subject holding the scanner). Digitizing the imaged electrode
136-
positions during data preprocessing is made convenient in *get_chanlocs*
137-
by using a montage template. In future, we anticipate an automated
138-
template-matching app will reduce time required to simply checking the
139-
results of an automated procedure.
140-
141-
Required Resources
142-
------------------
143-
144-
The *get_chanlocs* plug-in has been tested under Matlab 9.1 (R2016b) on
145-
Windows 10 as well as OS X 10.10.5. Please provide feedback concerning
146-
any incompatibilities, bugs, or feature suggestions using the [GitHub
147-
issue tracker](https://github.com/cll008/get_chanlocs/issues/).
148-
149-
<b>Scanning software:</B> In theory, any combination of 3-D scanning
150-
hardware and software that produces a Wavefront OBJ file (.obj) with the
151-
corresponding material texture library (.mtl) and JPEG (.jpg) files can
152-
be used for the plug-in. *get_chanlocs* has only been tested with head
153-
models produced by the [Structure Sensor
154-
camera](https://store.structure.io/store) attached to an iPad Air (model
155-
A1474). We use the default [calibrator
156-
app](https://itunes.apple.com/us/app/structure-sensor-calibrator/id914275485?mt=8)
157-
to align the Sensor camera and the tablet camera, and both the default
158-
scanning software
159-
([Scanner](https://itunes.apple.com/us/app/scanner-structure-sensor-sample/id891169722?mt=8))
160-
and a third-party scanning software ([itSeez3D](https://itseez3d.com/)).
161-
162-
<b>Scanner vs. itSeez3D:</B> While the default scanning app
163-
([Scanner](https://itunes.apple.com/us/app/scanner-structure-sensor-sample/id891169722?mt=8))
164-
is free and produces models that are of high enough quality for the
165-
plug-in, we find the third-party app ([itSeez3D](https://itseez3d.com/))
166-
easier to use. It seems to be more robust, providing better tracking and
167-
faster scans while minimizing the effects of adverse lighting
168-
conditions. itSeez3D features a user friendly online account system for
169-
accessing high-resolution models that are processed on their cloud
170-
servers. Users may contact [itSeez3D](mailto:support@itseez3d.com) to
171-
change processing parameters; for *get_chanlocs*, we found that
172-
increasing the model polygon count beyond 400,000 results in longer
173-
processing time without providing an appreciable increase in resolution.
174-
Unfortunately, while scanning is free, exporting models (required for
175-
*get_chanlocs*) has a [per export or subscription
176-
cost](https://itseez3d.com/pricing.html). Please contact
177-
[itSeez3D](mailto:support@itseez3d.com) regarding discounts for
178-
educational institutions and other non-commercial purposes.
179-
180-
Common Issues
181-
-------------
182-
183-
<b>Incorrect units in resulting electrode locations:</b> 3-D .obj model
184-
units are estimated by relating the range of the recorded vertex
185-
coordinates to an average-sized head: a captured model that is much
186-
larger or smaller than average will cause errors. If your project
187-
requires scanning an atypically-sized model (e.g. large bust scan
188-
including ECG electrode, arm scan for EMG sleeve, etc.), manually set
189-
obj.unit - [instead of using
190-
*ft_determine_units*](https://github.com/cll008/get_chanlocs/blob/master/private/ft_convert_units.m#L86)
191-
- to the correct unit used by your scanner {'m','dm','cm','mm'} to avoid
192-
complications.
193-
194-
<b>Keyboard settings:</b> Key presses are used to rotate 3-D head models
195-
when selecting electrode locations in *get_chanlocs*. Key press
196-
parameters should be adjusted per user discretion: macOS and Windows
197-
systems have adjustable Keyboard Properties, where 'Repeat delay' and
198-
'Repeat rate' may be modified. For some versions of macOS, long key
199-
presses will instead bring up an accent selection menu; in such cases,
200-
repeated single key presses can be used to control MATLAB, or users may
201-
disable the accent selection menu and enable repeating keys by typing
202-
(or pasting) the following in the terminal:
203-
`defaults write -g ApplePressAndHoldEnabled -bool false`
204-
205-
One way to circumvent this issue is to use the 3-D figure rotation tool
206-
in MATLAB. First select the rotation tool, then mark electrodes by
207-
clicking as normal; to rotate the model, hold the click after selecting
208-
an electrode and drag the mouse; else, be sure to press 'r' to remove
209-
points as necessary.
210-
211-
<b>Low resolution in head model:</b> Models will have lowered resolution
212-
in MATLAB due to how 3-D .obj are imported and handled, even if they
213-
have show a reasonable resolution in other 3-D modeling software (e.g.
214-
Paint 3D). Increase the polygon count of the model to circumvent this
215-
issue (we recommend 400,000 uniform polygons for itSeez3D).
216-
217-
Download
218-
--------
219-
220-
To download *get_chanlocs*, use the extension manager within EEGLAB.
221-
Alternatively, plug-ins are available for manual download from the
222-
[EEGLAB plug-in
223-
list](https://sccn.ucsd.edu/eeglab/plugin_uploader/plugin_list_all.php).
224-
225-
Revision History
226-
----------------
227-
228-
Please check the [commit
229-
history](https://github.com/cll008/get_chanlocs/commits/master) of the
230-
plug-in's GitHub repository.
231-
232-
*get_chanlocs* User Guide
233-
-------------------------
234-
235-
View/download the [*get_chanlocs* User
236-
Guide](https://sccn.ucsd.edu/eeglab/download/Get_chanlocs_userguide.pdf)
237-
238-
<div align=left>
239-
240-
Creation and documentation by:
241-
242-
**Clement Lee**, Applications Programmer, SCCN/INC/UCSD,
243-
<cll008@eng.ucsd.edu>
244-
**Scott Makeig**, Director, SCCN/INC/UCSD, <smakeig@ucsd.edu>
245-
246-
</div>
11+
# get_chanlocs
12+
*get_chanlocs* performs electrode localization using 3D head image. It is an EEGLAB plug-in also using some functions from the Fieldtrip toolbox.
24713

14+
See [documentation](https://github.com/sccn/get_chanlocs/wiki) for more information.

‎plugins/groupSIFT/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: groupSIFT
44
long_title: groupSIFT
55
parent: Plugins
6+
has_children: true
67
nav_order: 11
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/groupSIFT).

‎plugins/imat/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: imat
44
long_title: imat
55
parent: Plugins
6+
has_children: true
67
nav_order: 23
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/imat).

‎plugins/nsgportal/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
layout: default
3+
title: README
4+
long_title: README
5+
parent: nsgportal
6+
grand_parent: Plugins
7+
---
8+
# EEGLAB on NSG and nsgportal
9+
An Open EEGLAB Portal to High-Performance Computing: As of late 2018, EEGLAB scripts may now be run on high-performance computing resources via the freely available Neuroscience Gateway Portal to the NSF-sponsored [Comet supercomputer](https://ucsdnews.ucsd.edu/pressrelease/sdsc_to_double_comet_supercomputers_graphic_processor_count/) of the [San Diego Supercomputer Center](https://sdsc.edu/). The home page of the Neuroscience Gateway is shown below. NSG accounts are free and are not limited to US users, but the portal may only be used for non-commercial purposes (see the [NSG Terms of Use](http://www.nsgportal.org/policy.html)).
10+
11+
![Screenshot 2024-07-11 at 14 45 33](https://github.com/user-attachments/assets/ddccba01-f5f4-4337-ae08-2fd4cf96f916)
12+
13+
Like all (except personal!) supercomputers, Comet typically runs jobs in batch mode rather than in the interactive style of Matlab. However, Comet has all Matlab functions as well as EEGLAB functions and many plug-in extensions installed ready to be called from scripts. When a job submitted through the NSG portal is run, you will receive an email from NSG alerting you to download the results. This means that best uses of the Open EEGLAB Portal are for computationally intensive processes and/or for parallel, automated processing of large EEG studies. In the first category, we are now installing the most computationally intensive EEGLAB functions on comet: AMICA, RELICA, time/frequency analysis, SCALE-optimized individual subject head modeling via NFT, etc. We will give more information here about using these installed capabilities as they become available.
14+
15+
To read a detailed overview of the Open EEGLAB Portal, browse a [conference paper submitted the IEEE/EMBS Neural Engineering Conference](https://sccn.ucsd.edu/~scott/pdf/Delorme_Open_EEGLAB_Portal_NER18.pdf) in San Francisco (March, 2019), and our later [Neuroimage](https://www.sciencedirect.com/science/article/pii/S1053811920302652) article.
16+
17+
This respository contains the code for the EEGLAB plug-in interfacing the NSG portal through the REST API: nsgportal. The core functions of the plug-in were initially drafted by Arnaud Delorme and further modified and reworked by Ramon Martinez-Cancino, Dung Troung and Scott Makeig (The EEGLAB Team) with substantials contributions from the NSG team at the SDSC.
18+
19+
# Versions
20+
v1.0 - version used for Neuroimage 2020 article
21+
22+
v2.0 - version used for Nov. 2020 NSG online tutorial (increased robustness and command line calls)
23+
24+
v2.1 - Use EEGLAB on Expanse. Make job submission non-blocking
25+
26+
**Explore the NSGPORTAL Wiki [here](https://github.com/sccn/nsgportal/wiki)**
27+

‎plugins/nsgportal/index.md

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,28 @@ layout: default
33
title: nsgportal
44
long_title: nsgportal
55
parent: Plugins
6-
categories: plugins
76
has_children: true
8-
nav_order: 1
7+
nav_order: 5
98
---
109
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/nsgportal).
1110

12-
# EEGLAB on NSG
13-
An Open EEGLAB Portal to High-Performance Computing: As of late 2018, EEGLAB scripts may now be run on high-performance computing resources via the freely available Neuroscience Gateway Portal to the NSF-sponsored [Comet supercomputer](https://ucsdnews.ucsd.edu/pressrelease/sdsc_to_double_comet_supercomputers_graphic_processor_count/) of the [San Diego Supercomputer Center](https://sdsc.edu/). The home page of the Neuroscience Gateway is shown below. NSG accounts are free and are not limited to US users, but the portal may only be used for non-commercial purposes (see the [NSG Terms of Use](http://www.nsgportal.org/policy.html)). We also recommend you to watch the [NSG tutorial videos](https://www.nsgportal.org/tutorial.html).
14-
<center>
15-
<img src="https://github.com/nucleuscub/pop_nsg_wiki/blob/master/docs/img/nsg_mainpage.jpg?raw=true" alt="drawing" width="1000"/>
16-
</center>
11+
# EEGLAB on NSG and nsgportal
12+
An Open EEGLAB Portal to High-Performance Computing: As of late 2018, EEGLAB scripts may now be run on high-performance computing resources via the freely available Neuroscience Gateway Portal to the NSF-sponsored [Comet supercomputer](https://ucsdnews.ucsd.edu/pressrelease/sdsc_to_double_comet_supercomputers_graphic_processor_count/) of the [San Diego Supercomputer Center](https://sdsc.edu/). The home page of the Neuroscience Gateway is shown below. NSG accounts are free and are not limited to US users, but the portal may only be used for non-commercial purposes (see the [NSG Terms of Use](http://www.nsgportal.org/policy.html)).
13+
14+
![Screenshot 2024-07-11 at 14 45 33](https://github.com/user-attachments/assets/ddccba01-f5f4-4337-ae08-2fd4cf96f916)
1715

1816
Like all (except personal!) supercomputers, Comet typically runs jobs in batch mode rather than in the interactive style of Matlab. However, Comet has all Matlab functions as well as EEGLAB functions and many plug-in extensions installed ready to be called from scripts. When a job submitted through the NSG portal is run, you will receive an email from NSG alerting you to download the results. This means that best uses of the Open EEGLAB Portal are for computationally intensive processes and/or for parallel, automated processing of large EEG studies. In the first category, we are now installing the most computationally intensive EEGLAB functions on comet: AMICA, RELICA, time/frequency analysis, SCALE-optimized individual subject head modeling via NFT, etc. We will give more information here about using these installed capabilities as they become available.
1917

20-
To read a detailed overview of the Open EEGLAB Portal, browse a [conference paper submitted the IEEE/EMBS Neural Engineering Conference](https://sccn.ucsd.edu/~scott/pdf/Delorme_Open_EEGLAB_Portal_NER18.pdf) in San Francisco (March, 2019) and our [Neuroimage](https://www.sciencedirect.com/science/article/pii/S1053811920302652) article.
18+
To read a detailed overview of the Open EEGLAB Portal, browse a [conference paper submitted the IEEE/EMBS Neural Engineering Conference](https://sccn.ucsd.edu/~scott/pdf/Delorme_Open_EEGLAB_Portal_NER18.pdf) in San Francisco (March, 2019), and our later [Neuroimage](https://www.sciencedirect.com/science/article/pii/S1053811920302652) article.
19+
20+
This respository contains the code for the EEGLAB plug-in interfacing the NSG portal through the REST API: nsgportal. The core functions of the plug-in were initially drafted by Arnaud Delorme and further modified and reworked by Ramon Martinez-Cancino, Dung Troung and Scott Makeig (The EEGLAB Team) with substantials contributions from the NSG team at the SDSC.
21+
22+
# Versions
23+
v1.0 - version used for Neuroimage 2020 article
24+
25+
v2.0 - version used for Nov. 2020 NSG online tutorial (increased robustness and command line calls)
26+
27+
v2.1 - Use EEGLAB on Expanse. Make job submission non-blocking
28+
29+
**Explore the NSGPORTAL Wiki [here](https://github.com/sccn/nsgportal/wiki)**
2130

‎plugins/nwbio/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: nwbio
44
long_title: nwbio
55
parent: Plugins
6+
has_children: true
67
nav_order: 12
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/nwbio).

‎plugins/relica/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: relica
44
long_title: relica
55
parent: Plugins
6+
has_children: true
67
nav_order: 21
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/relica).

‎plugins/roiconnect/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: roiconnect
44
long_title: roiconnect
55
parent: Plugins
6+
has_children: true
67
nav_order: 8
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/roiconnect).

‎plugins/std_dipoleDensity/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: std_dipoleDensity
44
long_title: std_dipoleDensity
55
parent: Plugins
6+
has_children: true
67
nav_order: 22
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/std_dipoleDensity).

‎plugins/trimOutlier/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: trimOutlier
44
long_title: trimOutlier
55
parent: Plugins
6+
has_children: true
67
nav_order: 10
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/trimOutlier).

‎plugins/viewprops/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: viewprops
44
long_title: viewprops
55
parent: Plugins
6+
has_children: true
67
nav_order: 24
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/viewprops).

‎plugins/zapline-plus/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ layout: default
33
title: zapline-plus
44
long_title: zapline-plus
55
parent: Plugins
6+
has_children: true
67
nav_order: 18
78
---
89
To view the plugin source code, please visit the plugin's [GitHub repository](https://github.com/sccn/zapline-plus).

0 commit comments

Comments
 (0)
Please sign in to comment.