跳转到主要内容

用于在Neurodata Without Borders:Neurophysiology格式中存储大规模仿真输出的扩展

项目描述

# nwbext_simulation_output:大规模仿真输出数据扩展
由Soltesz实验室和Allen Institute在[NWB Hackathon #4](https://github.com/NeurodataWithoutBorders/nwb_hackathons/tree/master/HCK04_2018_Seattle/Projects/NetworkOutput)期间合作开发,由Ben Dichter*、Kael Dai*、Aaron Milstein、Yazan Billeh、Andrew Tritt、Jean-Christophe Fillion-Robin、Anton Akhipov、Oliver Ruebel、Nicholas Cain、Kristofer Bouchard和Ivan Soltesz完成

此扩展定义了一个单一的NWB数据类型,`CompartmentSeries`,允许您以可伸缩的方式存储来自许多细胞和细胞腔的连续数据(例如膜电位)。

![CompartmentSeries图像](docs/source/_static/multicompartment_schema_1.png)

此结构使用5个数据集存储任意数量的细胞和细胞腔。它可以扩展到一百万个或更多的神经元,并允许高效的并行读写。它旨在处理NEURON输出数据,并易于与SONATA格式接口。

## 指南
### python
#### 安装
```
pip install git+https://github.com/bendichter/simulation_output.git
```

#### 使用
```python
from pynwb import NWBHDF5IO, NWBFile
from datetime import datetime
from nwbext_simulation_output import CompartmentSeries, Compartments
import numpy as np


compartments = Compartments()
compartments.add_row(number=[0, 1, 2, 3, 4], position=[0.1, 0.2, 0.3, 0.4, 0.5])
compartments.add_row(number=[0], position=[np.nan])
cs = CompartmentSeries('membrane_potential', np.random.randn(10, 6),
compartments=compartments,
unit='V', rate=100.)
nwbfile = NWBFile('description', 'id', datetime.now().astimezone())
nwbfile.add_acquisition(compartments)
nwbfile.add_acquisition(cs)

with NWBHDF5IO('test_compartment_series.nwb', 'w') as io
io.write(nwbfile)
```

### MATLAB
#### 安装

命令行
```
git clone https://github.com/bendichter/nwbext_simulation_output.git
```

在MATLAB中
```matlab
generateExtension('/path/to/nwbext_simulation_output/nwbext_simulation_output/nwbext_simulation_output.namespace.yaml');
```

#### 使用
```matlab
[number, number_index] = util.create_indexed_column( ...
{[0, 1, 2, 3, 4], 0}, '/acquisition/compartments/number');

[[位置, 位置索引]] = util.create_indexed_column( ...
{[0.1, 0.2, 0.3, 0.4, 0.5], 0}, '/acquisition/compartments/position');

compartments = types.simulation_output.Compartments( ...
'colnames', {'number', 'position'}, ...
'description', '各种隔室的膜电位', ...
'id', types.core.ElementIdentifiers('data', int64(0:5)));

compartments.position = position;
compartments.position_index = position_index;
compartments.number = number;
compartments.number_index = number_index;

membrane_potential = types.simulation_output.CompartmentSeries( ...
'data', randn(10,6), ...
'compartments', types.untyped.SoftLink('/acquisition/compartments'), ...
'data_unit', 'V', ...
'starting_time_rate', 100., ...
'starting_time', 0.0);

nwb.acquisition.set('compartments', compartments);
nwb.acquisition.set('membrane_potential', membrane_potential);
```

## 讲座
Ben Dichter*, Kael Dai*, Aaron Milstein, Yazan Billeh, Andrew Tritt, Jean-Christophe Fillion-Robin, Anton Akhipov, Oliver Ruebel, Nicholas Cain, Kristofer Bouchard, Ivan Soltesz. NWB 扩展用于存储大规模神经网络模拟的结果。神经信息学。加拿大蒙特利尔(2018年)。[视频](https://www.youtube.com/watch?v=uuYQW0EE2GY).


项目详情


下载文件

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

源代码分发

nwbext_simulation_output-0.1.tar.gz (5.4 kB 查看散列)

上传时间 源代码

构建分发

nwbext_simulation_output-0.1-py3-none-any.whl (6.6 kB 查看散列)

上传时间 Python 3

由以下组织支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面