将neuron simulator.hoc文件转换为.swc形态格式

hoc2swc的Python项目详细描述


Build StatusCoverage StatusPyPI version

hoc2swc:将神经元细胞hoc文件转换为swc形态文件的python包

hoc2swc是一个python库,它将使用NEURON simulatorHOC files定义的神经元模型的形态学转换为流行的SWC morphology format。该库还可用于转换神经元模拟器中实例化的细胞形态(例如,使用neuron+python构建的模型)。

一旦转换成swc,可以使用swc文件的工具可以用来compute SWC morphology metrics,创建professional 3D neuron morphology visualizations,等等……

要求

hoc2swc需要从package/installer(更简单)或compiled(更具挑战性)安装neuron的工作版本。支持Linux、Mac和Windows版本。

您必须能够在终端窗口中至少运行这些命令中的one而不会出错:

  • nrniv -python
  • python -c 'from neuron import h'

如果您不能运行这些命令中的任何一个,则表明您的神经元安装有问题。搜索NEURON forum上的错误消息以获取帮助。

安装和使用

安装和使用取决于你如何安装神经元模拟器(安装和编译)。更可定制的功能是为那些谁编译。

如果您安装了下载的Neuron软件包

下载并将this hoc2swc ZIP file解压缩到已知文件夹。此文件夹将有一个名为hoc2swc.py的脚本。注意它的位置。

然后,要转换hoc文件,请在终端中运行以下命令(注意hoc和swc路径前面的“-):

nrniv -python path/to/hoc2swc.py -path/to/cell.hoc -path/to/converted.swc

如果编译neuron+python

要安装库,只需在终端中键入pip install hoc2swc

然后在python会话中,运行以下命令将hoc文件转换为swc。

from hoc2swc import hoc2swc

hoc2swc("path/to/cell.hoc", "out.swc")

导出非特定单元格

如果一个单元没有在hoc文件中定义(例如,使用自定义脚本或python定义),您可以在neuron中实例化该单元,当它准备好导出到swc时,使用以下python脚本行:

# Load your cell
from neuron import h
run_scripts_build_cell_etc()

# Export loaded cell to SWC
from hoc2swc import neuron2swc
neuron2swc("out.swc")

请注意,对于打包的neuron用户,如果从hoc2swc.py文件所在的目录启动nrniv -python,或者将该位置附加到pythonpath环境变量,则上述行也适用于您。

问题

如果遇到问题,首先要确保这不是由于neuron本身——这个库只是与neuron可执行文件交互。如果是,请联系NEURON team。如果这个库有问题,请创建一个issue on Github

贡献

要投稿,请先打开一个问题,讨论你的投稿计划。然后派生这个存储库并提交一个包含更改的请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getConstructor找不到兼容的构造函数   java单元测试自定义输入和输出格式   javascript Java UI线程内存不足错误被阻止   多线程在Java并发API中从线程池中选择线程的逻辑是什么?   java在MySQL数据库上存储歌曲(BLOb支持)   java快速且可扩展的IO传递   jsf c:forEach-inside-primeface(例如p:panelgrid)inside-ui:repeat   tomcat与JavaServlet3.0文件上传,如何获取maxfilesize值   java JNI,加载2次相同的dll(不同的名称),如何选择使用哪一个?   java将InputStream复制到OutputStream将停止,除非我也向系统写入。出来   java Set反向安全约束   比如在java中使用整数时?   java使用@接口抑制IntelliJ中的某些警告   java我的ASCII艺术在JLabel上是错误的   JavaSpring工具源代码(或带有SpringIde的Eclipse)崩溃   向片段添加ListView时出现java错误   循环Java循环错误需要重新审视   JavaAspectJ:匹配GenericServlet。带注释子类实例的init()调用