bluecellulab 2.2.7__tar.gz → 2.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bluecellulab might be problematic. Click here for more details.

Files changed (425) hide show
  1. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.github/workflows/release.yml +2 -0
  2. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.github/workflows/test.yml +4 -1
  3. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/CHANGELOG.rst +34 -0
  4. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/PKG-INFO +1 -1
  5. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/core.py +34 -96
  6. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/injector.py +72 -55
  7. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/plotting.py +0 -1
  8. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/serialized_sections.py +3 -3
  9. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/config/bluepy_simulation_config.py +1 -1
  10. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/config/definition.py +1 -1
  11. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/config/sonata_simulation_config.py +1 -1
  12. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/dendrogram.py +61 -17
  13. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/psection.py +71 -70
  14. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/psegment.py +2 -2
  15. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/ssim.py +11 -11
  16. bluecellulab-2.3.2/bluecellulab/stimulus/__init__.py +1 -0
  17. bluecellulab-2.2.7/bluecellulab/stimuli.py → bluecellulab-2.3.2/bluecellulab/stimulus/circuit_stimulus_definitions.py +4 -0
  18. bluecellulab-2.3.2/bluecellulab/stimulus/factory.py +254 -0
  19. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/synapse/synapse_factory.py +2 -2
  20. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab.egg-info/PKG-INFO +1 -1
  21. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab.egg-info/SOURCES.txt +9 -2
  22. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/requirements_docs.txt +1 -0
  23. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/source/api.rst +4 -2
  24. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/source/conf.py +10 -0
  25. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/source/index.rst +1 -0
  26. bluecellulab-2.3.2/docs/source/list_of_stim.rst +138 -0
  27. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/1-singlecell/singlecell.ipynb +1 -1
  28. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sonata-network.ipynb +10 -0
  29. bluecellulab-2.3.2/examples/3-bpap/bpap.ipynb +537 -0
  30. bluecellulab-2.3.2/examples/5-stimuli/stimuli.ipynb +609 -0
  31. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/README.rst +2 -0
  32. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/pyproject.toml +2 -1
  33. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_core.py +37 -11
  34. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_injector.py +8 -8
  35. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_simulation_access.py +1 -2
  36. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_simulation_config.py +1 -1
  37. bluecellulab-2.3.2/tests/test_psection.py +80 -0
  38. bluecellulab-2.2.7/tests/test_stimuli.py → bluecellulab-2.3.2/tests/test_stimulus/test_circuit_stimulus_definitions.py +2 -2
  39. bluecellulab-2.3.2/tests/test_stimulus/test_factory.py +143 -0
  40. bluecellulab-2.3.2/tests/test_synapse/__init__.py +0 -0
  41. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_synapse/test_synapse_factory.py +1 -1
  42. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_tools.py +2 -2
  43. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tox.ini +5 -3
  44. bluecellulab-2.2.7/examples/3-bpap/bpap.ipynb +0 -537
  45. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.compile_mod.sh +0 -0
  46. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.gitattributes +0 -0
  47. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.github/dependabot.yml +0 -0
  48. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.gitignore +0 -0
  49. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.gitlab-ci.yml +0 -0
  50. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.readthedocs.yml +0 -0
  51. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/.zenodo.json +0 -0
  52. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/AUTHORS.txt +0 -0
  53. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/LICENSE +0 -0
  54. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/MANIFEST.in +0 -0
  55. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/Makefile +0 -0
  56. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/README.rst +0 -0
  57. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/__init__.py +0 -0
  58. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/__init__.py +0 -0
  59. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/ballstick/__init__.py +0 -0
  60. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
  61. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/ballstick/morphology.asc +0 -0
  62. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/cell_dict.py +0 -0
  63. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/random.py +0 -0
  64. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/section_distance.py +0 -0
  65. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/sonata_proxy.py +0 -0
  66. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/stimuli_generator.py +0 -0
  67. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/cell/template.py +0 -0
  68. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/__init__.py +0 -0
  69. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/__init__.py +0 -0
  70. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +0 -0
  71. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/definition.py +0 -0
  72. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/sonata_circuit_access.py +0 -0
  73. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/config/__init__.py +0 -0
  74. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/config/sections.py +0 -0
  75. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/format.py +0 -0
  76. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/iotools.py +0 -0
  77. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/node_id.py +0 -0
  78. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/simulation_access.py +0 -0
  79. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/synapse_properties.py +0 -0
  80. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/circuit/validate.py +0 -0
  81. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/connection.py +0 -0
  82. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/exceptions.py +0 -0
  83. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/graph.py +0 -0
  84. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/hoc/Cell.hoc +0 -0
  85. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/hoc/RNGSettings.hoc +0 -0
  86. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/hoc/TDistFunc.hoc +0 -0
  87. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/hoc/TStim.hoc +0 -0
  88. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/hoc/fileUtils.hoc +0 -0
  89. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/importer.py +0 -0
  90. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/neuron_interpreter.py +0 -0
  91. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/plotwindow.py +0 -0
  92. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/rngsettings.py +0 -0
  93. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/simulation/__init__.py +0 -0
  94. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/simulation/neuron_globals.py +0 -0
  95. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/simulation/simulation.py +0 -0
  96. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/synapse/__init__.py +0 -0
  97. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/synapse/synapse_types.py +0 -0
  98. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/tools.py +0 -0
  99. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/type_aliases.py +0 -0
  100. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab/utils.py +0 -0
  101. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab.egg-info/dependency_links.txt +0 -0
  102. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab.egg-info/requires.txt +0 -0
  103. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/bluecellulab.egg-info/top_level.txt +0 -0
  104. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/Makefile +0 -0
  105. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/images/voltage-readme.png +0 -0
  106. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/make.bat +0 -0
  107. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/source/_static/.gitkeep +0 -0
  108. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/source/changelog.rst +0 -0
  109. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/source/compiling-mechanisms.rst +0 -0
  110. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
  111. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/1-singlecell/hoc/cADpyr_L2TPC.hoc +0 -0
  112. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/1-singlecell/morphology/rr110330_C3_idA.asc +0 -0
  113. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  114. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  115. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  116. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  117. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  118. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  119. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  120. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  121. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  122. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  123. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/asc/dend-jy180406_B_idC_axon-jy171019_B_10x_resta_idB_-_Scale_x1.000_y0.950_z1.000_-_Clone_1.asc +0 -0
  124. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/asc/dend-jy180406_C_idB_axon-04752-04764-X11537-Y13753_final_-_Clone_3.asc +0 -0
  125. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/swc/dend-jy180406_B_idC_axon-jy171019_B_10x_resta_idB_-_Scale_x1.000_y0.950_z1.000_-_Clone_1.swc +0 -0
  126. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/swc/dend-jy180406_C_idB_axon-04752-04764-X11537-Y13753_final_-_Clone_3.swc +0 -0
  127. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  128. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  129. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  130. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  131. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  132. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  133. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  134. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  135. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  136. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  137. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  138. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  139. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  140. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  141. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  142. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  143. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  144. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  145. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  146. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  147. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  148. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  149. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  150. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  151. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  152. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  153. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  154. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  155. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  156. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/epsp.ipynb +0 -0
  157. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cacumm.mod +0 -0
  158. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cagk.mod +0 -0
  159. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cal2.mod +0 -0
  160. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/can2.mod +0 -0
  161. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cat.mod +0 -0
  162. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/h.mod +0 -0
  163. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kadist.mod +0 -0
  164. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kaprox.mod +0 -0
  165. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kca.mod +0 -0
  166. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kdb.mod +0 -0
  167. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kdrbca1.mod +0 -0
  168. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kmb.mod +0 -0
  169. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/na3n.mod +0 -0
  170. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/hoc/cell_seed2_0.hoc +0 -0
  171. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/4-epsp/morphology/011017HP2.asc +0 -0
  172. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/Ca.mod +0 -0
  173. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/CaDynamics_DC0.mod +0 -0
  174. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/CaDynamics_E2.mod +0 -0
  175. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/Ca_HVA.mod +0 -0
  176. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/Ca_HVA2.mod +0 -0
  177. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/Ca_LVAst.mod +0 -0
  178. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/DetAMPANMDA.mod +0 -0
  179. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/DetGABAAB.mod +0 -0
  180. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/GluSynapse.mod +0 -0
  181. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/Ih.mod +0 -0
  182. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/Im.mod +0 -0
  183. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/K_Pst.mod +0 -0
  184. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/K_Tst.mod +0 -0
  185. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/KdShu2007.mod +0 -0
  186. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/NaTa_t.mod +0 -0
  187. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/NaTg.mod +0 -0
  188. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/NaTs2_t.mod +0 -0
  189. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/Nap_Et2.mod +0 -0
  190. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  191. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/ProbGABAAB_EMS.mod +0 -0
  192. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/README.md +0 -0
  193. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/SK_E2.mod +0 -0
  194. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/SKv3_1.mod +0 -0
  195. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/StochKv.mod +0 -0
  196. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/StochKv3.mod +0 -0
  197. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/TTXDynamicsSwitch.mod +0 -0
  198. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/VecStim.mod +0 -0
  199. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/gap.mod +0 -0
  200. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/mechanisms/netstim_inhpoisson.mod +0 -0
  201. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/examples/readme-plot.ipynb +0 -0
  202. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/setup.cfg +0 -0
  203. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/setup.py +0 -0
  204. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/__init__.py +0 -0
  205. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/data/synapse_replay_file/spikes.dat +0 -0
  206. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/analytic_expsyn.txt +0 -0
  207. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/ballstick.asc +0 -0
  208. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/ballstick.hoc +0 -0
  209. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/bs.cfg +0 -0
  210. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/bpo_cell/0_cADpyr_L5TPC_a6e707a_1_sNone.hoc +0 -0
  211. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/bpo_cell/C060114A5.asc +0 -0
  212. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example1/test_cell.asc +0 -0
  213. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example1/test_cell.hoc +0 -0
  214. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example1/test_cell_longname1.hoc +0 -0
  215. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example2/test_cell.asc +0 -0
  216. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example2/test_cell.hoc +0 -0
  217. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example_cstut/cSTUT_7.hoc +0 -0
  218. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example_cstut/test_cell.asc +0 -0
  219. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example_empty/test_cell.asc +0 -0
  220. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example_empty/test_cell.hoc +0 -0
  221. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/cell_example_empty/test_cell_v6a.hoc +0 -0
  222. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/circuit_config.json +0 -0
  223. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg141017_a1_2_idC_2019032814340.hoc +0 -0
  224. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg141217_A_idB_2019030511280.hoc +0 -0
  225. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg150305_A_idB_2019030511201.hoc +0 -0
  226. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idB_2019030510521.hoc +0 -0
  227. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idF_2019030511545.hoc +0 -0
  228. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idJ_2019032814272.hoc +0 -0
  229. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-051208AM2_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.850_z1.000.swc +0 -0
  230. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-051208AM2_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.850_z1.000_-_Clone_10.swc +0 -0
  231. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-mpg141216_A_idA_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.850_z1.000_-_Clone_7.swc +0 -0
  232. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-mpg141216_A_idA_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.900_z1.000_-_Clone_12.swc +0 -0
  233. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-mpg141216_A_idA_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.900_z1.000_-_Clone_4.swc +0 -0
  234. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-mpg141216_A_idA_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.950_z1.000_-_Clone_4.swc +0 -0
  235. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-oh140521_B0_Rat_idC_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.850_z1.000_-_Clone_1.swc +0 -0
  236. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-oh140521_B0_Rat_idC_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.850_z1.000_-_Clone_12.swc +0 -0
  237. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/dend-oh140807_A0_idF_axon-mpg141017_a1-2_idC_-_Scale_x1.000_y0.850_z1.000_-_Clone_12.swc +0 -0
  238. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/morphologies/mpg141017_a1-2_idC_-_Scale_x1.000_y0.850_z1.000_-_Clone_11.swc +0 -0
  239. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/copy-hoc-morphs.ipynb +0 -0
  240. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/edges/edges.h5 +0 -0
  241. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hippocampus_projections/nodes.h5 +0 -0
  242. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hoc-and-morphs.csv +0 -0
  243. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/id_mapping.json +0 -0
  244. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/node_sets.json +0 -0
  245. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/nodes/nodes.h5 +0 -0
  246. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/circuit_sonata.json +0 -0
  247. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cADpyr_L2TPC.hoc +0 -0
  248. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cNAC_L23BTC.hoc +0 -0
  249. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/C210401C.asc +0 -0
  250. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/rr110330_C3_idA.asc +0 -0
  251. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/C210401C.swc +0 -0
  252. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/rr110330_C3_idA.swc +0 -0
  253. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5 +0 -0
  254. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5.txt +0 -0
  255. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/node_sets.json +0 -0
  256. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5 +0 -0
  257. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5.txt +0 -0
  258. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  259. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  260. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  261. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  262. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  263. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  264. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  265. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  266. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  267. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  268. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/asc/dend-jy180406_B_idC_axon-jy171019_B_10x_resta_idB_-_Scale_x1.000_y0.950_z1.000_-_Clone_1.asc +0 -0
  269. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/asc/dend-jy180406_C_idB_axon-04752-04764-X11537-Y13753_final_-_Clone_3.asc +0 -0
  270. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/swc/dend-jy180406_B_idC_axon-jy171019_B_10x_resta_idB_-_Scale_x1.000_y0.950_z1.000_-_Clone_1.swc +0 -0
  271. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/morphologies/swc/dend-jy180406_C_idB_axon-04752-04764-X11537-Y13753_final_-_Clone_3.swc +0 -0
  272. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  273. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  274. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  275. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  276. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  277. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  278. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  279. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  280. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  281. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  282. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  283. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  284. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/hippocampus_opt_cell_template/README.md +0 -0
  285. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/hippocampus_opt_cell_template/electrophysiology/cell.hoc +0 -0
  286. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/hippocampus_opt_cell_template/morphology/cell.asc +0 -0
  287. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/legacy_circuitconfig/CircuitConfig +0 -0
  288. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig +0 -0
  289. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig.SUCCESS +0 -0
  290. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/out.dat +0 -0
  291. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/out.h5 +0 -0
  292. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/populations_offset.dat +0 -0
  293. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/soma_SONATA.h5 +0 -0
  294. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/user.target +0 -0
  295. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/circuit_sonata.json +0 -0
  296. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/out.h5 +0 -0
  297. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/populations_offset.dat +0 -0
  298. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/soma.h5 +0 -0
  299. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/out.h5 +0 -0
  300. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/populations_offset.dat +0 -0
  301. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/soma.h5 +0 -0
  302. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config.json.SUCCESS +0 -0
  303. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json +0 -0
  304. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json.SUCCESS +0 -0
  305. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json +0 -0
  306. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json.SUCCESS +0 -0
  307. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  308. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  309. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  310. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  311. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  312. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  313. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  314. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  315. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  316. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  317. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  318. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  319. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  320. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  321. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  322. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  323. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  324. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/circuit_sonata.json +0 -0
  325. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/node_sets.json +0 -0
  326. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/sim_conf/populations_offset.dat +0 -0
  327. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config.json +0 -0
  328. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config_many_inputs.json +0 -0
  329. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/circuit_config.json +0 -0
  330. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/echo +0 -0
  331. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/node_sets.json +0 -0
  332. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/out.h5 +0 -0
  333. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/populations_offset.dat +0 -0
  334. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/soma.h5 +0 -0
  335. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json +0 -0
  336. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json.SUCCESS +0 -0
  337. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/circuit_config.json +0 -0
  338. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/node_sets.json +0 -0
  339. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/simulation_config.json +0 -0
  340. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/synapse_replay.dat +0 -0
  341. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/tapertest_cells/notaper_cell.hoc +0 -0
  342. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/tapertest_cells/taper_cell.hoc +0 -0
  343. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/examples/tapertest_cells/test_cell.asc +0 -0
  344. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/helpers/__init__.py +0 -0
  345. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/helpers/os_utils.py +0 -0
  346. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/Ca.mod +0 -0
  347. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/CaDynamics_DC0.mod +0 -0
  348. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/CaDynamics_E2.mod +0 -0
  349. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/Ca_HVA.mod +0 -0
  350. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/Ca_HVA2.mod +0 -0
  351. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/Ca_LVAst.mod +0 -0
  352. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/DetAMPANMDA.mod +0 -0
  353. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/DetGABAAB.mod +0 -0
  354. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/GluSynapse.mod +0 -0
  355. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/Ih.mod +0 -0
  356. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/Im.mod +0 -0
  357. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/K_Pst.mod +0 -0
  358. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/K_Tst.mod +0 -0
  359. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/KdShu2007.mod +0 -0
  360. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/NaTa_t.mod +0 -0
  361. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/NaTg.mod +0 -0
  362. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/NaTs2_t.mod +0 -0
  363. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/Nap_Et2.mod +0 -0
  364. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  365. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/ProbGABAAB_EMS.mod +0 -0
  366. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/README.md +0 -0
  367. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/SK_E2.mod +0 -0
  368. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/SKv3_1.mod +0 -0
  369. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/StochKv.mod +0 -0
  370. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/StochKv3.mod +0 -0
  371. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/TTXDynamicsSwitch.mod +0 -0
  372. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/VecStim.mod +0 -0
  373. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/cacumm.mod +0 -0
  374. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/cacummb.mod +0 -0
  375. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/cagk.mod +0 -0
  376. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/cal2.mod +0 -0
  377. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/can2.mod +0 -0
  378. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/cat.mod +0 -0
  379. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/gap.mod +0 -0
  380. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/h.mod +0 -0
  381. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kadist.mod +0 -0
  382. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kaprox.mod +0 -0
  383. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kca.mod +0 -0
  384. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kd.mod +0 -0
  385. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kd2.mod +0 -0
  386. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kdb.mod +0 -0
  387. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kdrbca1.mod +0 -0
  388. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kdrca1.mod +0 -0
  389. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/km.mod +0 -0
  390. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/kmb.mod +0 -0
  391. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/na3n.mod +0 -0
  392. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/naxn.mod +0 -0
  393. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/mechanisms/netstim_inhpoisson.mod +0 -0
  394. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_ballstick.py +0 -0
  395. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_bglib.py +0 -0
  396. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/__init__.py +0 -0
  397. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_cell_dict.py +0 -0
  398. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_random.py +0 -0
  399. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_serialized_sections.py +0 -0
  400. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_sonata_proxy.py +0 -0
  401. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_stimuli_generator.py +0 -0
  402. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_cell/test_template.py +0 -0
  403. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/__init__.py +0 -0
  404. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_circuit_access.py +0 -0
  405. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_config_sections.py +0 -0
  406. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_format.py +0 -0
  407. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_node_id.py +0 -0
  408. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_synapse_properties.py +0 -0
  409. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_circuit/test_validate.py +0 -0
  410. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_exceptions.py +0 -0
  411. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_graph.py +0 -0
  412. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_importer.py +0 -0
  413. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_load.py +0 -0
  414. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_neuron_interpreter.py +0 -0
  415. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_rngsettings.py +0 -0
  416. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_simulation/__init__.py +0 -0
  417. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_simulation/test_neuron_globals.py +0 -0
  418. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_simulation/test_simulation.py +0 -0
  419. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_ssim.py +0 -0
  420. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_ssim_sonata.py +0 -0
  421. {bluecellulab-2.2.7/tests/test_synapse → bluecellulab-2.3.2/tests/test_stimulus}/__init__.py +0 -0
  422. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_synapse/test-synapse-series.json +0 -0
  423. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_synapse/test_synapse.py +0 -0
  424. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_ttx.py +0 -0
  425. {bluecellulab-2.2.7 → bluecellulab-2.3.2}/tests/test_utils.py +0 -0
@@ -8,6 +8,8 @@ on:
8
8
  jobs:
9
9
  call-test-workflow:
10
10
  uses: BlueBrain/BlueCelluLab/.github/workflows/test.yml@main
11
+ secrets:
12
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
11
13
 
12
14
  build-and-publish:
13
15
  name: Build, publish on PyPI and make a GitHub release
@@ -4,7 +4,10 @@ on:
4
4
  pull_request:
5
5
  # allows this workflow to be reusable (e.g. by the build workflow)
6
6
  workflow_call:
7
-
7
+ secrets:
8
+ CODECOV_TOKEN:
9
+ description: The token to upload coverage to codecov
10
+ required: true
8
11
 
9
12
  jobs:
10
13
  tests:
@@ -1,6 +1,40 @@
1
1
  Changelog
2
2
  ==========
3
3
 
4
+ 2.4.0
5
+ ------
6
+
7
+ * Add StimulusFactory enabling Python generated Stimulus creation
8
+ * Stimulus creation through StimulusFactory is decoupled from the Cell object
9
+ * Cell.add_step and Cell.add_ramp use StimulusFactory
10
+ * Move stimuli module to stimulus/circuit_stimulus_definitions
11
+ * [DOCS] Add list of stimuli page that describe, generate and plot the stimuli
12
+ * Add jupyter notebook displaying how to inject the StimulusFactory Stimulus into Cell
13
+
14
+ 2.3.0
15
+ -------
16
+
17
+ * Cell class no longer serialises the following attributes
18
+ - secname_to_hsection
19
+ - secname_to_isec
20
+ - serialized
21
+ - cellname
22
+ * The direct access to hsection option is removed. The access is through psection.
23
+ * solves the dependency issue between init_psections and get_psections
24
+ * avoids storing lists of NEURON sections for each Cell. Instead turns them into properties.
25
+ * Dendrogram plotting functions are decoupled from PSection
26
+
27
+
28
+ 2.2.0
29
+ ------
30
+
31
+ * Add default value for segx param, improve docs vcs: #minor (#127)
32
+
33
+ 2.1.0
34
+ ---------
35
+
36
+ * Allow API functions to be used without loading hoc/mod (#124)
37
+
4
38
  2.0.0
5
39
  ---------
6
40
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 2.2.7
3
+ Version: 2.3.2
4
4
  Summary: The Pythonic Blue Brain simulator access
5
5
  Home-page: https://github.com/BlueBrain/BlueCelluLab
6
6
  Author: Blue Brain Project, EPFL
@@ -27,12 +27,11 @@ import numpy as np
27
27
  import pandas as pd
28
28
 
29
29
  import bluecellulab
30
- from bluecellulab import psection
30
+ from bluecellulab.psection import PSection, init_psections
31
31
  from bluecellulab.cell.injector import InjectableMixin
32
32
  from bluecellulab.cell.plotting import PlottableMixin
33
33
  from bluecellulab.cell.section_distance import EuclideanSectionDistance
34
34
  from bluecellulab.cell.sonata_proxy import SonataProxy
35
- from bluecellulab.cell.serialized_sections import SerializedSections
36
35
  from bluecellulab.cell.template import NeuronTemplate, public_hoc_cell
37
36
  from bluecellulab.circuit.config.sections import Conditions
38
37
  from bluecellulab.circuit import EmodelProperties, SynapseProperty
@@ -42,7 +41,7 @@ from bluecellulab.exceptions import BluecellulabError
42
41
  from bluecellulab.importer import load_hoc_and_mod_files
43
42
  from bluecellulab.neuron_interpreter import eval_neuron
44
43
  from bluecellulab.rngsettings import RNGSettings
45
- from bluecellulab.stimuli import SynapseReplay
44
+ from bluecellulab.stimulus.circuit_stimulus_definitions import SynapseReplay
46
45
  from bluecellulab.synapse import SynapseFactory, Synapse
47
46
  from bluecellulab.synapse.synapse_types import SynapseID
48
47
  from bluecellulab.type_aliases import HocObjectType, NeuronSection
@@ -99,8 +98,6 @@ class Cell(InjectableMixin, PlottableMixin):
99
98
  # diameters of the loaded morph are wrong
100
99
  neuron.h.finitialize()
101
100
 
102
- self.cellname = neuron.h.secname(sec=self.soma).split(".")[0]
103
-
104
101
  if rng_settings is None:
105
102
  self.rng_settings = RNGSettings("Random123") # SONATA value
106
103
  else:
@@ -112,25 +109,17 @@ class Cell(InjectableMixin, PlottableMixin):
112
109
 
113
110
  self.ips: dict[SynapseID, HocObjectType] = {}
114
111
  self.syn_mini_netcons: dict[SynapseID, HocObjectType] = {}
115
- self.serialized: Optional[SerializedSections] = None
116
112
 
117
113
  # Be careful when removing this,
118
114
  # time recording needs this push
119
115
  self.soma.push()
120
116
  self.hocname = neuron.h.secname(sec=self.soma).split(".")[0]
121
- self.somatic = list(public_hoc_cell(self.cell).somatic)
122
- self.basal = list(public_hoc_cell(self.cell).basal) # dend is same as basal
123
- self.apical = list(public_hoc_cell(self.cell).apical)
124
- self.axonal = list(public_hoc_cell(self.cell).axonal)
125
- self.all = list(public_hoc_cell(self.cell).all)
126
117
  self.record_dt = record_dt
127
118
  self.add_recordings(['self.soma(0.5)._ref_v', 'neuron.h._ref_t'],
128
119
  dt=self.record_dt)
129
120
 
130
121
  self.delayed_weights = queue.PriorityQueue() # type: ignore
131
- self.secname_to_isec: dict[str, int] = {}
132
- self.secname_to_hsection: dict[str, HocObjectType] = {}
133
- self.secname_to_psection: dict[str, psection.PSection] = {}
122
+ self.psections, self.secname_to_psection = init_psections(public_hoc_cell(self.cell))
134
123
 
135
124
  self.emodel_properties = emodel_properties
136
125
  if template_format == 'v6':
@@ -153,12 +142,29 @@ class Cell(InjectableMixin, PlottableMixin):
153
142
  # Used to know when re_init_rng() can be executed
154
143
  self.is_made_passive = False
155
144
 
156
- self.psections: dict[int, psection.PSection] = {}
157
-
158
145
  neuron.h.pop_section() # Undoing soma push
159
- # self.init_psections()
160
146
  self.sonata_proxy: Optional[SonataProxy] = None
161
147
 
148
+ @property
149
+ def somatic(self) -> list[NeuronSection]:
150
+ return list(public_hoc_cell(self.cell).somatic)
151
+
152
+ @property
153
+ def basal(self) -> list[NeuronSection]:
154
+ return list(public_hoc_cell(self.cell).basal)
155
+
156
+ @property
157
+ def apical(self) -> list[NeuronSection]:
158
+ return list(public_hoc_cell(self.cell).apical)
159
+
160
+ @property
161
+ def axonal(self) -> list[NeuronSection]:
162
+ return list(public_hoc_cell(self.cell).axonal)
163
+
164
+ @property
165
+ def all(self) -> list[NeuronSection]:
166
+ return list(public_hoc_cell(self.cell).all)
167
+
162
168
  def __repr__(self) -> str:
163
169
  base_info = f"Cell Object: {super().__repr__()}"
164
170
  hoc_info = f"NEURON ID: {self.template_id}"
@@ -168,47 +174,6 @@ class Cell(InjectableMixin, PlottableMixin):
168
174
  """Connect this cell to a circuit via sonata proxy."""
169
175
  self.sonata_proxy = sonata_proxy
170
176
 
171
- def init_psections(self) -> None:
172
- """Initialize the psections list.
173
-
174
- This list contains the Python representation of the psections of
175
- this morphology.
176
- """
177
- for hsection in self.all:
178
- secname = neuron.h.secname(sec=hsection)
179
- self.secname_to_hsection[secname] = hsection
180
- self.secname_to_psection[secname] = psection.PSection(hsection)
181
-
182
- # section are not serialized yet, do it now
183
- if self.serialized is None:
184
- self.serialized = SerializedSections(public_hoc_cell(self.cell))
185
-
186
- for isec in self.serialized.isec2sec:
187
- hsection = self.get_hsection(isec)
188
- if hsection:
189
- secname = neuron.h.secname(sec=hsection)
190
- self.psections[isec] = self.secname_to_psection[secname]
191
- self.psections[isec].isec = isec
192
- self.secname_to_isec[secname] = isec
193
-
194
- # Set the parents and children of all the psections
195
- for psec in self.psections.values():
196
- hparent = psec.hparent
197
- if hparent:
198
- parentname = neuron.h.secname(sec=hparent)
199
- psec.pparent = self.get_psection(secname=parentname)
200
- else:
201
- psec.pparent = None
202
-
203
- for hchild in psec.hchildren:
204
- childname = neuron.h.secname(sec=hchild)
205
- pchild = self.get_psection(secname=childname)
206
- psec.add_pchild(pchild)
207
-
208
- def get_section_id(self, secname: str) -> int:
209
- """Returns the id of the section with name secname."""
210
- return self.secname_to_psection[secname].isec
211
-
212
177
  def re_init_rng(self, use_random123_stochkv: bool = False) -> None:
213
178
  """Reinitialize the random number generator for stochastic channels."""
214
179
 
@@ -233,44 +198,16 @@ class Cell(InjectableMixin, PlottableMixin):
233
198
  else:
234
199
  self.cell.re_init_rng()
235
200
 
236
- def get_psection(self, section_id=None, secname=None):
237
- """Return a python section with the specified section id or name.
238
-
239
- Parameters
240
- ----------
241
- section_id: int
242
- Return the PSection object based on section id
243
- secname: string
244
- Return the PSection object based on section name
245
-
246
- Returns
247
- -------
248
- psection: PSection
249
- PSection object of the specified section id or name
250
- """
251
- if section_id is not None:
201
+ def get_psection(self, section_id: int | str) -> PSection:
202
+ """Return a python section with the specified section id."""
203
+ if isinstance(section_id, int):
252
204
  return self.psections[section_id]
253
- elif secname is not None:
254
- return self.secname_to_psection[secname]
205
+ elif isinstance(section_id, str):
206
+ return self.secname_to_psection[section_id]
255
207
  else:
256
- raise Exception(
257
- "Cell: get_psection requires or a section_id or a secname")
258
-
259
- def get_hsection(self, section_id: int | float) -> NeuronSection:
260
- """Use the serialized object to find a hoc section from a section
261
- id."""
262
- section_id = int(section_id)
263
- # section are not serialized yet, do it now
264
- if self.serialized is None:
265
- self.serialized = SerializedSections(public_hoc_cell(self.cell))
266
-
267
- try:
268
- sec_ref = self.serialized.isec2sec[section_id]
269
- except IndexError as e:
270
- raise IndexError(
271
- f"bluecellulab get_hsection: section-id {section_id} not found in {self.morphology_path}"
272
- ) from e
273
- return sec_ref.sec
208
+ raise BluecellulabError(
209
+ f"Section id must be an int or a str, not {type(section_id)}"
210
+ )
274
211
 
275
212
  def make_passive(self) -> None:
276
213
  """Make the cell passive by deactivating all the active channels."""
@@ -551,7 +488,8 @@ class Cell(InjectableMixin, PlottableMixin):
551
488
 
552
489
  base_seed = self.rng_settings.base_seed
553
490
  weight = syn_description[SynapseProperty.G_SYNX]
554
- post_sec_id = syn_description[SynapseProperty.POST_SECTION_ID]
491
+ # numpy int to int
492
+ post_sec_id = int(syn_description[SynapseProperty.POST_SECTION_ID])
555
493
 
556
494
  location = SynapseFactory.determine_synapse_location(
557
495
  syn_description, self
@@ -572,7 +510,7 @@ class Cell(InjectableMixin, PlottableMixin):
572
510
  spont_minis_rate = inh_mini_frequency
573
511
 
574
512
  if spont_minis_rate is not None and spont_minis_rate > 0:
575
- sec = self.get_hsection(post_sec_id)
513
+ sec = self.get_psection(post_sec_id).hsection
576
514
  # add the *minis*: spontaneous synaptic events
577
515
  self.ips[synapse_id] = neuron.h.\
578
516
  InhPoissonStim(location, sec=sec)
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  """Contains injection functionality for the cell."""
15
-
15
+ from __future__ import annotations
16
16
  import math
17
17
  import warnings
18
18
  import logging
@@ -27,7 +27,7 @@ from bluecellulab.cell.stimuli_generator import (
27
27
  get_relative_shotnoise_params,
28
28
  )
29
29
  from bluecellulab.exceptions import BluecellulabError
30
- from bluecellulab.stimuli import (
30
+ from bluecellulab.stimulus.circuit_stimulus_definitions import (
31
31
  ClampMode,
32
32
  Hyperpolarizing,
33
33
  Noise,
@@ -36,7 +36,8 @@ from bluecellulab.stimuli import (
36
36
  RelativeOrnsteinUhlenbeck,
37
37
  RelativeShotNoise,
38
38
  )
39
- from bluecellulab.type_aliases import HocObjectType
39
+ from bluecellulab.stimulus.factory import StimulusFactory
40
+ from bluecellulab.type_aliases import NeuronSection
40
41
 
41
42
 
42
43
  logger = logging.getLogger(__name__)
@@ -69,36 +70,62 @@ class InjectableMixin:
69
70
  self.persistent.append(tstim)
70
71
  return tstim
71
72
 
72
- def add_step(self, start_time, stop_time, level, section=None, segx=0.5):
73
- """Add a step current injection."""
74
- if section is None:
75
- section = self.soma
76
-
77
- tstim = neuron.h.TStim(segx, sec=section)
78
- duration = stop_time - start_time
79
- tstim.pulse(start_time, duration, level)
80
- self.persistent.append(tstim)
81
- return tstim
73
+ def add_step(
74
+ self,
75
+ start_time: float,
76
+ stop_time: float,
77
+ level: float,
78
+ section: NeuronSection | None = None,
79
+ segx: float = 0.5,
80
+ dt: float = 0.025
81
+ ) -> tuple[np.ndarray, np.ndarray]:
82
+ """Add a step current injection.
82
83
 
83
- def add_ramp(self, start_time, stop_time, start_level, stop_level,
84
- section=None, segx=0.5):
85
- """Add a ramp current injection."""
86
- if section is None:
87
- section = self.soma
84
+ Args:
85
+ start_time: Start time of the step injection in seconds.
86
+ stop_time: Stop time of the step injection in seconds.
87
+ level: Current level to inject in nanoamperes (nA).
88
+ section: The section to inject current into.
89
+ Defaults to the soma section.
90
+ segx: The fractional location within the section to inject.
91
+ Defaults to 0.5 (center of the section).
92
+
93
+ Returns:
94
+ Tuple of time and current data.
95
+ """
96
+ stim = StimulusFactory(dt=dt).step(start_time, stop_time, level)
97
+ t_content, i_content = stim.time, stim.current
98
+ self.inject_current_waveform(t_content, i_content, section, segx)
99
+ return (t_content, i_content)
88
100
 
89
- tstim = neuron.h.TStim(segx, sec=section)
101
+ def add_ramp(
102
+ self,
103
+ start_time: float,
104
+ stop_time: float,
105
+ start_level: float,
106
+ stop_level: float,
107
+ section: NeuronSection | None = None,
108
+ segx: float = 0.5,
109
+ dt: float = 0.025
110
+ ) -> tuple[np.ndarray, np.ndarray]:
111
+ """Add a ramp current injection.
90
112
 
91
- tstim.ramp(
92
- 0.0,
93
- start_time,
94
- start_level,
95
- stop_level,
96
- stop_time - start_time,
97
- 0.0,
98
- 0.0)
113
+ Args:
114
+ start_time: Start time of the ramp injection in seconds.
115
+ stop_time: Stop time of the ramp injection in seconds.
116
+ start_level: Current level at the start of the ramp in nanoamperes (nA).
117
+ stop_level: Current level at the end of the ramp in nanoamperes (nA).
118
+ section: The section to inject current into (optional). Defaults to soma.
119
+ segx: The fractional location within the section to inject (optional).
120
+
121
+ Returns:
122
+ A tuple of numpy arrays containing time and current data.
123
+ """
124
+ stim = StimulusFactory(dt=dt).ramp(start_time, stop_time, start_level, stop_level)
125
+ t_content, i_content = stim.time, stim.current
126
+ self.inject_current_waveform(t_content, i_content, section, segx)
99
127
 
100
- self.persistent.append(tstim)
101
- return tstim
128
+ return t_content, i_content
102
129
 
103
130
  def add_voltage_clamp(
104
131
  self, stop_time, level, rs=None, section=None, segx=0.5,
@@ -395,32 +422,22 @@ class InjectableMixin:
395
422
  else:
396
423
  return self.inject_current_clamp_signal(section, segx, tvec, svec)
397
424
 
398
- def inject_current_waveform(self, t_content, i_content, section=None,
399
- segx=0.5):
400
- """Inject a custom current to the cell."""
401
- start_time = t_content[0]
402
- stop_time = t_content[-1]
403
- time = neuron.h.Vector()
404
- currents = neuron.h.Vector()
405
- time = time.from_python(t_content)
406
- currents = currents.from_python(i_content)
407
-
425
+ def inject_current_waveform(self, t_content, i_content, section=None, segx=0.5):
426
+ """Inject a custom current waveform into the cell."""
408
427
  if section is None:
409
428
  section = self.soma
429
+
430
+ time_vector = neuron.h.Vector().from_python(t_content)
431
+ current_vector = neuron.h.Vector().from_python(i_content)
432
+
410
433
  pulse = neuron.h.IClamp(segx, sec=section)
411
- self.persistent.append(pulse)
412
- self.persistent.append(time)
413
- self.persistent.append(currents)
414
- setattr(pulse, 'del', start_time)
415
- pulse.dur = stop_time - start_time
416
- currents.play(pulse._ref_amp, time)
417
- return currents
418
-
419
- @deprecated("Use inject_current_waveform instead.")
420
- def injectCurrentWaveform(self, t_content, i_content, section=None,
421
- segx=0.5):
422
- """Inject a current in the cell."""
423
- return self.inject_current_waveform(t_content, i_content, section, segx)
434
+ self.persistent.extend([pulse, time_vector, current_vector])
435
+
436
+ pulse.delay = t_content[0]
437
+ pulse.dur = t_content[-1] - t_content[0]
438
+ current_vector.play(pulse._ref_amp, time_vector)
439
+
440
+ return current_vector
424
441
 
425
442
  @deprecated("Use add_sin_current instead.")
426
443
  def addSineCurrentInject(self, start_time, stop_time, freq,
@@ -435,7 +452,7 @@ class InjectableMixin:
435
452
  t_content = np.arange(start_time, stop_time, dt)
436
453
  i_content = [amplitude * math.sin(freq * (x - start_time) * (
437
454
  2 * math.pi)) + mid_level for x in t_content]
438
- self.injectCurrentWaveform(t_content, i_content)
455
+ self.inject_current_waveform(t_content, i_content)
439
456
  return (t_content, i_content)
440
457
 
441
458
  def add_sin_current(self, amp, start_time, duration, frequency,
@@ -454,9 +471,9 @@ class InjectableMixin:
454
471
  tau: float,
455
472
  gmax: float,
456
473
  e: float,
457
- section: HocObjectType,
474
+ section: NeuronSection,
458
475
  segx=0.5,
459
- ) -> HocObjectType:
476
+ ) -> NeuronSection:
460
477
  """Add an AlphaSynapse NEURON point process stimulus to the cell."""
461
478
  syn = neuron.h.AlphaSynapse(segx, sec=section)
462
479
  syn.onset = onset
@@ -60,7 +60,6 @@ class PlottableMixin:
60
60
  scale_bar_size=10.0,
61
61
  fig_title=None):
62
62
  """Show a dendrogram of the cell."""
63
- self.init_psections()
64
63
  cell_dendrogram = bluecellulab.Dendrogram(
65
64
  self.psections,
66
65
  variable=variable,
@@ -13,11 +13,11 @@
13
13
  # limitations under the License.
14
14
  """Module that allows morphology sections to be accessed from an array by
15
15
  index."""
16
-
16
+ from __future__ import annotations
17
17
  import logging
18
18
  import warnings
19
19
  import neuron
20
- from bluecellulab.type_aliases import HocObjectType
20
+ from bluecellulab.type_aliases import HocObjectType, NeuronSection
21
21
 
22
22
 
23
23
  logger = logging.getLogger(__name__)
@@ -27,7 +27,7 @@ warnings.filterwarnings("once", category=UserWarning, module=__name__)
27
27
  class SerializedSections:
28
28
 
29
29
  def __init__(self, cell: HocObjectType) -> None:
30
- self.isec2sec = {}
30
+ self.isec2sec: dict[int, NeuronSection] = {}
31
31
  n = cell.nSecAll
32
32
 
33
33
  for index, sec in enumerate(cell.all, start=1):
@@ -25,7 +25,7 @@ if BLUEPY_AVAILABLE:
25
25
  from bluepy.utils import open_utf8
26
26
 
27
27
  from bluecellulab.circuit.config.sections import Conditions, ConnectionOverrides
28
- from bluecellulab.stimuli import Stimulus
28
+ from bluecellulab.stimulus.circuit_stimulus_definitions import Stimulus
29
29
 
30
30
 
31
31
  class BluepySimulationConfig:
@@ -18,7 +18,7 @@ from typing import Optional, Protocol
18
18
 
19
19
 
20
20
  from bluecellulab.circuit.config.sections import Conditions, ConnectionOverrides
21
- from bluecellulab.stimuli import Stimulus
21
+ from bluecellulab.stimulus.circuit_stimulus_definitions import Stimulus
22
22
 
23
23
 
24
24
  class SimulationConfig(Protocol):
@@ -17,7 +17,7 @@ from pathlib import Path
17
17
  from typing import Optional
18
18
 
19
19
  from bluecellulab.circuit.config.sections import Conditions, ConnectionOverrides
20
- from bluecellulab.stimuli import Stimulus
20
+ from bluecellulab.stimulus.circuit_stimulus_definitions import Stimulus
21
21
 
22
22
  from bluepysnap import Simulation as SnapSimulation
23
23
 
@@ -12,8 +12,54 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  """Class that represents a dendrogram window."""
15
-
15
+ from __future__ import annotations
16
16
  import numpy as np
17
+ import pylab
18
+
19
+ from bluecellulab.psection import PSection
20
+ from bluecellulab.psegment import PSegment
21
+
22
+
23
+ def setup_draw(psegments: list[PSegment], maxsegdiam: float, figure, x, y, variable=None, varbounds=None) -> None:
24
+ """Setup draw of psection."""
25
+ y_accum = 0.0
26
+ for psegment in psegments:
27
+ psegment.setupDraw(figure,
28
+ x + (maxsegdiam - psegment.diam) / 2,
29
+ y + y_accum,
30
+ variable=variable,
31
+ varbounds=varbounds)
32
+ y_accum += psegment.L
33
+
34
+
35
+ def draw_tree(psection: PSection, figure, x, y, variable=None, varbounds=None) -> None:
36
+ """Draw a dendritic tree."""
37
+ # Draw myself
38
+ setup_draw(
39
+ psection.psegments, psection.maxsegdiam, figure, x, y, variable=variable, varbounds=varbounds
40
+ )
41
+
42
+ # Draw children
43
+
44
+ # First child is a same x coordinate
45
+ new_x = x # + self.L + self.xSpacing
46
+
47
+ # Children drawn L + ySpacing heigher
48
+ new_y = y + psection.L + psection.ySpacing
49
+
50
+ for child in psection.pchildren:
51
+ draw_tree(child, figure, new_x, new_y, variable=variable, varbounds=varbounds)
52
+ pylab.plot(
53
+ [x + psection.diam / 2, new_x + child.diam / 2],
54
+ [y + psection.L, new_y], 'k')
55
+ # Prepare new_x for next child
56
+ new_x = new_x + child.tree_width()
57
+
58
+
59
+ def redraw_psection(psection: PSection) -> None:
60
+ """Redraw psection."""
61
+ for psegment in psection.psegments:
62
+ psegment.redraw()
17
63
 
18
64
 
19
65
  class Dendrogram:
@@ -21,7 +67,7 @@ class Dendrogram:
21
67
 
22
68
  def __init__(
23
69
  self,
24
- psections,
70
+ psections: list[PSection],
25
71
  variable=None,
26
72
  active=False,
27
73
  save_fig_path=None,
@@ -30,7 +76,6 @@ class Dendrogram:
30
76
  scale_bar_size=10.0,
31
77
  fig_title=None,
32
78
  fig_show=True):
33
- import pylab
34
79
 
35
80
  if interactive:
36
81
  pylab.ion()
@@ -48,15 +93,14 @@ class Dendrogram:
48
93
  self.psections = psections
49
94
  # neuron.h.finitialize()
50
95
 
51
- # self.hroot = neuron.h.SectionRef(sec=self.sections[0]).root
52
- self.proot = psections[0]
53
- # self.psections = [self.proot] + self.proot.getAllPDescendants()
96
+ self.proot: PSection = psections[0]
97
+ self.psections = [self.proot] + self.proot.all_descendants()
54
98
 
55
99
  xSpacing = self.proot.xSpacing
56
100
  ySpacing = self.proot.ySpacing
57
101
 
58
- max_y = self.proot.treeHeight() + self.proot.ySpacing + title_space
59
- max_x = self.proot.treeWidth() + self.proot.xSpacing + scale_bar_size
102
+ max_y = self.proot.tree_height() + self.proot.ySpacing + title_space
103
+ max_x = self.proot.tree_width() + self.proot.xSpacing + scale_bar_size
60
104
  pylab.xlim([0, max_x])
61
105
  pylab.ylim([0, max_y])
62
106
  pylab.gca().set_xticks([])
@@ -79,9 +123,9 @@ class Dendrogram:
79
123
  cbar.ax.set_yticklabels(["%.2e" % (
80
124
  varbounds[0]), "%.2e" % (varbounds[1])])
81
125
 
82
- self.proot.drawTree(self.dend_figure, self.proot.xSpacing,
83
- self.proot.ySpacing, variable=variable,
84
- varbounds=varbounds)
126
+ draw_tree(self.proot, self.dend_figure, self.proot.xSpacing,
127
+ self.proot.ySpacing, variable=variable,
128
+ varbounds=varbounds)
85
129
 
86
130
  if scale_bar:
87
131
  pylab.plot(
@@ -119,8 +163,10 @@ class Dendrogram:
119
163
 
120
164
  self.dend_figure.canvas.draw()
121
165
 
122
- for secid in self.psections:
123
- psections[secid].redraw()
166
+ for section in self.psections:
167
+ section_id = section.isec
168
+ if section_id is not None:
169
+ redraw_psection(psections[section_id])
124
170
 
125
171
  self.canvas = self.dend_figure.gca().figure.canvas
126
172
  self.ax = self.dend_figure.gca()
@@ -138,15 +184,13 @@ class Dendrogram:
138
184
  if not interactive and fig_show:
139
185
  pylab.show()
140
186
 
141
- def redraw(self):
187
+ def redraw(self) -> None:
142
188
  """Redraw the dendrogram."""
143
189
  if self.active:
144
190
  if not self.drawCount:
145
191
  for psection in self.psections:
146
- psection.redraw()
192
+ redraw_psection(psection)
147
193
  self.canvas.blit(self.ax.bbox)
148
194
  self.drawCount = 1
149
195
  else:
150
196
  self.drawCount = self.drawCount - 1
151
-
152
- return True