{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":59093,"databundleVersionId":7469972,"sourceType":"competition"}],"dockerImageVersionId":30626,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"![](https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/EEG_10-10_system_with_additional_information.svg/1024px-EEG_10-10_system_with_additional_information.svg.png)\n[Source - https://en.wikipedia.org/wiki/10%E2%80%9320_system_%28EEG%29](https://en.wikipedia.org/wiki/10%E2%80%9320_system_%28EEG%29)","metadata":{}},{"cell_type":"markdown","source":"![](https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/21_electrodes_of_International_10-20_system_for_EEG.svg/400px-21_electrodes_of_International_10-20_system_for_EEG.svg.png)","metadata":{}},{"cell_type":"markdown","source":"## Brain activity notebook series\n\n### [EEGS 10–20 system](https://www.kaggle.com/code/seshurajup/eegs-10-20-system)\nBetter understanding eegs 10-20 system\n### [Missing Eeg_ids Train.csv vs train_eegs [Resolved]](https://www.kaggle.com/code/seshurajup/missing-eeg-ids-in-train-csv-vs-train-eegs-parquet)\nExtra training eggs [Resolved] as we can ignore it\n### [EDA train.csv](https://www.kaggle.com/code/seshurajup/eda-train-csv)\nDetailed analysis of the train.csv\n### [Eegs Pairing Analysis & Features](https://www.kaggle.com/code/seshurajup/eegs-pairing-analysis-features)\nPairing features analysis and build features\n### [Eegs Target Analysis - Correct way to merge target](https://www.kaggle.com/code/seshurajup/eegs-target-analysis-correct-way-to-merge-target)\nHow to choice the target votes for training\n### [Eegs Train Split (CV)](https://www.kaggle.com/seshurajup/eegs-train-splits-cv)\ngenerate better train split without patient_id overlap\n\n#### **Upvote my work if it is useful**","metadata":{}},{"cell_type":"markdown","source":"**[Introduction to EEG](https://www.youtube.com/watch?v=XMizSSOejg0&ab_channel=JeremyMoeller)** ( cover details about LL, LP, RP, RL )\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F4308868%2Ff790d9fba9d01f39b5c688819cc90f64%2Ftileshop.jpg?generation=1705166531784497&alt=media)\n\n# Why it called 10-20 system ?\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2Ff05b56b2adae287e57e1a734a212c846%2FScreenshot%202024-01-14%20at%205.37.01PM.png?generation=1705234054093817&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F886f8f291ea118ad878e7828b93f4444%2FScreenshot%202024-01-14%20at%205.37.49PM.png?generation=1705234102821594&alt=media)\n\n# Left Side ( odd numbers ) & Right Side ( even numbers )\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F852eadb7e98e79b07ae2b3c6b93be246%2FScreenshot%202024-01-14%20at%205.39.29PM.png?generation=1705234209810764&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F707e26f853d0358c5355eac2b8c913ca%2FScreenshot%202024-01-14%20at%205.40.15PM.png?generation=1705234245724252&alt=media)\n\n# Terminology\n* Fz, Cz, Pz --> z stands Zero\n* F, C, P --> Frontal, Central and Parietal ( Front, Center, Back )\n\n# LL\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F42abf3341243af65c92c8ba2083b9a79%2FScreenshot%202024-01-14%20at%205.49.27PM.png?generation=1705234855564208&alt=media)\n\n#LP\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2Fa725bf3a965b4299d0af07f4937216f5%2FScreenshot%202024-01-14%20at%205.49.38PM.png?generation=1705234875852002&alt=media)\n\n# RP\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F5869dccab21b6cc3ba7b31e849622d5a%2FScreenshot%202024-01-14%20at%205.50.02PM.png?generation=1705234897860474&alt=media)\n\n# RR\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2Fa13eff4393d4fc67fbf3a2bc52294553%2FScreenshot%202024-01-14%20at%205.50.12PM.png?generation=1705234918197292&alt=media)\n\n# Common Patterns\n## Eye Blink\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F3e4413a236e04867baf6c456bbd6f105%2FScreenshot%202024-01-14%20at%205.58.09PM.png?generation=1705235422652284&alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F2ac1a4a3bb8ff340cd2b3245383f01c6%2FScreenshot%202024-01-14%20at%206.01.51PM.png?generation=1705235531899318&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F761268%2F2f35f6b81f17bae3ad9bdef46a839fe3%2FScreenshot%202024-01-14%20at%206.02.32PM.png?generation=1705235574626255&alt=media)\n\n[Source Youtube](https://www.youtube.com/watch?v=XMizSSOejg0&ab_channel=JeremyMoeller)","metadata":{}},{"cell_type":"code","source":"import pandas as pd\ntest = pd.read_csv(\"/kaggle/input/hms-harmful-brain-activity-classification/test.csv\")\ntest","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:17.772223Z","iopub.execute_input":"2024-01-10T12:20:17.772741Z","iopub.status.idle":"2024-01-10T12:20:17.790503Z","shell.execute_reply.started":"2024-01-10T12:20:17.772703Z","shell.execute_reply":"2024-01-10T12:20:17.789113Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv(\"/kaggle/input/hms-harmful-brain-activity-classification/train.csv\")\ntrain.columns","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:18.542302Z","iopub.execute_input":"2024-01-10T12:20:18.542784Z","iopub.status.idle":"2024-01-10T12:20:18.555695Z","shell.execute_reply.started":"2024-01-10T12:20:18.542743Z","shell.execute_reply":"2024-01-10T12:20:18.554827Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"eegs = pd.read_parquet('/kaggle/input/hms-harmful-brain-activity-classification/train_eegs/1000913311.parquet')\neegs","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:19.296063Z","iopub.execute_input":"2024-01-10T12:20:19.297039Z","iopub.status.idle":"2024-01-10T12:20:19.350817Z","shell.execute_reply.started":"2024-01-10T12:20:19.296982Z","shell.execute_reply":"2024-01-10T12:20:19.349611Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"eegs.shape","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:20.207718Z","iopub.execute_input":"2024-01-10T12:20:20.208170Z","iopub.status.idle":"2024-01-10T12:20:20.216354Z","shell.execute_reply.started":"2024-01-10T12:20:20.208132Z","shell.execute_reply":"2024-01-10T12:20:20.214868Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"spec = pd.read_parquet('/kaggle/input/hms-harmful-brain-activity-classification/train_spectrograms/1000086677.parquet')\nspec","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:20.954678Z","iopub.execute_input":"2024-01-10T12:20:20.955141Z","iopub.status.idle":"2024-01-10T12:20:21.037783Z","shell.execute_reply.started":"2024-01-10T12:20:20.955103Z","shell.execute_reply":"2024-01-10T12:20:21.036605Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"spec.shape","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:21.809181Z","iopub.execute_input":"2024-01-10T12:20:21.809697Z","iopub.status.idle":"2024-01-10T12:20:21.818533Z","shell.execute_reply.started":"2024-01-10T12:20:21.809656Z","shell.execute_reply":"2024-01-10T12:20:21.817398Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"! pip install eeg_positions","metadata":{"_kg_hide-input":true,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-01-10T12:20:22.624304Z","iopub.execute_input":"2024-01-10T12:20:22.625235Z","iopub.status.idle":"2024-01-10T12:20:37.982400Z","shell.execute_reply.started":"2024-01-10T12:20:22.625182Z","shell.execute_reply":"2024-01-10T12:20:37.980680Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"color_hash = {'Cz': 'khaki',\n 'Fpz': 'lightgreen',\n 'Fz': 'lightgreen',\n 'Pz': 'lightgreen',\n 'Oz': 'lightgreen',\n 'T7': 'skyblue',\n 'C3': 'skyblue',\n 'C4': 'skyblue',\n 'T8': 'skyblue',\n 'Fp2': 'salmon',\n 'F8': 'salmon',\n 'P8': 'violet',\n 'O2': 'violet',\n 'Fp1': 'salmon',\n 'F7': 'salmon',\n 'P7': 'violet',\n 'O1': 'violet',\n 'F3': 'salmon',\n 'F4': 'salmon',\n 'P3': 'violet',\n 'P4': 'violet'}\nfrom eeg_positions import get_elec_coords, plot_coords\nimport warnings\nwarnings.filterwarnings(\"ignore\", category=FutureWarning)\ncoords = get_elec_coords(\n    system=\"1020\",\n    dim=\"2d\",\n)\nchans = list(coords['label'])\ndef egg_index_colors(parse_chans):\n    pos, colrs = [],[]\n    for i, x in enumerate(chans):\n        if x not in parse_chans + ['T7','T8','P7','P8']:\n            pos.append(i)\n            colrs.append('white')\n        else:\n            pos.append(i)\n            colrs.append(color_hash[x])\n    return pos, colrs\nparse_chans = list(set(eegs.columns) - set([ 'EKG']))\negg_chans, egg_colors = egg_index_colors(parse_chans)","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:37.986107Z","iopub.execute_input":"2024-01-10T12:20:37.986695Z","iopub.status.idle":"2024-01-10T12:20:38.224597Z","shell.execute_reply.started":"2024-01-10T12:20:37.986641Z","shell.execute_reply":"2024-01-10T12:20:38.223002Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from eeg_positions import get_elec_coords, plot_coords\ncoords = get_elec_coords(\n    system=\"1020\",\n    dim=\"2d\",\n)\nimport warnings\nwarnings.filterwarnings(\"ignore\", category=FutureWarning)\ncolors = (\n    egg_colors\n)\n\nfig, ax = plot_coords(\n    coords,\n    scatter_kwargs={\n        \"s\": 300, \n        \"color\": colors,\n        \"edgecolors\": \"black\", \n        \"linewidths\": 0.5, \n    },\n    text_kwargs={\n        \"ha\": \"center\",  \n        \"va\": \"center\",  \n        \"fontsize\": 8, \n    },\n)","metadata":{"execution":{"iopub.status.busy":"2024-01-10T12:20:38.226278Z","iopub.execute_input":"2024-01-10T12:20:38.226715Z","iopub.status.idle":"2024-01-10T12:20:38.773768Z","shell.execute_reply.started":"2024-01-10T12:20:38.226678Z","shell.execute_reply":"2024-01-10T12:20:38.771804Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}