Skip to main content

Convert data from proprietary formats to NWB format.

Project description

PyPI version Full Tests Auto-release codecov documentation License

NeuroConv

NeuroConv is a package for creating NWB files by converting and combining neural data in proprietary formats and adding essential metadata.

Features:

  • Command line interface
  • Python API
  • Leverages SpikeExtractor to support conversion from a number or proprietary formats.

Installation

To install the latest stable release of neuroconv though PyPI, type:

pip install neuroconv

For more flexibility we recommend installing the latest version directly from GitHub. The following commands create an environment with all the required dependencies and the latest updates:

git clone https://github.com/catalystneuro/neuroconv
cd neuroconv
conda env create -f make_environment.yml
conda activate neuroconv_environment

Note that this will install the package in editable mode.

Finally, if you prefer to avoid conda altogether, the following commands provide a clean installation within the current environment:

pip install git+https://github.com/catalystneuro/neuroconv.git@master

Dependencies

NeuroConv relies heavily on SpikeInterface and SpikeExtractors for electrophysiology and on ROIExtractors for optophysiology data.

Catalogue

v0.9.3

Buzsáki Lab: buzsaki-lab-to-nwb

This project is an ongoing effort for the Ripple U19 conversion of extracellular electrophysiology data to NWB format, including final publishing of each dataset on DANDI. Currently spans 7 major publications and over 14 TB of data on the DANDI Archive. Most of the data consists of raw recordings, LFP, spike sorted units, and behavior with can consist of a mix of mental state tracking, position tracking through mazes, and trial stimulus events.

Shenoy lab: shenoy-lab-to-nwb:

The Shenoy lab is one of the pioneers in developing BCIs for people with paralysis. They are part of the BrainGate team and were the winners of the 2019 BCI award. They use extracellular recordings from Utah arrays and Neuropixels in primates.

v0.9.2

Brody Lab: brody-lab-to-nwb

The Brody lab has a long history with extracellular electrophysiology experiements spanning multiple acquisition systems. This project served two purposes - to allow the conversion of older data from Neuralynx and SpikeGadgets to NWB, and also their newer, larger data using Neuropixels (SpikeGLX). These recordings, some of which exceeded more than 250 GB (several hours worth!), were paired with rich trials tables containing catagorical events and temporal stimuli.

v0.8.10

Feldman Lab: feldman-lab-to-nwb

The Feldman lab utilizes a Neuropixels (SpikeGLX) system along with multiple sophisticated behavior systems for manipulating whisker stimulation in mice. These give rise to very complex trials tables tracking multiple event times throughout the experiments, including multiple event trains within trials.

v0.8.1

Hussaini Lab: hussaini-lab-to-nwb

v0.7.2

Movson lab: movshon-lab-to-nwb

v0.7.0

Tank Lab: tank-lab-to-nwb

Neuropixel (SpikeGLX) recordings of subjects navigating a virtual reality! Behavior contains a huge variety of NWB data types including positional and view angle over time, collision detection, and more! Paired with a specific extension for parsing experiment metadata.

Groh lab: mease-lab-to-nwb

Utilizing the CED recording interface, this project paired ecephys channels with optogenetic stimulation via laser pulses, and mechnical pressure stimulation over time - all of which are channels of data extracted from the common .smrx files!

Giocomo lab: giocomo-lab-to-nwb

Other labs that use NWB standard

For Developers

Running GIN tests locally

neuroconv verifies the integrity of all code changes by running a full test suite on short examples of real data from the formats we support. There are two classes of tests in this regard; tests/test_internals does not require any data to be present and represents the 'minimal' expected behavior for our package, whereas tests/test_on_data requires the user to both perform a full install of dependencies (pip install -r requirements-full.txt) as well as download the associated data for each modality.

Install testing dependencies

In a clean environment run:

git clone https://github.com/catalystneuro/neuroconv
cd neuroconv
pip install .[test, full]

Downloading the data

Datalad (conda install datalad) is the recommended way for downloading the data. To do this; simply call:

For electrophysiology data:

datalad install -rg https://gin.g-node.org/NeuralEnsemble/ephy_testing_data

For optical physiology data:

datalad install -rg https://gin.g-node.org/CatalystNeuro/ophys_testing_data

For behavioral data:

datalad install -rg https://gin.g-node.org/CatalystNeuro/behavior_testing_data

Test configuration file

Once the data is downloaded to your system, you must manually modify the config file (example) located in ./tests/test_on_data/gin_test_config.json so its corresponding LOCAL_PATH key points to the correct folder on your system that contains the dataset folder (e.g., ephy_testing_data for testing ecephys). The code will automatically detect that the tests are being run locally, so all you need to do ensure the path is correct to your specific system.

The output of these tests is, by default, stored in a temporary directory that is then cleaned after the tests finish running. To examine these files for quality assessment purposes, set the flag SAVE_OUTPUTS=true in the gin_test_config.json file and modify the variable OUTPUT_PATH in the respective test if necessary.

Build the documentation

For building the documentation locally, the following procedure can be followed. Create a clean environment and type the following commands in your terminal:

git clone https://github.com/catalystneuro/neuroconv
cd neuroconv
pip install -e .[docs]

These commands install both the latest version of the repo and the dependencies necessary to build the documentation. Note that the argument -e makes you install editable

Now, to build the documention issue the following command in your terminal:

sphinx-build -b html docs ./docs/_build/

This builds the html under /docs/_build/ (from your root directory, where you have installed neuroconv). This allows you to review the outcome of the process localy before commiting code.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neuroconv-0.2.0.tar.gz (105.3 kB view details)

Uploaded Source

Built Distribution

neuroconv-0.2.0-py3-none-any.whl (135.9 kB view details)

Uploaded Python 3

File details

Details for the file neuroconv-0.2.0.tar.gz.

File metadata

  • Download URL: neuroconv-0.2.0.tar.gz
  • Upload date:
  • Size: 105.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for neuroconv-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b57c6bf3ad4db5b73ecbe01ebf6b50592be0f779e024e9ecd6fa47b74fa8bc18
MD5 3b28586bee6e06e95c25b96124135fd4
BLAKE2b-256 65367c1a93ea4d731593471f934f98c1eba7a64491a198245f9448ca4c9902dc

See more details on using hashes here.

File details

Details for the file neuroconv-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: neuroconv-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 135.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for neuroconv-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4ec12a2335267636a1b3f5d14d5f5a4d4337d1c8290db74e94dad51caeecc6d1
MD5 b898ee2d68c37aca82bee4eda25429b8
BLAKE2b-256 20f4e1af9ac19a881c9cded981fa62ff5c93ee87b51fff3b191c7dd109ef134b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page