Python package for parsing Open Ephys data.
Project description
pyopenephys
Python reader for Open Ephys.
Installation
In order to install the pyopenephys package, open a terminal and run:
pip install pyopenephys
If you want to install from sources and get the latest updates, clone the repo and install locally:
git clone https://github.com/CINPLA/pyopenephys
cd pyopenephys
python setup.py install
# use 'python setup.py develop' to install fixed bugs
Basic Usage
Pyopenephys allows the user to load data recorded with Open Ephys. Currently, only the binary (recommended) and openephys (support for this format will be dropped in future releases) are supported.
The first step is creating a File object. It only requires to pass the paht to the recording folder.
import pyopenephys
file = pyopenephys.File("path-to-recording-folder")
The file object contains the different experiments (corresponding to different settings files) and each experiment contains a set of recordings.
# all experiments
experiments = file.experiments
print(len(experiments))
# recordings of first experiment
experiment = experiments[0]
recordings = experiment.recordings
print(len(experiments))
# access first recording
recording = recordings[0]
Experiments store some useful information:
experiment.datetimecontains the starting date and time of the experiment creationexperiment.sig_chainis a dictionary containing the processors and nodes in the signal chainexperiment.settingsis a dictionary with the parsed setting.xml fileexperiment.acquisition_systemcontains the system used to input continuous data (e.g. 'Rhythm FPGA')
Recordings contain the actual data:
recording.durationis the duration of the recording (in seconds)recording.sample_rateis the sampling frequency (in Hz)recording.analog_signalsis list ofAnalogSignalobjects, which in turn have asignal,times(in s), andchannel_idfields.recording.eventsis list ofEventDataobjects, which in turn have atimes(in s),channels,channel_states,full_words,processor,node_id, andmetadatafields.recording.trackingis list ofTrackingDataobjects , which in turn have atimes(in s),x,y,width,height,channels, andmetadatafields. Tracking data are recorded with theTrackingplugin (https://github.com/CINPLA/tracking-plugin) and are save in binary format only (not in openephys format).recording.spiketrainsis list ofSpikeTrainobjects, which in turn have atimes,waveforms,electrode_indices,clustersandmetadatafields. Spiketrains are saved by theSpike Viewersink in the Open Ephys GUI, in combination with either theSpike DetectorandSpike Viewer.
With a few lines of code, the data and relevant information can be easily parsed and accessed:
import pyopenephys
import matplotlib.pylab as plt
file = pyopenephys.File("path-to-recording-folder")
# experiment 1 (0 in Python)
experiment = file.experiments[0]
# recording 1
recording = experiment.recordings[0]
print('Duration: ', recording.duration)
print('Sampling Rate: ', recording.sample_rate)
analog_signals = recording.analog_signals
events_data = recording.events
spiketrains = recording.spiketrains
# tracking_data are accessible only using binary format
tracking_data = recording.tracking
# plot analog signal of channel 4
signals = analog_signals[0]
fig_an, ax_an = plt.subplots()
ax_an.plot(signals.times, signals.signal[3])
# plot raster for spike trains
fig_sp, ax_sp = plt.subplots()
for i_s, sp in enumerate(spiketrains):
ax_sp.plot(sp.times, i_s*np.ones(len(sp.times)), '|')
plt.show()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyopenephys-1.2.0.tar.gz.
File metadata
- Download URL: pyopenephys-1.2.0.tar.gz
- Upload date:
- Size: 30.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
788b4c8dc8c27cfd71a9253b16eda89e3b0451511bc6d9ab467b05dfcbb1f305
|
|
| MD5 |
2c4c7965d1821c01197a645c3d1e1a99
|
|
| BLAKE2b-256 |
131f71c5ace82332c1c16880911f46438bff51df8c20f7a2373a5df6ad760300
|
File details
Details for the file pyopenephys-1.2.0-py3-none-any.whl.
File metadata
- Download URL: pyopenephys-1.2.0-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c0c5c6080441f2dee738c091796dbee7eb83a9a121331b2b49c75e624f0ca8e
|
|
| MD5 |
3874bfab359d644d92f6bc5e4b160043
|
|
| BLAKE2b-256 |
157333e4b0399afe11e1962066509907501fbfe6a6a129009bd161681d2c285d
|