eegdash 0.4.0.dev150__tar.gz → 0.4.0.dev162__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of eegdash might be problematic. Click here for more details.
- {eegdash-0.4.0.dev150/eegdash.egg-info → eegdash-0.4.0.dev162}/PKG-INFO +1 -1
- eegdash-0.4.0.dev162/docs/source/_templates/autosummary/module.rst +65 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/api/api_core.rst +1 -1
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/conf.py +35 -3
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/dataset_summary/bubble.rst +4 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/dataset_summary/kde.rst +4 -0
- eegdash-0.4.0.dev162/docs/source/dataset_summary/sankey.rst +20 -0
- eegdash-0.4.0.dev162/docs/source/dataset_summary/table.rst +27 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/dataset_summary.rst +10 -6
- eegdash-0.4.0.dev162/docs/source/index.rst +86 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/user_guide.rst +21 -16
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/__init__.py +1 -1
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/api.py +180 -86
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/bids_eeg_metadata.py +139 -39
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/const.py +25 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/data_utils.py +239 -173
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/dataset/dataset.py +35 -13
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/dataset/dataset_summary.csv +1 -1
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/dataset/registry.py +69 -4
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/downloader.py +95 -9
- eegdash-0.4.0.dev162/eegdash/features/datasets.py +677 -0
- eegdash-0.4.0.dev162/eegdash/features/decorators.py +136 -0
- eegdash-0.4.0.dev162/eegdash/features/extractors.py +355 -0
- eegdash-0.4.0.dev162/eegdash/features/inspect.py +121 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/serialization.py +45 -19
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/utils.py +75 -8
- eegdash-0.4.0.dev162/eegdash/hbn/preprocessing.py +105 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/hbn/windows.py +145 -32
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/logging.py +19 -0
- eegdash-0.4.0.dev162/eegdash/mongodb.py +97 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/paths.py +14 -5
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/utils.py +16 -1
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162/eegdash.egg-info}/PKG-INFO +1 -1
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash.egg-info/SOURCES.txt +2 -0
- eegdash-0.4.0.dev150/docs/source/dataset_summary/table.rst +0 -174
- eegdash-0.4.0.dev150/docs/source/index.rst +0 -60
- eegdash-0.4.0.dev150/eegdash/features/datasets.py +0 -493
- eegdash-0.4.0.dev150/eegdash/features/decorators.py +0 -51
- eegdash-0.4.0.dev150/eegdash/features/extractors.py +0 -209
- eegdash-0.4.0.dev150/eegdash/features/inspect.py +0 -48
- eegdash-0.4.0.dev150/eegdash/hbn/preprocessing.py +0 -72
- eegdash-0.4.0.dev150/eegdash/mongodb.py +0 -80
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/LICENSE +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/MANIFEST.in +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/README.md +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/Makefile +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/api/api.rst +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/api/api_features.rst +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/install/install.rst +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/install/install_pip.rst +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/install/install_source.rst +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/docs/source/sg_execution_times.rst +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/dataset/__init__.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/__init__.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/__init__.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/complexity.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/connectivity.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/csp.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/dimensionality.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/signal.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/spectral.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/features/feature_bank/utils.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash/hbn/__init__.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash.egg-info/dependency_links.txt +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash.egg-info/requires.txt +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/eegdash.egg-info/top_level.txt +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/pyproject.toml +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/setup.cfg +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_api.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_bids_dependencies.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_cache_folder_suffix.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_challenge_kwargs.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_correctness.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_dataset.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_dataset_registration.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_downloader.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_eegdash.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_init.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_minirelease.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_mongo_connection.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_offline.py +0 -0
- {eegdash-0.4.0.dev150 → eegdash-0.4.0.dev162}/tests/test_query.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eegdash
|
|
3
|
-
Version: 0.4.0.
|
|
3
|
+
Version: 0.4.0.dev162
|
|
4
4
|
Summary: EEG data for machine learning
|
|
5
5
|
Author-email: Young Truong <dt.young112@gmail.com>, Arnaud Delorme <adelorme@gmail.com>, Aviv Dotan <avivd220@gmail.com>, Oren Shriki <oren70@gmail.com>, Bruno Aristimunha <b.aristimunha@gmail.com>
|
|
6
6
|
License-Expression: GPL-3.0-only
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{{ fullname | escape | underline}}
|
|
2
|
+
|
|
3
|
+
.. automodule:: {{ fullname }}
|
|
4
|
+
:members:
|
|
5
|
+
:undoc-members:
|
|
6
|
+
:show-inheritance:
|
|
7
|
+
:member-order: bysource
|
|
8
|
+
|
|
9
|
+
{% block attributes %}
|
|
10
|
+
{%- if attributes %}
|
|
11
|
+
.. rubric:: {{ _('Module Attributes') }}
|
|
12
|
+
|
|
13
|
+
.. autosummary::
|
|
14
|
+
{% for item in attributes %}
|
|
15
|
+
{{ item }}
|
|
16
|
+
{%- endfor %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
{%- endblock %}
|
|
19
|
+
|
|
20
|
+
{%- block functions %}
|
|
21
|
+
{%- if functions %}
|
|
22
|
+
.. rubric:: {{ _('Functions') }}
|
|
23
|
+
|
|
24
|
+
.. autosummary::
|
|
25
|
+
{% for item in functions %}
|
|
26
|
+
{{ item }}
|
|
27
|
+
{%- endfor %}
|
|
28
|
+
{% endif %}
|
|
29
|
+
{%- endblock %}
|
|
30
|
+
|
|
31
|
+
{%- block classes %}
|
|
32
|
+
{%- if classes %}
|
|
33
|
+
.. rubric:: {{ _('Classes') }}
|
|
34
|
+
|
|
35
|
+
.. autosummary::
|
|
36
|
+
{% for item in classes %}
|
|
37
|
+
{{ item }}
|
|
38
|
+
{%- endfor %}
|
|
39
|
+
{% endif %}
|
|
40
|
+
{%- endblock %}
|
|
41
|
+
|
|
42
|
+
{%- block exceptions %}
|
|
43
|
+
{%- if exceptions %}
|
|
44
|
+
.. rubric:: {{ _('Exceptions') }}
|
|
45
|
+
|
|
46
|
+
.. autosummary::
|
|
47
|
+
{% for item in exceptions %}
|
|
48
|
+
{{ item }}
|
|
49
|
+
{%- endfor %}
|
|
50
|
+
{% endif %}
|
|
51
|
+
{%- endblock %}
|
|
52
|
+
|
|
53
|
+
{%- block modules %}
|
|
54
|
+
{%- if modules %}
|
|
55
|
+
.. rubric:: Modules
|
|
56
|
+
|
|
57
|
+
.. autosummary::
|
|
58
|
+
:toctree:
|
|
59
|
+
:recursive:
|
|
60
|
+
{% for item in modules %}
|
|
61
|
+
{{ item }}
|
|
62
|
+
{%- endfor %}
|
|
63
|
+
{% endif %}
|
|
64
|
+
{%- endblock %}
|
|
65
|
+
|
|
@@ -12,13 +12,15 @@ from sphinx.util import logging
|
|
|
12
12
|
from sphinx_gallery.sorting import ExplicitOrder, FileNameSortKey
|
|
13
13
|
from tabulate import tabulate
|
|
14
14
|
|
|
15
|
+
sys.path.insert(0, os.path.abspath(".."))
|
|
16
|
+
|
|
15
17
|
import eegdash
|
|
16
18
|
|
|
17
19
|
# -- Project information -----------------------------------------------------
|
|
18
20
|
|
|
19
21
|
project = "EEG Dash"
|
|
20
22
|
copyright = f"2025–{datetime.now(tz=timezone.utc).year}, {project} Developers"
|
|
21
|
-
author = "Arnaud Delorme"
|
|
23
|
+
author = "Bruno Aristimunha and Arnaud Delorme"
|
|
22
24
|
release = eegdash.__version__
|
|
23
25
|
version = ".".join(release.split(".")[:2])
|
|
24
26
|
|
|
@@ -44,6 +46,7 @@ extensions = [
|
|
|
44
46
|
"sphinx_sitemap",
|
|
45
47
|
"sphinx_copybutton",
|
|
46
48
|
"sphinx.ext.graphviz",
|
|
49
|
+
"sphinx_time_estimation",
|
|
47
50
|
]
|
|
48
51
|
|
|
49
52
|
templates_path = ["_templates"]
|
|
@@ -103,8 +106,8 @@ html_theme_options = {
|
|
|
103
106
|
"navbar_end": ["theme-switcher", "navbar-icon-links"],
|
|
104
107
|
"footer_start": ["copyright"],
|
|
105
108
|
"logo": {
|
|
106
|
-
"image_light": "_static/
|
|
107
|
-
"image_dark": "_static/
|
|
109
|
+
"image_light": "_static/eegdash_long_white.svg",
|
|
110
|
+
"image_dark": "_static/eegdash_long_dark.svg",
|
|
108
111
|
"alt_text": "EEG Dash Logo",
|
|
109
112
|
},
|
|
110
113
|
"external_links": [
|
|
@@ -293,6 +296,14 @@ EEGDash currently exposes **{dataset_count} OpenNeuro EEG datasets** that are
|
|
|
293
296
|
registered dynamically from mongo database. The table below summarises
|
|
294
297
|
the distribution by experimental type as tracked in the summary file.
|
|
295
298
|
|
|
299
|
+
Base Dataset API
|
|
300
|
+
----------------
|
|
301
|
+
|
|
302
|
+
.. toctree::
|
|
303
|
+
:maxdepth: 1
|
|
304
|
+
|
|
305
|
+
eegdash.dataset.EEGChallengeDataset
|
|
306
|
+
|
|
296
307
|
.. list-table:: Dataset counts by experimental type
|
|
297
308
|
:widths: 60 20
|
|
298
309
|
:header-rows: 1
|
|
@@ -314,6 +325,22 @@ All Datasets
|
|
|
314
325
|
"""
|
|
315
326
|
|
|
316
327
|
|
|
328
|
+
BASE_DATASET_TEMPLATE = """{notice}.. _api_eegdash_challenge_dataset:
|
|
329
|
+
|
|
330
|
+
.. currentmodule:: eegdash.dataset
|
|
331
|
+
|
|
332
|
+
EEGChallengeDataset
|
|
333
|
+
===================
|
|
334
|
+
|
|
335
|
+
.. autoclass:: eegdash.dataset.EEGChallengeDataset
|
|
336
|
+
:members:
|
|
337
|
+
:undoc-members:
|
|
338
|
+
:show-inheritance:
|
|
339
|
+
:member-order: bysource
|
|
340
|
+
|
|
341
|
+
"""
|
|
342
|
+
|
|
343
|
+
|
|
317
344
|
def _write_if_changed(path: Path, content: str) -> bool:
|
|
318
345
|
"""Write ``content`` to ``path`` if it differs from the current file."""
|
|
319
346
|
existing = path.read_text(encoding="utf-8") if path.exists() else None
|
|
@@ -540,6 +567,11 @@ def _generate_dataset_docs(app) -> None:
|
|
|
540
567
|
if _write_if_changed(index_path, index_content):
|
|
541
568
|
LOGGER.info("[dataset-docs] Updated %s", index_path.relative_to(app.srcdir))
|
|
542
569
|
|
|
570
|
+
base_content = BASE_DATASET_TEMPLATE.format(notice=AUTOGEN_NOTICE)
|
|
571
|
+
base_path = dataset_dir / "eegdash.dataset.EEGChallengeDataset.rst"
|
|
572
|
+
if _write_if_changed(base_path, base_content):
|
|
573
|
+
LOGGER.info("[dataset-docs] Updated %s", base_path.relative_to(app.srcdir))
|
|
574
|
+
|
|
543
575
|
generated_paths: set[Path] = set()
|
|
544
576
|
for name in dataset_names:
|
|
545
577
|
title = f"eegdash.dataset.{name}"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.. title:: Dataset flow
|
|
2
|
+
|
|
3
|
+
.. rubric:: Sankey diagrams of EEGDash Datasets by Population, Modality, and Cognitive Domain
|
|
4
|
+
|
|
5
|
+
.. raw:: html
|
|
6
|
+
|
|
7
|
+
<figure class="eegdash-figure" style="margin: 0 0 1.25rem 0;">
|
|
8
|
+
|
|
9
|
+
.. raw:: html
|
|
10
|
+
:file: ../_static/dataset_generated/dataset_sankey.html
|
|
11
|
+
|
|
12
|
+
.. raw:: html
|
|
13
|
+
|
|
14
|
+
<figcaption class="eegdash-caption">
|
|
15
|
+
Figure: Dataset flow across population, modality, and cognitive domain.
|
|
16
|
+
Link thickness is proportional to the total number of subjects, and the tooltip
|
|
17
|
+
reports both subject and dataset counts. Hover and click legend entries to
|
|
18
|
+
explore specific segments.
|
|
19
|
+
</figcaption>
|
|
20
|
+
</figure>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.. title:: EEG Datasets Table
|
|
2
|
+
|
|
3
|
+
.. rubric:: EEG Datasets Table
|
|
4
|
+
|
|
5
|
+
The data in EEG-DaSh originates from a collaboration involving 25 laboratories, encompassing 27,053 participants. This extensive collection includes M-EEG data, which is a combination of EEG and MEG signals. The data is sourced from various studies conducted by these labs,
|
|
6
|
+
involving both healthy subjects and clinical populations with conditions such as ADHD, depression, schizophrenia, dementia, autism, and psychosis. Additionally, data spans different mental states like sleep, meditation, and cognitive tasks.
|
|
7
|
+
|
|
8
|
+
In addition, EEG-DaSh will incorporate a subset of the data converted from `NEMAR <https://nemar.org/>`__, which includes 330 MEEG BIDS-formatted datasets, further expanding the archive with well-curated, standardized neuroelectromagnetic data.
|
|
9
|
+
|
|
10
|
+
.. raw:: html
|
|
11
|
+
|
|
12
|
+
<figure class="eegdash-figure" style="margin: 0 0 1.25rem 0;">
|
|
13
|
+
|
|
14
|
+
.. raw:: html
|
|
15
|
+
:file: ../_static/dataset_generated/dataset_summary_table.html
|
|
16
|
+
|
|
17
|
+
.. raw:: html
|
|
18
|
+
|
|
19
|
+
<figcaption class="eegdash-caption">
|
|
20
|
+
Table: Sortable catalogue of EEG‑DaSh datasets. Use the “Filters” button to open column filters;
|
|
21
|
+
click a column header to jump directly to a filter pane. The Total row is pinned at the bottom.
|
|
22
|
+
* means that we use the median value across multiple recordings in the dataset, and empty cells
|
|
23
|
+
when the metainformation is not extracted yet.
|
|
24
|
+
</figcaption>
|
|
25
|
+
</figure>
|
|
26
|
+
|
|
27
|
+
Pathology, modality, and dataset type now surface as consistent color-coded tags so you can scan the table at a glance.
|
|
@@ -10,13 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
.. rst-class:: dataset-summary-article
|
|
12
12
|
|
|
13
|
-
Datasets
|
|
14
|
-
|
|
13
|
+
Datasets Catalog
|
|
14
|
+
================
|
|
15
15
|
|
|
16
16
|
To leverage recent and ongoing advancements in large-scale computational methods and to ensure the preservation of scientific data generated from publicly funded research, the EEG-DaSh data archive will create a data-sharing resource for MEEG (EEG, MEG) data contributed by collaborators for machine learning (ML) and deep learning (DL) applications.
|
|
17
17
|
|
|
18
|
-
The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
|
|
19
|
-
|
|
20
18
|
.. raw:: html
|
|
21
19
|
|
|
22
20
|
<script src="https://cdn.plot.ly/plotly-3.1.0.min.js"></script>
|
|
@@ -27,10 +25,16 @@ The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
|
|
|
27
25
|
|
|
28
26
|
.. include:: dataset_summary/table.rst
|
|
29
27
|
|
|
30
|
-
.. tab-item:: Participant
|
|
28
|
+
.. tab-item:: Participant Distribution
|
|
31
29
|
|
|
32
30
|
.. include:: dataset_summary/kde.rst
|
|
33
31
|
|
|
34
|
-
.. tab-item::
|
|
32
|
+
.. tab-item:: Dataset Flow
|
|
33
|
+
|
|
34
|
+
.. include:: dataset_summary/sankey.rst
|
|
35
|
+
|
|
36
|
+
.. tab-item:: Scatter of Sample Size vs. Recording Duration
|
|
35
37
|
|
|
36
38
|
.. include:: dataset_summary/bubble.rst
|
|
39
|
+
|
|
40
|
+
The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
:html_theme.sidebar_secondary.remove: true
|
|
2
|
+
|
|
3
|
+
EEGDASH Homepage
|
|
4
|
+
=================
|
|
5
|
+
|
|
6
|
+
.. title:: EEG Dash
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
EEG Dash Homepage
|
|
10
|
+
==================
|
|
11
|
+
|
|
12
|
+
.. raw:: html
|
|
13
|
+
|
|
14
|
+
<style type="text/css">h1 {display:none;}</style>
|
|
15
|
+
|
|
16
|
+
.. raw:: html
|
|
17
|
+
|
|
18
|
+
<h1 class="eegdash-hero__title">EEG Dash</h1>
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
.. image:: _static/logos/eegdash.svg
|
|
22
|
+
:alt: EEG Dash Logo
|
|
23
|
+
:class: logo mainlogo only-dark
|
|
24
|
+
:align: center
|
|
25
|
+
:scale: 50%
|
|
26
|
+
|
|
27
|
+
.. image:: _static/logos/eegdash.svg
|
|
28
|
+
:alt: EEG Dash Logo
|
|
29
|
+
:class: logo mainlogo only-light
|
|
30
|
+
:align: center
|
|
31
|
+
:scale: 50%
|
|
32
|
+
|
|
33
|
+
.. rst-class:: h4 text-center font-weight-light my-4
|
|
34
|
+
|
|
35
|
+
The EEG-DaSh data archive is a data-sharing resource for MEEG (EEG, MEG) data, enabling
|
|
36
|
+
large-scale computational advancements to preserve and share scientific data from publicly funded
|
|
37
|
+
research for machine learning and deep learning applications.
|
|
38
|
+
|
|
39
|
+
.. rst-class:: text-center
|
|
40
|
+
|
|
41
|
+
The "DaSh" in EEG-DaSh stands for **Data Share**.
|
|
42
|
+
|
|
43
|
+
The EEG-DaSh data archive is a collaborative effort led by the University of California, San Diego (UCSD) and Ben-Gurion University of the Negev (BGU) and partially funded by the National Science Foundation (NSF). All are welcome to contribute to the https://github.com/sccn/EEGDash project.
|
|
44
|
+
|
|
45
|
+
The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
|
|
46
|
+
|
|
47
|
+
.. raw:: html
|
|
48
|
+
|
|
49
|
+
<h2 style="text-align: center;">Institutions</h2>
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
.. image:: _static/logos/ucsd_white.svg
|
|
53
|
+
:alt: UCSD
|
|
54
|
+
:class: logo mainlogo only-dark flex-logo
|
|
55
|
+
:width: 45%
|
|
56
|
+
:align: left
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
.. image:: _static/logos/ucsd_dark.svg
|
|
60
|
+
:alt: UCSD
|
|
61
|
+
:class: logo mainlogo only-light flex-logo
|
|
62
|
+
:align: left
|
|
63
|
+
:width: 45%
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
.. image:: _static/logos/bgu_dark.svg
|
|
67
|
+
:alt: Ben-Gurion University of the Negev (BGU)
|
|
68
|
+
:class: logo mainlogo only-dark flex-logo
|
|
69
|
+
:align: right
|
|
70
|
+
:width: 40%
|
|
71
|
+
|
|
72
|
+
.. image:: _static/logos/bgu_white.svg
|
|
73
|
+
:alt: Ben-Gurion University of the Negev (BGU)
|
|
74
|
+
:class: logo mainlogo only-light flex-logo
|
|
75
|
+
:align: right
|
|
76
|
+
:width: 40%
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
.. toctree::
|
|
80
|
+
:hidden:
|
|
81
|
+
|
|
82
|
+
Installing <install/install>
|
|
83
|
+
User Guide <user_guide>
|
|
84
|
+
API <api/api>
|
|
85
|
+
Dataset Catalog <dataset_summary>
|
|
86
|
+
Examples <generated/auto_examples/index>
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
.. _user_guide:
|
|
2
2
|
|
|
3
|
+
:html_theme.sidebar_secondary.remove: true
|
|
4
|
+
|
|
5
|
+
.. currentmodule:: eegdash.api
|
|
6
|
+
|
|
7
|
+
|
|
3
8
|
User Guide
|
|
4
9
|
==========
|
|
5
10
|
|
|
6
|
-
This guide provides a comprehensive overview of the
|
|
11
|
+
This guide provides a comprehensive overview of the :mod:`eegdash` library, focusing on its core data access object, :class:`~eegdash.api.EEGDashDataset`. You will learn how to use this object to find, access, and manage EEG data for your research and analysis tasks.
|
|
7
12
|
|
|
8
13
|
The EEGDash Object
|
|
9
14
|
------------------
|
|
10
15
|
|
|
11
|
-
While :class:`~eegdash.EEGDashDataset` is the main tool for loading data for machine learning, the :class:`~eegdash.EEGDash` object provides a lower-level interface for directly interacting with the metadata database. It is useful for exploring the available data, performing complex queries, or managing metadata records.
|
|
16
|
+
While :class:`~eegdash.api.EEGDashDataset` is the main tool for loading data for machine learning, the :class:`~eegdash.api.EEGDash` object provides a lower-level interface for directly interacting with the metadata database. It is useful for exploring the available data, performing complex queries, or managing metadata records.
|
|
12
17
|
|
|
13
|
-
Initializing
|
|
18
|
+
Initializing EEGDash
|
|
14
19
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
15
20
|
|
|
16
21
|
You can create a client to connect to the public database like this:
|
|
@@ -38,25 +43,25 @@ The ``find()`` method allows you to query the database for records matching spec
|
|
|
38
43
|
records_advanced = eegdash.find(query)
|
|
39
44
|
print(f"Found {len(records_advanced)} records with advanced query.")
|
|
40
45
|
|
|
41
|
-
|
|
46
|
+
EEGDash vs. EEGDashDataset
|
|
42
47
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
43
48
|
|
|
44
49
|
It's important to understand the distinction between these two objects:
|
|
45
50
|
|
|
46
|
-
-
|
|
47
|
-
-
|
|
51
|
+
- :class:`~eegdash.api.EEGDash`: Use this for querying and managing metadata. It returns a list of dictionaries, where each dictionary is a record from the database.
|
|
52
|
+
- :class:`~eegdash.api.EEGDashDataset`: Use this when you need to load EEG data for analysis or machine learning. It returns a PyTorch-compatible dataset object where each item can load the actual EEG signal.
|
|
48
53
|
|
|
49
|
-
In general, you will use
|
|
54
|
+
In general, you will use :class:`~eegdash.api.EEGDashDataset` for most of your data loading needs.
|
|
50
55
|
|
|
51
56
|
The EEGDashDataset Object
|
|
52
57
|
-------------------------
|
|
53
58
|
|
|
54
|
-
The :class:`~eegdash.EEGDashDataset` is the primary entry point for working with EEG recordings in
|
|
59
|
+
The :class:`~eegdash.api.EEGDashDataset` is the primary entry point for working with EEG recordings in :mod:`eegdash`. It acts as a high-level interface that allows you to query a metadata database and load corresponding EEG data, either from a remote source or from a local cache.
|
|
55
60
|
|
|
56
|
-
Initializing
|
|
61
|
+
Initializing EEGDashDataset
|
|
57
62
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
58
63
|
|
|
59
|
-
To get started, you need to create an instance of
|
|
64
|
+
To get started, you need to create an instance of :class:`~eegdash.api.EEGDashDataset`. The two most important parameters are ``cache_dir`` and ``dataset``.
|
|
60
65
|
|
|
61
66
|
- ``cache_dir``: This is the local directory where ``eegdash`` will store downloaded data.
|
|
62
67
|
- ``dataset``: The identifier of the dataset you want to work with (e.g., ``"ds002718"``).
|
|
@@ -80,7 +85,7 @@ This will create a dataset object containing all recordings from ``ds002718``. T
|
|
|
80
85
|
Querying for Specific Data
|
|
81
86
|
--------------------------
|
|
82
87
|
|
|
83
|
-
|
|
88
|
+
:class:`~eegdash.api.EEGDashDataset` offers powerful filtering capabilities, allowing you to select a subset of recordings based on various criteria. You can filter by task, subject, session, or run.
|
|
84
89
|
|
|
85
90
|
Filtering by Task
|
|
86
91
|
~~~~~~~~~~~~~~~~~
|
|
@@ -162,11 +167,11 @@ For more complex queries, you can pass a MongoDB-style query dictionary directly
|
|
|
162
167
|
Working with Local Data (Offline Mode)
|
|
163
168
|
--------------------------------------
|
|
164
169
|
|
|
165
|
-
|
|
170
|
+
:mod:`eegdash` also supports working with local data that you have already downloaded or manage separately. By setting ``download=False``, you can instruct :class:`~eegdash.api.EEGDashDataset` to use local BIDS-compliant data instead of accessing the database or remote storage.
|
|
166
171
|
|
|
167
172
|
To use this feature, your data must be organized in a BIDS-like structure within your ``cache_dir``. For example, if your ``cache_dir`` is ``./eeg_data`` and your dataset is ``ds002718``, the files should be located at ``./eeg_data/ds002718/``.
|
|
168
173
|
|
|
169
|
-
Here is how to use
|
|
174
|
+
Here is how to use :class:`~eegdash.api.EEGDashDataset` in offline mode:
|
|
170
175
|
|
|
171
176
|
.. code-block:: python
|
|
172
177
|
|
|
@@ -179,12 +184,12 @@ Here is how to use ``EEGDashDataset`` in offline mode:
|
|
|
179
184
|
|
|
180
185
|
print(f"Found {len(local_dataset)} local recordings.")
|
|
181
186
|
|
|
182
|
-
When ``download=False``,
|
|
187
|
+
When ``download=False``, :mod:`eegdash` will scan the specified directory for EEG files and construct the dataset from the local file system. This is useful for environments without internet access or when you want to work with your own curated datasets.
|
|
183
188
|
|
|
184
189
|
Accessing Data from the Dataset
|
|
185
190
|
-------------------------------
|
|
186
191
|
|
|
187
|
-
Once you have your
|
|
192
|
+
Once you have your :class:`~eegdash.api.EEGDashDataset` object, you can access individual recordings as if it were a list. Each item in the dataset is an :class:`~eegdash.data_utils.EEGDashBaseDataset` object, which contains the metadata and methods to load the actual EEG data.
|
|
188
193
|
|
|
189
194
|
.. code-block:: python
|
|
190
195
|
|
|
@@ -199,4 +204,4 @@ Once you have your ``EEGDashDataset`` object, you can access individual recordin
|
|
|
199
204
|
print(f"Sampling frequency: {raw.info['sfreq']} Hz")
|
|
200
205
|
print(f"Number of channels: {len(raw.ch_names)}")
|
|
201
206
|
|
|
202
|
-
This provides a powerful and flexible way to integrate ``eegdash`` into your data analysis pipelines, whether you are working with remote or local data.
|
|
207
|
+
This provides a powerful and flexible way to integrate ``eegdash`` into your data analysis pipelines, whether you are working with remote or local data.
|