Metadata-Version: 2.1
Name: neuroconv
Version: 0.4.3
Summary: Convert data from proprietary formats to NWB format.
Home-page: https://github.com/catalystneuro/neuroconv
Author: Cody Baker, Szonja Weigl, Heberto Mayorquin, Luiz Tauffer, and Ben Dichter.
Author-email: ben.dichter@catalystneuro.com
License: BSD-3-Clause
Keywords: nwb
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: license.txt
Requires-Dist: numpy >=1.22.0
Requires-Dist: jsonschema >=3.2.0
Requires-Dist: PyYAML >=5.4
Requires-Dist: scipy >=1.4.1
Requires-Dist: h5py >=2.10.0
Requires-Dist: hdmf >=3.4.7
Requires-Dist: psutil >=5.8.0
Requires-Dist: tqdm >=4.60.0
Requires-Dist: dandi >=0.46.2
Requires-Dist: pandas
Requires-Dist: fparse
Requires-Dist: pynwb >=2.3.2 ; python_version >= "3.8"
Provides-Extra: abf
Requires-Dist: neo >=0.9.0 ; extra == 'abf'
Requires-Dist: ndx-dandi-icephys >=0.4.0 ; extra == 'abf'
Provides-Extra: alphaomega
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'alphaomega'
Requires-Dist: packaging <22.0 ; extra == 'alphaomega'
Provides-Extra: audio
Requires-Dist: ndx-sound >=0.2.0 ; extra == 'audio'
Provides-Extra: axona
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'axona'
Requires-Dist: packaging <22.0 ; extra == 'axona'
Provides-Extra: behavior
Requires-Dist: ndx-sound >=0.2.0 ; extra == 'behavior'
Requires-Dist: sleap-io >=0.0.2 ; extra == 'behavior'
Requires-Dist: av >=10.0.0 ; extra == 'behavior'
Requires-Dist: opencv-python-headless >=4.5.1.48 ; extra == 'behavior'
Requires-Dist: ndx-miniscope >=0.5.1 ; extra == 'behavior'
Requires-Dist: natsort >=8.3.1 ; extra == 'behavior'
Requires-Dist: dlc2nwb >=0.3 ; extra == 'behavior'
Requires-Dist: tables ; extra == 'behavior'
Requires-Dist: opencv-python-headless <4.7.0.72,>=4.5.1.48 ; (sys_platform == "darwin") and extra == 'behavior'
Requires-Dist: opencv-python-headless <4.7,>=4.5.1.48 ; (sys_platform == "darwin" and python_version >= "3.11") and extra == 'behavior'
Provides-Extra: biocam
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'biocam'
Requires-Dist: packaging <22.0 ; extra == 'biocam'
Provides-Extra: blackrock
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'blackrock'
Requires-Dist: packaging <22.0 ; extra == 'blackrock'
Provides-Extra: brukertiff
Requires-Dist: roiextractors >=0.5.3 ; extra == 'brukertiff'
Requires-Dist: tifffile >=2023.3.21 ; extra == 'brukertiff'
Provides-Extra: caiman
Requires-Dist: roiextractors >=0.5.3 ; extra == 'caiman'
Provides-Extra: cellexplorer
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'cellexplorer'
Requires-Dist: packaging <22.0 ; extra == 'cellexplorer'
Requires-Dist: hdf5storage >=0.1.18 ; extra == 'cellexplorer'
Requires-Dist: pymatreader >=0.0.32 ; extra == 'cellexplorer'
Provides-Extra: cnmfe
Requires-Dist: roiextractors >=0.5.3 ; extra == 'cnmfe'
Provides-Extra: csv
Provides-Extra: deeplabcut
Requires-Dist: dlc2nwb >=0.3 ; extra == 'deeplabcut'
Requires-Dist: tables ; extra == 'deeplabcut'
Provides-Extra: docs
Requires-Dist: Jinja2 <3.1 ; extra == 'docs'
Requires-Dist: Sphinx ==5.1.1 ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ==1.0.0 ; extra == 'docs'
Requires-Dist: readthedocs-sphinx-search ==0.1.2 ; extra == 'docs'
Requires-Dist: sphinx-toggleprompt ==0.2.0 ; extra == 'docs'
Requires-Dist: sphinx-copybutton ==0.5.0 ; extra == 'docs'
Requires-Dist: roiextractors ; extra == 'docs'
Provides-Extra: ecephys
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'ecephys'
Requires-Dist: packaging <22.0 ; extra == 'ecephys'
Requires-Dist: spikeextractors ; extra == 'ecephys'
Requires-Dist: natsort >=7.1.1 ; extra == 'ecephys'
Requires-Dist: lxml >=4.6.5 ; extra == 'ecephys'
Requires-Dist: pyintan >=0.3.0 ; extra == 'ecephys'
Requires-Dist: pyedflib >=0.1.30 ; extra == 'ecephys'
Requires-Dist: MEArec >=1.8.0 ; extra == 'ecephys'
Requires-Dist: pyopenephys >=1.1.2 ; extra == 'ecephys'
Requires-Dist: hdf5storage >=0.1.18 ; extra == 'ecephys'
Requires-Dist: pymatreader >=0.0.32 ; extra == 'ecephys'
Requires-Dist: sonpy >=1.7.1 ; (python_version <= "3.9") and extra == 'ecephys'
Requires-Dist: numpy <1.25.0 ; (python_version >= "3.11") and extra == 'ecephys'
Provides-Extra: edf
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'edf'
Requires-Dist: packaging <22.0 ; extra == 'edf'
Requires-Dist: pyedflib >=0.1.30 ; extra == 'edf'
Requires-Dist: numpy <1.25.0 ; (python_version >= "3.11") and extra == 'edf'
Provides-Extra: excel
Requires-Dist: openpyxl ; extra == 'excel'
Requires-Dist: xlrd ; extra == 'excel'
Provides-Extra: extract
Requires-Dist: roiextractors >=0.5.3 ; extra == 'extract'
Provides-Extra: fictrac
Provides-Extra: full
Requires-Dist: roiextractors >=0.5.3 ; extra == 'full'
Requires-Dist: tifffile >=2023.3.21 ; extra == 'full'
Requires-Dist: scanimage-tiff-reader >=1.4.1 ; extra == 'full'
Requires-Dist: tiffile >=2018.10.18 ; extra == 'full'
Requires-Dist: ndx-miniscope >=0.5.1 ; extra == 'full'
Requires-Dist: natsort >=8.3.1 ; extra == 'full'
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'full'
Requires-Dist: packaging <22.0 ; extra == 'full'
Requires-Dist: spikeextractors ; extra == 'full'
Requires-Dist: natsort >=7.1.1 ; extra == 'full'
Requires-Dist: lxml >=4.6.5 ; extra == 'full'
Requires-Dist: pyintan >=0.3.0 ; extra == 'full'
Requires-Dist: pyedflib >=0.1.30 ; extra == 'full'
Requires-Dist: MEArec >=1.8.0 ; extra == 'full'
Requires-Dist: pyopenephys >=1.1.2 ; extra == 'full'
Requires-Dist: hdf5storage >=0.1.18 ; extra == 'full'
Requires-Dist: pymatreader >=0.0.32 ; extra == 'full'
Requires-Dist: neo >=0.9.0 ; extra == 'full'
Requires-Dist: ndx-dandi-icephys >=0.4.0 ; extra == 'full'
Requires-Dist: ndx-sound >=0.2.0 ; extra == 'full'
Requires-Dist: sleap-io >=0.0.2 ; extra == 'full'
Requires-Dist: av >=10.0.0 ; extra == 'full'
Requires-Dist: opencv-python-headless >=4.5.1.48 ; extra == 'full'
Requires-Dist: dlc2nwb >=0.3 ; extra == 'full'
Requires-Dist: tables ; extra == 'full'
Requires-Dist: openpyxl ; extra == 'full'
Requires-Dist: xlrd ; extra == 'full'
Requires-Dist: sonpy >=1.7.1 ; (python_version <= "3.9") and extra == 'full'
Requires-Dist: numpy <1.25.0 ; (python_version >= "3.11") and extra == 'full'
Requires-Dist: opencv-python-headless <4.7.0.72,>=4.5.1.48 ; (sys_platform == "darwin") and extra == 'full'
Requires-Dist: opencv-python-headless <4.7,>=4.5.1.48 ; (sys_platform == "darwin" and python_version >= "3.11") and extra == 'full'
Provides-Extra: hdf5
Requires-Dist: roiextractors >=0.5.3 ; extra == 'hdf5'
Provides-Extra: icephys
Requires-Dist: neo >=0.9.0 ; extra == 'icephys'
Requires-Dist: ndx-dandi-icephys >=0.4.0 ; extra == 'icephys'
Provides-Extra: intan
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'intan'
Requires-Dist: packaging <22.0 ; extra == 'intan'
Requires-Dist: pyintan >=0.3.0 ; extra == 'intan'
Provides-Extra: kilosort
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'kilosort'
Requires-Dist: packaging <22.0 ; extra == 'kilosort'
Provides-Extra: maxwell
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'maxwell'
Requires-Dist: packaging <22.0 ; extra == 'maxwell'
Provides-Extra: mcsraw
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'mcsraw'
Requires-Dist: packaging <22.0 ; extra == 'mcsraw'
Provides-Extra: mearec
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'mearec'
Requires-Dist: packaging <22.0 ; extra == 'mearec'
Requires-Dist: MEArec >=1.8.0 ; extra == 'mearec'
Provides-Extra: micromanagertiff
Requires-Dist: roiextractors >=0.5.3 ; extra == 'micromanagertiff'
Requires-Dist: tifffile >=2023.3.21 ; extra == 'micromanagertiff'
Provides-Extra: miniscope
Requires-Dist: roiextractors >=0.5.3 ; extra == 'miniscope'
Requires-Dist: ndx-miniscope >=0.5.1 ; extra == 'miniscope'
Requires-Dist: natsort >=8.3.1 ; extra == 'miniscope'
Provides-Extra: neuralynx
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'neuralynx'
Requires-Dist: packaging <22.0 ; extra == 'neuralynx'
Requires-Dist: natsort >=7.1.1 ; extra == 'neuralynx'
Provides-Extra: neuroscope
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'neuroscope'
Requires-Dist: packaging <22.0 ; extra == 'neuroscope'
Requires-Dist: lxml >=4.6.5 ; extra == 'neuroscope'
Provides-Extra: openephys
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'openephys'
Requires-Dist: packaging <22.0 ; extra == 'openephys'
Requires-Dist: pyopenephys >=1.1.2 ; extra == 'openephys'
Provides-Extra: ophys
Requires-Dist: roiextractors >=0.5.3 ; extra == 'ophys'
Requires-Dist: tifffile >=2023.3.21 ; extra == 'ophys'
Requires-Dist: scanimage-tiff-reader >=1.4.1 ; extra == 'ophys'
Requires-Dist: tiffile >=2018.10.18 ; extra == 'ophys'
Requires-Dist: ndx-miniscope >=0.5.1 ; extra == 'ophys'
Requires-Dist: natsort >=8.3.1 ; extra == 'ophys'
Provides-Extra: phy
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'phy'
Requires-Dist: packaging <22.0 ; extra == 'phy'
Provides-Extra: plexon
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'plexon'
Requires-Dist: packaging <22.0 ; extra == 'plexon'
Provides-Extra: sbx
Requires-Dist: roiextractors >=0.5.3 ; extra == 'sbx'
Provides-Extra: scanimage
Requires-Dist: roiextractors >=0.5.3 ; extra == 'scanimage'
Requires-Dist: scanimage-tiff-reader >=1.4.1 ; extra == 'scanimage'
Provides-Extra: sima
Requires-Dist: roiextractors >=0.5.3 ; extra == 'sima'
Provides-Extra: sleap
Requires-Dist: sleap-io >=0.0.2 ; extra == 'sleap'
Requires-Dist: av >=10.0.0 ; extra == 'sleap'
Provides-Extra: spike2
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'spike2'
Requires-Dist: packaging <22.0 ; extra == 'spike2'
Requires-Dist: sonpy >=1.7.1 ; (python_version <= "3.9") and extra == 'spike2'
Provides-Extra: spikegadgets
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'spikegadgets'
Requires-Dist: packaging <22.0 ; extra == 'spikegadgets'
Provides-Extra: spikeglx
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'spikeglx'
Requires-Dist: packaging <22.0 ; extra == 'spikeglx'
Provides-Extra: spikeinterface
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'spikeinterface'
Requires-Dist: packaging <22.0 ; extra == 'spikeinterface'
Requires-Dist: spikeextractors ; extra == 'spikeinterface'
Provides-Extra: suite2p
Requires-Dist: roiextractors >=0.5.3 ; extra == 'suite2p'
Provides-Extra: tdt
Requires-Dist: spikeinterface >=0.98.2 ; extra == 'tdt'
Requires-Dist: packaging <22.0 ; extra == 'tdt'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: ndx-events >=0.2.0 ; extra == 'test'
Requires-Dist: parameterized >=0.8.1 ; extra == 'test'
Requires-Dist: scikit-learn ; extra == 'test'
Requires-Dist: numba ; (python_version <= "3.10") and extra == 'test'
Provides-Extra: text
Requires-Dist: openpyxl ; extra == 'text'
Requires-Dist: xlrd ; extra == 'text'
Provides-Extra: tiff
Requires-Dist: roiextractors >=0.5.3 ; extra == 'tiff'
Requires-Dist: tiffile >=2018.10.18 ; extra == 'tiff'
Provides-Extra: video
Requires-Dist: opencv-python-headless >=4.5.1.48 ; extra == 'video'
Requires-Dist: opencv-python-headless <4.7.0.72,>=4.5.1.48 ; (sys_platform == "darwin") and extra == 'video'
Requires-Dist: opencv-python-headless <4.7,>=4.5.1.48 ; (sys_platform == "darwin" and python_version >= "3.11") and extra == 'video'

[![PyPI version](https://badge.fury.io/py/neuroconv.svg)](https://badge.fury.io/py/neuroconv.svg)
![Full Tests](https://github.com/catalystneuro/neuroconv/actions/workflows/testing.yml/badge.svg)
![Auto-release](https://github.com/catalystneuro/neuroconv/actions/workflows/auto-publish.yml/badge.svg)
[![codecov](https://codecov.io/github/catalystneuro/neuroconv/coverage.svg?branch=main)](https://codecov.io/github/catalystneuro/neuroconv?branch=main)
[![documentation](https://readthedocs.org/projects/neuroconv/badge/?version=main)](https://neuroconv.readthedocs.io/en/main/)
[![License](https://img.shields.io/pypi/l/neuroconv.svg)](https://github.com/catalystneuro/neuroconv/license.txt)

<p align="center">
  <img src="docs/img/neuroconv_logo.png" width="250" alt="NeuroConv logo"/>
  <h3 align="center">Automatically convert neurophysiology data to NWB</h3>
</p>
<p align="center">
   <a href="https://neuroconv.readthedocs.io/"><strong>Explore our documentation »</strong></a>
</p>


<!-- TABLE OF CONTENTS -->

## Table of Contents

- [About](#about)
- [Installation](#installation)
- [Documentation](#documentation)
- [License](#license)

## About

NeuroConv is a Python package for converting neurophysiology data in a variety of proprietary formats to the [Neurodata Without Borders (NWB)](http://nwb.org) standard.

Features:

* Reads data from 40 popular neurophysiology data formats and writes to NWB using best practices.
* Extracts relevant metadata from each format.
* Handles large data volume by reading datasets piece-wise.
* Minimizes the size of the NWB files by automatically applying chunking and lossless compression.
* Supports ensembles of multiple data streams, and supports common methods for temporal alignment of streams.

## Installation
To install the latest stable release of **neuroconv** though PyPI, type:
```shell
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:

```shell
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](https://pip.pypa.io/en/stable/cli/pip_install/#editable-installs).

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/neuroconv.git@main
```

## Documentation
See our [ReadTheDocs page](https://neuroconv.readthedocs.io/en/main/) for full documentation, including a gallery of all supported formats.

## License
NeuroConv is distributed under the BSD3 License. See [LICENSE](https://github.com/catalystneuro/neuroconv/blob/main/license.txt) for more information.
