一个Pythonic的,面向对象的,猴子的神经元补丁

nrn-patch的Python项目详细描述


Build StatuscodecovCode style: blackDocumentation Status

*在建造这片猴子地的过程中,没有鸭子被打。

安装

pip install nrn-patch

Inline replacement of NEURON by Patch

请注意,接口目前是不完整的,这意味着大多数部分仍然 “只是”神经元。我只修补了我自己在使用 h.Sectionh.NetStimh.NetCon函数。请随意提出一个问题或解决这个问题 投影并打开对接口的缺失或损坏部分的拉取请求。在

哲学

Python接口应该是Pythonic的,这个包装器只提供:

  • 完整的Python对象:每个摇摇欲坠的类C神经元对象都封装在 完整的Python对象,易于处理和扩展 继承权。在
  • Duck类型的接口:看看我使用的魔术方法和任何 使用这些方法创建的对象将正常工作 带补丁。在
  • 正确的垃圾收集,相互连接的对象不会 dissapear:相互依赖的对象存储对 彼此。As是任何正常的面向对象接口的基础。在

基本用途

像使用神经元一样使用它。包装器不会对接口进行任何更改, 它只是修补了一些更常见和可笑的陷阱。在

补丁提供了一个新的HOC解释器p,即PythonHocInterpreter,它封装了 NEURON提供的标准HOC解释器h。返回的任何对象将 PythonHocObject包装了相应的神经元对象,或者其他神经元 返回。在

当使用just Patch时,将处理神经元和Patch对象之间的差异 透明的,但是如果你想混合解释器,你可以转换所有的补丁对象 用obj.__neuron__()返回神经元对象。在

^{pr2}$

神奇的方法

__神经元__

获取对象的神经元指针

每当使用此方法存在的对象被发送到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)

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

推荐PyPI第三方库


热门话题
二进制字符串的java NumberFormatExceprion   java如何在Neo4j中查找/匹配/选择标识符名称   java哪一年的日期与原始年份相同?   java什么时候JAXB可以用于Json而不是XML?   java使用PayPal权限API进行PayPal支付   java Getting error在使用安卓 vision api扫描二维码时加载图像失败   java直接突出显示RichTextFX中的一个文本范围   java Resolve@RegisteredAuth2AuthorizedClient,其令牌在spring Security 5.2的spring server之外获得。十、   yyyymmddhhmmss的Java正则表达式   java我试图将google recaptcha与spring mvc集成,但GreCaptCharResponse总是返回false。这里有一些代码   java使用JsonPath将文本转换为json   java无法解析符号。Maven依赖项已就位,但代码为红色   java使用循环查找范围内具有不同数字的数字   java这个SwingWorker是否不重用ThreadPoolExecutor中的线程?