{"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":30635,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"! rm -rf *\n! git clone https://github.com/bdsp-core/IIIC-SPaRCNet SPaRCNet","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-01-28T11:26:33.810381Z","iopub.execute_input":"2024-01-28T11:26:33.810961Z","iopub.status.idle":"2024-01-28T11:26:39.376500Z","shell.execute_reply.started":"2024-01-28T11:26:33.810875Z","shell.execute_reply":"2024-01-28T11:26:39.375470Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from glob import glob\nall_mat_files = glob(\"/kaggle/working/SPaRCNet/code_for_figures/Data/**/*.mat\", recursive=True)","metadata":{"execution":{"iopub.status.busy":"2024-01-28T11:30:36.923209Z","iopub.execute_input":"2024-01-28T11:30:36.923775Z","iopub.status.idle":"2024-01-28T11:30:36.933604Z","shell.execute_reply.started":"2024-01-28T11:30:36.923723Z","shell.execute_reply":"2024-01-28T11:30:36.932015Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import scipy.io\nextra_dataset_mat_files = []\nfor mat_file in all_mat_files:\n    mat = scipy.io.loadmat(mat_file)\n    if 'seg' in mat:\n        print(mat_file, len(mat), mat.keys())\n        extra_dataset_mat_files.append(mat_file)\n    else:\n        print('skip', mat_file, len(mat), mat.keys())","metadata":{"execution":{"iopub.status.busy":"2024-01-28T11:34:11.840750Z","iopub.execute_input":"2024-01-28T11:34:11.841162Z","iopub.status.idle":"2024-01-28T11:34:16.534852Z","shell.execute_reply.started":"2024-01-28T11:34:11.841132Z","shell.execute_reply":"2024-01-28T11:34:16.533873Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"! mkdir /kaggle/working/dataset\n! mkdir /kaggle/working/dataset/train_eegs\n! mkdir /kaggle/working/model","metadata":{"execution":{"iopub.status.busy":"2024-01-28T11:47:48.790579Z","iopub.execute_input":"2024-01-28T11:47:48.790925Z","iopub.status.idle":"2024-01-28T11:47:49.733786Z","shell.execute_reply.started":"2024-01-28T11:47:48.790898Z","shell.execute_reply":"2024-01-28T11:47:49.732333Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\ntrain = pd.read_csv(\"/kaggle/input/hms-harmful-brain-activity-classification/train.csv\")\ncolumns = list(train.columns)\ntargets = [x for x in columns if '_vote' in x]\nstr(columns), str(targets)","metadata":{"execution":{"iopub.status.busy":"2024-01-28T11:42:37.776490Z","iopub.execute_input":"2024-01-28T11:42:37.776968Z","iopub.status.idle":"2024-01-28T11:42:37.867021Z","shell.execute_reply.started":"2024-01-28T11:42:37.776928Z","shell.execute_reply":"2024-01-28T11:42:37.865411Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"extra_train = []\nimport scipy.io\nfor seq_id, mat_file in enumerate(extra_dataset_mat_files):\n    details = {x:'' for x in columns}\n    label = mat_file.split(\"/\")[-1].split(\"_\")[0]\n    if label == \"SZ\":\n        label = \"Seizure\"\n    mat = scipy.io.loadmat(mat_file)\n    print(seq_id, label, mat['seg'].shape)\n    details['eeg_id'] = f\"extra_{seq_id}\"\n    details['eeg_sub_id'] = 0\n    details['eeg_label_offset_seconds'] = 0\n    details['spectrogram_id'] = \"-\"\n    details['spectrogram_sub_id'] = \"-\"\n    details['spectrogram_label_offset_seconds'] = \"-\"\n    details['label_id'] = details['eeg_id']\n    details['patient_id'] = \"-\"\n    for x in targets:\n        details[x] = 0\n    details[f\"{label.lower()}_vote\"] = 10 # (0+20/2)\n    extra_train.append(details)\n    \n    mat_df = pd.DataFrame(mat['seg'])\n    mat_df.to_parquet(f\"/kaggle/working/dataset/train_eegs/{details['eeg_id']}.parquet\")","metadata":{"execution":{"iopub.status.busy":"2024-01-28T11:54:35.345582Z","iopub.execute_input":"2024-01-28T11:54:35.345968Z","iopub.status.idle":"2024-01-28T11:55:09.776388Z","shell.execute_reply.started":"2024-01-28T11:54:35.345934Z","shell.execute_reply":"2024-01-28T11:55:09.775604Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_extra = pd.DataFrame(extra_train)\ntrain_extra","metadata":{"execution":{"iopub.status.busy":"2024-01-28T11:46:52.332348Z","iopub.execute_input":"2024-01-28T11:46:52.333078Z","iopub.status.idle":"2024-01-28T11:46:52.363022Z","shell.execute_reply.started":"2024-01-28T11:46:52.333034Z","shell.execute_reply":"2024-01-28T11:46:52.360963Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_extra.to_csv(\"/kaggle/working/dataset/train_extra.csv\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"! cp /kaggle/working/SPaRCNet/SPaRCNet/model_1130.pt /kaggle/working/model/SPaRCNet.pt","metadata":{"execution":{"iopub.status.busy":"2024-01-28T11:55:23.411696Z","iopub.execute_input":"2024-01-28T11:55:23.412405Z","iopub.status.idle":"2024-01-28T11:55:23.747458Z","shell.execute_reply.started":"2024-01-28T11:55:23.412364Z","shell.execute_reply":"2024-01-28T11:55:23.746172Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}