2. Electrophysiology data#

Accessing electrophysiology records can be difficult, and working with them is often cumbersome, as they typically require specific formats to be quickly accessible and usable. To make data more widely available, it is crucial to develop not only open-access databases but also standardized file formats. Historically, data formats were tied to the devices that generated them—often proprietary and incompatible with other systems. This fragmentation soon became a barrier to scientific progress. In what follows, we first introduce common file formats, then present several relevant databases, and finally show how to work with them in Python.

2.1. Types of electrophysiology recordings#

Electrophysiology covers a wide range of recording techniques, each suited to different biological questions.
Here are the main categories:

  • Intracellular Recordings - Sharp electrode recordings: measure the membrane potential inside a single cell • Whole-cell patch clamp: provides detailed access to ionic currents, membrane potential, and synaptic inputs • Single-channel recordings: resolve the activity of individual ion channels.

  • Extracellular Recordings - Single-unit recordings: detect action potentials (“spikes”) from individual neurons using fine electrodes • Multi-unit recordings: capture spikes from small groups of neurons near the electrode tip • Multi-electrode arrays (MEA): record from dozens to thousands of electrodes simultaneously across a neural population.

  • Field Potential Recordings - Local field potentials (LFPs): measure summed synaptic activity and slower fluctuations in a local region • ECoG (electrocorticography): records field potentials directly from the cortical surface.

  • Non-Invasive Recordings - EEG (electroencephalography): scalp recordings of brain activity with high temporal resolution • MEG (magnetoencephalography): detects magnetic fields generated by neuronal currents.

  • Other Specialized Methods - EMG (electromyography): records muscle activity • ERG (electroretinography): records retinal responses to light • Patch-clamp in slices/in vivo: advanced combinations allowing intracellular access in complex preparations.

2.2. Common electrophysiology data formats#

Format

Full Name

Typical Use

Openness

Notes

ABF

Axon Binary File (Molecular Devices)

Patch-clamp and intracellular recordings (pCLAMP, Clampex)

Proprietary

Very common in cellular electrophysiology; ABF1 (older), ABF2 (newer).

IBW

Igor Binary Wave (Igor Pro)

Waveform storage and analysis

Proprietary

Widely used in physiology labs with Igor Pro; supports multidimensional data.

HEKA

Patchmaster (DAT/PGF/PUF)

Patch-clamp recordings (HEKA amplifiers)

Proprietary

Popular in Europe; rich metadata but tied to vendor software.

CED SON

Cambridge Electronic Design (Spike2)

Extracellular recordings, spike trains

Proprietary

Common for multi-electrode recordings and stimulus protocols.

WCP

WinWCP File (Strathclyde)

Patch-clamp and voltage-clamp recordings

Semi-open

Free Windows-only software; popular in teaching and some labs; less standardized than ABF/HEKA.

NWB

Neurodata Without Borders

Sharing neurophysiology data (spikes, LFPs, imaging)

Open standard

Community-driven, based on HDF5; widely promoted for reproducibility and FAIR data.

BIDS-iEEG

Brain Imaging Data Structure (intracranial EEG extension)

EEG, ECoG, iEEG

Open standard

Growing adoption; integrates with neuroimaging standards.

MAT

MATLAB File (.mat)

Custom lab storage/analysis

Semi-open

Extremely common, but not standardized for sharing.

HDF5

Hierarchical Data Format 5

Large, structured datasets

Open

Flexible backbone format; NWB is built on HDF5.

EDF/BDF

European Data Format / BioSemi Data Format

EEG, PSG, clinical neurophysiology

Open

Standard in sleep studies and EEG; supported by many clinical systems.

CSV/TXT

Comma-/Tab-separated Values

Generic export of time series or metadata

Open

Universally readable, but loses rich metadata and structure.

WAV

Waveform Audio File (Windows)

Audio-like exports of signals/spike trains

Open

Native Windows format; sometimes used for stimulus or simplified data export.

2.3. Most used electrophysiology data formats#

  • ABF (Axon Binary File) - ABF is a proprietary binary format developed by Molecular Devices. It is widely used for patch-clamp and intracellular recordings, especially in cellular electrophysiology research. ABF files store both the raw electrophysiological signals and metadata, such as sampling rate, stimulus protocols, and experimental parameters. Versions include ABF1 (older) and ABF2 (newer).

  • NWB (Neurodata Without Borders) - NWB is an open, community-driven standard designed for sharing and long-term storage of neurophysiology data. It is based on HDF5 and supports raw signals, metadata, experimental design, stimuli, and derived data. NWB promotes reproducibility and FAIR principles, and is increasingly adopted by labs worldwide.

  • IBW (Igor Binary Wave) - IBW is the binary wave format used by Igor Pro software. It is popular for waveform storage and analysis, particularly in physiology labs. IBW supports multi-dimensional data, annotations, and is often part of custom analysis pipelines. Despite being proprietary, it remains widely used because of historical and workflow reasons.

Summary table#

Format

Developer

Proprietary / Open

Free to use?

Main Use

Adoption

ABF (Axon Binary File)

Originally Axon Instruments → now Molecular Devices

Proprietary (specs partially available, but tied to pCLAMP)

Reading libraries are free (e.g., pyABF), but creating/using ABF files requires pCLAMP, which is commercial

Electrophysiology (patch-clamp, voltage/current recordings)

Widely used in labs with Molecular Devices equipment

NWB (Neurodata Without Borders)

Community-driven (Allen Institute, HHMI Janelia, Berkeley Lab, INCF, etc.)

Fully open-source and community standard

Free (developed and maintained openly on GitHub)

Standardized storage/sharing of neuroscience data (e-phys, imaging, behavioral, metadata)

Growing adoption in large-scale projects, especially for data sharing and FAIR science

IBW (Igor Binary Wave)

WaveMetrics, Inc.

Proprietary (closed format, documentation partly available)

Requires Igor Pro (commercial software). Some third-party libraries exist to read IBW for free

General scientific data analysis and visualization

Popular in biophysics, neuroscience, spectroscopy

Companies and formats#

Company

HQ

Main Products (Neuronal EP)

Native Data Formats

Conversion / Notes

Molecular Devices (Axon Instruments)

USA

Patch-clamp amplifiers (Axopatch, MultiClamp), digitizers (Digidata), pCLAMP software

ABF (Axon Binary File): ABF1 (legacy), ABF2 (current)

Widely used in patch-clamp. Readable with AxoGraph, Clampfit. Python: pyABF, Neo. Export to NWB possible.

HEKA Elektronik (Harvard Bioscience)

Germany

Patch-clamp amplifiers (EPC series), Patchmaster software

.dat / .pgf / .pul

Proprietary binary; support in Neo. Conversion pipelines exist for NWB/NIX.

Multi Channel Systems (MCS, Harvard Bioscience)

Germany

Multi-electrode arrays (MEAs), in vitro & in vivo systems

.mcd (proprietary), .h5 (newer systems)

SDK/API for reading .mcd. .h5 is HDF5 and integrates more easily. Neo + NWB supported.

Blackrock Neurotech

USA

Utah arrays, high-density neural recording for BCI

NSx (continuous), NEV (spike/event)

Openly documented. MATLAB, Python APIs. Supported in Neo. Standard in BCI research.

Neuralynx

USA

In vivo extracellular recording systems

NCS, NSE, NEV, etc.

ASCII headers + binary. Readers available (MATLAB, Python). Supported in Neo, can export to NWB.

Ripple Neuro

USA

High-channel neural recording & stimulation systems (BCI, clinical)

Similar to Blackrock: NSx / NEV

MATLAB/Python SDK. Actively supports NWB.

Tucker-Davis Technologies (TDT)

USA

High-throughput recording, optogenetics, stimulation

.tsq / .tev / .sev

Proprietary binary. TDT SDK + Neo support. NWB export possible.

Intan Technologies

USA

Low-power amplifier chips & headstages (RHD, RHS series)

.rhd / .rhs

Binary with header metadata. Intan provides readers (C++, MATLAB, Python). Neo + NWB supported. Widely used in open-source rigs.

ADInstruments

New Zealand

PowerLab DAQ, LabChart software, teaching/research physiology tools

.adicht (LabChart files)

Proprietary but supported by LabChart & APIs. Neo support available. Some pipelines to NWB.

Kerr Scientific Instruments

New Zealand

In vitro slice & tissue electrophysiology rigs

Exports via DAQ hardware (often LabChart, NI, etc.)

Less standardized — depends on DAQ choice (often integrates with ADInstruments).

2.4. Databases#

By the way, data really matter! You can look at the Wikipedia list of neuroscience databases. We will consider four of them.

NLM Dataset Catalog#

NLM Dataset Catalog is a catalog of biomedical datasets from various repositories, NIH National Library of Medecine (NIH/NLM).

  • The NLM Dataset Catalog is essentially a registry pointing to datasets, not a direct host.

  • You’ll usually get redirected to the actual host (sometimes PhysioNet, OpenNeuro, or institutional repositories).

  • If the dataset is downloadable via URL, you can use requests or wget in Python to fetch the .abf files, then open with pyabf.

  • No standard Python API for the catalog itself, but you can scrape metadata via their JSON endpoints (if provided per dataset).

Dryad#

Dryad (DAta Archive for Neuroscience DIscovery) is an open data publishing platform and a community committed to the open availability and routine re-use of all research data.

Examples of data sets:

  • a dataset presenting electrophysiological properties from whole-cell patch clamped nucleus accumbens core medium spiny neurons from male rats and female rats recorded in different estrous cycle phases.

  • a dataset containing whole-cell electrophysiological recordings (patch-clamp recordings) from three cell types in mice.

Example of usage:

import requests
import pyabf

doi = "10.5061/dryad.xxxxx"  # replace with dataset DOI
r = requests.get(f"https://datadryad.org/api/v2/datasets/{doi}")
files = r.json()["included"]
for f in files:
    if f["attributes"]["filename"].endswith(".abf"):
        url = f["attributes"]["downloadUrl"]
        abf_data = requests.get(url)
        with open(f["attributes"]["filename"], "wb") as fh:
            fh.write(abf_data.content)
        abf = pyabf.ABF(f["attributes"]["filename"])

Dandi Archive#

Dandi Archive (Distributed Archive for Neuroscience Data Integration) is the BRAIN Initiative archive for publishing and sharing neurophysiology data including electrophysiology, optophysiology, and behavioral time-series, and images from immunostaining experiments.

  • DANDI hosts primarily neurophysiology data in NWB (Neurodata Without Borders) format (link, not ABF.

  • They have a Python client: dandi (link).

An example of data set:

  • Patch-seq recordings from mouse visual cortex. Whole-cell Patch-seq recordings from neurons of the mouse visual cortex from the Allen Institute for Brain Science, released in June 2020. The majority of cells in this dataset are GABAergic interneurons, but there are also a small number of glutamatergic neurons from layer 2/3 of the mouse visual cortex.

Example of usage:

pip install dandi
dandi download DANDI:000003  # replace with dataset identifier

If the dataset includes .abf files (rare, usually NWB), you can load them directly with pyabf. More commonly, you’d work with NWB using pynwb, not pyabf.

Zenodo#

zenodo.org (named after Zenodotus, the first librarian of Alexandria) is an open-access research data repository built and hosted by CERN (the European Organization for Nuclear Research), with support from the European Commission.

Example of data sets:

  • a data set of CA1 pyramidal cell recordings using an intact whole hippocampus preparation, including recordings of rebound firing (V2).

Example:

import requests
import pyabf

record_id = "1234567"  # Zenodo record ID
r = requests.get(f"https://zenodo.org/api/records/{record_id}")
for f in r.json()["files"]:
    if f["key"].endswith(".abf"):
        url = f["links"]["self"]
        abf_data = requests.get(url)
        with open(f["key"], "wb") as fh:
            fh.write(abf_data.content)
        abf = pyabf.ABF(f["key"])

2.5. Gateways with Python#

Formats commonly used in electrophysiology (ABF, NBW, IBW) are not always straightforward to handle. Fortunately, several Python libraries act as gateways to read and convert:

  • PyNWB is a Python package for working with NWB files (doc github).

  • pyabf is a Python library for reading electrophysiology data from Axon Binary Format (ABF) files (github), see also abf explorer, a simple graphical application for quickly viewing axon binary format (ABF).

  • IBW (Igor Binary Wave) is a Python parser for IBW (.ibw) and Packed Experiment (.pxp) files written by WaveMetrics’ IGOR Pro software (see igor2). IBW is a bit less active in Python.

As we already had a quick peep at above, several Python tools are available for working with records from these databases, see Chapter Exploring records with pyabf for more details. Also in Chapter Exploring a database with csv we present some tools and ideas to explore a database.