跳转到主要内容

NWB:N扩展,用于存储Tank实验室的元数据

项目描述

ndx-tank-metadata

NWB LabMetaData扩展,用于Tank实验室

安装

$ pip install ndx-tank-metadata

用法

此扩展旨在扩展LabMetaData架构以包含用于Virmen元数据转换的定制字段。此扩展已集成到Tank实验室转换管道(tank-lab-to-nwb)中,无需单独安装。或者,它可以像下面演示的那样从Python脚本中使用。

import os
from pynwb import NWBFile, NWBHDF5IO
from datetime import datetime

from ndx_tank_metadata import LabMetaDataExtension, RigExtension, MazeExtension

nwbfile = NWBFile('description', 'id', datetime.now().astimezone())

# Add rig information
rig = {'name': 'rig',
       'rig': 'VRTrain6',
       'simulationMode': 0,
       'hasDAQ': 1,
       'hasSyncComm': 0,
       'minIterationDT': 0.01,
       'arduinoPort': 'COM5',
       'sensorDotsPerRev': [1967.6, 1967.6, 1967.6, 1967.6],
       'ballCircumference': 63.8,
       'toroidXFormP1': 0.5193,
       'toroidXFormP2': 0.5171,
       'colorAdjustment': [0., 0.4, 0.5],
       'soundAdjustment': 0.2,
       'nidaqDevice': 1,
       'nidaqPort': 1,
       'nidaqLines': [0, 11],
       'syncClockChannel': 5,
       'syncDataChannel': 6,
       'rewardChannel': 0,
       'rewardSize': 0.004,
       'rewardDuration': 0.05,
       'laserChannel': 1,
       'rightPuffChannel': 2,
       'leftPuffChannel': 3,
       'webcam_name': 'Live! Cam Sync HD VF0770'}
rig_extension = RigExtension(**rig)

# Create mazes table
maze_extension = MazeExtension(name='mazes',
                               description='description of the mazes')

maze_dict = {'world': 1,
             'lStart': '5',
             'lCue': '45',
             'lMemory': '10',
             'cueDuration': 'NaN',
             'cueVisibleAt': 'Inf',
             'cueProbability': 'Inf',
             'cueDensityPerM': '3',
             'nCueSlots': '3',
             'tri_turnHint': 1,
             'color': [],
             'turnHint_Mem': 0,
             'numTrials': 10,
             'numTrialsPerMin': 2,
             'criteriaNTrials': 1,
             'warmupNTrials': [],
             'numSessions': 0,
             'performance': 0, 
             'maxBias': 1,
             'warmupMaze': [],
             'warmupPerform': [],
             'warmupBias': [],
             'warmupMotor': [],
             'easyBlock': 0,
             'easyBlockNTrials': 10,
             'numBlockTrials': 20,
             'blockPerform': 0.7}

# Add each maze to extension
maze_extension.add_row(**maze_dict)

# Create LabMetaData container
lab_metadata_dict = dict(
    name='LabMetaData',
    experiment_name='test',
    world_file_name='test',
    protocol_name='test',
    stimulus_bank_path='test',
    commit_id='test',
    location='test',
    num_trials=245,
    session_end_time=datetime.utcnow().isoformat(),
    rig=rig_extension,
    mazes=maze_extension
)

# Populate metadata extension 
lab_metadata = LabMetaDataExtension(**lab_metadata_dict)

# Add to file
nwbfile.add_lab_meta_data(lab_metadata)

filename = 'test_labmetadata.nwb'
with NWBHDF5IO(filename, 'w') as io:
    io.write(nwbfile)

项目详情


下载文件

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

源分布

ndx-tank-metadata-0.2.0.tar.gz (3.8 kB 查看哈希值)

上传时间:

构建分布

ndx_tank_metadata-0.2.0-py3-none-any.whl (6.0 kB 查看哈希值)

上传于 Python 3

由...