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., |
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: |
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 |
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.
Dryad datasets are hosted at datadryad.org.
They expose a REST API (https://datadryad.org/api/v2/).
You can query a DOI, get file download links, and then download with requests.
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.
Zenodo provides a REST API: https://zenodo.org/api/.
Each record has a DOI and you can list associated files.
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:
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.