Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #267

Merged
merged 47 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
6579d6c
example test commit (#182)
JohnGriffiths Jun 2, 2022
ae4a5db
ci: run test workflow on develop branch
ErikBjare Jun 10, 2022
5c83bbe
ci: add develop branch to job triggers
ErikBjare May 5, 2022
32515fa
ci: fix syntax issue in workflow
ErikBjare Jun 16, 2022
75e42ef
fix: fixed import (brainflow updated API)
ErikBjare Jun 16, 2022
f139ab5
build(deps): locked pylsl==1.10.5 (#187)
ErikBjare Jun 16, 2022
e4e7d8a
Experiment Class Refactor (update to #183), converting specific exper…
Parvfect Aug 10, 2022
05bdf62
Submodule added for gsoc
Parvfect Sep 5, 2022
368afa3
Merge branch 'develop' of https://github.com/NeuroTechX/eeg-notebooks…
Parvfect Sep 5, 2022
6714740
Adding pipelines for cli analysis (#202)
Parvfect Oct 16, 2022
3f3281c
added more options for site args; improved function names; removed so…
JohnGriffiths Oct 16, 2022
79652af
fix subject num parsing bug
JohnGriffiths Oct 16, 2022
a62280a
analysis report function improvements for openbci cyton and gtec unic…
JohnGriffiths Oct 17, 2022
e7bee1b
run exp fix
JohnGriffiths Oct 18, 2022
e6e92b9
Update requirements.txt
JohnGriffiths Oct 20, 2022
30fb77c
fixes to get docs building by github action (#210)
pellet Oct 27, 2022
6783463
Update README.rst
JohnGriffiths Dec 1, 2022
3b1585f
removing gsoc submodule
JohnGriffiths Jan 19, 2023
8f41ebe
Merge branch 'master' into develop
JohnGriffiths Jan 19, 2023
478fa49
ci: update python to 3.8, update wxPython, update setup-python action
ErikBjare Mar 3, 2023
3bd12a7
ci: pin ubuntu versions to 22.04, updated wxPython urls
ErikBjare Mar 3, 2023
a4fe823
ci: bumped psychopy to 2023.1.0
ErikBjare Mar 3, 2023
c2c5d57
build(deps): set upper supported numpy version to 1.23.x
ErikBjare Mar 3, 2023
adf5e28
chore: applied no_implicit_optional
ErikBjare Mar 3, 2023
584272e
update dependencies - for build (#220)
oreHGA Mar 4, 2023
d0715cf
Updated psychopy (#215)
pellet Mar 4, 2023
c9b6671
Merge branch 'develop' into dev/update-wxpython
oreHGA Mar 4, 2023
53154c2
Updated doc examples for N170, P300 and SSVEP after Experiment Class …
Parvfect Mar 10, 2023
70758b7
Merge pull request #222 from NeuroTechX/dev/update-wxpython
ErikBjare Mar 11, 2023
c24b7c7
fix error breaking n170 test (#223)
pellet Mar 11, 2023
81dd244
fixed requirements.txt so 'pip install -e .' would work on windows. (…
pellet Apr 27, 2023
7be54d6
Get CI test builds working again! (#170)
ErikBjare Apr 27, 2023
9d61617
Merge branch 'master' into develop
oreHGA Nov 16, 2023
a4bec9b
fix macos build (#245)
pellet Nov 16, 2023
d8b5976
Add devcontainer configuration for CPU environment
tmorshed Dec 6, 2023
7cf7774
Fixed the python version needed
tmorshed Dec 8, 2023
d00c2dd
Fix plot conditions (#257)
JohnGriffiths Mar 7, 2024
1587cbb
Started the name switch (#251)
JohnGriffiths Mar 7, 2024
0e1ecc1
Add newlogo (#260)
JohnGriffiths Mar 7, 2024
5099b97
Merge branch 'master' into develop
JohnGriffiths Mar 7, 2024
297926c
added to enable eegexpy commands (#265)
JohnGriffiths Apr 14, 2024
8421b6c
started alias of main package for imports (#266)
JohnGriffiths Apr 14, 2024
5bbca2b
Add multiple installation options (#263)
JohnGriffiths Jun 16, 2024
21a09ab
Add support for /develop in docs site (#259)
oreHGA Jun 16, 2024
fad804b
Initial support for VR headsets (#241)
pellet Jun 16, 2024
e902b73
ssaep volumefadingfixes (#81)
JohnGriffiths Jun 16, 2024
cd08c42
Merge branch 'master' into develop
JohnGriffiths Jun 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
make install-deps-wxpython
- name: Build project
run: |
make build
make install-docs-build-dependencies

- name: Build docs
run: |
Expand All @@ -35,4 +35,9 @@ jobs:
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doc/_build/html

- name: Deploy Dev Docs
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doc/_build/html
destination_dir: develop
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
build:
# Use pep517 to install pygatt==4.0.5(deprecated setuptools/egg installer) on macos
pip install --use-pep517 .
pip install --use-pep517 .[full]

install-docs-build-dependencies:
pip install -e .[docsbuild]

test:
pytest
Expand Down
5 changes: 3 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ EEG-ExPy
.. |badge_binder| image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/NeuroTechX/eeg-expy/master

.. image:: https://github.com/NeuroTechX/EEG-ExPy/blob/master/doc/img/EEG-ExPy_Logo.png
.. image:: ./doc/img/EEG-ExPy_Logo.png
:align: center


EEG-ExPy is a collection of classic EEG experiments, implemented in Python. The experimental protocols and analyses are quite generic, but are primarily taylored for low-budget / consumer EEG hardware such as the InteraXon MUSE and OpenBCI Cyton. The goal is to make cognitive neuroscience and neurotechnology more accessible, affordable, and scalable.

- **For an intro talk on the ***EEG-ExPy*** (formerly ***eeg-notebooks***) project see:** `JG's Brainhack Ontario presentation <https://www.crowdcast.io/e/brainhack-ontario/7>`_.
Expand Down Expand Up @@ -87,7 +88,7 @@ The best place for general discussion on eeg-expy functionality is the `issues p



.. image:: https://github.com/NeuroTechX/EEG-ExPy/blob/master/doc/img/eeg-notebooks_democratizing_the_cogneuro_experiment.png
.. image:: ./doc/img/eeg-notebooks_democratizing_the_cogneuro_experiment.png
:align: center
:scale: 50

49 changes: 49 additions & 0 deletions doc/getting_started/running_experiments.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,3 +139,52 @@ eeg_device = EEG(device=board_name)
# Run stimulus presentation
n170.present(duration=record_duration, eeg=eeg_device, save_fn=save_fn)
```


## Using virtual reality

### Heads up display

A heads-up display can be used for presenting experiments in a similar way to a monitor, without much modification.

#### Features to be added in future releases:

* Controller input
* Controller haptic feedback

### Prerequisites:
* Oculus Rift compatible VR headset, e.g. Oculus Rift or Meta Quest series.
* Native Windows installation with meta link compatible video card.
* EEG device, e.g. OpenBCI Cyton or Muse

If an experiment has the use_vr argument in its present method, it can have its stimulus presented to a subject's VR headset.
The N170 experiment for example, can have its stimulus displayed on the VR headset with a simple modification to the 'use_vr' argument, when presenting an experiment:

```python
# Run stimulus presentation with VR enabled.
n170.present(duration=record_duration, eeg=eeg_device, save_fn=save_fn, use_vr=True)
```

###

### Steps for running experiment in VR

1. Launch the Oculus app on the Windows computer and the IDE or CLI to be used for running the experiment.
2. Turn on the VR headset and put it on your head to make sure it is on and active, then take it off.
3. Go to the 'Devices' view in the Oculus app, it will show the headset as connected and active, along with any inactive or connected controllers.
4. Go to the 'Settings' view, under the 'Beta' title, enable 'Pass through over Oculus Link', double tapping the headset later with a fingertip will activate passthrough.
5. Put the VR headset onto the head, activate passthrough to help with wearing the eeg device.
6. Place the EEG device on top of the head.
7. Ensure the electrodes are touching the scalp ok and not being blocked by the headset strap.
8. From inside the VR headset's 'quick settings' dashboard, select 'Quest Link' and connect to the Oculus server running on windows, via air link or link cable.
9. Once the Oculus menu has finished loading on the VR headset, open the built-in Oculus desktop app by using the touch controllers or gamepad.
10. Try opening an eeg device raw data viwer and verify that the electrodes are receiving a good signal without too much noise, eg 'OpenBCI GUI'.
11. Run the EEG-ExPy experiment from the command line or IDE, it should load and take control from the Oculus desktop app.
12. Follow the experiment instructions, and press a key if necessary to begin the experiment and collect valid data.

### Other experiments can have VR added too.

1. Load/prepare stimulus in the same function as previously (def load_stimulus(self))
2. Present stimulus in the same function as previously(def present_stimulus(self, current_trial: int))
3. VR can be enabled for the experiment as part of the initializer to the base Experiment class, by default it is not enabled(use_vr=False) and will function the same as previously before VR functionality was added.

7 changes: 7 additions & 0 deletions eegexpy/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

from eegnb.experiments import VisualN170,VisualP300,VisualSSVEP,AuditoryOddball

from eegnb.analysis.utils import *



Loading
Loading