A template for any future projects
Project Video: https://youtu.be/
Link to paper:
- Run
pip install -r requirements.txt
to install the dependencies. - In
/scripts
,python main.py
will run the app. - Upload the entire project folder to Google drive, and open the .ipynb files in Colab to run the demo notebooks.
/data
- Where the recorded eeg data, intermediate variables, and analysis results for plotting the figures will be stored./data/eeg_recordings
- Contains different sessions of EEG recordings.
/figures
Stores all of the figures generated by the scripts./notebooks
Demo notebooks illustrating the data processing and modeling pipeline./scripts
Each script is for a particular processing stage./scripts/main.py
- The scripts that runs the entire project pipeline, combining all of the processing scripts.
/src
- Modular code files that are meant to be imported by different scripts./src/funcs.py
- Modular data processing functions for the script files to use./src/utils.py
- Modular utility functions such as ploting, loading, and saving the data./src/custom_module.py
- Can have different names. Where we define custom classes for modeling, GUI, etc.
Describe the app processing stages with figures and screenshots of the app.
Describe the mapping of electrodes with a mapping figure and a real-life photo of the setup.
Descriptions of different parts of the projects worth noting, each with its own subtitle.
- Currently, data is hosted in the NeuroTech Google Drive
py src/data/make_dataset.py ${RAW_DATA_DIR} ${OUTPUT_PATH}
to parse raw continuous data into bandpass trialized data for modeling. The output data will be numpy data with the shape: (trials, num_targets, channels, timepoints)- ${RAW_DATA_DIR} should have two files in it, meta.csv and eeg.csv.
- eeg.csv will have the first column being the timestamps, and the rest of the columns being the channel names.
- meta.csv has no headers, its 1st column is the corresponding freq of our targets, 2nd column is the phase offset, and 3rd column is the time with timepoint as units
py src/data/split_dataset.py ${EEG_DATA_PATH} ${LABEL_DATA_PATH} -train -val -test ${OUTPUT_PATH}
- ${EEG_DATA_PATH} should contain data with the shape in npy format: (trials, num_targets, channels, timepoints)
- ${EEG_DATA_PATH} should contain data with the shape in npy format: (trials, num_targets)
-train
specifies the proportion of training data-val
and-test
for the validation and testing data respectively. The proportions must sum up to 1.
py src/models/train.py ${TRAIN_DATA_PATH} ${VALIDATION_DATA_PATH} ${OUTPUT_PATH}
to train the model and save it
py src/models/evaluation.py ${CHECKPOINT_PATH} ${TEST_DATA_PATH}
to evaluate model performance
Put the team and partners here.
- EEGNet: https://github.com/vlawhern/arl-eegmodels
- Visual Delay: https://www.pnas.org/doi/10.1073/pnas.1508080112
- Frame index flashing: https://sccn.ucsd.edu/~yijun/pdfs/EMBC14c.pdf