## 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.