--- library_name: braindecode license: mit base_model: braindecode/corteg-small-pretrained tags: - braindecode - CORTEG - ieeg - ecog - finger-flexion - pytorch_model_hub_mixin datasets: - nm000245 - nm000172 - nm000139 - nm000135 - Kaya2018 - Won2022 - nm000129 - nm000339 - SparrKULee - SEED-V - Stanford-FingerFlex --- # CORTEG, Stanford finger flexion (pooled) The released CORTEG model of [Yang et al. (2026)](https://arxiv.org/abs/2605.10337), ST-EEGFormer small adapted to ECoG and trained on the finger-flexion recordings of the 9 Stanford patients pooled (Table 1, "CORTEG (pooled)", Pearson r 0.554), 25.5M parameters, converted to [`braindecode.models.CORTEG`](https://braindecode.org/stable/generated/braindecode.models.CORTEG.html). It decodes the flexion of the five fingers (thumb, index, middle, ring, pinky) from 1 s of ECoG. Sources: - the adapter, `checkpoints/corteg_stanford_pooled.pt` of [LiuyinYang1101/CORTEG](https://github.com/LiuyinYang1101/CORTEG/tree/caafb78fbebdd9448814f96d7e61083a3eb62663), sha256 `77d63a214e0e0f2c790e90878a0ef6b525f6e24e1453fcd94e118c63ff7e8396`: the spatial adapter, LoRA factors (r=4, alpha=16) on blocks 4-7, the high-gamma patch embedding, those blocks' LayerNorms and the readout, 297,236 parameters; - the frozen backbone it was trained on, the ST-EEGFormer small release ([`checkpoint-300.pth`](https://github.com/LiuyinYang1101/STEEGFormer/releases/download/ST-EEGFormer-small/checkpoint-300.pth), sha256 `98d2848abdaea7a143d399c07f67f8782e07dd66e7c309ddb058c7158a8a8b02`), here through [braindecode/corteg-small-pretrained](https://huggingface.co/braindecode/corteg-small-pretrained). Conversion folds the LoRA factors into the fused qkv, proj, fc1 and fc2 weights (scale alpha/r = 4), so the model is a plain `CORTEG`; `convert_corteg_checkpoint.py` in this repository reproduces it. Outputs match the authors' `load_corteg` on the two release files to 1.5e-06 in float32 on CPU, for montages of 8 and 46 contacts. ## Training data The data that shaped these weights. The ids are the `datasets:` field of this card, which braindecode reads into `model.card_data.datasets` when you call `from_pretrained` (MOABB class names for MOABB datasets, OpenNeuro / NEMAR accessions, Hub ids otherwise). `nm`/`on` ids are datasets on [NEMAR](https://nemar.org) (`on` = NEMAR's copy of the OpenNeuro dataset with the same number). Rows marked `private:` are data the authors did not release; they are not in `datasets:`. | `datasets:` id | Dataset | Stage | Modality | |---|---|---|---| | [`nm000245`](https://nemar.org/dataset/nm000245) | [EEG-MI-BCI: Cho et al. 2017, EEG datasets for motor imagery BCI (52 subjects, 64 ch, left/right-hand MI; GigaDB 100295); MOABB Cho2017](http://gigadb.org/dataset/100295) | pretraining | EEG | | [`nm000172`](https://nemar.org/dataset/nm000172) | [High Gamma Dataset (HGD), Schirrmeister et al. 2017 (20 subjects, 128 ch, executed movements); MOABB Schirrmeister2017](https://gin.g-node.org/robintibor/high-gamma-dataset) | pretraining | EEG | | [`nm000139`](https://nemar.org/dataset/nm000139) | [BCI Competition IV dataset 2a (9 subjects, 22 ch, 4-class MI); MOABB BNCI2014_001](https://www.bbci.de/competition/iv/#dataset2a) | pretraining | EEG | | [`nm000135`](https://nemar.org/dataset/nm000135) | [BCI Competition IV dataset 2b (9 subjects, 3 ch, 2-class MI); MOABB BNCI2014_004](https://www.bbci.de/competition/iv/#dataset2b) | pretraining | EEG | | `Kaya2018` | [Kaya et al. 2018, A large electroencephalographic motor imagery dataset for EEG BCIs (Sci. Data 5:180211; Figshare collection 3917698). Paper uses two subsets, 'Large-MI-Classic' and 'Large-MI-5F'. MOABB Kaya2018 (moabb>=1.7.2) loads only the 17 CLA files, not the 5F (or HaLT) files](https://figshare.com/collections/A_large_electroencephalographic_motor_imagery_dataset_for_electroencephalographic_brain_computer_interfaces/3917698) (NEMAR [nm000137](https://nemar.org/dataset/nm000137) holds a subset of it) | pretraining | EEG | | `Won2022` | [Won et al. 2022, EEG dataset for RSVP and P300 speller BCIs (Sci. Data 9:388; 55 participants P300 speller, 50 RSVP; Figshare collection 5769449); not in MOABB](https://doi.org/10.6084/m9.figshare.c.5769449.v1) | pretraining | EEG | | [`nm000129`](https://nemar.org/dataset/nm000129) | [BETA: large benchmark database toward SSVEP-BCI application, Liu et al. 2020 (70 subjects, 40 targets); MOABB Liu2020BETA](https://doi.org/10.3389/fnins.2020.00627) | pretraining | EEG | | [`nm000339`](https://nemar.org/dataset/nm000339) | [Stieger et al. 2021, continuous sensorimotor-rhythm BCI learning in a large population (62 subjects, ~600 h, 62 ch; Figshare 13123148); MOABB Stieger2021](https://doi.org/10.6084/m9.figshare.13123148.v1) | pretraining | EEG | | `SparrKULee` | [SparrKULee: speech-evoked auditory response repository of KU Leuven (Bollens et al. 2023; 85 participants, 64 ch BioSemi); called 'KUL Auditory Decoding Dataset' in the paper](https://doi.org/10.48804/K3VSND) (NEMAR [nm000238](https://nemar.org/dataset/nm000238) holds a subset of it) | pretraining | EEG | | `SEED-V` | [SEED-V emotion EEG dataset (Liu et al. 2022; 16 subjects x 3 sessions, 62 ch, five emotions)](https://bcmi.sjtu.edu.cn/home/seed/seed-v.html) | pretraining | EEG | | `private:KU-Leuven-in-house-EEG` | In-house EEG recorded in the authors' lab (KU Leuven Laboratory for Neuro- & Psychophysiology), multiple paradigms (e.g. MI and SSVEP) and diverse montages; not released, not itemised | pretraining | EEG | | `Stanford-FingerFlex` | [Stanford ECoG Library finger-flexion recordings](https://exhibits.stanford.edu/data/catalog/zk881ps0522) (9 patients; NEMAR [nm000352](https://nemar.org/dataset/nm000352) is a broader multi-task copy) | fine-tuning | ECoG | - MAE self-supervised pre-training, 300 epochs (release note). MAE pre-training corpus of App. E.2 (pp. 25-26), '11 public datasets' + an in-house set, as the paper lists them: 1) EEG-MI-BCI (Cho et al., 2017) -> Cho2017; 2) HGD (Schirrmeister et al., 2017) -> Schirrmeister2017; 3) BCI-Comp-IV2a (Tangermann et al., 2012) -> BNCI2014_001 (official training session only; the official test session was the validation split, E.4 p.26); 4) BCI-Comp-IV2b (Tangermann et al., 2012) -> BNCI2014_004; 5) Large-MI-Classic and 6) Large-MI-5F (both Kaya et al., 2018) -> Kaya2018 (one dataset, two paradigm subsets); 7) P300 (Won et al., 2022: P300 speller + RSVP) -> Won2022; 8) SSVEP (Liu et al., 2020 = BETA) -> Liu2020BETA; 9) Online MI BCI Classification (Stieger et al., 2021) -> Stieger2021; 10) KUL Auditory Decoding Dataset (Bollens et al., 2023 = SparrKULee) -> SparrKULee; 11) SEED-V (Liu et al., 2022) -> SEED-V; plus in-house EEG recorded in the authors' lab (multiple paradigms, e.g. MI and SSVEP) -> private:KU-Leuven-in-house-EEG. Preprocessing: notch, 0.1-64 Hz band-pass, 128 Hz, per-channel z-score (E.3). Windows: 6 s / 0.5 s hop for continuous sets, 6 s / 2.5 s hop for the three large MI sets, 2 s / 0.125 s hop for SSVEP (E.4). Validation: BCI-Comp-IV2a official test set; 20% held out for every other set; >8M overlapping segments overall. - Sources: Yang et al., ICLR 2026, https://openreview.net/forum?id=5Xwm8e6vbh; PDF via Wayback snapshot http://web.archive.org/web/20260609032700/https://openreview.net/pdf?id=5Xwm8e6vbh App. E.2, p.25; https://github.com/LiuyinYang1101/STEEGFormer/releases/tag/ST-EEGFormer-small (release body). ### CORTEG fine-tuning stage The inheritance chain is `corteg-stanford-pooled` → `corteg-small-pretrained` → `STEEGFormer-small`. In addition to the inherited MAE corpus, the released adapter was trained on the training split of all nine Stanford finger-flexion patients (first 400 s per recording; two thirds for recordings shorter than 600 s). The readout remained at its random initialization, as documented in the authors’ release manifest; the adapter learned around it. Source: [CORTEG release code and manifest](https://github.com/LiuyinYang1101/CORTEG/tree/caafb78fbebdd9448814f96d7e61083a3eb62663), `checkpoints/corteg_stanford_pooled.json`. ## Usage The model reads two streams of the same 1 s window, as the paper's Stanford pipeline (`data/stanford_preprocessing/` of the official repository): after a notch at 60, 120 and 180 Hz and a common average reference, `x` is the signal resampled to 128 Hz and `x_hi` its 70-200 Hz Hilbert envelope at 200 Hz, each z-scored per channel with the statistics of the training windows. Electrode positions are in metres, in `chs_info` or `pos`. ```python import torch from braindecode.models import CORTEG model = CORTEG.from_pretrained( "braindecode/corteg-stanford-pooled", chs_info=raw.info["chs"] ).eval() flexion = model(x, x_hi) # x: (batch, n_chans, 128), x_hi: (batch, n_chans, 200) ``` The output, `(batch, 5)`, is the flexion of each finger, z-scored per finger with the training statistics of the patient, at the time 40 ms before the window's end. The saved geometry is 8 channels; the model reads any montage, so pass your own `chs_info` (or `n_chans` and `pos` at each call) when loading. ## Limitations The readout is at its random initialization, as released: the paper run built it after the optimizer, so it was never trained, and the adapter learned around it (see the release manifest, `checkpoints/corteg_stanford_pooled.json`). The model was trained on the training split of the 9 Stanford patients (the first 400 s of each recording, two thirds of one under 600 s); other patients or tasks need fine-tuning, as in the paper's leave-one-subject-out protocol. The check above covers float32 CPU outputs, not decoding accuracy, GPU kernels or mixed precision; the authors report that this checkpoint reproduces the cohort mean of 0.554 (manifest, `paper.verified`). ## Citation ```bibtex @inproceedings{yang2026corteg, title = {{CORTEG}: Foundation Models Enable Cross-Modality Representation Transfer from Scalp to Intracranial Brain Recordings}, author = {Yang, Liuyin and Sun, Qiang and Van Dyck, Bob and Calvo Merino, Eva and Van Hulle, Marc M.}, booktitle = {Advances in Neural Information Processing Systems (NeurIPS)}, year = {2026} } ``` ## License The adapter and the ST-EEGFormer backbone are both released by Liuyin Yang under the MIT licence (`LICENSE`). Braindecode's code is BSD-3-Clause. ## Cite Braindecode If you use this braindecode port in scientific work, cite the software on Zenodo, [doi:10.5281/zenodo.17699192](https://doi.org/10.5281/zenodo.17699192), and the original model and datasets cited above. ```bibtex @software{braindecode, author = {Aristimunha, Bruno and Guetschel, Pierre and Wimpff, Martin and Gemein, Lukas and Rommel, Cedric and Banville, Hubert and Sliwowski, Maciej and Wilson, Daniel and Brandt, Simon and Gnassounou, Théo and Paillard, Joseph and {Junqueira Lopes}, Bruna and Sedlar, Sara and Moreau, Thomas and Chevallier, Sylvain and Gramfort, Alexandre and Schirrmeister, Robin Tibor}, title = {Braindecode: toolbox for decoding raw electrophysiological brain data with deep learning models}, url = {https://github.com/braindecode/braindecode}, doi = {10.5281/zenodo.17699192}, publisher = {Zenodo}, license = {BSD-3-Clause}, } ```