ElectroPhysiology.jl is the core data layer for electrophysiology workflows in Julia. It provides:
- File readers for ABF and two-photon image stacks
- A shared
Experimentcontainer (trial x time x channel) - Stimulus protocol extraction and attachment
- Core trial/time/channel manipulation utilities
- ROI and image utility methods for two-photon data
Install from the Julia REPL:
using Pkg
Pkg.add("ElectroPhysiology")Or in package mode:
pkg> add ElectroPhysiologyusing ElectroPhysiology
exp = readABF("example.abf"; stimulus_name = "IN 7")
println(size(exp)) # (n_trials, n_timepoints, n_channels)
println(getSampleFreq(exp))exp2 = downsample(exp, 1000.0)
exp3 = truncate_data(exp2, 0.0, 1.0)
avg = average_trials(exp3)img = readImage("stack.tif")
deinterleave!(img, n_channels = 2)
pixel_splits_roi!(img, 16)
roi = getROIarr(img, 1)This package is part of a larger ecosystem of physiology-related packages:
A package for advanced analysis of physiological data. See documentation here
A package for creating publication-quality plots of physiological data. See documentation here
- Package docs: mattar13.github.io/ElectroPhysiology.jl/dev
- API reference (source-aligned):
docs/src/API.md
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
To build the documentation locally:
cd("docs")
using Pkg
Pkg.activate(".")
Pkg.instantiate()
include("make.jl")This project is licensed under the MIT License - see the LICENSE file for details.