https://github.com/hjyshane/hdf5mea
Read and inspect 3Brain-style BRW/BXR v4 files in R.
https://github.com/hjyshane/hdf5mea
brw bxr electrophysiology hdf5 mea r
Last synced: 5 days ago
JSON representation
Read and inspect 3Brain-style BRW/BXR v4 files in R.
- Host: GitHub
- URL: https://github.com/hjyshane/hdf5mea
- Owner: hjyshane
- License: mit
- Created: 2025-09-27T15:16:28.000Z (13 days ago)
- Default Branch: main
- Last Pushed: 2025-09-27T16:27:37.000Z (13 days ago)
- Last Synced: 2025-09-27T18:24:24.981Z (13 days ago)
- Topics: brw, bxr, electrophysiology, hdf5, mea, r
- Homepage:
- Size: 5.86 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hdf5MEA
> R I/O toolkit for multi-well HDF5 MEA files (BRW/BXR v4).
## Overview
hdf5MEA is an R package for reading and processing 3Brain BRW/BXR v4 HDF5 multi-well MEA (Multi-Electrode Array) data files.
It provides reliable loading, partial data extraction, and export capabilities with integration for existing analysis algorithms.## Features
- Reliable I/O: Robust reading of BRW v4 (raw data) and BXR v3 (processed results) files
- Memory Efficient: Streaming and partial loading for large datasets (>1GB)
- Export Support: CSV, Parquet, and HDF5 export formats
- Data Validation: File integrity and format validation
- Integration Ready: Compatible with existing R neuroscience workflows## Quick Start
### Installation
```r
# Install from GitHub
devtools::install_github("hjyshane/hdf5MEA")# Load package
library(hdf5MEA)
```### Reading BXR Files (Raw Results)
```r
library(hdf5MEA)# Open BRW file
file_info <- openBRW("experiment.brw")# Extract data
sampling_rate <- getAttributes(data, attr = "SamplingRate")
data <- get_brw_data("experiment.brw",
start = 0, # seconds
duration = 1) # seconds# Parse binary data
parsed_data <- dataParse(data$binary_chunk)# Convert to time series
timeseries <- brwtimeseriesConvert(
parsed_data,
data$start_frame,
mode = "full" # or "events_only", "threshold"
)# Access channel data
channel <- timeseries[[100]]
plot(channel$time, channel$voltage, type = "l")```
### Sparse Data Modes for BRW Files
```r
# Full data (default)
full_data <- brwtimeseriesConvert(parsed_data,
data$start_frame,
mode = "full")# Events only (non-zero values)
events_data <- brwtimeseriesConvert(parsed_data,
data$start_frame,
mode = "events_only")# Threshold-based filtering
filtered_data <- brwtimeseriesConvert(parsed_data,
data$start_frame,
mode = "threshold",
threshold = 100
```### Reading BXR Files (Processed Results)
```r
# Open BXR file
data <- openBXR(bxr_test)
sampling_rate <- getAttributes(data, attr = "SamplingRate")# Extract spike data
spikes <- bxrSpikedata(data)# Extract spike waveforms
waveforms <- getWaveform(data)# Extract burst data (if available)
bursts <- bxrSpikeBursts(data,
sampling_rate)```
## Version
Current version: 0.1.0