Python神经分析包。
pynapple是一个轻量级的Python库,用于神经生理学数据分析。其目标是提供一套多功能工具来研究该领域的典型数据,即时间序列(尖峰时间、行为事件等)和时间间隔(试验、大脑状态等)。它还为用户提供了神经科学通用功能,如调谐曲线和互相关图。
- 免费软件:MIT许可证
- 文档:https://pynapple-org.github.io/pynapple
- 笔记本和教程:https://pynapple-org.github.io/pynapple/generated/gallery/
注意 :page_with_curl: 如果您正在使用pynapple,请引用以下论文
新版本发布 :fire:
pynapple >= 0.6
从0.6版本开始,IntervalSet
对象的行为类似于不可变的numpy ndarray。在0.6版本之前,您可以通过以下方式选择IntervalSet
对象中的一个间隔:
new_intervalset = intervalset.loc[[0]] # 选择第一个间隔
使用pynapple>=0.6,切片方式类似于numpy,并返回一个IntervalSet
new_intervalset = intervalset[0]
更多详情请参阅文档。
pynapple >= 0.4
从0.4版本开始,pynapple采用numpy数组容器方法代替Pandas来处理时间序列。Pynapple内置函数将保持不变,除了从Pandas继承的函数。
这允许更好地处理返回的对象。
此外,现在可以使用TsdTensor
定义具有2个以上维度的时间序列对象。您还可以查看这个笔记本,了解numpy兼容性的演示。
社区 如需提问或获取使用pynapple的支持,请考虑加入我们的Slack群。请发送电子邮件至thepynapple[at]gmail[dot]com以获取邀请链接。
入门指南
安装
安装pynapple的最佳方式是在新的conda环境中使用pip:
$ conda create --name pynapple pip python=3.8
$ conda activate pynapple
$ pip install pynapple
或直接从源代码安装:
$ conda create --name pynapple pip python=3.8
$ conda activate pynapple
$ # 克隆仓库
$ git clone https://github.com/pynapple-org/pynapple.git
$ cd pynapple
$ # 以可编辑模式安装,使用 `-e` 或等效的 `--editable`
$ pip install -e .
注意 该包现在使用pyproject.toml文件进行安装和依赖管理。如果您想运行测试,请使用pip install -e .[dev]
这个过程将安装所有依赖项,包括:
- pandas
- numpy
- scipy
- numba
- pynwb 2.0
- tabulate
- h5py
基本用法
安装完成后,您现在可以导入该包:
$ python
>>> import pynapple as nap
以下是该包的示例。点击此处下载示例数据集。该文件夹包含一个包含数据的NWB文件。
import matplotlib.pyplot as plt
import numpy as np
import pynapple as nap
# 从NWB加载数据
data = nap.load_file("A2929-200711.nwb")
spikes = data["units"]
head_direction = data["ry"]
wake_ep = data["position_time_support"]
# 计算调谐曲线
tuning_curves = nap.compute_1d_tuning_curves(
spikes, head_direction, 120, ep=wake_ep, minmax=(0, 2 * np.pi)
)
# 绘图
plt.figure()
for i in spikes:
plt.subplot(3, 5, i + 1, projection="polar")
plt.plot(tuning_curves[i])
plt.xticks([0, np.pi / 2, np.pi, 3 * np.pi / 2])
plt.show()
下面显示的是示例代码的最终图形,展示了15个神经元的发放率随动物头部在水平面上的方向变化的情况。
致谢
特别感谢Francesco P. Battaglia(https://github.com/fpbattaglia)开发了原始的TSToolbox(https://github.com/PeyracheLab/TStoolbox)和neuroseries(https://github.com/NeuroNetMem/neuroseries)包,后者构成了pynapple的核心。 这个软件包由Guillaume Viejo(https://github.com/gviejo)和Peyrache实验室的其他成员开发。