{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/automated-seizure-detection-and-seizure-type","title":"Self-Supervised Graph Neural Networks for Improved Electroencephalographic Seizure Analysis","arxiv_id":"2104.08336","date":"2021-04-16","proceeding":"ICLR 2022 4","authors":["Siyi Tang","Jared A. Dunnmon","Khaled Saab","Xuan Zhang","Qianying Huang","Florian Dubost","Daniel L. Rubin","Christopher Lee-Messer"],"abstract":"Automated seizure detection and classification from electroencephalography (EEG) can greatly improve seizure diagnosis and treatment. However, several modeling challenges remain unaddressed in prior automated seizure detection and classification studies: (1) representing non-Euclidean data structure in EEGs, (2) accurately classifying rare seizure types, and (3) lacking a quantitative interpretability approach to measure model ability to localize seizures. In this study, we address these challenges by (1) representing the spatiotemporal dependencies in EEGs using a graph neural network (GNN) and proposing two EEG graph structures that capture the electrode geometry or dynamic brain connectivity, (2) proposing a self-supervised pre-training method that predicts preprocessed signals for the next time period to further improve model performance, particularly on rare seizure types, and (3) proposing a quantitative model interpretability approach to assess a model's ability to localize seizures within EEGs. When evaluating our approach on seizure detection and classification on a large public dataset, we find that our GNN with self-supervised pre-training achieves 0.875 Area Under the Receiver Operating Characteristic Curve on seizure detection and 0.749 weighted F1-score on seizure classification, outperforming previous methods for both seizure detection and classification. Moreover, our self-supervised pre-training strategy significantly improves classification of rare seizure types. Furthermore, quantitative interpretability analysis shows that our GNN with self-supervised pre-training precisely localizes 25.4% focal seizures, a 21.9 point improvement over existing CNNs. Finally, by superimposing the identified seizure locations on both raw EEG signals and EEG graphs, our approach could provide clinicians with an intuitive visualization of localized seizure regions.","url_abs":"https://arxiv.org/abs/2104.08336v2","url_pdf":"https://arxiv.org/pdf/2104.08336v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"automated-seizure-detection-and-seizure-type","repo_url":"https://github.com/tsy935/eeg-gnn-ssl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"classification-1","task_name":"Classification"},{"task_slug":"eeg-1","task_name":"EEG"},{"task_slug":"eeg","task_name":"Electroencephalogram (EEG)"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"},{"task_slug":"seizure-detection","task_name":"Seizure Detection"}],"methods":[{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"},{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.08336","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.08336"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tsy935/eeg-gnn-ssl","reach":null}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":5,"ran":3,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"43ace0c20a56fd07","entry":"DCGRUCell","repo":"tsy935/eeg-gnn-ssl","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/tsy935/eeg-gnn-ssl/blob/HEAD/model/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"43ace0c20a56fd07"}},{"code_sha256_prefix":"c33d91dcc807860e","entry":"DiffusionGraphConv","repo":"tsy935/eeg-gnn-ssl","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/tsy935/eeg-gnn-ssl/blob/HEAD/model/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c33d91dcc807860e"}},{"code_sha256_prefix":"36467b1c44ee49ec","entry":"last_relevant_pytorch","repo":"tsy935/eeg-gnn-ssl","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/tsy935/eeg-gnn-ssl/blob/HEAD/model/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"36467b1c44ee49ec"}},{"code_sha256_prefix":"cd4e058f9b3ef79e","entry":"DCRNNEncoder","repo":"tsy935/eeg-gnn-ssl","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/tsy935/eeg-gnn-ssl/blob/HEAD/model/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cd4e058f9b3ef79e"}},{"code_sha256_prefix":"3c83b21e307080a6","entry":"DCRNNModel_classification","repo":"tsy935/eeg-gnn-ssl","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/tsy935/eeg-gnn-ssl/blob/HEAD/model/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3c83b21e307080a6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}