跳转到主要内容

将SpikeGadgets数据转换为NWB的Python包

项目描述

trodes_to_nwb

Tests codecov PyPI version

将SpikeGadgets .rec文件的数据转换为NWB 2.0+数据格式。

然后使用NWB Inspector验证NWB文件,以确保兼容性并上传到DANDI存档

此版本替代了rec_to_nwb

安装

您可以通过两种方式安装trodes_to_nwb

对于大多数用户,我们建议通过pip在虚拟或conda环境中安装trodes_to_nwb

开发者应从源代码安装。

  1. 从PyPI安装

    pip install trodes_to_nwb
    
  2. 从源代码安装

    注意:我们目前推荐使用mamba作为包管理器。如果使用conda,请将以下命令中的mamba替换为conda。

    git clone https://github.com/LorenFrankLab/trodes_to_nwb.git
    
    cd trodes_to_nwb
    
    mamba env create -f environment.yml
    
    mamba activate trodes_to_nwb
    
    pip install -e .
    

用法

  1. 将您的文件放置在文件夹中。子文件夹也可以。以下扩展名的文件应位于您的目录中

    • .rec:包含电生理记录、加速度计、陀螺仪、磁力计、DIO数据、头的二进制文件
    • .videoPositionTracking:trodes跟踪位置(可选)
    • .h264:视频文件
    • .cameraHWSync:位置时间戳
    • .stateScriptLog:状态脚本控制实验者参数

    这些文件需要按照以下格式命名:{date}_{animal}_{epoch}_{tag}.{extension},其中日期采用YYYYMMDD格式,纪元是带零填充的整数(例如02而不是2),标记可以是任何方便的简短描述符。例如,20230622_randy_02_r1.rec是2023年6月22日randy动物的第二个纪元、第1次(r1)的录音文件。

    注意:默认情况下,Trodes以{date}_{animal}_{epoch}_{tag}.{camera number}.{extension}的格式保存与视频相关的文件(.h264videoPositionTrackingcameraHWSync),这与上述格式略有不同。此转换包接受此格式,并用于匹配具有多个摄像头的纪元中的摄像头与位置跟踪

  2. 为每次录音会话创建一个元数据yaml文件。我们强烈建议使用NWB YAML Creator创建元数据yaml文件,以确保兼容性和正确格式。您还可以查看此示例元数据yaml文件

    元数据yaml文件应命名为{date}_{animal}.metadata.yml,其中日期采用YYYYMMDD格式,并放置在与.rec文件相同的目录中。

    以下是一个示例有效目录结构

    `-- beans
       |   |
       |   `-- raw
       |       |
       |       `-- 20190718
       |           |-- 20190718_beans_01_s1.1.h264
       |           |-- 20190718_beans_01_s1.1.trackgeometry
       |           |-- 20190718_beans_01_s1.1.videoPositionTracking
       |           |-- 20190718_beans_01_s1.1.videoTimeStamps
       |           |-- 20190718_beans_01_s1.1.videoTimeStamps.cameraHWSync
       |           |-- 20190718_beans_01_s1.rec
       |           |-- 20190718_beans_01_s1.stateScriptLog
       |           `-- 20190718_beans_metadata.yml
       |
       `-- README.md
    
  3. 在Python中运行代码。这将为输出目录中的每个.rec文件创建一个NWB文件。

    from trodes_to_nwb.convert import create_nwbs
    
    path = "/path/to/your/data" # from step 1
    output_dir = "/path/to/your/output/directory"
    
    create_nwbs(
        path,
        output_dir,
        header_reconfig_path=None,
        probe_metadata_paths=None,
        convert_video=False,
        n_workers=1,
        query_expression=None,
    )
    

    对于上面的示例目录结构,路径看起来是这样的

    path = "/path/to/your/data/beans/raw"
    

    请注意以下可选参数

    • header_reconfig_path:如果您想更改标题信息,可以提供一个包含新标题信息的yaml文件的路径。请参阅此示例标题重新配置yaml文件。例如,这对于从非四电极设备记录的数据来说可能很重要。
    • probe_metadata_paths:默认情况下,该包包含几种常见的探针设备类型配置。如果您使用的是不包括在内的探针,可以提供一个包含探针元数据的yaml文件的路径。请参阅此示例探针元数据yaml文件
    • convert_video:将.h264视频文件转换为.mp4。这需要在您的系统上安装ffmpeg
    • n_workers:用于并行处理的工作线程数。默认为1。
    • query_expression:查询表达式,用于选择要转换的文件。例如,如果您在文件夹中有几个动物,您可以编写"animal == 'sample'"来仅选择sample动物。默认为None,表示转换目录中的所有文件。

    有关转换的完整示例代码,请参阅教程笔记本

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

trodes_to_nwb-0.1.5.tar.gz (120.8 kB 查看散列

上传时间

构建分布

trodes_to_nwb-0.1.5-py3-none-any.whl (114.0 kB 查看散列

上传时间 Python 3

由以下支持