DOI: 10.5281/zenodo.14825785
title: SeizyML: Feature Dataset with Accompanying Code for Seizure Detection Model Reproducibility

description: Abstract

This repository contains the code, data, and pre-trained models necessary to reproduce the experiments and figures presented in the accompanying paper (doi: 10.1007/s12021-025-09719-4). In the paper we introduce SeizyML an open-software that use uses interpretable machine learning models to detect seizures from EEG recordings.

Summary

The central script, run_experiments.py, orchestrates model training and processing. All trained models and score files are also included to allow figure reproduction without model training.



This archive contains features calculated from chronic LFP/EEG recordings in a mouse model of temporal lobe epilepsy which were obtained as part of the study described here.

Additionally, this archive contains features obtained from the CHB-MIT dataset.

Finally, this archive contains the code to reproduce figures from the accompanying paper (doi: 10.1007/s12021-025-09719-4 - A description of how the features were extracted is also included here).

These features can also be used to compare the performance of other models with the machine learning models described in the accompanying paper.


Usage Instructions

1. Publication figures can be reproduced by running the figure related scripts as all trained models and score files are included in the trained_models folder.



For example

python figure4_post_processing.py


2. To run specific experiments or reproduce figures, execute the script with one of the available tasks as an argument:



python run_experiments.py <task_name>





Task Name
Description
Related Figures


per_file
Trains models using per-file normalization
Figures 2-4, Supp. Fig. 4


all_file
Trains models using all-file normalization
Figure 2


time_plots
Generates time-based prediction plots
Figure 3, Supp. Fig. 3


post_processing
Applies post-processing to model outputs
Figure 4


train_size
Evaluates models with varying training set sizes
Figure 5


permute_labels
Trains models with permuted labels to test robustness
Figure 5


small_models_permute
Evaluates small dataset models with permuted labels
Figure 5-6


gnb_one_feature
Trains Gaussian Naive Bayes models using a single feature
Supp. Fig. 5






norm_comps_mouse


Compares normalization techniques (mouse data)
Figure 7






norm_comps_chb_mit


Compares normalization techniques (CHB-MIT dataset)
Figure 7




Dependencies

Dependencies include:



Python 3.9-3.11

Numpy

Pandas

Seaborn

tqdm

Scipy

Scikit-learn

joblib





statsmodels




An example requirements.txt file with our full environment details is also included.

Directory Structure / Contents

├── figure2_factor_comparisons.py            # Script to generate Figure 2├── figure3_seizure_predictions_time.py    # Script to generate Figure 3├── figure4_post_processing.py                 # Script to generate Figure 4├── figure5_model_robustness.py              # Script to generate Figure 5├── figure6_feature_importance.py            # Script to generate Figure 6├── figure7_norm_comparisons.py             # Script to generate Figure 7├── supp_figure_4_pac_sgd.py                    # Script for Supplementary Figure 4├── supp_figure_5_gnb_one_feature.py      # Script for Supplementary Figure 5├── run_experiments.py                              ## Main script for training and validation experiments├── requirements.txt├── data│   ├── features_chbmit                    # EEG features from the CHB-MIT dataset│   ├── features_mouse│   │   ├── train                                 # Mouse training data features│   │   └── test                                  # Mouse test data features│   └── trained_models                     # Pre-trained models/files for reproducibility├── sz_utils│   ├── compile_features.py│   ├── compile_features_chbmit.py│   ├── feature_selection.py│   ├── post_processing.py│   ├── seizure_match.py│   ├── test_scores.py│   └── time_plots.py└── training    ├── grid_search.py    ├── train_gnb_one_feature.py    ├── train_models_basic.py    ├── train_models_norm_comps.py    ├── train_models_permute_labels.py    ├── train_models_train_size.py    ├── train_small_models_permute_labels.py    └── train_test_chbmit.py

Contact

For questions regarding the code, data, or reproducibility, please contact the corresponding author of the paper.