# Mne

> Open-source Python package for exploring, visualizing, and analyzing human neurophysiological data including EEG, MEG, sEEG, and ECoG.

- Skill: `tondevrel/mne` (Agent Skill)
- Install (CLI): `npx skillmds add tondevrel/mne`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tondevrel/mne/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: BSD-3-Clause
- Author: tondevrel (https://skillmd.com/u/tondevrel)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/tondevrel/mne

---


# MNE - Neurophysiology Analysis

MNE provides sophisticated tools for filtering brain signals, epoching data, and performing source localization (mapping signals back to brain anatomy).

## When to Use

- Processing EEG/MEG recordings from clinical or research studies.
- Analyzing event-related potentials (ERPs).
- Source localization (finding where in the brain signals originate).
- Connectivity analysis between brain regions.
- Preprocessing neurophysiological data for machine learning.

## Core Principles

### Raw → Epochs → Evoked

The standard pipeline: continuous raw data → segmented epochs → averaged evoked responses.

### Sensor Space vs. Source Space

Sensor space: signals at electrodes. Source space: signals reconstructed at brain locations.

### Frequency Analysis

Brain signals are analyzed in frequency bands (delta, theta, alpha, beta, gamma).

## Quick Reference

### Standard Imports

```python
import mne
import numpy as np
```

### Basic Patterns

```python
# 1. Load data
raw = mne.io.read_raw_fif("sample_audvis_raw.fif")
# Or: raw = mne.io.read_raw_edf("eeg.edf")

# 2. Filter and cleaning
raw.filter(l_freq=1, h_freq=40)  # Bandpass filter
raw.notch_filter(freqs=[50, 100]) # Remove power line noise

# 3. Find events and create Epochs
events = mne.find_events(raw)
epochs = mne.Epochs(raw, events, event_id={'stimulus': 1}, tmin=-0.2, tmax=0.5)
epochs.average().plot() # Plot Evoked potential

# 4. Frequency analysis
epochs.compute_psd().plot()
```

## Critical Rules

### ✅ DO

- **Filter before epoching** - Apply filters to continuous data, not epochs.
- **Check data quality** - Use `raw.plot()` to visually inspect for artifacts.
- **Set montage** - Assign electrode positions for proper visualization.
- **Reject bad epochs** - Remove epochs with artifacts before averaging.

### ❌ DON'T

- **Don't filter too aggressively** - Over-filtering removes signal along with noise.
- **Don't ignore reference** - EEG signals are relative. Know your reference electrode.
- **Don't mix sampling rates** - Ensure all channels have the same sampling rate.

## Advanced Patterns

### Source Localization

```python
# Compute forward solution and inverse
fwd = mne.make_forward_solution(raw.info, trans, src, bem)
inv = mne.minimum_norm.make_inverse_operator(raw.info, fwd, cov)
stc = mne.minimum_norm.apply_inverse(evoked, inv)
stc.plot()
```

### Connectivity Analysis

```python
from mne.connectivity import spectral_connectivity

# Compute connectivity between channels
con, freqs, times, n_epochs, n_tapers = spectral_connectivity(
    epochs, method='coh', mode='multitaper')
```

MNE is the gold standard for neurophysiological data analysis, enabling researchers to extract meaningful insights from the complex signals of the human brain.

