bluecellulab 2.4.0__tar.gz → 2.4.1__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 (434) hide show
  1. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/CHANGELOG.rst +7 -0
  2. bluecellulab-2.4.1/Makefile +6 -0
  3. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/PKG-INFO +1 -1
  4. bluecellulab-2.4.1/bluecellulab/analysis/inject_sequence.py +130 -0
  5. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/core.py +57 -23
  6. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/injector.py +6 -6
  7. bluecellulab-2.4.1/bluecellulab/cell/recording.py +8 -0
  8. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/template.py +8 -1
  9. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/type_aliases.py +4 -1
  10. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/utils.py +8 -2
  11. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab.egg-info/PKG-INFO +1 -1
  12. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab.egg-info/SOURCES.txt +7 -0
  13. bluecellulab-2.4.1/examples/1-singlecell/README.md +5 -0
  14. bluecellulab-2.4.1/examples/6-stimuli-sequence/stimuli-sequence.ipynb +458 -0
  15. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/README.rst +4 -2
  16. bluecellulab-2.4.1/tests/test_analysis/test_inject_sequence.py +58 -0
  17. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_core.py +36 -4
  18. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_injector.py +2 -1
  19. bluecellulab-2.4.1/tests/test_cell/test_recording.py +10 -0
  20. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_template.py +8 -0
  21. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_graph.py +2 -0
  22. bluecellulab-2.4.1/tests/test_synapse/__init__.py +0 -0
  23. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tox.ini +1 -1
  24. bluecellulab-2.4.0/Makefile +0 -8
  25. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.compile_mod.sh +0 -0
  26. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.gitattributes +0 -0
  27. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.github/dependabot.yml +0 -0
  28. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.github/workflows/release.yml +0 -0
  29. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.github/workflows/test.yml +0 -0
  30. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.gitignore +0 -0
  31. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.gitlab-ci.yml +0 -0
  32. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.readthedocs.yml +0 -0
  33. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/.zenodo.json +0 -0
  34. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/AUTHORS.txt +0 -0
  35. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/LICENSE +0 -0
  36. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/MANIFEST.in +0 -0
  37. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/README.rst +0 -0
  38. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/__init__.py +0 -0
  39. {bluecellulab-2.4.0/tests/helpers → bluecellulab-2.4.1/bluecellulab/analysis}/__init__.py +0 -0
  40. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/__init__.py +0 -0
  41. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/ballstick/__init__.py +0 -0
  42. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
  43. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/ballstick/morphology.asc +0 -0
  44. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/cell_dict.py +0 -0
  45. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/plotting.py +0 -0
  46. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/random.py +0 -0
  47. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/section_distance.py +0 -0
  48. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/serialized_sections.py +0 -0
  49. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/sonata_proxy.py +0 -0
  50. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/cell/stimuli_generator.py +0 -0
  51. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/__init__.py +0 -0
  52. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/circuit_access/__init__.py +0 -0
  53. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +0 -0
  54. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/circuit_access/definition.py +0 -0
  55. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/circuit_access/sonata_circuit_access.py +0 -0
  56. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/config/__init__.py +0 -0
  57. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/config/bluepy_simulation_config.py +0 -0
  58. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/config/definition.py +0 -0
  59. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/config/sections.py +0 -0
  60. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/config/sonata_simulation_config.py +0 -0
  61. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/format.py +0 -0
  62. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/iotools.py +0 -0
  63. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/node_id.py +0 -0
  64. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/simulation_access.py +0 -0
  65. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/synapse_properties.py +0 -0
  66. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/circuit/validate.py +0 -0
  67. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/connection.py +0 -0
  68. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/dendrogram.py +0 -0
  69. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/exceptions.py +0 -0
  70. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/graph.py +0 -0
  71. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/hoc/Cell.hoc +0 -0
  72. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/hoc/RNGSettings.hoc +0 -0
  73. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/hoc/TDistFunc.hoc +0 -0
  74. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/hoc/TStim.hoc +0 -0
  75. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/hoc/fileUtils.hoc +0 -0
  76. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/importer.py +0 -0
  77. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/neuron_interpreter.py +0 -0
  78. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/plotwindow.py +0 -0
  79. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/psection.py +0 -0
  80. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/psegment.py +0 -0
  81. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/rngsettings.py +0 -0
  82. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/simulation/__init__.py +0 -0
  83. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/simulation/neuron_globals.py +0 -0
  84. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/simulation/simulation.py +0 -0
  85. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/ssim.py +0 -0
  86. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/stimulus/__init__.py +0 -0
  87. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/stimulus/circuit_stimulus_definitions.py +0 -0
  88. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/stimulus/factory.py +0 -0
  89. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/synapse/__init__.py +0 -0
  90. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/synapse/synapse_factory.py +0 -0
  91. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/synapse/synapse_types.py +0 -0
  92. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/tools.py +0 -0
  93. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab/verbosity.py +0 -0
  94. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab.egg-info/dependency_links.txt +0 -0
  95. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab.egg-info/requires.txt +0 -0
  96. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/bluecellulab.egg-info/top_level.txt +0 -0
  97. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/Makefile +0 -0
  98. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/images/voltage-readme.png +0 -0
  99. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/make.bat +0 -0
  100. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/requirements_docs.txt +0 -0
  101. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/_static/.gitkeep +0 -0
  102. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/api.rst +0 -0
  103. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/changelog.rst +0 -0
  104. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/compiling-mechanisms.rst +0 -0
  105. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/conf.py +0 -0
  106. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/index.rst +0 -0
  107. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/list_of_stim.rst +0 -0
  108. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
  109. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/1-singlecell/hoc/cADpyr_L2TPC.hoc +0 -0
  110. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/1-singlecell/morphology/rr110330_C3_idA.asc +0 -0
  111. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/1-singlecell/singlecell.ipynb +0 -0
  112. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  113. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  114. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  115. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  116. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  117. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  118. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  119. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  120. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  121. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  122. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  123. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  124. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  125. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  126. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  127. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  128. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  129. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  130. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  131. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  132. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  133. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  134. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  135. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  136. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  137. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  138. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  139. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  140. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  141. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  142. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  143. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  144. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  145. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  146. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  147. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  148. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  149. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  150. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  151. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  152. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  153. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  154. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  155. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/2-sonata-network/sonata-network.ipynb +0 -0
  156. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/3-bpap/bpap.ipynb +0 -0
  157. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/epsp.ipynb +0 -0
  158. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/cacumm.mod +0 -0
  159. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/cagk.mod +0 -0
  160. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/cal2.mod +0 -0
  161. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/can2.mod +0 -0
  162. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/cat.mod +0 -0
  163. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/h.mod +0 -0
  164. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/kadist.mod +0 -0
  165. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/kaprox.mod +0 -0
  166. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/kca.mod +0 -0
  167. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/kdb.mod +0 -0
  168. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/kdrbca1.mod +0 -0
  169. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/kmb.mod +0 -0
  170. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hippocampus_mechanisms/na3n.mod +0 -0
  171. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/hoc/cell_seed2_0.hoc +0 -0
  172. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/4-epsp/morphology/011017HP2.asc +0 -0
  173. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/5-stimuli/stimuli.ipynb +0 -0
  174. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/Ca.mod +0 -0
  175. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/CaDynamics_DC0.mod +0 -0
  176. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/CaDynamics_E2.mod +0 -0
  177. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/Ca_HVA.mod +0 -0
  178. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/Ca_HVA2.mod +0 -0
  179. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/Ca_LVAst.mod +0 -0
  180. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/DetAMPANMDA.mod +0 -0
  181. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/DetGABAAB.mod +0 -0
  182. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/GluSynapse.mod +0 -0
  183. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/Ih.mod +0 -0
  184. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/Im.mod +0 -0
  185. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/K_Pst.mod +0 -0
  186. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/K_Tst.mod +0 -0
  187. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/KdShu2007.mod +0 -0
  188. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/NaTa_t.mod +0 -0
  189. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/NaTg.mod +0 -0
  190. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/NaTs2_t.mod +0 -0
  191. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/Nap_Et2.mod +0 -0
  192. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  193. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/ProbGABAAB_EMS.mod +0 -0
  194. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/README.md +0 -0
  195. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/SK_E2.mod +0 -0
  196. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/SKv3_1.mod +0 -0
  197. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/StochKv.mod +0 -0
  198. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/StochKv3.mod +0 -0
  199. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/TTXDynamicsSwitch.mod +0 -0
  200. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/VecStim.mod +0 -0
  201. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/gap.mod +0 -0
  202. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/mechanisms/netstim_inhpoisson.mod +0 -0
  203. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/examples/readme-plot.ipynb +0 -0
  204. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/pyproject.toml +0 -0
  205. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/setup.cfg +0 -0
  206. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/setup.py +0 -0
  207. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/__init__.py +0 -0
  208. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/data/synapse_replay_file/spikes.dat +0 -0
  209. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/ballstick_cell/analytic_expsyn.txt +0 -0
  210. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/ballstick_cell/ballstick.asc +0 -0
  211. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/ballstick_cell/ballstick.hoc +0 -0
  212. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/ballstick_cell/bs.cfg +0 -0
  213. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/bpo_cell/0_cADpyr_L5TPC_a6e707a_1_sNone.hoc +0 -0
  214. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/bpo_cell/C060114A5.asc +0 -0
  215. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example1/test_cell.asc +0 -0
  216. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example1/test_cell.hoc +0 -0
  217. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example1/test_cell_longname1.hoc +0 -0
  218. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example2/test_cell.asc +0 -0
  219. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example2/test_cell.hoc +0 -0
  220. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example_cstut/cSTUT_7.hoc +0 -0
  221. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example_cstut/test_cell.asc +0 -0
  222. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example_empty/test_cell.asc +0 -0
  223. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example_empty/test_cell.hoc +0 -0
  224. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/cell_example_empty/test_cell_v6a.hoc +0 -0
  225. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/circuit_config.json +0 -0
  226. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg141017_a1_2_idC_2019032814340.hoc +0 -0
  227. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg141217_A_idB_2019030511280.hoc +0 -0
  228. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg150305_A_idB_2019030511201.hoc +0 -0
  229. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idB_2019030510521.hoc +0 -0
  230. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idF_2019030511545.hoc +0 -0
  231. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idJ_2019032814272.hoc +0 -0
  232. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  233. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  234. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  235. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  236. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  237. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  238. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  239. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  240. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  241. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  242. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/copy-hoc-morphs.ipynb +0 -0
  243. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/edges/edges.h5 +0 -0
  244. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hippocampus_projections/nodes.h5 +0 -0
  245. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hoc-and-morphs.csv +0 -0
  246. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/id_mapping.json +0 -0
  247. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/node_sets.json +0 -0
  248. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/nodes/nodes.h5 +0 -0
  249. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/circuit_sonata.json +0 -0
  250. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/components/hoc/cADpyr_L2TPC.hoc +0 -0
  251. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/components/hoc/cNAC_L23BTC.hoc +0 -0
  252. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/C210401C.asc +0 -0
  253. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/rr110330_C3_idA.asc +0 -0
  254. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/C210401C.swc +0 -0
  255. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/rr110330_C3_idA.swc +0 -0
  256. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5 +0 -0
  257. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5.txt +0 -0
  258. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/node_sets.json +0 -0
  259. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5 +0 -0
  260. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5.txt +0 -0
  261. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  262. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  263. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  264. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  265. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  266. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  267. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  268. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  269. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  270. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  271. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  272. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  273. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  274. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/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
  275. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  276. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  277. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  278. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  279. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  280. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  281. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  282. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  283. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  284. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  285. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  286. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  287. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/hippocampus_opt_cell_template/README.md +0 -0
  288. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/hippocampus_opt_cell_template/electrophysiology/cell.hoc +0 -0
  289. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/hippocampus_opt_cell_template/morphology/cell.asc +0 -0
  290. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/legacy_circuitconfig/CircuitConfig +0 -0
  291. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_bluepy/BlueConfig +0 -0
  292. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_bluepy/BlueConfig.SUCCESS +0 -0
  293. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_bluepy/output/out.dat +0 -0
  294. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_bluepy/output/out.h5 +0 -0
  295. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_bluepy/output/populations_offset.dat +0 -0
  296. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_bluepy/output/soma_SONATA.h5 +0 -0
  297. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_bluepy/user.target +0 -0
  298. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/circuit_sonata.json +0 -0
  299. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/out.h5 +0 -0
  300. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/populations_offset.dat +0 -0
  301. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/soma.h5 +0 -0
  302. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/out.h5 +0 -0
  303. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/populations_offset.dat +0 -0
  304. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/soma.h5 +0 -0
  305. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/simulation_config.json.SUCCESS +0 -0
  306. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json +0 -0
  307. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json.SUCCESS +0 -0
  308. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json +0 -0
  309. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json.SUCCESS +0 -0
  310. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  311. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  312. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  313. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  314. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  315. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  316. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  317. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  318. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  319. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  320. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  321. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  322. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  323. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  324. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  325. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  326. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  327. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/condition_parameters/circuit_sonata.json +0 -0
  328. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/condition_parameters/node_sets.json +0 -0
  329. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/condition_parameters/sim_conf/populations_offset.dat +0 -0
  330. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config.json +0 -0
  331. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config_many_inputs.json +0 -0
  332. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/circuit_config.json +0 -0
  333. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/echo +0 -0
  334. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/node_sets.json +0 -0
  335. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/output_sonata/out.h5 +0 -0
  336. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/output_sonata/populations_offset.dat +0 -0
  337. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/output_sonata/soma.h5 +0 -0
  338. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json +0 -0
  339. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json.SUCCESS +0 -0
  340. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/synapse_replay/circuit_config.json +0 -0
  341. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/synapse_replay/node_sets.json +0 -0
  342. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/synapse_replay/simulation_config.json +0 -0
  343. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/sonata_unit_test_sims/synapse_replay/synapse_replay.dat +0 -0
  344. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/tapertest_cells/notaper_cell.hoc +0 -0
  345. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/tapertest_cells/taper_cell.hoc +0 -0
  346. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/examples/tapertest_cells/test_cell.asc +0 -0
  347. {bluecellulab-2.4.0/tests/test_cell → bluecellulab-2.4.1/tests/helpers}/__init__.py +0 -0
  348. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/helpers/os_utils.py +0 -0
  349. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/Ca.mod +0 -0
  350. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/CaDynamics_DC0.mod +0 -0
  351. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/CaDynamics_E2.mod +0 -0
  352. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/Ca_HVA.mod +0 -0
  353. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/Ca_HVA2.mod +0 -0
  354. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/Ca_LVAst.mod +0 -0
  355. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/DetAMPANMDA.mod +0 -0
  356. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/DetGABAAB.mod +0 -0
  357. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/GluSynapse.mod +0 -0
  358. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/Ih.mod +0 -0
  359. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/Im.mod +0 -0
  360. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/K_Pst.mod +0 -0
  361. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/K_Tst.mod +0 -0
  362. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/KdShu2007.mod +0 -0
  363. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/NaTa_t.mod +0 -0
  364. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/NaTg.mod +0 -0
  365. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/NaTs2_t.mod +0 -0
  366. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/Nap_Et2.mod +0 -0
  367. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  368. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/ProbGABAAB_EMS.mod +0 -0
  369. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/README.md +0 -0
  370. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/SK_E2.mod +0 -0
  371. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/SKv3_1.mod +0 -0
  372. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/StochKv.mod +0 -0
  373. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/StochKv3.mod +0 -0
  374. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/TTXDynamicsSwitch.mod +0 -0
  375. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/VecStim.mod +0 -0
  376. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/cacumm.mod +0 -0
  377. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/cacummb.mod +0 -0
  378. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/cagk.mod +0 -0
  379. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/cal2.mod +0 -0
  380. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/can2.mod +0 -0
  381. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/cat.mod +0 -0
  382. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/gap.mod +0 -0
  383. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/h.mod +0 -0
  384. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kadist.mod +0 -0
  385. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kaprox.mod +0 -0
  386. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kca.mod +0 -0
  387. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kd.mod +0 -0
  388. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kd2.mod +0 -0
  389. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kdb.mod +0 -0
  390. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kdrbca1.mod +0 -0
  391. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kdrca1.mod +0 -0
  392. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/km.mod +0 -0
  393. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/kmb.mod +0 -0
  394. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/na3n.mod +0 -0
  395. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/naxn.mod +0 -0
  396. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/mechanisms/netstim_inhpoisson.mod +0 -0
  397. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_ballstick.py +0 -0
  398. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_bglib.py +0 -0
  399. {bluecellulab-2.4.0/tests/test_circuit → bluecellulab-2.4.1/tests/test_cell}/__init__.py +0 -0
  400. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_cell_dict.py +0 -0
  401. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_random.py +0 -0
  402. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_serialized_sections.py +0 -0
  403. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_sonata_proxy.py +0 -0
  404. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_cell/test_stimuli_generator.py +0 -0
  405. {bluecellulab-2.4.0/tests/test_simulation → bluecellulab-2.4.1/tests/test_circuit}/__init__.py +0 -0
  406. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_circuit_access.py +0 -0
  407. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_config_sections.py +0 -0
  408. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_format.py +0 -0
  409. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_node_id.py +0 -0
  410. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_simulation_access.py +0 -0
  411. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_simulation_config.py +0 -0
  412. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_synapse_properties.py +0 -0
  413. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_circuit/test_validate.py +0 -0
  414. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_exceptions.py +0 -0
  415. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_importer.py +0 -0
  416. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_load.py +0 -0
  417. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_neuron_interpreter.py +0 -0
  418. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_psection.py +0 -0
  419. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_rngsettings.py +0 -0
  420. {bluecellulab-2.4.0/tests/test_stimulus → bluecellulab-2.4.1/tests/test_simulation}/__init__.py +0 -0
  421. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_simulation/test_neuron_globals.py +0 -0
  422. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_simulation/test_simulation.py +0 -0
  423. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_ssim.py +0 -0
  424. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_ssim_sonata.py +0 -0
  425. {bluecellulab-2.4.0/tests/test_synapse → bluecellulab-2.4.1/tests/test_stimulus}/__init__.py +0 -0
  426. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_stimulus/test_circuit_stimulus_definitions.py +0 -0
  427. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_stimulus/test_factory.py +0 -0
  428. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_synapse/test-synapse-series.json +0 -0
  429. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_synapse/test_synapse.py +0 -0
  430. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_synapse/test_synapse_factory.py +0 -0
  431. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_tools.py +0 -0
  432. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_ttx.py +0 -0
  433. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_utils.py +0 -0
  434. {bluecellulab-2.4.0 → bluecellulab-2.4.1}/tests/test_verbosity.py +0 -0
@@ -1,6 +1,13 @@
1
1
  Changelog
2
2
  ==========
3
3
 
4
+ 2.4.1
5
+ ------
6
+
7
+ * add analysis/inject_sequence.py to inject multiple stim to the same cell in isolation
8
+ * core.py:: rename attribute 'all' to 'sections'
9
+ * have a class TemplateParams to represent all template related values
10
+
4
11
  2.4.0
5
12
  ------
6
13
 
@@ -0,0 +1,6 @@
1
+ clean:
2
+ rm -f .coverage
3
+ rm -f coverage.xml
4
+ rm -f *.nrndat
5
+ rm -f .coverage.*
6
+ rm -f python.*.btr
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 2.4.0
3
+ Version: 2.4.1
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
@@ -0,0 +1,130 @@
1
+ """Module for injecting a sequence of protocols to the cell."""
2
+ from __future__ import annotations
3
+ from enum import Enum, auto
4
+ from typing import NamedTuple, Sequence, Dict
5
+
6
+ import neuron
7
+ import numpy as np
8
+ from bluecellulab.cell.core import Cell
9
+ from bluecellulab.cell.template import TemplateParams
10
+ from bluecellulab.simulation.simulation import Simulation
11
+ from bluecellulab.stimulus.factory import Stimulus, StimulusFactory
12
+ from bluecellulab.utils import IsolatedProcess
13
+
14
+
15
+ class StimulusName(Enum):
16
+ """Allowed values for the StimulusName."""
17
+ AP_WAVEFORM = auto()
18
+ IDREST = auto()
19
+ IV = auto()
20
+ FIRE_PATTERN = auto()
21
+
22
+
23
+ class Recording(NamedTuple):
24
+ """A tuple of the current, voltage and time recordings."""
25
+ current: np.ndarray
26
+ voltage: np.ndarray
27
+ time: np.ndarray
28
+
29
+
30
+ StimulusRecordings = Dict[str, Recording]
31
+
32
+
33
+ def run_stimulus(
34
+ template_params: TemplateParams,
35
+ stimulus: Stimulus,
36
+ section: str,
37
+ segment: float,
38
+ duration: float,
39
+ ) -> Recording:
40
+ """Creates a cell and stimulates it with a given stimulus.
41
+
42
+ Args:
43
+ template_params: The parameters to create the cell from a template.
44
+ stimulus: The input stimulus to inject into the cell.
45
+ section: Name of the section of cell where the stimulus is to be injected.
46
+ segment: The segment of the section where the stimulus is to be injected.
47
+ duration: The duration for which the simulation is to be run.
48
+
49
+ Returns:
50
+ The voltage-time recording at the specified location.
51
+
52
+ Raises:
53
+ ValueError: If the time and voltage arrays are not the same length.
54
+ """
55
+ cell = Cell.from_template_parameters(template_params)
56
+ neuron_section = cell.sections[section]
57
+ cell.add_voltage_recording(neuron_section, segment)
58
+ iclamp, _ = cell.inject_current_waveform(
59
+ stimulus.time, stimulus.current, section=neuron_section, segx=segment
60
+ )
61
+ current_vector = neuron.h.Vector()
62
+ current_vector.record(iclamp._ref_i)
63
+ simulation = Simulation(cell)
64
+ simulation.run(duration)
65
+ current = np.array(current_vector.to_python())
66
+ voltage = cell.get_voltage_recording(neuron_section, segment)
67
+ time = cell.get_time()
68
+ if len(time) != len(voltage) or len(time) != len(current):
69
+ raise ValueError("Time, current and voltage arrays are not the same length")
70
+ return Recording(current, voltage, time)
71
+
72
+
73
+ def apply_multiple_step_stimuli(
74
+ cell: Cell,
75
+ stimulus_name: StimulusName,
76
+ amplitudes: Sequence[float],
77
+ duration: float,
78
+ section_name: str | None = None,
79
+ segment: float = 0.5,
80
+ n_processes: int | None = None,
81
+ ) -> StimulusRecordings:
82
+ """Apply multiple stimuli to the cell on isolated processes.
83
+
84
+ Args:
85
+ cell: The cell to which the stimuli are applied.
86
+ stimulus_name: The name of the stimulus to apply.
87
+ amplitudes: The amplitudes of the stimuli to apply.
88
+ duration: The duration for which each stimulus is applied.
89
+ section_name: Section name of the cell where the stimuli are applied.
90
+ If None, the stimuli are applied at the soma[0] of the cell.
91
+ segment: The segment of the section where the stimuli are applied.
92
+ n_processes: The number of processes to use for running the stimuli.
93
+
94
+ Returns:
95
+ A dictionary where the keys are the names of the stimuli and the values
96
+ are the recordings of the cell's response to each stimulus.
97
+
98
+ Raises:
99
+ ValueError: If the stimulus name is not recognized.
100
+ """
101
+ res: StimulusRecordings = {}
102
+ stim_factory = StimulusFactory(dt=1.0)
103
+ task_args = []
104
+ section_name = section_name if section_name is not None else "soma[0]"
105
+
106
+ # Prepare arguments for each stimulus
107
+ for amplitude in amplitudes:
108
+ if stimulus_name == StimulusName.AP_WAVEFORM:
109
+ stimulus = stim_factory.ap_waveform(threshold_current=cell.threshold, threshold_percentage=amplitude)
110
+ elif stimulus_name == StimulusName.IDREST:
111
+ stimulus = stim_factory.idrest(threshold_current=cell.threshold, threshold_percentage=amplitude)
112
+ elif stimulus_name == StimulusName.IV:
113
+ stimulus = stim_factory.iv(threshold_current=cell.threshold, threshold_percentage=amplitude)
114
+ elif stimulus_name == StimulusName.FIRE_PATTERN:
115
+ stimulus = stim_factory.fire_pattern(threshold_current=cell.threshold, threshold_percentage=amplitude)
116
+ else:
117
+ raise ValueError("Unknown stimulus name.")
118
+
119
+ task_args.append((cell.template_params, stimulus, section_name, segment, duration))
120
+
121
+ with IsolatedProcess(processes=n_processes) as pool:
122
+ # Map expects a function and a list of argument tuples
123
+ results = pool.starmap(run_stimulus, task_args)
124
+
125
+ # Associate each result with a key
126
+ for amplitude, result in zip(amplitudes, results):
127
+ key = f"{stimulus_name}_{amplitude}"
128
+ res[key] = result
129
+
130
+ return res
@@ -27,12 +27,13 @@ import numpy as np
27
27
  import pandas as pd
28
28
 
29
29
  import bluecellulab
30
+ from bluecellulab.cell.recording import section_to_voltage_recording_str
30
31
  from bluecellulab.psection import PSection, init_psections
31
32
  from bluecellulab.cell.injector import InjectableMixin
32
33
  from bluecellulab.cell.plotting import PlottableMixin
33
34
  from bluecellulab.cell.section_distance import EuclideanSectionDistance
34
35
  from bluecellulab.cell.sonata_proxy import SonataProxy
35
- from bluecellulab.cell.template import NeuronTemplate, public_hoc_cell
36
+ from bluecellulab.cell.template import NeuronTemplate, TemplateParams, public_hoc_cell
36
37
  from bluecellulab.circuit.config.sections import Conditions
37
38
  from bluecellulab.circuit import EmodelProperties, SynapseProperty
38
39
  from bluecellulab.circuit.node_id import CellId
@@ -44,7 +45,7 @@ from bluecellulab.rngsettings import RNGSettings
44
45
  from bluecellulab.stimulus.circuit_stimulus_definitions import SynapseReplay
45
46
  from bluecellulab.synapse import SynapseFactory, Synapse
46
47
  from bluecellulab.synapse.synapse_types import SynapseID
47
- from bluecellulab.type_aliases import HocObjectType, NeuronSection
48
+ from bluecellulab.type_aliases import HocObjectType, NeuronSection, SectionMapping
48
49
 
49
50
  logger = logging.getLogger(__name__)
50
51
 
@@ -54,6 +55,24 @@ class Cell(InjectableMixin, PlottableMixin):
54
55
 
55
56
  last_id = 0
56
57
 
58
+ @classmethod
59
+ def from_template_parameters(
60
+ cls, template_params: TemplateParams, cell_id: Optional[CellId] = None,
61
+ record_dt: Optional[float] = None
62
+ ) -> Cell:
63
+ """Create a cell from a TemplateParams object.
64
+
65
+ Useful in isolating runs.
66
+ """
67
+ return cls(
68
+ template_path=template_params.template_filepath,
69
+ morphology_path=template_params.morph_filepath,
70
+ cell_id=cell_id,
71
+ record_dt=record_dt,
72
+ template_format=template_params.template_format,
73
+ emodel_properties=template_params.emodel_properties,
74
+ )
75
+
57
76
  @load_hoc_and_mod_files
58
77
  def __init__(self,
59
78
  template_path: str | Path,
@@ -73,6 +92,12 @@ class Cell(InjectableMixin, PlottableMixin):
73
92
  emodel_properties: Template specific emodel properties.
74
93
  """
75
94
  super().__init__()
95
+ self.template_params = TemplateParams(
96
+ template_filepath=template_path,
97
+ morph_filepath=morphology_path,
98
+ template_format=template_format,
99
+ emodel_properties=emodel_properties,
100
+ )
76
101
  if cell_id is None:
77
102
  cell_id = CellId("", Cell.last_id)
78
103
  Cell.last_id += 1
@@ -86,17 +111,16 @@ class Cell(InjectableMixin, PlottableMixin):
86
111
  if emodel_properties is None:
87
112
  raise BluecellulabError('EmodelProperties must be provided for v6 template')
88
113
  self.hypamp: float | None = emodel_properties.holding_current
89
- self.threshold: float | None = emodel_properties.threshold_current
114
+ self.threshold: float = emodel_properties.threshold_current
90
115
  else:
91
116
  try:
92
117
  self.hypamp = self.cell.getHypAmp()
93
118
  except AttributeError:
94
119
  self.hypamp = None
95
-
96
120
  try:
97
121
  self.threshold = self.cell.getThreshold()
98
122
  except AttributeError:
99
- self.threshold = None
123
+ self.threshold = 0.0
100
124
  self.soma = public_hoc_cell(self.cell).soma[0]
101
125
  # WARNING: this finitialize 'must' be here, otherwhise the
102
126
  # diameters of the loaded morph are wrong
@@ -131,6 +155,13 @@ class Cell(InjectableMixin, PlottableMixin):
131
155
  # as the object exists
132
156
  self.persistent: list[HocObjectType] = []
133
157
 
158
+ def _extract_sections(self, sections) -> SectionMapping:
159
+ res: SectionMapping = {}
160
+ for section in sections:
161
+ key_name = str(section).split(".")[-1]
162
+ res[key_name] = section
163
+ return res
164
+
134
165
  @property
135
166
  def somatic(self) -> list[NeuronSection]:
136
167
  return list(public_hoc_cell(self.cell).somatic)
@@ -148,8 +179,8 @@ class Cell(InjectableMixin, PlottableMixin):
148
179
  return list(public_hoc_cell(self.cell).axonal)
149
180
 
150
181
  @property
151
- def all(self) -> list[NeuronSection]:
152
- return list(public_hoc_cell(self.cell).all)
182
+ def sections(self) -> SectionMapping:
183
+ return self._extract_sections(public_hoc_cell(self.cell).all)
153
184
 
154
185
  def __repr__(self) -> str:
155
186
  base_info = f"Cell Object: {super().__repr__()}"
@@ -197,7 +228,7 @@ class Cell(InjectableMixin, PlottableMixin):
197
228
 
198
229
  def make_passive(self) -> None:
199
230
  """Make the cell passive by deactivating all the active channels."""
200
- for section in self.all:
231
+ for section in self.sections.values():
201
232
  mech_names = set()
202
233
  for seg in section:
203
234
  for mech in seg:
@@ -232,14 +263,14 @@ class Cell(InjectableMixin, PlottableMixin):
232
263
 
233
264
  def _default_enable_ttx(self) -> None:
234
265
  """Default enable_ttx implementation."""
235
- for section in self.all:
266
+ for section in self.sections.values():
236
267
  if not neuron.h.ismembrane("TTXDynamicsSwitch"):
237
268
  section.insert('TTXDynamicsSwitch')
238
269
  section.ttxo_level_TTXDynamicsSwitch = 1.0
239
270
 
240
271
  def _default_disable_ttx(self) -> None:
241
272
  """Default disable_ttx implementation."""
242
- for section in self.all:
273
+ for section in self.sections.values():
243
274
  if not neuron.h.ismembrane("TTXDynamicsSwitch"):
244
275
  section.insert('TTXDynamicsSwitch')
245
276
  section.ttxo_level_TTXDynamicsSwitch = 1e-14
@@ -247,7 +278,7 @@ class Cell(InjectableMixin, PlottableMixin):
247
278
  def area(self) -> float:
248
279
  """The total surface area of the cell."""
249
280
  area = 0.0
250
- for section in self.all:
281
+ for section in self.sections.values():
251
282
  x_s = np.arange(1.0 / (2 * section.nseg), 1.0,
252
283
  1.0 / (section.nseg))
253
284
  for x in x_s:
@@ -297,7 +328,7 @@ class Cell(InjectableMixin, PlottableMixin):
297
328
  self.add_recording("self.axonal[1](0.5)._ref_v", dt=dt)
298
329
 
299
330
  def add_voltage_recording(
300
- self, section: "neuron.h.Section", segx: float = 0.5, dt: Optional[float] = None
331
+ self, section: Optional[NeuronSection] = None, segx: float = 0.5, dt: Optional[float] = None
301
332
  ) -> None:
302
333
  """Add a voltage recording to a certain section at a given segment
303
334
  (segx).
@@ -309,11 +340,13 @@ class Cell(InjectableMixin, PlottableMixin):
309
340
  dt: Recording time step. If not provided, the recording step will
310
341
  default to the simulator's time step.
311
342
  """
312
- var_name = f"neuron.h.{section.name()}({segx})._ref_v"
343
+ if section is None:
344
+ section = self.soma
345
+ var_name = section_to_voltage_recording_str(section, segx)
313
346
  self.add_recording(var_name, dt)
314
347
 
315
348
  def get_voltage_recording(
316
- self, section: "neuron.h.Section", segx: float = 0.5
349
+ self, section: Optional[NeuronSection] = None, segx: float = 0.5
317
350
  ) -> np.ndarray:
318
351
  """Get a voltage recording for a certain section at a given segment
319
352
  (segx).
@@ -329,7 +362,9 @@ class Cell(InjectableMixin, PlottableMixin):
329
362
  Raises:
330
363
  BluecellulabError: If voltage recording was not added previously using add_voltage_recording.
331
364
  """
332
- recording_name = f"neuron.h.{section.name()}({segx})._ref_v"
365
+ if section is None:
366
+ section = self.soma
367
+ recording_name = section_to_voltage_recording_str(section, segx)
333
368
  if recording_name in self.recordings:
334
369
  return self.get_recording(recording_name)
335
370
  else:
@@ -340,15 +375,13 @@ class Cell(InjectableMixin, PlottableMixin):
340
375
 
341
376
  def add_allsections_voltagerecordings(self):
342
377
  """Add a voltage recording to every section of the cell."""
343
- all_sections = public_hoc_cell(self.cell).all
344
- for section in all_sections:
378
+ for section in self.sections.values():
345
379
  self.add_voltage_recording(section, dt=self.record_dt)
346
380
 
347
381
  def get_allsections_voltagerecordings(self) -> dict[str, np.ndarray]:
348
382
  """Get all the voltage recordings from all the sections."""
349
383
  all_section_voltages = {}
350
- all_sections = public_hoc_cell(self.cell).all
351
- for section in all_sections:
384
+ for section in self.sections.values():
352
385
  recording = self.get_voltage_recording(section)
353
386
  all_section_voltages[section.name()] = recording
354
387
  return all_section_voltages
@@ -426,10 +459,10 @@ class Cell(InjectableMixin, PlottableMixin):
426
459
  """
427
460
  if location == "soma":
428
461
  sec = public_hoc_cell(self.cell).soma[0]
429
- source = public_hoc_cell(self.cell).soma[0](1)._ref_v
462
+ source = sec(1)._ref_v
430
463
  elif location == "AIS":
431
464
  sec = public_hoc_cell(self.cell).axon[1]
432
- source = public_hoc_cell(self.cell).axon[1](0.5)._ref_v
465
+ source = sec(0.5)._ref_v
433
466
  else:
434
467
  raise ValueError("Spike detection location must be soma or AIS")
435
468
  netcon = neuron.h.NetCon(source, target, sec=sec)
@@ -682,9 +715,10 @@ class Cell(InjectableMixin, PlottableMixin):
682
715
  """Get a vector of AIS voltage."""
683
716
  return self.get_recording('self.axonal[1](0.5)._ref_v')
684
717
 
685
- def getNumberOfSegments(self) -> int:
718
+ @property
719
+ def n_segments(self) -> int:
686
720
  """Get the number of segments in the cell."""
687
- return sum(section.nseg for section in self.all)
721
+ return sum(section.nseg for section in self.sections.values())
688
722
 
689
723
  def add_synapse_replay(
690
724
  self, stimulus: SynapseReplay, spike_threshold: float, spike_location: str
@@ -443,14 +443,14 @@ class InjectableMixin:
443
443
  time_vector = neuron.h.Vector().from_python(t_content)
444
444
  current_vector = neuron.h.Vector().from_python(i_content)
445
445
 
446
- pulse = neuron.h.IClamp(segx, sec=section)
447
- self.persistent.extend([pulse, time_vector, current_vector])
446
+ iclamp = neuron.h.IClamp(segx, sec=section)
447
+ self.persistent.extend([iclamp, time_vector, current_vector])
448
448
 
449
- pulse.delay = t_content[0]
450
- pulse.dur = t_content[-1] - t_content[0]
451
- current_vector.play(pulse._ref_amp, time_vector)
449
+ iclamp.delay = t_content[0]
450
+ iclamp.dur = t_content[-1] - t_content[0]
451
+ current_vector.play(iclamp._ref_amp, time_vector)
452
452
 
453
- return current_vector
453
+ return iclamp, current_vector
454
454
 
455
455
  @deprecated("Use add_sin_current instead.")
456
456
  def addSineCurrentInject(self, start_time, stop_time, freq,
@@ -0,0 +1,8 @@
1
+ """Neuron recordings related functions."""
2
+ from __future__ import annotations
3
+ from bluecellulab.type_aliases import NeuronSection
4
+
5
+
6
+ def section_to_voltage_recording_str(section: NeuronSection, segment=0.5) -> str:
7
+ """Converts a section and segment to voltage recording string."""
8
+ return f"neuron.h.{section.name()}({segment})._ref_v"
@@ -20,7 +20,7 @@ import os
20
20
  from pathlib import Path
21
21
  import re
22
22
  import string
23
- from typing import Optional
23
+ from typing import NamedTuple, Optional
24
24
 
25
25
  import neuron
26
26
 
@@ -44,6 +44,13 @@ def public_hoc_cell(cell: HocObjectType) -> HocObjectType:
44
44
  from the hoc model. Either getCell() or CellRef needs to be provided""")
45
45
 
46
46
 
47
+ class TemplateParams(NamedTuple):
48
+ template_filepath: str | Path
49
+ morph_filepath: str | Path
50
+ template_format: str
51
+ emodel_properties: Optional[EmodelProperties]
52
+
53
+
47
54
  class NeuronTemplate:
48
55
  """NeuronTemplate representation."""
49
56
 
@@ -1,5 +1,6 @@
1
1
  """Type aliases used within the package."""
2
-
2
+ from __future__ import annotations
3
+ from typing import Dict
3
4
  from typing_extensions import TypeAlias
4
5
  from neuron import h as hoc_type
5
6
 
@@ -8,3 +9,5 @@ NeuronRNG: TypeAlias = hoc_type
8
9
  NeuronVector: TypeAlias = hoc_type
9
10
  NeuronSection: TypeAlias = hoc_type
10
11
  TStim: TypeAlias = hoc_type
12
+
13
+ SectionMapping = Dict[str, NeuronSection]
@@ -50,5 +50,11 @@ class IsolatedProcess(Pool):
50
50
  Use this when running isolated NEURON simulations. Running 2 NEURON
51
51
  simulations on a single process is to be avoided.
52
52
  """
53
- def __init__(self):
54
- super().__init__(processes=1, maxtasksperchild=1)
53
+ def __init__(self, processes: int | None = 1):
54
+ """Initialize the IsolatedProcess pool.
55
+
56
+ Args:
57
+ processes: The number of processes to use for running the stimuli.
58
+ If set to None, then the number returned by os.cpu_count() is used.
59
+ """
60
+ super().__init__(processes=processes, maxtasksperchild=1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 2.4.0
3
+ Version: 2.4.1
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
@@ -37,12 +37,15 @@ bluecellulab.egg-info/SOURCES.txt
37
37
  bluecellulab.egg-info/dependency_links.txt
38
38
  bluecellulab.egg-info/requires.txt
39
39
  bluecellulab.egg-info/top_level.txt
40
+ bluecellulab/analysis/__init__.py
41
+ bluecellulab/analysis/inject_sequence.py
40
42
  bluecellulab/cell/__init__.py
41
43
  bluecellulab/cell/cell_dict.py
42
44
  bluecellulab/cell/core.py
43
45
  bluecellulab/cell/injector.py
44
46
  bluecellulab/cell/plotting.py
45
47
  bluecellulab/cell/random.py
48
+ bluecellulab/cell/recording.py
46
49
  bluecellulab/cell/section_distance.py
47
50
  bluecellulab/cell/serialized_sections.py
48
51
  bluecellulab/cell/sonata_proxy.py
@@ -95,6 +98,7 @@ docs/source/_static/.gitkeep
95
98
  docs/source/logo/BlueCelluLabBanner.jpg
96
99
  examples/README.rst
97
100
  examples/readme-plot.ipynb
101
+ examples/1-singlecell/README.md
98
102
  examples/1-singlecell/singlecell.ipynb
99
103
  examples/1-singlecell/hoc/cADpyr_L2TPC.hoc
100
104
  examples/1-singlecell/morphology/rr110330_C3_idA.asc
@@ -160,6 +164,7 @@ examples/4-epsp/hippocampus_mechanisms/na3n.mod
160
164
  examples/4-epsp/hoc/cell_seed2_0.hoc
161
165
  examples/4-epsp/morphology/011017HP2.asc
162
166
  examples/5-stimuli/stimuli.ipynb
167
+ examples/6-stimuli-sequence/stimuli-sequence.ipynb
163
168
  examples/mechanisms/Ca.mod
164
169
  examples/mechanisms/CaDynamics_DC0.mod
165
170
  examples/mechanisms/CaDynamics_E2.mod
@@ -394,11 +399,13 @@ tests/mechanisms/kmb.mod
394
399
  tests/mechanisms/na3n.mod
395
400
  tests/mechanisms/naxn.mod
396
401
  tests/mechanisms/netstim_inhpoisson.mod
402
+ tests/test_analysis/test_inject_sequence.py
397
403
  tests/test_cell/__init__.py
398
404
  tests/test_cell/test_cell_dict.py
399
405
  tests/test_cell/test_core.py
400
406
  tests/test_cell/test_injector.py
401
407
  tests/test_cell/test_random.py
408
+ tests/test_cell/test_recording.py
402
409
  tests/test_cell/test_serialized_sections.py
403
410
  tests/test_cell/test_sonata_proxy.py
404
411
  tests/test_cell/test_stimuli_generator.py
@@ -0,0 +1,5 @@
1
+ ### Provenance for the hoc and morph files
2
+
3
+ hoc: BlueCelluLab/tests/examples/circuit_sonata_quick_scx/components/hoc/cADpyr_L2TPC.hoc'
4
+ morph: BlueCelluLab/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/rr110330_C3_idA.asc
5
+ emodel_properties (retrieved from the circuit): EmodelProperties(threshold_current=1.1433533430099487, holding_current=1.4146618843078613, AIS_scaler=1.4561502933502197, soma_scaler=1.0)