Metadata-Version: 2.4
Name: neuroconv
Version: 0.7.2
Summary: Convert data from proprietary formats to NWB format.
Author: Cody Baker, Szonja Weigl, Heberto Mayorquin, Paul Adkisson, Luiz Tauffer
Author-email: Ben Dichter <ben.dichter@catalystneuro.com>
License: BSD 3-Clause License
        
        Copyright (c) 2019, Neurodata Without Borders
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        1. Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
        
        2. Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation
           and/or other materials provided with the distribution.
        
        3. Neither the name of the copyright holder nor the names of its
           contributors may be used to endorse or promote products derived from
           this software without specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
Project-URL: Homepage, https://github.com/catalystneuro/neuroconv
Project-URL: Documentation, https://neuroconv.readthedocs.io/
Project-URL: Changelog, https://github.com/catalystneuro/neuroconv/blob/main/CHANGELOG.md
Keywords: nwb,NeurodataWithoutBorders
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: License :: OSI Approved :: BSD License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.22.0; python_version <= "3.11"
Requires-Dist: numpy>=1.26.0; python_version >= "3.12"
Requires-Dist: jsonschema>=3.2.0
Requires-Dist: PyYAML>=5.4
Requires-Dist: scipy>=1.4.1
Requires-Dist: h5py>=3.9.0
Requires-Dist: hdmf>=3.13.0
Requires-Dist: hdmf_zarr>=0.7.0
Requires-Dist: pynwb>=2.7.0
Requires-Dist: pydantic<2.11,>=2.0.0
Requires-Dist: typing_extensions>=4.1.0
Requires-Dist: psutil>=5.8.0
Requires-Dist: tqdm>=4.60.0
Requires-Dist: pandas
Requires-Dist: parse>=1.20.0
Requires-Dist: click
Requires-Dist: docstring-parser
Requires-Dist: packaging
Requires-Dist: referencing
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: ndx-events==0.2.1; extra == "test"
Requires-Dist: parameterized>=0.8.1; extra == "test"
Requires-Dist: ndx-miniscope; extra == "test"
Requires-Dist: spikeinterface[qualitymetrics]>=0.102.0; extra == "test"
Requires-Dist: zarr; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
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"
Requires-Dist: spikeinterface>=0.102; extra == "docs"
Requires-Dist: pydata_sphinx_theme==0.12.0; extra == "docs"
Provides-Extra: dandi
Requires-Dist: dandi>=0.66.5; extra == "dandi"
Requires-Dist: dandischema>=0.11; extra == "dandi"
Provides-Extra: compressors
Requires-Dist: hdf5plugin; extra == "compressors"
Provides-Extra: aws
Requires-Dist: boto3; extra == "aws"
Provides-Extra: csv
Provides-Extra: excel
Requires-Dist: openpyxl; extra == "excel"
Requires-Dist: xlrd; extra == "excel"
Provides-Extra: text
Requires-Dist: neuroconv[csv]; extra == "text"
Requires-Dist: neuroconv[excel]; extra == "text"
Provides-Extra: audio
Requires-Dist: ndx-sound>=0.2.0; extra == "audio"
Provides-Extra: sleap
Requires-Dist: av>=10.0.0; extra == "sleap"
Requires-Dist: sleap-io<0.0.12,>=0.0.2; python_version < "3.9" and extra == "sleap"
Requires-Dist: sleap-io>=0.0.2; python_version >= "3.9" and extra == "sleap"
Provides-Extra: deeplabcut
Requires-Dist: ndx-pose>=0.2; extra == "deeplabcut"
Requires-Dist: tables; platform_system != "Darwin" and extra == "deeplabcut"
Requires-Dist: tables>=3.10.1; (platform_system == "Darwin" and python_version >= "3.10") and extra == "deeplabcut"
Provides-Extra: fictrac
Provides-Extra: video
Requires-Dist: opencv-python-headless>=4.8.1.78; extra == "video"
Provides-Extra: lightningpose
Requires-Dist: ndx-pose>=0.2; extra == "lightningpose"
Requires-Dist: neuroconv[video]; extra == "lightningpose"
Provides-Extra: medpc
Requires-Dist: ndx-events==0.2.1; extra == "medpc"
Provides-Extra: behavior
Requires-Dist: neuroconv[sleap]; extra == "behavior"
Requires-Dist: neuroconv[audio]; extra == "behavior"
Requires-Dist: neuroconv[deeplabcut]; extra == "behavior"
Requires-Dist: neuroconv[fictrac]; extra == "behavior"
Requires-Dist: neuroconv[video]; extra == "behavior"
Requires-Dist: neuroconv[lightningpose]; extra == "behavior"
Requires-Dist: neuroconv[medpc]; extra == "behavior"
Requires-Dist: ndx-miniscope>=0.5.1; extra == "behavior"
Provides-Extra: alphaomega
Requires-Dist: neo>=0.13.3; extra == "alphaomega"
Requires-Dist: spikeinterface>=0.102; extra == "alphaomega"
Provides-Extra: axona
Requires-Dist: neo>=0.13.3; extra == "axona"
Requires-Dist: spikeinterface>=0.102; extra == "axona"
Provides-Extra: biocam
Requires-Dist: neo>=0.13.3; extra == "biocam"
Requires-Dist: spikeinterface>=0.102; extra == "biocam"
Provides-Extra: blackrock
Requires-Dist: neo>=0.14; extra == "blackrock"
Requires-Dist: spikeinterface>=0.102; extra == "blackrock"
Provides-Extra: cellexplorer
Requires-Dist: neo>=0.13.3; extra == "cellexplorer"
Requires-Dist: pymatreader>=0.0.32; extra == "cellexplorer"
Requires-Dist: spikeinterface>=0.102; extra == "cellexplorer"
Requires-Dist: setuptools; python_version >= "3.12" and extra == "cellexplorer"
Provides-Extra: edf
Requires-Dist: neo>=0.13.3; extra == "edf"
Requires-Dist: pyedflib<0.1.39,>=0.1.36; extra == "edf"
Requires-Dist: spikeinterface>=0.102; extra == "edf"
Provides-Extra: intan
Requires-Dist: neo>=0.14; extra == "intan"
Requires-Dist: spikeinterface>=0.102; extra == "intan"
Provides-Extra: kilosort
Requires-Dist: neo>=0.13.3; extra == "kilosort"
Requires-Dist: spikeinterface>=0.102; extra == "kilosort"
Provides-Extra: maxwell
Requires-Dist: neo>=0.13.3; extra == "maxwell"
Requires-Dist: spikeinterface>=0.102; extra == "maxwell"
Provides-Extra: mcsraw
Requires-Dist: neo>=0.13.3; extra == "mcsraw"
Requires-Dist: spikeinterface>=0.102; extra == "mcsraw"
Provides-Extra: mearec
Requires-Dist: MEArec>=1.8.0; extra == "mearec"
Requires-Dist: neo>=0.13.3; extra == "mearec"
Requires-Dist: spikeinterface>=0.102; extra == "mearec"
Requires-Dist: setuptools; python_version >= "3.12" and extra == "mearec"
Provides-Extra: neuralynx
Requires-Dist: natsort>=7.1.1; extra == "neuralynx"
Requires-Dist: neo>=0.13.3; extra == "neuralynx"
Requires-Dist: spikeinterface>=0.102; extra == "neuralynx"
Provides-Extra: neuroscope
Requires-Dist: lxml>=4.6.5; extra == "neuroscope"
Requires-Dist: neo>=0.13.3; extra == "neuroscope"
Requires-Dist: spikeinterface>=0.102; extra == "neuroscope"
Provides-Extra: openephys
Requires-Dist: lxml>=4.9.4; extra == "openephys"
Requires-Dist: neo>=0.14; extra == "openephys"
Requires-Dist: spikeinterface>=0.102; extra == "openephys"
Provides-Extra: phy
Requires-Dist: neo>=0.13.3; extra == "phy"
Requires-Dist: spikeinterface>=0.102; extra == "phy"
Provides-Extra: plexon
Requires-Dist: neo>=0.13.3; extra == "plexon"
Requires-Dist: spikeinterface>=0.102; extra == "plexon"
Requires-Dist: zugbruecke>=0.2.1; platform_system != "Windows" and extra == "plexon"
Provides-Extra: spike2
Requires-Dist: neo>=0.13.3; extra == "spike2"
Requires-Dist: sonpy>=1.7.1; (python_version == "3.9" and platform_system != "Darwin") and extra == "spike2"
Requires-Dist: spikeinterface>=0.102; extra == "spike2"
Provides-Extra: spikegadgets
Requires-Dist: neo>=0.13.3; extra == "spikegadgets"
Requires-Dist: spikeinterface>=0.102; extra == "spikegadgets"
Provides-Extra: spikeglx
Requires-Dist: neo>=0.14; extra == "spikeglx"
Requires-Dist: spikeinterface>=0.102; extra == "spikeglx"
Provides-Extra: tdt
Requires-Dist: neo>=0.13.3; extra == "tdt"
Requires-Dist: spikeinterface>=0.102; extra == "tdt"
Provides-Extra: ecephys
Requires-Dist: neuroconv[alphaomega]; extra == "ecephys"
Requires-Dist: neuroconv[axona]; extra == "ecephys"
Requires-Dist: neuroconv[biocam]; extra == "ecephys"
Requires-Dist: neuroconv[blackrock]; extra == "ecephys"
Requires-Dist: neuroconv[cellexplorer]; extra == "ecephys"
Requires-Dist: neuroconv[edf]; extra == "ecephys"
Requires-Dist: neuroconv[intan]; extra == "ecephys"
Requires-Dist: neuroconv[kilosort]; extra == "ecephys"
Requires-Dist: neuroconv[maxwell]; extra == "ecephys"
Requires-Dist: neuroconv[mcsraw]; extra == "ecephys"
Requires-Dist: neuroconv[mearec]; extra == "ecephys"
Requires-Dist: neuroconv[neuralynx]; extra == "ecephys"
Requires-Dist: neuroconv[neuroscope]; extra == "ecephys"
Requires-Dist: neuroconv[openephys]; extra == "ecephys"
Requires-Dist: neuroconv[phy]; extra == "ecephys"
Requires-Dist: neuroconv[plexon]; extra == "ecephys"
Requires-Dist: neuroconv[spike2]; extra == "ecephys"
Requires-Dist: neuroconv[spikegadgets]; extra == "ecephys"
Requires-Dist: neuroconv[spikeglx]; extra == "ecephys"
Requires-Dist: neuroconv[tdt]; extra == "ecephys"
Provides-Extra: abf
Requires-Dist: ndx-dandi-icephys>=0.4.0; extra == "abf"
Requires-Dist: neo>=0.13.2; extra == "abf"
Provides-Extra: icephys
Requires-Dist: neuroconv[abf]; extra == "icephys"
Provides-Extra: image
Requires-Dist: pillow>=10.0.0; extra == "image"
Provides-Extra: brukertiff
Requires-Dist: roiextractors>=0.5.11; extra == "brukertiff"
Requires-Dist: tifffile>=2023.3.21; extra == "brukertiff"
Provides-Extra: caiman
Requires-Dist: roiextractors>=0.5.11; extra == "caiman"
Provides-Extra: cnmfe
Requires-Dist: roiextractors>=0.5.11; extra == "cnmfe"
Provides-Extra: extract
Requires-Dist: roiextractors>=0.5.11; extra == "extract"
Provides-Extra: hdf5
Requires-Dist: roiextractors>=0.5.11; extra == "hdf5"
Provides-Extra: micromanagertiff
Requires-Dist: roiextractors>=0.5.11; extra == "micromanagertiff"
Requires-Dist: tifffile>=2023.3.21; extra == "micromanagertiff"
Provides-Extra: miniscope
Requires-Dist: natsort>=8.3.1; extra == "miniscope"
Requires-Dist: ndx-miniscope>=0.5.1; extra == "miniscope"
Requires-Dist: roiextractors>=0.5.11; extra == "miniscope"
Provides-Extra: sbx
Requires-Dist: roiextractors>=0.5.11; extra == "sbx"
Provides-Extra: scanimage
Requires-Dist: roiextractors>=0.5.11; extra == "scanimage"
Requires-Dist: scanimage-tiff-reader>=1.4.1; extra == "scanimage"
Provides-Extra: sima
Requires-Dist: roiextractors>=0.5.11; extra == "sima"
Provides-Extra: suite2p
Requires-Dist: roiextractors>=0.5.11; extra == "suite2p"
Provides-Extra: tdt-fp
Requires-Dist: ndx-fiber-photometry; extra == "tdt-fp"
Requires-Dist: roiextractors>=0.5.11; extra == "tdt-fp"
Requires-Dist: tdt; extra == "tdt-fp"
Provides-Extra: thor
Requires-Dist: roiextractors>=0.5.11; extra == "thor"
Requires-Dist: tifffile>=2023.3.21; extra == "thor"
Provides-Extra: tiff
Requires-Dist: roiextractors>=0.5.9; extra == "tiff"
Requires-Dist: tiffile>=2018.10.18; extra == "tiff"
Provides-Extra: ophys
Requires-Dist: neuroconv[brukertiff]; extra == "ophys"
Requires-Dist: neuroconv[caiman]; extra == "ophys"
Requires-Dist: neuroconv[cnmfe]; extra == "ophys"
Requires-Dist: neuroconv[extract]; extra == "ophys"
Requires-Dist: neuroconv[hdf5]; extra == "ophys"
Requires-Dist: neuroconv[micromanagertiff]; extra == "ophys"
Requires-Dist: neuroconv[miniscope]; extra == "ophys"
Requires-Dist: neuroconv[sbx]; extra == "ophys"
Requires-Dist: neuroconv[scanimage]; extra == "ophys"
Requires-Dist: neuroconv[sima]; extra == "ophys"
Requires-Dist: neuroconv[suite2p]; extra == "ophys"
Requires-Dist: neuroconv[tdt_fp]; extra == "ophys"
Requires-Dist: neuroconv[thor]; extra == "ophys"
Requires-Dist: neuroconv[tiff]; extra == "ophys"
Provides-Extra: full
Requires-Dist: neuroconv[aws]; extra == "full"
Requires-Dist: neuroconv[compressors]; extra == "full"
Requires-Dist: neuroconv[dandi]; extra == "full"
Requires-Dist: neuroconv[behavior]; extra == "full"
Requires-Dist: neuroconv[ecephys]; extra == "full"
Requires-Dist: neuroconv[icephys]; extra == "full"
Requires-Dist: neuroconv[image]; extra == "full"
Requires-Dist: neuroconv[ophys]; extra == "full"
Requires-Dist: neuroconv[text]; extra == "full"

[![PyPI version](https://badge.fury.io/py/neuroconv.svg)](https://badge.fury.io/py/neuroconv.svg)
![Daily Tests](https://github.com/catalystneuro/neuroconv/actions/workflows/dailies.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/)
[![Python](https://img.shields.io/pypi/pyversions/neuroconv.svg)](https://pypi.python.org/pypi/neuroconv)
[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
[![License](https://img.shields.io/pypi/l/neuroconv.svg)](https://github.com/catalystneuro/neuroconv/license.txt)

<p align="center">
  <img src="https://raw.githubusercontent.com/catalystneuro/neuroconv/main/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
We always recommend installing and running Python packages in a clean environment. One way to do this is via [conda environments](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#activating-an-environment):

```shell
conda create --name <give the environment a name> --python <choose a version of Python to use>
conda activate <environment name>
```

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

```shell
pip install neuroconv
```

To install the current unreleased `main` branch (requires `git` to be installed in your environment, such was via `conda install git`), run:

```shell
pip install git+https://github.com/catalystneuro/neuroconv.git@main
```

NeuroConv also supports a variety of extra dependencies that can be specified inside square brackets, such as

```shell
pip install "neuroconv[openephys, dandi]"
```

which will then install extra dependencies related to reading OpenEphys data as well as the usage of the DANDI CLI (such as automatic upload to the [DANDI Archive](https://www.dandiarchive.org/)).

You can read more about these options in the main [installation guide](https://neuroconv.readthedocs.io/en/main/user_guide/datainterfaces.html#installation).


## 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.
