bluecellulab 2.3.1__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.3.1 → bluecellulab-2.3.2}/.github/workflows/release.yml +2 -0
  2. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.github/workflows/test.yml +4 -1
  3. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/CHANGELOG.rst +10 -0
  4. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/PKG-INFO +1 -1
  5. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/core.py +1 -1
  6. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/injector.py +72 -55
  7. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/config/bluepy_simulation_config.py +1 -1
  8. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/config/definition.py +1 -1
  9. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/config/sonata_simulation_config.py +1 -1
  10. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/ssim.py +11 -11
  11. bluecellulab-2.3.2/bluecellulab/stimulus/__init__.py +1 -0
  12. bluecellulab-2.3.1/bluecellulab/stimuli.py → bluecellulab-2.3.2/bluecellulab/stimulus/circuit_stimulus_definitions.py +4 -0
  13. bluecellulab-2.3.2/bluecellulab/stimulus/factory.py +254 -0
  14. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab.egg-info/PKG-INFO +1 -1
  15. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab.egg-info/SOURCES.txt +8 -2
  16. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/requirements_docs.txt +1 -0
  17. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/source/api.rst +4 -2
  18. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/source/conf.py +10 -0
  19. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/source/index.rst +1 -0
  20. bluecellulab-2.3.2/docs/source/list_of_stim.rst +138 -0
  21. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/1-singlecell/singlecell.ipynb +1 -1
  22. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sonata-network.ipynb +10 -0
  23. bluecellulab-2.3.2/examples/3-bpap/bpap.ipynb +537 -0
  24. bluecellulab-2.3.2/examples/5-stimuli/stimuli.ipynb +609 -0
  25. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/README.rst +2 -0
  26. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/pyproject.toml +2 -1
  27. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_injector.py +8 -8
  28. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_simulation_access.py +1 -2
  29. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_simulation_config.py +1 -1
  30. bluecellulab-2.3.1/tests/test_stimuli.py → bluecellulab-2.3.2/tests/test_stimulus/test_circuit_stimulus_definitions.py +2 -2
  31. bluecellulab-2.3.2/tests/test_stimulus/test_factory.py +143 -0
  32. bluecellulab-2.3.2/tests/test_synapse/__init__.py +0 -0
  33. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_tools.py +2 -2
  34. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tox.ini +5 -3
  35. bluecellulab-2.3.1/examples/3-bpap/bpap.ipynb +0 -537
  36. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.compile_mod.sh +0 -0
  37. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.gitattributes +0 -0
  38. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.github/dependabot.yml +0 -0
  39. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.gitignore +0 -0
  40. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.gitlab-ci.yml +0 -0
  41. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.readthedocs.yml +0 -0
  42. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/.zenodo.json +0 -0
  43. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/AUTHORS.txt +0 -0
  44. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/LICENSE +0 -0
  45. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/MANIFEST.in +0 -0
  46. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/Makefile +0 -0
  47. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/README.rst +0 -0
  48. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/__init__.py +0 -0
  49. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/__init__.py +0 -0
  50. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/ballstick/__init__.py +0 -0
  51. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
  52. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/ballstick/morphology.asc +0 -0
  53. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/cell_dict.py +0 -0
  54. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/plotting.py +0 -0
  55. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/random.py +0 -0
  56. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/section_distance.py +0 -0
  57. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/serialized_sections.py +0 -0
  58. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/sonata_proxy.py +0 -0
  59. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/stimuli_generator.py +0 -0
  60. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/cell/template.py +0 -0
  61. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/__init__.py +0 -0
  62. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/__init__.py +0 -0
  63. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +0 -0
  64. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/definition.py +0 -0
  65. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/circuit_access/sonata_circuit_access.py +0 -0
  66. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/config/__init__.py +0 -0
  67. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/config/sections.py +0 -0
  68. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/format.py +0 -0
  69. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/iotools.py +0 -0
  70. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/node_id.py +0 -0
  71. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/simulation_access.py +0 -0
  72. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/synapse_properties.py +0 -0
  73. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/circuit/validate.py +0 -0
  74. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/connection.py +0 -0
  75. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/dendrogram.py +0 -0
  76. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/exceptions.py +0 -0
  77. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/graph.py +0 -0
  78. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/hoc/Cell.hoc +0 -0
  79. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/hoc/RNGSettings.hoc +0 -0
  80. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/hoc/TDistFunc.hoc +0 -0
  81. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/hoc/TStim.hoc +0 -0
  82. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/hoc/fileUtils.hoc +0 -0
  83. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/importer.py +0 -0
  84. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/neuron_interpreter.py +0 -0
  85. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/plotwindow.py +0 -0
  86. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/psection.py +0 -0
  87. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/psegment.py +0 -0
  88. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/rngsettings.py +0 -0
  89. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/simulation/__init__.py +0 -0
  90. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/simulation/neuron_globals.py +0 -0
  91. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/simulation/simulation.py +0 -0
  92. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/synapse/__init__.py +0 -0
  93. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/synapse/synapse_factory.py +0 -0
  94. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/synapse/synapse_types.py +0 -0
  95. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/tools.py +0 -0
  96. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/type_aliases.py +0 -0
  97. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab/utils.py +0 -0
  98. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab.egg-info/dependency_links.txt +0 -0
  99. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab.egg-info/requires.txt +0 -0
  100. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/bluecellulab.egg-info/top_level.txt +0 -0
  101. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/Makefile +0 -0
  102. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/images/voltage-readme.png +0 -0
  103. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/make.bat +0 -0
  104. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/source/_static/.gitkeep +0 -0
  105. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/source/changelog.rst +0 -0
  106. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/source/compiling-mechanisms.rst +0 -0
  107. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
  108. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/1-singlecell/hoc/cADpyr_L2TPC.hoc +0 -0
  109. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/1-singlecell/morphology/rr110330_C3_idA.asc +0 -0
  110. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  111. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  112. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  113. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  114. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  115. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  116. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  117. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  118. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  119. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  120. {bluecellulab-2.3.1 → 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
  121. {bluecellulab-2.3.1 → 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
  122. {bluecellulab-2.3.1 → 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
  123. {bluecellulab-2.3.1 → 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
  124. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  125. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  126. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  127. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  128. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  129. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  130. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  131. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  132. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  133. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  134. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  135. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  136. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  137. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  138. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  139. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  140. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  141. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  142. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  143. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  144. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  145. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  146. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  147. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  148. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  149. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  150. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  151. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  152. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  153. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/epsp.ipynb +0 -0
  154. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cacumm.mod +0 -0
  155. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cagk.mod +0 -0
  156. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cal2.mod +0 -0
  157. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/can2.mod +0 -0
  158. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/cat.mod +0 -0
  159. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/h.mod +0 -0
  160. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kadist.mod +0 -0
  161. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kaprox.mod +0 -0
  162. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kca.mod +0 -0
  163. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kdb.mod +0 -0
  164. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kdrbca1.mod +0 -0
  165. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/kmb.mod +0 -0
  166. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hippocampus_mechanisms/na3n.mod +0 -0
  167. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/hoc/cell_seed2_0.hoc +0 -0
  168. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/4-epsp/morphology/011017HP2.asc +0 -0
  169. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/Ca.mod +0 -0
  170. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/CaDynamics_DC0.mod +0 -0
  171. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/CaDynamics_E2.mod +0 -0
  172. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/Ca_HVA.mod +0 -0
  173. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/Ca_HVA2.mod +0 -0
  174. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/Ca_LVAst.mod +0 -0
  175. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/DetAMPANMDA.mod +0 -0
  176. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/DetGABAAB.mod +0 -0
  177. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/GluSynapse.mod +0 -0
  178. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/Ih.mod +0 -0
  179. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/Im.mod +0 -0
  180. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/K_Pst.mod +0 -0
  181. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/K_Tst.mod +0 -0
  182. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/KdShu2007.mod +0 -0
  183. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/NaTa_t.mod +0 -0
  184. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/NaTg.mod +0 -0
  185. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/NaTs2_t.mod +0 -0
  186. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/Nap_Et2.mod +0 -0
  187. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  188. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/ProbGABAAB_EMS.mod +0 -0
  189. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/README.md +0 -0
  190. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/SK_E2.mod +0 -0
  191. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/SKv3_1.mod +0 -0
  192. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/StochKv.mod +0 -0
  193. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/StochKv3.mod +0 -0
  194. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/TTXDynamicsSwitch.mod +0 -0
  195. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/VecStim.mod +0 -0
  196. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/gap.mod +0 -0
  197. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/mechanisms/netstim_inhpoisson.mod +0 -0
  198. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/examples/readme-plot.ipynb +0 -0
  199. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/setup.cfg +0 -0
  200. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/setup.py +0 -0
  201. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/__init__.py +0 -0
  202. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/data/synapse_replay_file/spikes.dat +0 -0
  203. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/analytic_expsyn.txt +0 -0
  204. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/ballstick.asc +0 -0
  205. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/ballstick.hoc +0 -0
  206. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/ballstick_cell/bs.cfg +0 -0
  207. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/bpo_cell/0_cADpyr_L5TPC_a6e707a_1_sNone.hoc +0 -0
  208. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/bpo_cell/C060114A5.asc +0 -0
  209. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example1/test_cell.asc +0 -0
  210. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example1/test_cell.hoc +0 -0
  211. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example1/test_cell_longname1.hoc +0 -0
  212. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example2/test_cell.asc +0 -0
  213. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example2/test_cell.hoc +0 -0
  214. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example_cstut/cSTUT_7.hoc +0 -0
  215. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example_cstut/test_cell.asc +0 -0
  216. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example_empty/test_cell.asc +0 -0
  217. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example_empty/test_cell.hoc +0 -0
  218. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/cell_example_empty/test_cell_v6a.hoc +0 -0
  219. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/circuit_config.json +0 -0
  220. {bluecellulab-2.3.1 → 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
  221. {bluecellulab-2.3.1 → 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
  222. {bluecellulab-2.3.1 → 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
  223. {bluecellulab-2.3.1 → 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
  224. {bluecellulab-2.3.1 → 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
  225. {bluecellulab-2.3.1 → 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
  226. {bluecellulab-2.3.1 → 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
  227. {bluecellulab-2.3.1 → 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
  228. {bluecellulab-2.3.1 → 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
  229. {bluecellulab-2.3.1 → 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
  230. {bluecellulab-2.3.1 → 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
  231. {bluecellulab-2.3.1 → 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
  232. {bluecellulab-2.3.1 → 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
  233. {bluecellulab-2.3.1 → 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
  234. {bluecellulab-2.3.1 → 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
  235. {bluecellulab-2.3.1 → 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
  236. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/copy-hoc-morphs.ipynb +0 -0
  237. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/edges/edges.h5 +0 -0
  238. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hippocampus_projections/nodes.h5 +0 -0
  239. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hoc-and-morphs.csv +0 -0
  240. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/id_mapping.json +0 -0
  241. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/node_sets.json +0 -0
  242. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/nodes/nodes.h5 +0 -0
  243. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/circuit_sonata.json +0 -0
  244. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cADpyr_L2TPC.hoc +0 -0
  245. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cNAC_L23BTC.hoc +0 -0
  246. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/C210401C.asc +0 -0
  247. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/rr110330_C3_idA.asc +0 -0
  248. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/C210401C.swc +0 -0
  249. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/rr110330_C3_idA.swc +0 -0
  250. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5 +0 -0
  251. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5.txt +0 -0
  252. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/node_sets.json +0 -0
  253. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5 +0 -0
  254. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5.txt +0 -0
  255. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  256. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  257. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  258. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  259. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  260. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  261. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  262. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  263. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  264. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  265. {bluecellulab-2.3.1 → 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
  266. {bluecellulab-2.3.1 → 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
  267. {bluecellulab-2.3.1 → 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
  268. {bluecellulab-2.3.1 → 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
  269. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  270. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  271. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  272. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  273. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  274. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  275. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  276. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  277. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  278. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  279. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  280. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  281. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/hippocampus_opt_cell_template/README.md +0 -0
  282. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/hippocampus_opt_cell_template/electrophysiology/cell.hoc +0 -0
  283. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/hippocampus_opt_cell_template/morphology/cell.asc +0 -0
  284. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/legacy_circuitconfig/CircuitConfig +0 -0
  285. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig +0 -0
  286. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig.SUCCESS +0 -0
  287. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/out.dat +0 -0
  288. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/out.h5 +0 -0
  289. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/populations_offset.dat +0 -0
  290. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/output/soma_SONATA.h5 +0 -0
  291. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_bluepy/user.target +0 -0
  292. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/circuit_sonata.json +0 -0
  293. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/out.h5 +0 -0
  294. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/populations_offset.dat +0 -0
  295. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/soma.h5 +0 -0
  296. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/out.h5 +0 -0
  297. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/populations_offset.dat +0 -0
  298. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/soma.h5 +0 -0
  299. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config.json.SUCCESS +0 -0
  300. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json +0 -0
  301. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json.SUCCESS +0 -0
  302. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json +0 -0
  303. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json.SUCCESS +0 -0
  304. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  305. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  306. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  307. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  308. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  309. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  310. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  311. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  312. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  313. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  314. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  315. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  316. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  317. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  318. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  319. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  320. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  321. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/circuit_sonata.json +0 -0
  322. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/node_sets.json +0 -0
  323. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/sim_conf/populations_offset.dat +0 -0
  324. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config.json +0 -0
  325. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config_many_inputs.json +0 -0
  326. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/circuit_config.json +0 -0
  327. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/echo +0 -0
  328. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/node_sets.json +0 -0
  329. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/out.h5 +0 -0
  330. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/populations_offset.dat +0 -0
  331. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/soma.h5 +0 -0
  332. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json +0 -0
  333. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json.SUCCESS +0 -0
  334. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/circuit_config.json +0 -0
  335. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/node_sets.json +0 -0
  336. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/simulation_config.json +0 -0
  337. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/sonata_unit_test_sims/synapse_replay/synapse_replay.dat +0 -0
  338. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/tapertest_cells/notaper_cell.hoc +0 -0
  339. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/tapertest_cells/taper_cell.hoc +0 -0
  340. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/examples/tapertest_cells/test_cell.asc +0 -0
  341. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/helpers/__init__.py +0 -0
  342. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/helpers/os_utils.py +0 -0
  343. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/Ca.mod +0 -0
  344. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/CaDynamics_DC0.mod +0 -0
  345. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/CaDynamics_E2.mod +0 -0
  346. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/Ca_HVA.mod +0 -0
  347. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/Ca_HVA2.mod +0 -0
  348. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/Ca_LVAst.mod +0 -0
  349. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/DetAMPANMDA.mod +0 -0
  350. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/DetGABAAB.mod +0 -0
  351. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/GluSynapse.mod +0 -0
  352. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/Ih.mod +0 -0
  353. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/Im.mod +0 -0
  354. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/K_Pst.mod +0 -0
  355. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/K_Tst.mod +0 -0
  356. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/KdShu2007.mod +0 -0
  357. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/NaTa_t.mod +0 -0
  358. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/NaTg.mod +0 -0
  359. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/NaTs2_t.mod +0 -0
  360. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/Nap_Et2.mod +0 -0
  361. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  362. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/ProbGABAAB_EMS.mod +0 -0
  363. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/README.md +0 -0
  364. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/SK_E2.mod +0 -0
  365. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/SKv3_1.mod +0 -0
  366. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/StochKv.mod +0 -0
  367. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/StochKv3.mod +0 -0
  368. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/TTXDynamicsSwitch.mod +0 -0
  369. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/VecStim.mod +0 -0
  370. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/cacumm.mod +0 -0
  371. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/cacummb.mod +0 -0
  372. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/cagk.mod +0 -0
  373. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/cal2.mod +0 -0
  374. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/can2.mod +0 -0
  375. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/cat.mod +0 -0
  376. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/gap.mod +0 -0
  377. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/h.mod +0 -0
  378. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kadist.mod +0 -0
  379. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kaprox.mod +0 -0
  380. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kca.mod +0 -0
  381. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kd.mod +0 -0
  382. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kd2.mod +0 -0
  383. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kdb.mod +0 -0
  384. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kdrbca1.mod +0 -0
  385. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kdrca1.mod +0 -0
  386. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/km.mod +0 -0
  387. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/kmb.mod +0 -0
  388. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/na3n.mod +0 -0
  389. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/naxn.mod +0 -0
  390. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/mechanisms/netstim_inhpoisson.mod +0 -0
  391. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_ballstick.py +0 -0
  392. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_bglib.py +0 -0
  393. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/__init__.py +0 -0
  394. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_cell_dict.py +0 -0
  395. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_core.py +0 -0
  396. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_random.py +0 -0
  397. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_serialized_sections.py +0 -0
  398. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_sonata_proxy.py +0 -0
  399. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_stimuli_generator.py +0 -0
  400. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_cell/test_template.py +0 -0
  401. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/__init__.py +0 -0
  402. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_circuit_access.py +0 -0
  403. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_config_sections.py +0 -0
  404. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_format.py +0 -0
  405. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_node_id.py +0 -0
  406. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_synapse_properties.py +0 -0
  407. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_circuit/test_validate.py +0 -0
  408. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_exceptions.py +0 -0
  409. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_graph.py +0 -0
  410. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_importer.py +0 -0
  411. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_load.py +0 -0
  412. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_neuron_interpreter.py +0 -0
  413. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_psection.py +0 -0
  414. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_rngsettings.py +0 -0
  415. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_simulation/__init__.py +0 -0
  416. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_simulation/test_neuron_globals.py +0 -0
  417. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_simulation/test_simulation.py +0 -0
  418. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_ssim.py +0 -0
  419. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_ssim_sonata.py +0 -0
  420. {bluecellulab-2.3.1/tests/test_synapse → bluecellulab-2.3.2/tests/test_stimulus}/__init__.py +0 -0
  421. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_synapse/test-synapse-series.json +0 -0
  422. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_synapse/test_synapse.py +0 -0
  423. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_synapse/test_synapse_factory.py +0 -0
  424. {bluecellulab-2.3.1 → bluecellulab-2.3.2}/tests/test_ttx.py +0 -0
  425. {bluecellulab-2.3.1 → 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,16 @@
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
+
4
14
  2.3.0
5
15
  -------
6
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 2.3.1
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
@@ -41,7 +41,7 @@ from bluecellulab.exceptions import BluecellulabError
41
41
  from bluecellulab.importer import load_hoc_and_mod_files
42
42
  from bluecellulab.neuron_interpreter import eval_neuron
43
43
  from bluecellulab.rngsettings import RNGSettings
44
- from bluecellulab.stimuli import SynapseReplay
44
+ from bluecellulab.stimulus.circuit_stimulus_definitions import SynapseReplay
45
45
  from bluecellulab.synapse import SynapseFactory, Synapse
46
46
  from bluecellulab.synapse.synapse_types import SynapseID
47
47
  from bluecellulab.type_aliases import HocObjectType, NeuronSection
@@ -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
@@ -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
 
@@ -40,8 +40,8 @@ from bluecellulab.circuit.format import determine_circuit_format, CircuitFormat
40
40
  from bluecellulab.circuit.node_id import create_cell_id, create_cell_ids
41
41
  from bluecellulab.circuit.simulation_access import BluepySimulationAccess, SimulationAccess, SonataSimulationAccess, _sample_array
42
42
  from bluecellulab.importer import load_hoc_and_mod_files
43
- from bluecellulab.stimuli import Noise, OrnsteinUhlenbeck, RelativeOrnsteinUhlenbeck, RelativeShotNoise, ShotNoise
44
- import bluecellulab.stimuli as stimuli
43
+ from bluecellulab.stimulus.circuit_stimulus_definitions import Noise, OrnsteinUhlenbeck, RelativeOrnsteinUhlenbeck, RelativeShotNoise, ShotNoise
44
+ import bluecellulab.stimulus.circuit_stimulus_definitions as circuit_stimulus_definitions
45
45
  from bluecellulab.exceptions import BluecellulabError
46
46
  from bluecellulab.simulation import (
47
47
  set_global_condition_parameters,
@@ -298,40 +298,40 @@ class SSim:
298
298
  for cell_id in self.cells:
299
299
  if cell_id not in gids_of_target:
300
300
  continue
301
- if isinstance(stimulus, stimuli.Noise):
301
+ if isinstance(stimulus, circuit_stimulus_definitions.Noise):
302
302
  if add_noise_stimuli:
303
303
  self.cells[cell_id].add_replay_noise(
304
304
  stimulus, noisestim_count=noisestim_count)
305
- elif isinstance(stimulus, stimuli.Hyperpolarizing):
305
+ elif isinstance(stimulus, circuit_stimulus_definitions.Hyperpolarizing):
306
306
  if add_hyperpolarizing_stimuli:
307
307
  self.cells[cell_id].add_replay_hypamp(stimulus)
308
- elif isinstance(stimulus, stimuli.Pulse):
308
+ elif isinstance(stimulus, circuit_stimulus_definitions.Pulse):
309
309
  if add_pulse_stimuli:
310
310
  self.cells[cell_id].add_pulse(stimulus)
311
- elif isinstance(stimulus, stimuli.RelativeLinear):
311
+ elif isinstance(stimulus, circuit_stimulus_definitions.RelativeLinear):
312
312
  if add_relativelinear_stimuli:
313
313
  self.cells[cell_id].add_replay_relativelinear(stimulus)
314
- elif isinstance(stimulus, stimuli.ShotNoise):
314
+ elif isinstance(stimulus, circuit_stimulus_definitions.ShotNoise):
315
315
  if add_shotnoise_stimuli:
316
316
  self.cells[cell_id].add_replay_shotnoise(
317
317
  self.cells[cell_id].soma, 0.5, stimulus,
318
318
  shotnoise_stim_count=shotnoise_stim_count)
319
- elif isinstance(stimulus, stimuli.RelativeShotNoise):
319
+ elif isinstance(stimulus, circuit_stimulus_definitions.RelativeShotNoise):
320
320
  if add_shotnoise_stimuli:
321
321
  self.cells[cell_id].add_replay_relative_shotnoise(
322
322
  self.cells[cell_id].soma, 0.5, stimulus,
323
323
  shotnoise_stim_count=shotnoise_stim_count)
324
- elif isinstance(stimulus, stimuli.OrnsteinUhlenbeck):
324
+ elif isinstance(stimulus, circuit_stimulus_definitions.OrnsteinUhlenbeck):
325
325
  if add_ornstein_uhlenbeck_stimuli:
326
326
  self.cells[cell_id].add_ornstein_uhlenbeck(
327
327
  self.cells[cell_id].soma, 0.5, stimulus,
328
328
  stim_count=ornstein_uhlenbeck_stim_count)
329
- elif isinstance(stimulus, stimuli.RelativeOrnsteinUhlenbeck):
329
+ elif isinstance(stimulus, circuit_stimulus_definitions.RelativeOrnsteinUhlenbeck):
330
330
  if add_ornstein_uhlenbeck_stimuli:
331
331
  self.cells[cell_id].add_relative_ornstein_uhlenbeck(
332
332
  self.cells[cell_id].soma, 0.5, stimulus,
333
333
  stim_count=ornstein_uhlenbeck_stim_count)
334
- elif isinstance(stimulus, stimuli.SynapseReplay): # sonata only
334
+ elif isinstance(stimulus, circuit_stimulus_definitions.SynapseReplay): # sonata only
335
335
  if self.circuit_access.target_contains_cell(
336
336
  stimulus.target, cell_id
337
337
  ):
@@ -0,0 +1 @@
1
+ from .factory import StimulusFactory
@@ -11,7 +11,11 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+ """Defines the expected data structures associated with the stimulus defined in
15
+ simulation configs.
14
16
 
17
+ Run-time validates the data via Pydantic.
18
+ """
15
19
  from __future__ import annotations
16
20
 
17
21
  from enum import Enum
@@ -0,0 +1,254 @@
1
+ from __future__ import annotations
2
+ from abc import ABC, abstractmethod
3
+ import matplotlib.pyplot as plt
4
+ import numpy as np
5
+
6
+
7
+ class Stimulus(ABC):
8
+ def __init__(self, dt: float) -> None:
9
+ self.dt = dt
10
+
11
+ @property
12
+ @abstractmethod
13
+ def time(self) -> np.ndarray:
14
+ """Time values of the stimulus."""
15
+ ...
16
+
17
+ @property
18
+ @abstractmethod
19
+ def current(self) -> np.ndarray:
20
+ """Current values of the stimulus."""
21
+ ...
22
+
23
+ def __len__(self) -> int:
24
+ return len(self.time)
25
+
26
+ @property
27
+ def stimulus_time(self) -> float:
28
+ return len(self) * self.dt
29
+
30
+ def __repr__(self) -> str:
31
+ return f"{self.__class__.__name__}(dt={self.dt})"
32
+
33
+ def plot(self, ax=None, **kwargs):
34
+ if ax is None:
35
+ ax = plt.gca()
36
+ ax.plot(self.time, self.current, **kwargs)
37
+ ax.set_xlabel("Time (ms)")
38
+ ax.set_ylabel("Current (nA)")
39
+ ax.set_title(self.__class__.__name__)
40
+ return ax
41
+
42
+ def plot_during_simulation(self, duration: float, ax=None, **kwargs):
43
+ if ax is None:
44
+ ax = plt.gca()
45
+ # Create an array for the entire duration
46
+ full_time = np.arange(0, duration, self.dt)
47
+ full_current = np.zeros_like(full_time)
48
+
49
+ # Replace the corresponding values with self.time and self.current
50
+ indices = (self.time / self.dt).astype(int)
51
+ full_current[indices] = self.current
52
+
53
+ ax.plot(full_time, full_current, **kwargs)
54
+ ax.set_xlabel("Time (ms)")
55
+ ax.set_ylabel("Current (nA)")
56
+ ax.set_title(self.__class__.__name__)
57
+ ax.set_xlim(0, duration)
58
+ return ax
59
+
60
+ def __add__(self, other: Stimulus) -> CombinedStimulus:
61
+ """Override + operator to concatenate Stimulus objects."""
62
+ if self.dt != other.dt:
63
+ raise ValueError("Stimulus objects must have the same dt to be concatenated")
64
+ # shift other time
65
+ other_time = other.time + self.time[-1] + self.dt
66
+ combined_time = np.concatenate([self.time, other_time])
67
+ # Concatenate the current arrays
68
+ combined_current = np.concatenate([self.current, other.current])
69
+ return CombinedStimulus(self.dt, combined_time, combined_current)
70
+
71
+
72
+ class CombinedStimulus(Stimulus):
73
+ """Represents the Stimulus created by combining multiple stimuli."""
74
+ def __init__(self, dt: float, time: np.ndarray, current: np.ndarray) -> None:
75
+ super().__init__(dt)
76
+ self._time = time
77
+ self._current = current
78
+
79
+ @property
80
+ def time(self) -> np.ndarray:
81
+ return self._time
82
+
83
+ @property
84
+ def current(self) -> np.ndarray:
85
+ return self._current
86
+
87
+
88
+ class EmptyStimulus(Stimulus):
89
+ """Represents empty stimulus (all zeros) that has no impact on the cell.
90
+
91
+ This is required by some Stimuli that expect the cell to rest.
92
+ """
93
+ def __init__(self, dt: float, duration: float) -> None:
94
+ super().__init__(dt)
95
+ self.duration = duration
96
+
97
+ @property
98
+ def time(self) -> np.ndarray:
99
+ return np.arange(0.0, self.duration, self.dt)
100
+
101
+ @property
102
+ def current(self) -> np.ndarray:
103
+ return np.zeros_like(self.time)
104
+
105
+
106
+ class Step(Stimulus):
107
+ def __init__(self, dt: float, start: float, end: float, amplitude: float) -> None:
108
+ super().__init__(dt)
109
+ self.start = start
110
+ self.end = end
111
+ self.amplitude = amplitude
112
+
113
+ @classmethod
114
+ def threshold_based(
115
+ cls,
116
+ dt: float,
117
+ threshold_current: float,
118
+ threshold_percentage: float,
119
+ start: float,
120
+ end: float,
121
+ post_wait: float,
122
+ ) -> CombinedStimulus:
123
+ amplitude = threshold_current * threshold_percentage / 100
124
+ res = cls(dt, start, end, amplitude) + EmptyStimulus(dt, duration=post_wait)
125
+ return res
126
+
127
+ @property
128
+ def time(self) -> np.ndarray:
129
+ return np.arange(self.start, self.end, self.dt)
130
+
131
+ @property
132
+ def current(self) -> np.ndarray:
133
+ return np.full_like(self.time, self.amplitude)
134
+
135
+
136
+ class Ramp(Stimulus):
137
+ def __init__(
138
+ self,
139
+ dt: float,
140
+ start: float,
141
+ end: float,
142
+ amplitude_start: float,
143
+ amplitude_end: float,
144
+ ) -> None:
145
+ super().__init__(dt)
146
+ self.start = start
147
+ self.end = end
148
+ self.amplitude_start = amplitude_start
149
+ self.amplitude_end = amplitude_end
150
+
151
+ @property
152
+ def time(self) -> np.ndarray:
153
+ return np.arange(self.start, self.end, self.dt)
154
+
155
+ @property
156
+ def current(self) -> np.ndarray:
157
+ return np.linspace(self.amplitude_start, self.amplitude_end, len(self.time))
158
+
159
+
160
+ class StimulusFactory:
161
+ def __init__(self, dt: float):
162
+ self.dt = dt
163
+
164
+ def step(self, start: float, end: float, amplitude: float) -> Stimulus:
165
+ return Step(self.dt, start, end, amplitude)
166
+
167
+ def ramp(
168
+ self, start: float, end: float, amplitude_start: float, amplitude_end: float
169
+ ) -> Stimulus:
170
+ return Ramp(self.dt, start, end, amplitude_start, amplitude_end)
171
+
172
+ def ap_waveform(
173
+ self,
174
+ threshold_current: float,
175
+ threshold_percentage: float = 220.0,
176
+ start: float = 250.0,
177
+ end: float = 300.0,
178
+ post_wait: float = 250.0,
179
+ ) -> Stimulus:
180
+ """Returns the APWaveform Stimulus object, a type of Step stimulus.
181
+
182
+ Args:
183
+ threshold_current: The threshold current of the Cell.
184
+ threshold_percentage: Percentage of desired threshold_current amplification.
185
+ start: The start time of the step.
186
+ end: The end time of the step.
187
+ post_wait: The time to wait after the end of the step.
188
+ """
189
+ return Step.threshold_based(
190
+ self.dt, threshold_current, threshold_percentage, start, end, post_wait
191
+ )
192
+
193
+ def idrest(
194
+ self,
195
+ threshold_current: float,
196
+ threshold_percentage: float = 200.0,
197
+ start: float = 250.0,
198
+ end: float = 1600.0,
199
+ post_wait: float = 250.0,
200
+ ) -> Stimulus:
201
+ """Returns the IDRest Stimulus object, a type of Step stimulus.
202
+
203
+ Args:
204
+ threshold_current: The threshold current of the Cell.
205
+ threshold_percentage: Percentage of desired threshold_current amplification.
206
+ start: The start time of the step.
207
+ end: The end time of the step.
208
+ post_wait: The time to wait after the end of the step.
209
+ """
210
+ return Step.threshold_based(
211
+ self.dt, threshold_current, threshold_percentage, start, end, post_wait
212
+ )
213
+
214
+ def iv(
215
+ self,
216
+ threshold_current: float,
217
+ threshold_percentage: float = -40.0,
218
+ start: float = 250.0,
219
+ end: float = 3250.0,
220
+ post_wait: float = 250.0,
221
+ ) -> Stimulus:
222
+ """Returns the IV Stimulus object, a type of Step stimulus.
223
+
224
+ Args:
225
+ threshold_current: The threshold current of the Cell.
226
+ threshold_percentage: Percentage of desired threshold_current amplification.
227
+ start: The start time of the step.
228
+ end: The end time of the step.
229
+ post_wait: The time to wait after the end of the step.
230
+ """
231
+ return Step.threshold_based(
232
+ self.dt, threshold_current, threshold_percentage, start, end, post_wait
233
+ )
234
+
235
+ def fire_pattern(
236
+ self,
237
+ threshold_current: float,
238
+ threshold_percentage: float = 200.0,
239
+ start: float = 250.0,
240
+ end: float = 3850.0,
241
+ post_wait: float = 250.0,
242
+ ) -> Stimulus:
243
+ """Returns the FirePattern Stimulus object, a type of Step stimulus.
244
+
245
+ Args:
246
+ threshold_current: The threshold current of the Cell.
247
+ threshold_percentage: Percentage of desired threshold_current amplification.
248
+ start: The start time of the step.
249
+ end: The end time of the step.
250
+ post_wait: The time to wait after the end of the step.
251
+ """
252
+ return Step.threshold_based(
253
+ self.dt, threshold_current, threshold_percentage, start, end, post_wait
254
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 2.3.1
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
@@ -28,7 +28,6 @@ bluecellulab/psection.py
28
28
  bluecellulab/psegment.py
29
29
  bluecellulab/rngsettings.py
30
30
  bluecellulab/ssim.py
31
- bluecellulab/stimuli.py
32
31
  bluecellulab/tools.py
33
32
  bluecellulab/type_aliases.py
34
33
  bluecellulab/utils.py
@@ -75,6 +74,9 @@ bluecellulab/hoc/fileUtils.hoc
75
74
  bluecellulab/simulation/__init__.py
76
75
  bluecellulab/simulation/neuron_globals.py
77
76
  bluecellulab/simulation/simulation.py
77
+ bluecellulab/stimulus/__init__.py
78
+ bluecellulab/stimulus/circuit_stimulus_definitions.py
79
+ bluecellulab/stimulus/factory.py
78
80
  bluecellulab/synapse/__init__.py
79
81
  bluecellulab/synapse/synapse_factory.py
80
82
  bluecellulab/synapse/synapse_types.py
@@ -87,6 +89,7 @@ docs/source/changelog.rst
87
89
  docs/source/compiling-mechanisms.rst
88
90
  docs/source/conf.py
89
91
  docs/source/index.rst
92
+ docs/source/list_of_stim.rst
90
93
  docs/source/_static/.gitkeep
91
94
  docs/source/logo/BlueCelluLabBanner.jpg
92
95
  examples/README.rst
@@ -155,6 +158,7 @@ examples/4-epsp/hippocampus_mechanisms/kmb.mod
155
158
  examples/4-epsp/hippocampus_mechanisms/na3n.mod
156
159
  examples/4-epsp/hoc/cell_seed2_0.hoc
157
160
  examples/4-epsp/morphology/011017HP2.asc
161
+ examples/5-stimuli/stimuli.ipynb
158
162
  examples/mechanisms/Ca.mod
159
163
  examples/mechanisms/CaDynamics_DC0.mod
160
164
  examples/mechanisms/CaDynamics_E2.mod
@@ -196,7 +200,6 @@ tests/test_psection.py
196
200
  tests/test_rngsettings.py
197
201
  tests/test_ssim.py
198
202
  tests/test_ssim_sonata.py
199
- tests/test_stimuli.py
200
203
  tests/test_tools.py
201
204
  tests/test_ttx.py
202
205
  tests/test_utils.py
@@ -410,6 +413,9 @@ tests/test_circuit/test_validate.py
410
413
  tests/test_simulation/__init__.py
411
414
  tests/test_simulation/test_neuron_globals.py
412
415
  tests/test_simulation/test_simulation.py
416
+ tests/test_stimulus/__init__.py
417
+ tests/test_stimulus/test_circuit_stimulus_definitions.py
418
+ tests/test_stimulus/test_factory.py
413
419
  tests/test_synapse/__init__.py
414
420
  tests/test_synapse/test-synapse-series.json
415
421
  tests/test_synapse/test_synapse.py
@@ -1,3 +1,4 @@
1
1
  sphinx>=7.0.1
2
2
  sphinx-bluebrain-theme>=0.4.1
3
3
  sphinx_autodoc_typehints>=1.23.2
4
+ seaborn>=0.13.2