Data

File formats

What each window reads and writes. Every intermediate result is a MATLAB .mat file that the next window loads.

Recordings

FormatWindowWhat is needed
LabChart (ADInstruments) .mat or text exportExtract LDFMATLAB export: data (all channels concatenated), datastart, dataend; optional samplerate (1000 Hz assumed when missing), titles, unittext, comments; several blocks with their channel rates and units. Text export (.txt) with its comments. The flow and stimulus channels are found from their names; a file with 8 or more unnamed channels keeps the old convention (stimulus on channel 6, LDF on channel 8).
BIOPAC AcqKnowledge exports (.mat, text)Extract LDFIts MATLAB export (data, isi, labels, units) or its text export. Files saved in AcqKnowledge's own format are not read: save the recording as a MATLAB .mat or a text file in AcqKnowledge first
CED Spike2 (.mat export)Extract LDFOne struct per channel with title, interval, values; event channels with times
EDF, EDF+, BDF (.edf, .bdf)Extract LDF, EEG AnalysisThe channels in their physical units, EDF+ annotations (onset, duration, text), discontinuous EDF+D recordings (records placed at their times) and BioSemi's 24-bit BDF with its Status trigger word. In Extract LDF the annotations can be the stimulus; in EEG Analysis they and the BioSemi trigger codes are the events.
Delimited tables (.txt, .csv, .tsv)Extract LDFPeriSoft, moorVMS-PC, spreadsheets: a header row with the channel names (optionally a units row), a time column in s, ms or clock time; comma, semicolon or tab separated, decimal point or comma. Without a time column the window asks for the sampling rate.
Laser speckle images (.mat, multi-frame TIFF, video)Laser speckleSee Laser speckle files
TDT tank / block folderExtract EphysStreams Whis (stimulus) and xRAW (raw); read with the TDT MATLAB SDK (TDTbin2mat)
Intan RHD2000 (.rhd)[22]Extract EphysFile format 1.0–3.x, traditional single-file layout; amplifier channels at 0.195 µV per bit; digital and ADC inputs as stimulus candidates. The notch-filter setting in the header is shown but not applied.
Open Ephys binary[23]Extract EphysRecording folder (or a folder above it) with structure.oebin and continuous.dat (GUI 0.5 or later); samples × bit_volts; ADC channels and TTL lines as stimulus candidates; AUX channels skipped
NWB 2.x (.nwb)[21]Extract EphysAn ElectricalSeries in /acquisition or /processing (the first one; data × conversion); stimulus TimeSeries and trial / interval tables aligned to the series start
SpikeGLX (.bin + .meta)Extract EphysNeuropixels 1.0 / 2.0 imec (AP or LF) and nidq; sync and digital bits as stimulus candidates
Blackrock NSx (.ns1–.ns6)Extract EphysNSx 2.1–3.0, with the .nev of the same name for the digital input
Neuralynx (folder of .ncs)Extract EphysContinuous channels, with the TTLs of Events.nev
Intan RHS2000 (.rhs)Extract EphysTraditional single-file format; digital and analog inputs and the stimulation current as stimulus candidates
Open Ephys legacy (.continuous folder)Extract Ephys<processor>_CH<n>.continuous files (GUI before 0.6) and all_channels.events
EEGLAB .set, FieldTrip .mat, BrainVision .vhdr, EDF / BDF, XDF, EEG-BIDS, plain .matEEG AnalysisSee EEG files
Electrode positions filesEEG Analysis (Electrode layout…)See Electrode positions
Image stacks (.mat, TIFF, video)ROI AnalysisSee Image stacks
Still images (TIFF, PNG / JPG, .mat) and regions (ImageJ / Fiji, QuPath)Histology / cultureSee Histology

Extract Ephys also recognizes the format from the file's extension, folder contents or first bytes, and the methods text names it. The readers added in versions 0.6.0 and 0.7.0 were checked during development against other software: see Validation.

LDF files

FileWritten byVariables
Cropped LDFExtract LDFstim, LDF, t (s, 0 at the crop start), Fs (Hz), and the names flowName, flowUnits, stimName
LDF trialsLDF Processing; Batch (LDF); Laser speckle (Save trials…)segmentedLDF (trials × samples), segmentedTime (s, 0 = onset), Fs; from Laser speckle also onsetTimes, roiName, units (the trials are the % change of one ROI)

Walkthrough: the LDF demo in each format

The LDF demo recording, written as a LabChart text export, a PeriSoft-style table, a Spike2 export and an EDF+ file by core/demo/demoLDFFormats.m, loaded in Extract LDF.

Laser speckle files

Read by the Laser speckle window (more on the window). Raw speckle images from the camera, speckle contrast images, or the perfusion / flux images a commercial system exports; the type is judged from the images when the file does not say.

FormatWhat is read
.matThe images in frames or stack (H × W × N; any numeric type); optional t (s per frame) or fps, exposureMs, dark (counts), stim (one value per frame, or a faster trace over the same time), roiMasks (H × W × K logical) with roiNames, and kind ('raw speckle', 'contrast' or 'perfusion')
Multi-frame TIFF, video (.avi, .mp4)Raw camera frames or exported perfusion / flux images; the frame interval is read from ImageJ TIFFs, the frame rate from the video (avoid compressed videos for raw speckle)
Commercial imaging systemsTheir own files are not read: export TIFF, video or MATLAB from the system's software and choose Perfusion / flux images
FileWritten byContent
Flow (.csv)Laser speckle (Export results…)Time_s, then per ROI FlowChange_pct_<ROI> and FlowIndex_<ROI>
Results (.mat)Laser speckle (Export results…)results: maps (flowMean, K2Mean, responseMap), t, roiFlow, roiRel, trials, trialMean / trialSD, response, peak, peakTime, onsets, checks, ROI masks and names, settings
Trials (.mat)Laser speckle (Save trials…)The LDF trial format (above)

LFP and MUA files

FileWritten byVariables
LFPExtract Ephys (Save LFP…)lfp_data (channels × samples), lfp_channels, lfp_fs, t_lfp, stim_data, stim_fs, t_stim, and lfp_spacing_um when Electrode spacing (µm) is filled in
MUAExtract Ephys (Save MUA…)mua_data, mua_channels, mua_fs, t_mua, stim_data, stim_fs, t_stim, filterParams
ERP / CSD exportLFP Analysis<file>_ERP.mat: t, y (ERP averaged over channels), erp_avg, erp_std, erp_channels, erp_params, n_epochs, onset_times, lfp_fs, source_file; with a CSD csd, csd_channel_order, csd_spacing_um, csd_method, csd_unit, csd_params, csd_depth_um (and csd_grid / csd_grid_depth_um, csd_kcsd)
Spike sortingMUA Analysis<file>_ch<N>_spikes.mat (Save results…): SpikeResults (spike times, cluster IDs, waveforms), SpikeSortParams, clusterQuality, info (including info.clusterEdits)

EEG files

One file per participant, all with the same channels and trial times. The EEG Analysis window reads what each file says was already done to the data and lists it in its Overview tab; nothing in the file is run. More on the EEG window.

FormatWhat is read
EEGLAB .set (numbers inside, or in a .fdt file next to it)Trials or a continuous recording with events, channel names and positions, reference, and the EEGLAB history (filters, re-reference, ICA, rejected trials, interpolated channels)
FieldTrip .mat (raw or timelock data)Trials with trialinfo, channel names, electrode positions (elec) and the cfg.previous history
BrainVision .vhdr + .vmrk + .eeg (Brain Products Recorder or Analyzer, exports from EEGLAB / MNE)Continuous recordings with their markers (S 1, R 2, …) or segments exported from Analyzer (the condition of each segment is its marker at time 0); 16-bit, 32-bit integer or float data, multiplexed or vectorised; channel units and resolutions; positions; the amplifier filters used when recording
EDF / EDF+ / BDF (.edf, .bdf)Continuous recordings; the channels in V / mV / µV at the common rate are the EEG (the EEG prefix of EDF+ names is dropped); EDF+ annotations and BioSemi Status trigger codes (Code 1, …) are the events; discontinuous EDF+D records placed at their times; the recording filters are noted
XDF (.xdf, LabRecorder / Lab Streaming Layer)Every stream with its time stamps (full or deduced) and clock offsets; the stream of type EEG is the EEG and the marker streams are the events
EEG-BIDS (the sub-…_eeg file of a BIDS dataset)The data file (.edf, .bdf, .vhdr or .set) with its sidecar files: only the EEG channels of channels.tsv (status bad marks channels bad), the events of events.tsv (trial_type or value as the event name), the positions of electrodes.tsv with coordsystem.json (only from there, in one frame), and the reference and line frequency of eeg.json
Plain .matThe numbers (channels × samples, or with trials in any order) and a sampling rate; a form asks what each variable is. Values in volts are converted to µV
FileWritten byVariables
EEG measures (.csv)EEG Analysis (Export results…)Participant, Condition, Value_uV, Latency_ms (peak only), Trials, PeakAtEdge
EEG results (.mat)EEG Analysis (Export results…)results: ERPs of every participant and the grand average, settings, measures, statistics, time–frequency (timeFrequency per participant, grandTimeFrequency)

Electrode positions

Read by Electrode layout… → Positions file… in EEG Analysis (more on electrode layouts). Every format is read into one orientation (x = right ear, y = nose, z = up) with the fiducials (nasion, left and right ear points) kept apart, and matched to the channels by name.

FormatWhat is read
EEGLAB .loc / .locs, .ced, .xyzPolar positions (.loc / .locs), the channel table (.ced) and Cartesian positions (.xyz); EEGLAB's axes (x = nose, y = left ear) are turned
BESA .elp, .sfpSpherical angles (.elp) and Cartesian positions (.sfp)
ASA / FieldTrip / MNE .elcCartesian positions with their unit
EGI .sfpHydroCel nets, in cm
BrainVision .bvefBrain Products electrode files
EasyCap and BioSemi coordinate lists.txt with the columns Site Theta Phi
Tables (.csv, .tsv, .txt)A name column and x / y / z, theta / phi, theta / radius, or ap / ml in mm from bregma (rodents)
BIDS *_electrodes.tsvWith its coordsystem.json, when next to it, for the units and axes

Polhemus digitizer .elp files are refused with a hint: export them as .sfp or .elc. The angles and positions were checked during development against MNE-Python read_custom_montage (Validation).

Image stacks

In

  • .mat with stack or frames (H × W × N grayscale or H × W × 3 × N RGB; otherwise the first variable is used)
  • Optional in the .mat: timeVec or t (one time per frame), roiMask (logical H × W) or roiMasks (H × W × K, optional roiNames), used as the first ROIs
  • Multi-frame TIFF: RGB frames are converted to grayscale (mean of the colour channels). The frame interval, pixel size and channels are read from ImageJ, OME-TIFF and ScanImage files (one channel and the first slice are used); otherwise time = frame index
  • Video (.avi, .mp4): grey frames and the frame rate of the file
  • Files saved by microscope software in its own layout are not read: export the recording as a multi-frame TIFF (or a video) with that software first

Out

  • .csv: Time_s plus one column per measure and ROI (<measure>_<ROI name>, e.g. DFF_Cell_1; measures Intensity, Movement, DFF), or Diameter_px (+ Diameter_standard_px, Replaced when robust); for a kymograph, a matrix (first row = time)
  • .mat: struct results with the series (one row per ROI), roiMasks / roiNames, roiMask (ROI 1), lineStart / lineEnd, motionCorrection and shifts, and the preprocessing and diameter settings

TIFF metadata

One reading of what microscope and slide software writes into TIFFs is used by Histology, ROI Analysis and Laser speckle: ImageJ hyperstacks (channels, slices, frames, frame interval, z spacing), OME-TIFF (DimensionOrder, sizes, physical pixel size with units, time increment, plane times, channel names), ScanImage (saved channels, frame rate, field of view in µm, slices with flyback frames, frame timestamps) and Aperio .svs (MPP, magnification). Multi-channel TIFFs open on one channel and the first slice.

Histology images and regions

FormatWhat is read
TIFF (.tif / .tiff)Every page is a channel (one RGB page: its colours); the pixel size is read from ImageJ (also µm), OME-TIFF, Aperio .svs or the resolution tags when present
PNG, JPG, BMPThe colour channels (a grey image is one channel); type the pixel size
.matimages (H × W × C × N) or image (H × W × C); optional channelNames, imageNames, pixelSizeUm
ImageJ / Fiji regions (.roi, RoiSet.zip)Import regions…: polygon, freehand, traced, rectangle and oval regions with their names (a single .roi or the ROI Manager's RoiSet.zip)
QuPath regions (GeoJSON)Import regions…: annotations exported as GeoJSON (Polygon and MultiPolygon), with their names or classifications

Imported regions are placed in the pixels of image 1; lines and points are skipped. Outputs: Histology and culture.

Result files

FileWritten byContent
Feature table (.csv / .mat)Signal CharacterizationOne row per series: Series, PeakLatency_s, OnsetDelay_s, FWHM_s, AUCpos, AUCneg, RiseTime_s, DecayTime_s, PeakAmp, Integral; the .mat has data and colNames
Group values and reportSignal Characterization (Groups & statistics)Per-animal values (.csv: Group, Subject, <feature>) plus _report.txt, or the struct results (.mat)
FiguresSignal CharacterizationPDF, SVG, EPS; PNG or TIFF at 300 / 600 dpi
Batch summaryBatch Processing<name>_summary.csv, <name>_summary.mat (table summary and struct batch), <name>_log.txt
SessionEvery analysis window<name>.nasession.mat: variable session (app, versions, OS, date, inputs with MD5, settings, results, notes)
ReportEvery analysis window<name>_report.pdf: one A4 page

NWB export

Export NWB… in Extract Ephys writes the processed LFP in volts to /processing/ecephys/LFP, the stimulus to /stimulus/presentation, and electrodes with the source channel names. With matnwb installed it uses the official schema classes. Without it, a built-in minimal writer follows the NWB 2.7 layout but is not validated at run time and does not embed the schema; check such files with nwbinspector or pynwb.validate in Python. Subject metadata is not written.

Walkthrough: the demo recording in each format

The demo tank's first 6 s of channels 3–6, written as Intan, Open Ephys and NWB files by core/demo/demoFormats.m, loaded in Extract Ephys.

Not supported

Several of these are open items in the roadmap.