hsntools

project status version build statue coverage license python versions

hsntools (formerly ‘convnwb’) is a module for working with the Human Single-Neuron Pipeline (HSNPipeline).

Overview

This module contains general utilities for working with human single-neuron data and projects.

hsntools is designed for use in the Human Single-Neuron pipeline, which provides a guide and template structure for human single-neuron projects, including working with data files, converting data to the NWB format, and managing projects and analyses.

Available sub-modules in hsntools include:

  • io: includes save and load functions and utilities for working with files raw and converted data files

  • nsp: includes functionality that relating to managing recording files from neural signal processors

  • objects: includes objects for storing relevant data, for example electrode or task related information

  • paths: includes a Paths object and utilities for defining and using a consistent path structure

  • plts: includes plot functions for examining data through the conversion process

  • sorting: includes functionality relating to managing spike sorting

  • timestamps: includes utilities for managing timestamps and aligning data streams

  • utils: includes general utilities for working with data through the conversion process

Scope

The hsntools module is a helper module for implementing functionality needed for the Human Single-Neuron Pipeline. It includes utilities related to managing and organizing relevant files, including file I/O, functionality for organizing and aligning multiple data streams and converting data to standardized data files, and utilities for assisting with running analyses across such data and generating structured reports.

hsntools provides functionality used within the template for the pipeline, including:

Note that hsntools is not a module for and does not include functionality for spike sorting or single-neuron analyses. See the HSNPipeline Overview for information and guidance on these processes and related tooling.

Documentation

Documentation for the hsntools module is available here

Documentation for the HSNPipeline more broadly, which uses hsntools is available on the pipeline website

If you have a question about using hsntools that doesn’t seem to be covered by the documentation, feel free to open an issue and ask!

Dependencies

hsntools is written in Python, and requires Python >= 3.7 to run.

It has the following required dependencies:

There are also optional dependencies, that offer extra functionality:

  • pynwb is needed for validating NWB files

  • matplotlib is needed for making plots to check conversions

  • scikit-learn is needed to aligning sync pulses

  • pandas is needed for utilities that load dataframes

  • scipy is needed for some load and timestamp related functions

  • h5py is needed for utilities that open HDF5 files

  • neo is needed for loading & interacting with NSP files

  • mat73 is needed for loading .mat files version >= 7.3

  • pytest is needed to run the test suite locally

Installation

The current release version of hsntools is the 1.X.X release series.

See the changelog for notes on major version releases.

Stable Release Version

To install the latest stable release, you can use pip:

$ pip install hsntools

Development Version

To get the current development version, first clone this repository:

$ git clone https://github.com/hsnpipeline/hsntools

To install this cloned copy, move into the directory you just cloned, and run:

$ pip install .

Editable Version

To install an editable version, download the development version as above, and run:

$ pip install -e .

Contribute

This project welcomes and encourages contributions from the community!

To file bug reports and/or ask questions about this project, please use the Github issue tracker.

When interacting with this project, please follow the code of conduct.