一个Pythonic的,面向对象的,猴子的神经元补丁
nrn-patch的Python项目详细描述
*在建造这片猴子地的过程中,没有鸭子被打。
安装
pip install nrn-patch
请注意,接口目前是不完整的,这意味着大多数部分仍然
“只是”神经元。我只修补了我自己在使用
h.Section
、h.NetStim
和h.NetCon
函数。请随意提出一个问题或解决这个问题
投影并打开对接口的缺失或损坏部分的拉取请求。在
哲学
Python接口应该是Pythonic的,这个包装器只提供:
- 完整的Python对象:每个摇摇欲坠的类C神经元对象都封装在 完整的Python对象,易于处理和扩展 继承权。在
- Duck类型的接口:看看我使用的魔术方法和任何 使用这些方法创建的对象将正常工作 带补丁。在
- 正确的垃圾收集,相互连接的对象不会 dissapear:相互依赖的对象存储对 彼此。As是任何正常的面向对象接口的基础。在
基本用途
像使用神经元一样使用它。包装器不会对接口进行任何更改, 它只是修补了一些更常见和可笑的陷阱。在
补丁提供了一个新的HOC解释器p
,即PythonHocInterpreter
,它封装了
NEURON提供的标准HOC解释器h
。返回的任何对象将
PythonHocObject
包装了相应的神经元对象,或者其他神经元
返回。在
当使用just Patch时,将处理神经元和Patch对象之间的差异
透明的,但是如果你想混合解释器,你可以转换所有的补丁对象
用obj.__neuron__()
返回神经元对象。在
神奇的方法
__神经元__
获取对象的神经元指针
每当使用此方法存在的对象被发送到NEURON HOC解释器时 而是传递此方法的结果。这允许Python方法封装NEURON 指针透明
__网通__
获取对象的NetCon指针
每当在NetCon调用中使用具有此方法的对象时,此
方法被传递。连接存储在原始对象上。允许这样做
简化对NetCon的调用,或添加更优雅的默认行为,如插入
连接到一个段的随机段上,并且能够仅使用p.NetCon(section, synapse)
已知未修补孔
- 当插入点处理时,返回的对象被展开。 可以使用Glia或 使用此语法:
# In neuronprocess=h.MyMechanismName(my_section(0.5),*args,**kwargs)# In patchpoint_process=p.PointProcess(p.MyMechanismName,my_section(0.5),*args,**kwargs)
- 项目
标签: