Curate, visualize, annotate, and share your behavioral ephys data using Python
Project description
Curate, visualize, annotate, and share your behavioral ephys data using Python
Documentation | Release Notes | Issue Tracker
neurotic is an app for Windows, macOS, and Linux that allows you to easily review and annotate your electrophysiology data and simultaneously captured video. It is an easy way to load your Neo-compatible data into ephyviewer without doing any programming. Share a single metadata file with your colleagues and they too will quickly be looking at the same datasets!
To use the app, first organize your datasets in a metadata file like this (see Configuring Metadata):
my favorite dataset:
description: This time it actually worked!
data_dir: C:\local_dir_containing_files
remote_data_dir: http://myserver/remote_dir_containing_downloadable_files # optional
data_file: data.axgx
video_file: video.mp4
# etc
video_offset: -3.4 # seconds between start of video and data acq
epoch_encoder_possible_labels:
- label01
- label02
plots:
- channel: I2
ylim: [-30, 30]
- channel: RN
ylim: [-60, 60]
# etc
filters: # used only if fast loading is off (lazy=False)
- channel: Force
lowpass: 50
# etc
amplitude_discriminators: # used only if fast loading is off (lazy=False)
- name: B3 neuron
channel: BN2
units: uV
amplitude: [50, 100]
# etc
another dataset:
# etc
Open your metadata file in neurotic and choose a dataset. If the data and video files aren’t already on your local computer, the app can download them for you, even from a password-protected server. Finally, click launch and the app will use a standard viewer layout to display your data to you using ephyviewer.
(Pictured above is a voracious Aplysia californica in the act of making the researcher very happy.)
The viewers are easy and intuitive to navigate (see User Interface):
Pressing the play button will scroll through your data and video in real time, or at a higher or lower rate if the speed parameter is changed.
The arrow/WASD keys allow you to step through time in variable increments.
Jump to a time by clicking on an event in the event list or a table entry in the epoch encoder.
To show more or less time at once, right-click and drag right or left to contract or expand time.
Scroll the mouse wheel in the trace viewer or video viewer to zoom.
The epoch encoder can be used to block out periods of time during which something interesting is happening for later review or further analysis (saved to a CSV file).
All panels can be hidden, undocked, stacked, or repositioned on the fly.
Electrophysiologists will find this tool useful even if they don’t need the video synchronization feature!
Portability is easy with neurotic! Use relative paths in your metadata file along with a remotely accessible data store such as GIN to make your metadata file fully portable. The same metadata file can be copied to a different computer, and downloaded files will automatically be saved to the right place. Data stores can be password protected and neurotic will prompt you for a user name and password. This makes it easy to share the neurotic experience with your colleagues! 🤪
Installation
neurotic requires Python 3.6 or later. It also needs PyAV, which is most easily installed using conda:
conda install -c conda-forge av
PyAV must be installed manually, but all other dependencies will be installed with neurotic.
Install the latest release version of neurotic from PyPI using
pip install -U neurotic
or install the latest development version from GitHub using
pip install -U git+https://github.com/jpgill86/neurotic.git
Note that if you install the development version, you may also need the latest development version of ephyviewer, which you can get using
pip install -U git+https://github.com/NeuralEnsemble/ephyviewer.git
Getting Started
If you installed neurotic into a conda environment, first activate it:
conda activate <environment name>
Launch the app from the command line:
neurotic
A simple example is provided. Select the “example dataset”, download the associated data (~7 MB), and then click “Launch”. See User Interface for help with navigation.
Disabling “Fast loading” before launch will enable additional features including amplitude-threshold spike detection and signal filtering.
To inspect the metadata file associated with the example or to make changes to it, click “Edit metadata”. See Configuring Metadata for details about the format.
If you prefer Jupyter notebooks, you can launch an example notebook instead for experimenting with neurotic’s API:
neurotic --launch-example-notebook
The command line interface accepts other arguments too:
usage: neurotic [-h] [-V] [--no-lazy] [--thick-traces] [--show-datetime]
[--theme {light,dark,original,printer-friendly}]
[--launch-example-notebook]
[file] [dataset]
neurotic lets you curate, visualize, annotate, and share your behavioral ephys
data.
positional arguments:
file the path to a metadata YAML file (default: an example
file)
dataset the name of a dataset in the metadata file to select
initially (default: the first entry in the metadata
file)
optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
--no-lazy do not use fast loading (default: use fast loading)
--thick-traces enable support for traces with thick lines, which has
a performance cost (default: disable thick line
support)
--show-datetime display the real-world date and time, which may be
inaccurate depending on file type and acquisition
software (default: do not display)
--theme {light,dark,original,printer-friendly}
a color theme for the GUI (default: light)
--launch-example-notebook
launch Jupyter with an example notebook instead of
starting the standalone app (other args will be
ignored)
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.