Skip to main content

A package for converting Buffalo Lab data to the NWB standard

Project description

Buffalo-lab-data-to-nwb

Scripts which convert Buffalo lab data to NWB format. Currently we only support conversion for processed data.

authors: Luiz Tauffer, Maija Honig, Ryan Ly, Ben Dichter

Install

pip install git+https://github.com/ben-dichter-consulting/buffalo-lab-data-to-nwb.git

Use

The conversion function can be used in different forms:

1. Imported and run from a python script:
Here's an example: we'll grab raw data (.ncs files) and processed data (.mat and .nex5 files) and convert them to .nwb files.

from buffalonwb.conversion_module import conversion_function
from pathlib import Path
import yaml

base_path = Path(BASE_PATH_TO_FILES)

# Source files
source_paths = dict()
source_paths['raw Nlx'] = {'type': 'dir', 'path': base_path.joinpath("RawNlxCSCs")}
source_paths['processed Nlx'] = {'type': 'dir', 'path': str(base_path.joinpath('ProcessedNlxData'))}
source_paths['processed behavior'] = {'type': 'file', 'path': str(base_path.joinpath('ProcessedBehavior/MatFile_2017-04-27_11-41-21.mat'))}
source_paths['sorted spikes'] = {'type': 'file', 'path': str(base_path.joinpath('SortedSpikes/2017-04-27_11-41-21_sorted.nex5'))}

# Output .nwb file
f_nwb = 'buffalo.nwb'

# Load metadata from YAML file
metafile = 'metafile.yml'
with open(metafile) as f:
    metadata = yaml.safe_load(f)

kwargs_fields = {
    'skip_raw': True,
    'skip_processed': False,
    'no_lfp_iterator': False,
}

conversion_function(source_paths=source_paths,
                    f_nwb=f_nwb,
                    metadata=metadata,
                    **kwargs_fields)

2. Command line:
Similarly, the conversion function can be called from the command line in terminal:

$ python conversion_module.py [raw_nlx_dir] [lfp_mat_dir]
  [sorted_spikes_nex5_file] [behavior_file] [output_file] [metadata_file]
  [-skipraw] [-skipprocessed] [-lfpiterator]

IMPORTANT:
[raw_nlx_dir] and [lfp_mat_dir] should be paths to directories
[sorted_spikes_nex5_file] [behavior_file] [output_file] [metadata_file] should be paths to files

optional inputs add these after the positional arguments to use additional options
"-skipraw" (will skip adding raw data to nwb file)
"-skipprocessed" (will skip adding processed data to nwb file)
"-lfpiterator" (change lfp data method to dataChunkIterator (for large data))


3. Graphical User Interface:
To use the GUI, just run the auxiliary function nwb_gui.py from terminal:

$ python nwb_gui.py

The GUI eases the task of editing the metadata of the resulting .nwb file, it is integrated with the conversion module (conversion on-click) and allows for visually exploring the data in the end file with nwb-jupyter-widgets.

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

buffalo-lab-data-to-nwb-0.post0.dev137.tar.gz (43.4 kB view hashes)

Uploaded Source

Built Distribution

buffalo_lab_data_to_nwb-0.post0.dev137-py2.py3-none-any.whl (32.2 kB view hashes)

Uploaded Python 2 Python 3

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