neerajwagh/eeg-self-supervision
44.8
Weak · 21 September 2026
3.2k
lines of production code
Python
primary language
4
measurements over time
What this system is
Features
Add evaluation scripts and model definitions for self-supervised learning baselines
The evaluation directory now includes scripts and model definitions for evaluating self-supervised learning (SSL) models, including a SOTA evaluation script, ablation models (FullSSLNet, ContrastiveTripletNet, BarlowTwinsDBRatioNet, etc.), and dataset utilities. This enables running held-out evaluations for tasks like gender, age, and condition classification on the TUH and Lemon datasets using various SSL architectures.
evaluation · high confidence
Add fine-tuning and supervised learning code for EEG classification
The Fine-tune directory now includes a complete supervised learning pipeline for EEG data. This includes model architectures (SOTA\_model, ablation\_models) implementing a Shallow ConvNet and various self-supervised heads (BarlowTwins, Contrastive Triplet), along with a training pipeline (SOTA\_pipeline, ablation\_pipeline) that tracks train/valid metrics (AUC, F1, precision, recall, balanced accuracy) at both sample and patient levels. Supporting modules for dataset handling (datasets.py) and data splitting (utils.py) are also added.
Fine-tune · high confidence
Add linear baseline training script and utility functions for supervised learning
The \supervised\_learning\ directory now includes \linear\_baseline\_train.py\, a script that trains a logistic regression model using scikit-learn's \GridSearchCV\ to find optimal hyperparameters for tasks like gender, age, and condition classification on Tuh and Lemon datasets. It also adds \utils.py\, which provides helper functions for subject-level data splitting, custom cross-validation folding, and patient-level metric aggregation.
_supervised\learning · high confidence
Added Dockerfile and topomap image array extraction example
The repository now includes a Dockerfile that sets up a Python 3.8 environment with MNE, PyTorch, and other dependencies, facilitating reproducible execution of the project. Additionally, a new Jupyter notebook (\_00\_generate\_band\_power\_topomap\_image\_from\_timeseries\_signal.ipynb) was added to demonstrate how to extract topomap image arrays from timeseries signals, providing a concrete example for users working with EEG data processing.
(repo-wide) · high confidence
Added EEG feature extraction and topographic map utilities
Added new utility modules for EEG signal processing. The \utils/features.py\ module introduces an \eeg\_power\_in\_bands\ function that extracts relative power features across standard brain rhythm bands (delta, theta, alpha, beta, gamma) from MNE Epochs objects, returning data compatible with scikit-learn. The \utils/topomaps.py\ module provides helper functions to convert matplotlib figures to NumPy arrays and apply circular head masks for topographic visualization.
utils · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 47 → 45 (-2.3)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 94 → 94 (+0.3)
- Architecture 100 → 100 (+0.0)
- Maturity 51 → 44 (-7.1)
- Readiness 17 → 17 (+0.0)
- Security 99 → 93 (-5.8)
Resolved (28)
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (11 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (11 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (12 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (12 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (12 lines × 2) (evaluation/linear_baseline_eval.py)
- Duplicated block (12 lines × 3) (Fine-tune/utils.py)
- Duplicated block (13 lines × 2) (Fine-tune/SOTA_pipeline.py)
- Duplicated block (13 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (13 lines × 3) (Fine-tune/utils.py)
- Duplicated block (14 lines × 3) (evaluation/SOTA_eval.py)
- Duplicated block (15 lines × 3) (Fine-tune/utils.py)
- Duplicated block (16 lines × 3) (Fine-tune/utils.py)
- Duplicated block (18 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (19 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (21 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (24 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (5 lines × 2) (evaluation/linear_baseline_eval.py)
- Duplicated block (6 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (7 lines × 2) (evaluation/linear_baseline_eval.py)
- …and 8 more
New (59)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (10–11 lines × 6) (Fine-tune/utils.py)
- Duplicated block (11 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (11 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (111 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (12 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (13 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (13 lines × 3) (Fine-tune/utils.py)
- Duplicated block (13 lines × 3) (evaluation/SOTA_eval.py)
- Duplicated block (13–14 lines × 2) (Fine-tune/SOTA_pipeline.py)
- Duplicated block (14 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (14 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (17 lines × 3) (Fine-tune/utils.py)
- Duplicated block (25 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (30 lines × 2) (Fine-tune/ablation_models.py)
- Duplicated block (31 lines × 2) (Fine-tune/SOTA_model.py)
- Duplicated block (31 lines × 3) (Fine-tune/utils.py)
- Duplicated block (32 lines × 2) (Fine-tune/datasets.py)
- Duplicated block (34 lines × 2) (evaluation/linear_baseline_eval.py)
- …and 39 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
neerajwagh/eeg-self-supervision was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f27be598e6c9c093ed4b8698a3b217ffc9dd76c2 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.