Skip to content

catalystneuro/buffalo-lab-to-nwb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 buffalo-lab-data-to-nwb

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.

About

Scripts to convert Buffalo Lab data to the NWB standard

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages