skills/mne-python-guide/SKILL.md
Domain-validated pipeline guidance for EEG/MEG data analysis using MNE-Python: data loading, preprocessing (filtering, ICA, re-referencing), epoching, ERP/ERF computation, time-frequency decomposition, source localization, decoding/MVPA, statistical testing, simulation, and visualization. Use this skill whenever the user works with EEG/MEG/sEEG/ECoG/NIRS/eye-tracking data in Python, mentions MNE, or needs neurophysiological analysis guidance.
npx skillsauth add haoxuanlithuai/awesome_cognitive_and_neuroscience_skills mne-python-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill encodes expert methodological knowledge for analyzing neurophysiological data (EEG, MEG, sEEG, ECoG, NIRS, eye-tracking) using MNE-Python (Gramfort et al., 2013; Gramfort et al., 2014). It covers the complete analysis pipeline with recommended parameters, code examples, and common pitfall warnings.
Activate when the user:
This skill was generated by AI from MNE-Python source code and academic literature. All parameters, thresholds, and citations require independent verification. If you find errors, please open an issue at https://github.com/NeuroAIHub/awesome_cognitive_and_neuroscience_skills/issues.
This skill uses layered references. Read the relevant file when the user's question goes deeper than the overview below:
| Topic | Reference File | When to Read |
|-------|---------------|--------------|
| Data I/O (30+ formats) | references/io_formats.md | User asks about loading specific file formats, creating objects from arrays, or exporting |
| Preprocessing | references/preprocessing.md | User needs ICA details, Maxwell filtering, artifact annotation, bad channel detection, CSD, fNIRS/iEEG-specific preprocessing |
| Time-Frequency | references/time_frequency.md | User asks about TFR methods, PSD, CSD, baseline modes, array-level functions |
| Source Localization | references/source_localization.md | User needs forward modeling, inverse methods, beamformers, dipole fitting details |
| Decoding & MVPA | references/decoding.md | User asks about classification, temporal generalization, CSP, SPoC, receptive fields |
| Statistics | references/statistics.md | User needs cluster permutation, TFCE, ANOVA, adjacency matrices, correction methods |
| Visualization | references/visualization.md | User asks about plotting functions, publication figures, 3D brain rendering |
| Simulation | references/simulation.md | User wants to create synthetic data, simulate sources, add artifacts |
Raw → Mark bad channels → Filter → ICA → Re-reference → Resample
→ Epochs → Evoked (ERP/ERF)
→ Time-Frequency (TFR/PSD)
→ Source Localization (MNE/dSPM/LCMV)
→ Decoding (MVPA)
→ Statistics (cluster permutation)
| Object | Description | Create from |
|--------|-------------|-------------|
| Raw | Continuous data | mne.io.read_raw_*() or mne.io.RawArray(data, info) |
| Epochs | Event-segmented data | mne.Epochs(raw, events, ...) or mne.EpochsArray(data, info) |
| Evoked | Averaged epochs | epochs.average() or mne.EvokedArray(data, info) |
| SourceEstimate | Brain-mapped activity | apply_inverse(evoked, inv, ...) |
| Spectrum | Power spectrum | raw.compute_psd() or epochs.compute_psd() |
| AverageTFR | Time-frequency map | epochs.compute_tfr(method, freqs, ...) |
All objects carry an info attribute (mne.Info) with channel metadata that propagates through the pipeline.
import mne
import numpy as np
# 1. Load
raw = mne.io.read_raw_fif('data_raw.fif', preload=True)
# or: raw = mne.io.read_raw_edf('data.edf', preload=True)
# 2. Preprocess
raw.filter(l_freq=0.1, h_freq=40.) # bandpass
raw.notch_filter(freqs=[50, 100]) # line noise
ica = mne.preprocessing.ICA(n_components=20, random_state=97, max_iter=800)
ica.fit(raw.copy().filter(l_freq=1., h_freq=None)) # fit on 1 Hz highpass copy
eog_idx, _ = ica.find_bads_eog(raw)
ica.exclude = eog_idx
ica.apply(raw)
raw.set_eeg_reference('average')
# 3. Epoch
events, event_id = mne.events_from_annotations(raw)
epochs = mne.Epochs(raw, events, event_id, tmin=-0.2, tmax=0.5,
baseline=(None, 0), preload=True,
reject=dict(eeg=150e-6))
# 4. ERP
evoked = epochs['target'].average()
evoked.plot_joint()
# 5. Time-frequency
freqs = np.arange(4, 30, 2)
power = epochs.compute_tfr(method="morlet", freqs=freqs, n_cycles=freqs / 2.)
power.plot()
# 6. Source localization (requires anatomy)
noise_cov = mne.compute_covariance(epochs, tmax=0., method='auto')
fwd = mne.read_forward_solution('sample-fwd.fif')
inv = mne.minimum_norm.make_inverse_operator(epochs.info, fwd, noise_cov)
stc = mne.minimum_norm.apply_inverse(evoked, inv, lambda2=1./9., method='dSPM')
# 7. Decoding
from mne.decoding import SlidingEstimator, cross_val_multiscore
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
X = epochs.get_data(copy=True)
y = epochs.events[:, -1]
clf = make_pipeline(StandardScaler(), LogisticRegression(solver='liblinear'))
slider = SlidingEstimator(clf, scoring='roc_auc')
scores = cross_val_multiscore(slider, X, y, cv=5)
# 8. Statistics
from mne.stats import spatio_temporal_cluster_test
adjacency, _ = mne.channels.find_ch_adjacency(epochs.info, 'eeg')
T_obs, clusters, p_values, H0 = spatio_temporal_cluster_test(
[X_cond1, X_cond2], adjacency=adjacency, n_permutations=1000)
epochs.plot_drop_log()preload=True — Many operations require data in memoryepochs.compute_tfr() / raw.compute_psd() instead of deprecated tfr_morlet() / psd_welch()tools
Convert a GitHub repository or local codebase into a well-structured Claude Code skill with progressive disclosure. Use this skill whenever the user provides a GitHub URL or local repo path and asks to turn it into a skill, create a skill from a repo, or convert a library/tool/framework into reusable skill documentation. Also trigger when users say things like 'make a skill from this repo', 'turn this codebase into a skill', or 'I want a skill for [library name]'.
development
Domain-validated guidance for cortical surface visualization and brain surface rendering of fMRI data using pycortex: data types (Volume, Vertex, Dataset), 2D cortical flatmaps, 3D WebGL brain viewers, volume-to-surface mapping, FreeSurfer/fMRIPrep integration, ROI management, and surface analysis. Use this skill whenever the user mentions pycortex, `import cortex`, cortical surfaces, brain flatmaps, WebGL brain viewers, cortical surface mapping, or wants to visualize neuroimaging data on the cortex, even if they don't explicitly name pycortex.
development
Step-by-step guidance for contributing a new skill to the NeuroAIHub/awesome_cognitive_and_neuroscience_skills repository via GitHub Pull Request, including SKILL.md format requirements, quality rules, and PR checklist
testing
Specifies display parameters, set sizes, target-distractor similarity, and randomization constraints for visual search experiments