https://github.com/catalystneuro/nwb-conversion-tools

Create NWB files by converting and combining neural data in proprietary formats and adding essential metadata.

https://github.com/catalystneuro/nwb-conversion-tools

Science Score: 28.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 18 committers (11.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary

Keywords

nwb nwb-conversion

Keywords from Contributors

neuroscience electrophysiology data-retrieval spike-sorting json-schemas dash-forms neuroimaging brain unit-test labels
Last synced: 10 months ago · JSON representation ·

Repository

Create NWB files by converting and combining neural data in proprietary formats and adding essential metadata.

Basic Info
Statistics
  • Stars: 25
  • Watchers: 8
  • Forks: 12
  • Open Issues: 6
  • Releases: 0
Archived
Topics
nwb nwb-conversion
Created almost 7 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Code of conduct Citation

README.md

PyPI version Full Tests Auto-release codecov documentation License

NWB Conversion Tools is deprecated. See NeuroConv instead.

NWB conversion tools (LEGACY)

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

Under heavy construction. API is changing rapidly.

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 nwb-conversion-tools though PyPI, type: shell pip install nwb-conversion-tools

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:

shell git clone https://github.com/catalystneuro/nwb-conversion-tools cd nwb-conversion-tools conda env create -f make_env.yml conda activate nwb_conversion_env 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: shell pip install git+https://github.com/catalystneuro/nwb-conversion-tools.git@master

Dependencies

NWB Conversion Tools relies heavily on SpikeExtractors for electrophysiology and on ROIExtractors for optophysiology data.

You can use a graphical interface for your converter with NWB Web GUI.

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

nwb-conversion-tools 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

We provide two easy ways of installing all the dependencies required for testing:

1) The first is a conda based solution that creates an environment with all the dependencies already installed.

shell git clone https://github.com/catalystneuro/nwb-conversion-tools cd nwb-conversion-tools conda env create -f make_env_testing.yml conda activate nwb_conversion_testing_env

Note that this will also install datalad which is the endorsed way of downloading the testing data plus pytest and pytest-cov which are the tools that we use on our continuous integration suit.

2) The same can be accomplished by using pip. In a clean environment run:

shell git clone https://github.com/catalystneuro/nwb-conversion-tools cd nwb-conversion-tools pip install .[test, full]

Notice that this method does not install datalad.

Downloading the data

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

For electrophysiology data: shell datalad install -rg https://gin.g-node.org/NeuralEnsemble/ephy_testing_data

For optical physiology data: shell datalad install -rg https://gin.g-node.org/CatalystNeuro/ophys_testing_data

For behavioral data: shell 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: shell git clone https://github.com/catalystneuro/nwb-conversion-tools cd nwb-conversion-tools 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: shell sphinx-build -b html docs ./docs/_build/

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

Owner

  • Name: CatalystNeuro
  • Login: catalystneuro
  • Kind: organization
  • Email: hello@catalystneuro.com

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Baker
    given-names: Cody
    orcid: https://orcid.org/0000-0002-0829-4790
  - family-names: Sharda
    given-names: Saksham
  - family-names: Mayorquin
    given-names: Heberto
    orcid: https://orcid.org/0000-0002-5937-7537
  - family-names: Tauffer
    given-names: Luiz
  - family-names: Buccino
    given-names: Alessio Paolo
    orcid: https://orcid.org/0000-0003-3661-527X
  - family-names: Dichter
    given-names: Benjamin
    orcid: https://orcid.org/0000-0001-5725-6910
title: "Nwb-conversion-tools"
version: 0.9.9
date-released: 2022-2-3
url: "https://github.com/catalystneuro/nwb-conversion-tools.git"

GitHub Events

Total
  • Member event: 1
Last Year
  • Member event: 1

Committers

Last synced: over 3 years ago

All Time
  • Total Commits: 2,412
  • Total Committers: 18
  • Avg Commits per committer: 134.0
  • Development Distribution Score (DDS): 0.807
Top Committers
Name Email Commits
Cody Baker c****9@n****u 465
h-mayorquin h****n@g****m 426
luiztauffer l****r@h****m 375
Cody Baker 5****D@u****m 363
Cody Baker c****d@g****m 351
Saksham Sharda s****a@g****m 151
!git for-each-ref --format='%(refname:short)' `git symbolic-ref HEAD` b****r@g****m 149
sbuergers s****s@g****m 31
Alessio Buccino a****7@g****m 18
weiglszonja w****a@g****m 18
Cody Baker c****d@g****m 17
Saksham Sharda 1****0@u****m 14
pre-commit-ci[bot] 6****]@u****m 13
Julia Sprenger j****r@r****e 7
Steffen Bürgers 3****s@u****m 7
dependabot[bot] 4****]@u****m 5
wuffi 2****i@u****m 1
luiz l****r@o****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 24
  • Total pull requests: 76
  • Average time to close issues: 7 months
  • Average time to close pull requests: 16 days
  • Total issue authors: 7
  • Total pull request authors: 9
  • Average comments per issue: 3.5
  • Average comments per pull request: 3.24
  • Merged pull requests: 58
  • Bot issues: 0
  • Bot pull requests: 7
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • h-mayorquin (8)
  • bendichter (6)
  • CodyCBakerPhD (5)
  • weiglszonja (2)
  • Saksham20 (1)
  • alejoe91 (1)
  • nicolocin (1)
Pull Request Authors
  • h-mayorquin (42)
  • CodyCBakerPhD (16)
  • pre-commit-ci[bot] (5)
  • weiglszonja (4)
  • luiztauffer (2)
  • JuliaSprenger (2)
  • dependabot[bot] (2)
  • bendichter (2)
  • Saksham20 (1)
Top Labels
Issue Labels
enhancement (11) low priority (6) discussion (3) bug (3) coverage (2) code reduction (2) question (1) documentation (1) high priority (1) warnings (1) testing (1) medium priority (1) organization (1) schema (1)
Pull Request Labels
testing (24) enhancement (21) refactoring (11) high priority (9) bug (5) code reduction (4) warnings (4) dependencies (4) documentation (3) medium priority (2) coverage (2) low priority (2) schema (1) deprecation fix (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 199 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 18
  • Total versions: 11
  • Total maintainers: 3
pypi.org: nwb-conversion-tools

Convert data from proprietary formats to NWB format.

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 18
  • Downloads: 199 Last month
Rankings
Dependent repos count: 3.4%
Dependent packages count: 10.1%
Forks count: 10.2%
Stargazers count: 12.6%
Average: 14.8%
Downloads: 37.6%
Maintainers (3)
Last synced: 11 months ago

Dependencies

.github/workflows/add-to-dashboard.yml actions
  • leonsteinhaeuser/project-beta-automations v1.2.1 composite
.github/workflows/auto-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish v1.4.2 composite
.github/workflows/testing.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v1 composite
  • crazy-max/ghaction-chocolatey v1.6.0 composite
  • s-weigand/setup-conda v1 composite
.github/workflows/update-caches.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • crazy-max/ghaction-chocolatey v1.6.0 composite
  • s-weigand/setup-conda v1 composite
requirements-full.txt pypi
  • PyYAML ==5.4
  • dandi ==0.39.6
  • h5py >=2.10.0
  • hdf5storage ==0.1.18
  • hdmf ==3.3.2
  • jsonschema ==3.2.0
  • lxml ==4.9.1
  • natsort ==7.1.1
  • ndx-dandi-icephys >=0.4.0
  • neo ==0.10.2
  • numpy ==1.22.0
  • numpy ==1.21.0
  • opencv-python ==4.5.1.48
  • pandas ==1.2.3
  • pillow ==9.1.1
  • psutil ==5.8.0
  • pyintan ==0.3.0
  • pynwb ==2.1.0
  • pyopenephys ==1.1.2
  • scanimage-tiff-reader ==1.4.1
  • scipy >=1.4.1
  • sonpy >=1.7.1
  • spikeextractors ==0.9.10
  • spikeinterface >=0.94.0
  • tiffile ==2018.10.18
  • tqdm ==4.60.0
requirements-minimal.txt pypi
  • PyYAML >=5.4
  • click *
  • dandi ==0.39.6
  • h5py >=2.10.0
  • hdmf >=3.2.1
  • jsonschema >=3.2.0
  • lxml >=4.6.5
  • natsort >=7.1.1
  • neo >=0.9.0
  • numpy >=1.22.0
  • numpy >=1.21.0
  • psutil >=5.8.0
  • pynwb >=1.4.0
  • pyopenephys >=1.1.2
  • scipy >=1.4.1
  • spikeextractors >=0.9.10
  • spikeinterface >=0.94.0
  • tqdm >=4.60.0
requirements-rtd.txt pypi
  • Jinja2 <3.1
  • myst_parser ==0.13.5
  • readthedocs-sphinx-search ==0.1.0rc3
  • sphinx ==3.5.1
  • sphinx-copybutton ==0.5.0
  • sphinx-toggleprompt ==0.2.0
  • sphinx_rtd_theme ==0.5.1
requirements-testing.txt pypi
  • ndx-dandi-icephys >=0.4.0 test
  • ndx-events ==0.2.0 test
  • parameterized ==0.8.1 test
  • pytest * test
  • pytest-cov * test