Files
semesterproject_lecture_eeg/README.md
2021-03-29 12:42:56 +02:00

54 lines
3.0 KiB
Markdown

## Semesterproject of the lecture "Semesterproject Signal processing and Analysis of human brain potentials (eeg) WS 2020/21
This repository holds the code of the semesterproject as well as the report, created by Julius Voggesberger.
As the dataset for the project, the N170-dataset was chosen.
As the three subjects, to be manually pre-processed, the subjects 001, 003 and 014 were chosen.
The rest of the subjects were pre-processed with provided pre-processing information.
### Structure
```
├── Dataset: The dataset of the project as well as the manually selected bad segments are stored here.
| ├── n170: Store the dataset here.
| └── preprocessed: Bad segments are stored here.
├── cached_data: Data that is generated in the analysis part is stored here.
| ├── decoding_data: Results of the classifiers.
| ├── erp_peaks: ERP peaks needed for the ERP analysis.
| └── tf_data: Time-frequency data needed for the tf-analysis.
├── test: Contains unittests and one visual check.
├── utils: Contains helper methods
| ├── ccs_eeg_semesterproject: Methods given in the lecture.
| ├── ccs_eeg_utils_reduced: Method for reading in BIDS.
| ├── file_utils.py: Methods for reading in files and getting epochs.
| └── plot_utils.py: Methods for manually created plots.
├── preprocessing_and_cleaning.py: The preprocessing pipeline.
├── erp_analysis.py: The ERP-Analysis and computation of ERP peaks.
└── decoding_tf_analysis.py: Decoding and time-frequency analysis.
```
### Running the project
To run the project python 3.7 is required and anaconda recommended.
To ensure reproducability, randomstates were used for methods which are non-deterministic.
The randomstates used are either '123' or '1234'.\
The following libraries are needed:
- Matplotlib 3.3.3
- MNE 0.22.0
- MNE-Bids 0.6
- Numpy 1.19.4
- Scikit-Learn 0.23.2
- Pandas 1.2.0
- Scipy 1.5.4
For the code to work, the N170 dataset needs to be provided and put into the folder 'Dataset/n170/', so that the file structure 'Dataset/n170/sub-001', etc. exists.
The pre-processed raw objects are saved in their respective subject folder, in 'Dataset/n170/'.
When first running the analysis, it may take a while.
After running it one time the data is cached, so that it can be reused if the analysis should be executed again at a later time.
For the cached data to be used, a boolean parameter has to be set in the respective analysis method.
It may be necessary to set the parent directory 'semesterproject_lecture_eeg' as 'Sources Root' for the project, if pycharm is used as an IDE.
### Parameters
Parameters have to be changed manually in the code, if different settings want to be tried.
### Visualisation
The visualisation methods that were used to generate the visualisations in the report, are contained in the code, if they were created manually.
If a visualisation method from mne was used to create the visualisation, it may exist in the code or not.