bluecellulab 1.8.0__tar.gz → 1.8.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 (409) hide show
  1. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/PKG-INFO +1 -1
  2. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/core.py +23 -17
  3. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/injector.py +8 -8
  4. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/connection.py +4 -3
  5. bluecellulab-1.8.2/bluecellulab/graph.py +85 -0
  6. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/simulation/simulation.py +1 -1
  7. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/ssim.py +2 -6
  8. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/synapse/synapse_factory.py +3 -3
  9. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/synapse/synapse_types.py +11 -10
  10. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/tools.py +0 -25
  11. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/PKG-INFO +1 -1
  12. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/SOURCES.txt +2 -0
  13. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/requires.txt +1 -0
  14. bluecellulab-1.8.2/examples/2-sonata-network/sonata-network.ipynb +960 -0
  15. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/setup.py +2 -1
  16. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_core.py +16 -0
  17. bluecellulab-1.8.2/tests/test_graph.py +74 -0
  18. bluecellulab-1.8.0/examples/2-sonata-network/sonata-network.ipynb +0 -929
  19. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.compile_mod.sh +0 -0
  20. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.gitattributes +0 -0
  21. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.github/dependabot.yml +0 -0
  22. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.github/workflows/release.yml +0 -0
  23. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.github/workflows/test.yml +0 -0
  24. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.gitignore +0 -0
  25. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.gitlab-ci.yml +0 -0
  26. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.readthedocs.yml +0 -0
  27. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.zenodo.json +0 -0
  28. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/AUTHORS.txt +0 -0
  29. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/CHANGELOG.rst +0 -0
  30. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/LICENSE +0 -0
  31. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/MANIFEST.in +0 -0
  32. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/Makefile +0 -0
  33. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/README.rst +0 -0
  34. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/__init__.py +0 -0
  35. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/__init__.py +0 -0
  36. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/ballstick/__init__.py +0 -0
  37. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
  38. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/ballstick/morphology.asc +0 -0
  39. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/cell_dict.py +0 -0
  40. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/plotting.py +0 -0
  41. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/random.py +0 -0
  42. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/section_distance.py +0 -0
  43. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/serialized_sections.py +0 -0
  44. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/sonata_proxy.py +0 -0
  45. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/stimuli_generator.py +0 -0
  46. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/template.py +0 -0
  47. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/__init__.py +0 -0
  48. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/circuit_access.py +0 -0
  49. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/config/__init__.py +0 -0
  50. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/config/sections.py +0 -0
  51. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/config/simulation_config.py +0 -0
  52. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/format.py +0 -0
  53. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/iotools.py +0 -0
  54. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/node_id.py +0 -0
  55. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/simulation_access.py +0 -0
  56. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/synapse_properties.py +0 -0
  57. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/validate.py +0 -0
  58. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/dendrogram.py +0 -0
  59. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/exceptions.py +0 -0
  60. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/Cell.hoc +0 -0
  61. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/RNGSettings.hoc +0 -0
  62. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/TDistFunc.hoc +0 -0
  63. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/TStim.hoc +0 -0
  64. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/fileUtils.hoc +0 -0
  65. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/importer.py +0 -0
  66. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/neuron_interpreter.py +0 -0
  67. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/plotwindow.py +0 -0
  68. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/psection.py +0 -0
  69. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/psegment.py +0 -0
  70. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/rngsettings.py +0 -0
  71. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/simulation/__init__.py +0 -0
  72. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/simulation/neuron_globals.py +0 -0
  73. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/stimuli.py +0 -0
  74. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/synapse/__init__.py +0 -0
  75. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/type_aliases.py +0 -0
  76. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/dependency_links.txt +0 -0
  77. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/top_level.txt +0 -0
  78. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/Makefile +0 -0
  79. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/images/voltage-readme.png +0 -0
  80. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/make.bat +0 -0
  81. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/requirements_docs.txt +0 -0
  82. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/_static/.gitkeep +0 -0
  83. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/api.rst +0 -0
  84. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/changelog.rst +0 -0
  85. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/compiling-mechanisms.rst +0 -0
  86. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/conf.py +0 -0
  87. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/index.rst +0 -0
  88. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
  89. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/1-singlecell/hoc/cADpyr_L2TPC.hoc +0 -0
  90. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/1-singlecell/morphology/rr110330_C3_idA.asc +0 -0
  91. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/1-singlecell/singlecell.ipynb +0 -0
  92. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  93. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  94. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  95. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  96. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  97. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  98. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  99. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  100. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  101. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  102. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  103. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  104. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  105. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  106. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  107. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  108. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  109. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  110. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  111. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  112. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  113. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  114. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  115. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  116. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  117. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  118. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  119. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  120. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  121. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  122. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  123. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  124. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  125. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  126. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  127. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  128. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  129. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  130. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  131. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  132. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  133. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  134. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  135. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/3-bpap/bpap.ipynb +0 -0
  136. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/epsp.ipynb +0 -0
  137. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cacumm.mod +0 -0
  138. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cagk.mod +0 -0
  139. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cal2.mod +0 -0
  140. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/can2.mod +0 -0
  141. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cat.mod +0 -0
  142. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/h.mod +0 -0
  143. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kadist.mod +0 -0
  144. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kaprox.mod +0 -0
  145. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kca.mod +0 -0
  146. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kdb.mod +0 -0
  147. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kdrbca1.mod +0 -0
  148. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kmb.mod +0 -0
  149. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/na3n.mod +0 -0
  150. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hoc/cell_seed2_0.hoc +0 -0
  151. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/morphology/011017HP2.asc +0 -0
  152. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/README.rst +0 -0
  153. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca.mod +0 -0
  154. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/CaDynamics_DC0.mod +0 -0
  155. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/CaDynamics_E2.mod +0 -0
  156. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca_HVA.mod +0 -0
  157. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca_HVA2.mod +0 -0
  158. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca_LVAst.mod +0 -0
  159. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/DetAMPANMDA.mod +0 -0
  160. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/DetGABAAB.mod +0 -0
  161. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/GluSynapse.mod +0 -0
  162. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ih.mod +0 -0
  163. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Im.mod +0 -0
  164. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/K_Pst.mod +0 -0
  165. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/K_Tst.mod +0 -0
  166. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/KdShu2007.mod +0 -0
  167. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/NaTa_t.mod +0 -0
  168. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/NaTg.mod +0 -0
  169. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/NaTs2_t.mod +0 -0
  170. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Nap_Et2.mod +0 -0
  171. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  172. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/ProbGABAAB_EMS.mod +0 -0
  173. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/README.md +0 -0
  174. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/SK_E2.mod +0 -0
  175. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/SKv3_1.mod +0 -0
  176. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/StochKv.mod +0 -0
  177. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/StochKv3.mod +0 -0
  178. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/TTXDynamicsSwitch.mod +0 -0
  179. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/VecStim.mod +0 -0
  180. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/gap.mod +0 -0
  181. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/netstim_inhpoisson.mod +0 -0
  182. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/readme-plot.ipynb +0 -0
  183. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/pyproject.toml +0 -0
  184. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/setup.cfg +0 -0
  185. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/__init__.py +0 -0
  186. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/data/synapse_replay_file/spikes.dat +0 -0
  187. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/analytic_expsyn.txt +0 -0
  188. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/ballstick.asc +0 -0
  189. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/ballstick.hoc +0 -0
  190. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/bs.cfg +0 -0
  191. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example1/test_cell.asc +0 -0
  192. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example1/test_cell.hoc +0 -0
  193. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example1/test_cell_longname1.hoc +0 -0
  194. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example2/test_cell.asc +0 -0
  195. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example2/test_cell.hoc +0 -0
  196. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_cstut/cSTUT_7.hoc +0 -0
  197. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_cstut/test_cell.asc +0 -0
  198. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_empty/test_cell.asc +0 -0
  199. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_empty/test_cell.hoc +0 -0
  200. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_empty/test_cell_v6a.hoc +0 -0
  201. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/circuit_config.json +0 -0
  202. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg141017_a1_2_idC_2019032814340.hoc +0 -0
  203. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg141217_A_idB_2019030511280.hoc +0 -0
  204. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg150305_A_idB_2019030511201.hoc +0 -0
  205. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idB_2019030510521.hoc +0 -0
  206. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idF_2019030511545.hoc +0 -0
  207. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idJ_2019032814272.hoc +0 -0
  208. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  209. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  210. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  211. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  212. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  213. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  214. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  215. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  216. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  217. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  218. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/copy-hoc-morphs.ipynb +0 -0
  219. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/edges/edges.h5 +0 -0
  220. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hippocampus_projections/nodes.h5 +0 -0
  221. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hoc-and-morphs.csv +0 -0
  222. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/id_mapping.json +0 -0
  223. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/node_sets.json +0 -0
  224. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/nodes/nodes.h5 +0 -0
  225. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/circuit_sonata.json +0 -0
  226. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cADpyr_L2TPC.hoc +0 -0
  227. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cNAC_L23BTC.hoc +0 -0
  228. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/C210401C.asc +0 -0
  229. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/rr110330_C3_idA.asc +0 -0
  230. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/C210401C.swc +0 -0
  231. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/rr110330_C3_idA.swc +0 -0
  232. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5 +0 -0
  233. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5.txt +0 -0
  234. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/node_sets.json +0 -0
  235. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5 +0 -0
  236. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5.txt +0 -0
  237. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
  238. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
  239. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
  240. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
  241. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
  242. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
  243. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
  244. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
  245. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
  246. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
  247. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  248. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  249. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  250. {bluecellulab-1.8.0 → bluecellulab-1.8.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
  251. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
  252. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
  253. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
  254. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
  255. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
  256. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
  257. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
  258. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
  259. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
  260. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
  261. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
  262. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
  263. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/hippocampus_opt_cell_template/README.md +0 -0
  264. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/hippocampus_opt_cell_template/electrophysiology/cell.hoc +0 -0
  265. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/hippocampus_opt_cell_template/morphology/cell.asc +0 -0
  266. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/legacy_circuitconfig/CircuitConfig +0 -0
  267. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig +0 -0
  268. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig.SUCCESS +0 -0
  269. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/out.dat +0 -0
  270. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/out.h5 +0 -0
  271. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/populations_offset.dat +0 -0
  272. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/soma_SONATA.h5 +0 -0
  273. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/user.target +0 -0
  274. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/circuit_sonata.json +0 -0
  275. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/out.h5 +0 -0
  276. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/populations_offset.dat +0 -0
  277. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/soma.h5 +0 -0
  278. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/out.h5 +0 -0
  279. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/populations_offset.dat +0 -0
  280. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/soma.h5 +0 -0
  281. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config.json.SUCCESS +0 -0
  282. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json +0 -0
  283. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json.SUCCESS +0 -0
  284. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json +0 -0
  285. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json.SUCCESS +0 -0
  286. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
  287. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
  288. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
  289. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
  290. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
  291. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
  292. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
  293. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
  294. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
  295. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
  296. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
  297. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
  298. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
  299. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
  300. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
  301. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
  302. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
  303. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/circuit_sonata.json +0 -0
  304. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/node_sets.json +0 -0
  305. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/sim_conf/populations_offset.dat +0 -0
  306. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config.json +0 -0
  307. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config_many_inputs.json +0 -0
  308. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/circuit_config.json +0 -0
  309. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/echo +0 -0
  310. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/node_sets.json +0 -0
  311. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/out.h5 +0 -0
  312. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/populations_offset.dat +0 -0
  313. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/soma.h5 +0 -0
  314. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json +0 -0
  315. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json.SUCCESS +0 -0
  316. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/circuit_config.json +0 -0
  317. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/node_sets.json +0 -0
  318. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/simulation_config.json +0 -0
  319. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/synapse_replay.dat +0 -0
  320. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/tapertest_cells/notaper_cell.hoc +0 -0
  321. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/tapertest_cells/taper_cell.hoc +0 -0
  322. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/tapertest_cells/test_cell.asc +0 -0
  323. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/helpers/__init__.py +0 -0
  324. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/helpers/os_utils.py +0 -0
  325. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca.mod +0 -0
  326. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/CaDynamics_DC0.mod +0 -0
  327. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/CaDynamics_E2.mod +0 -0
  328. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca_HVA.mod +0 -0
  329. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca_HVA2.mod +0 -0
  330. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca_LVAst.mod +0 -0
  331. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/DetAMPANMDA.mod +0 -0
  332. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/DetGABAAB.mod +0 -0
  333. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/GluSynapse.mod +0 -0
  334. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ih.mod +0 -0
  335. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Im.mod +0 -0
  336. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/K_Pst.mod +0 -0
  337. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/K_Tst.mod +0 -0
  338. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/KdShu2007.mod +0 -0
  339. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/NaTa_t.mod +0 -0
  340. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/NaTg.mod +0 -0
  341. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/NaTs2_t.mod +0 -0
  342. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Nap_Et2.mod +0 -0
  343. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
  344. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/ProbGABAAB_EMS.mod +0 -0
  345. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/README.md +0 -0
  346. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/SK_E2.mod +0 -0
  347. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/SKv3_1.mod +0 -0
  348. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/StochKv.mod +0 -0
  349. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/StochKv3.mod +0 -0
  350. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/TTXDynamicsSwitch.mod +0 -0
  351. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/VecStim.mod +0 -0
  352. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cacumm.mod +0 -0
  353. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cacummb.mod +0 -0
  354. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cagk.mod +0 -0
  355. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cal2.mod +0 -0
  356. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/can2.mod +0 -0
  357. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cat.mod +0 -0
  358. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/gap.mod +0 -0
  359. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/h.mod +0 -0
  360. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kadist.mod +0 -0
  361. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kaprox.mod +0 -0
  362. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kca.mod +0 -0
  363. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kd.mod +0 -0
  364. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kd2.mod +0 -0
  365. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kdb.mod +0 -0
  366. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kdrbca1.mod +0 -0
  367. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kdrca1.mod +0 -0
  368. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/km.mod +0 -0
  369. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kmb.mod +0 -0
  370. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/na3n.mod +0 -0
  371. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/naxn.mod +0 -0
  372. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/netstim_inhpoisson.mod +0 -0
  373. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ballstick.py +0 -0
  374. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_bglib.py +0 -0
  375. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/__init__.py +0 -0
  376. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_cell_dict.py +0 -0
  377. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_injector.py +0 -0
  378. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_random.py +0 -0
  379. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_serialized_sections.py +0 -0
  380. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_sonata_proxy.py +0 -0
  381. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_stimuli_generator.py +0 -0
  382. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_template.py +0 -0
  383. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/__init__.py +0 -0
  384. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_circuit_access.py +0 -0
  385. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_config_sections.py +0 -0
  386. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_format.py +0 -0
  387. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_node_id.py +0 -0
  388. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_simulation_access.py +0 -0
  389. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_simulation_config.py +0 -0
  390. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_synapse_properties.py +0 -0
  391. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_validate.py +0 -0
  392. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_exceptions.py +0 -0
  393. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_importer.py +0 -0
  394. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_load.py +0 -0
  395. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_neuron_interpreter.py +0 -0
  396. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_rngsettings.py +0 -0
  397. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_simulation/__init__.py +0 -0
  398. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_simulation/test_neuron_globals.py +0 -0
  399. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_simulation/test_simulation.py +0 -0
  400. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ssim.py +0 -0
  401. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ssim_sonata.py +0 -0
  402. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_stimuli.py +0 -0
  403. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/__init__.py +0 -0
  404. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/test-synapse-series.json +0 -0
  405. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/test_synapse.py +0 -0
  406. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/test_synapse_factory.py +0 -0
  407. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_tools.py +0 -0
  408. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ttx.py +0 -0
  409. {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 1.8.0
3
+ Version: 1.8.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
@@ -20,12 +20,13 @@ import logging
20
20
  from pathlib import Path
21
21
  import queue
22
22
  from typing import Optional
23
+ from typing_extensions import deprecated
23
24
 
24
25
  import numpy as np
25
26
  import pandas as pd
26
27
 
27
28
  import bluecellulab
28
- from bluecellulab import neuron, psection, tools
29
+ from bluecellulab import neuron, psection
29
30
  from bluecellulab.cell.injector import InjectableMixin
30
31
  from bluecellulab.cell.plotting import PlottableMixin
31
32
  from bluecellulab.cell.section_distance import EuclideanSectionDistance
@@ -50,10 +51,12 @@ logger = logging.getLogger(__name__)
50
51
  class Cell(InjectableMixin, PlottableMixin):
51
52
  """Represents a Cell object."""
52
53
 
54
+ max_id = 0
55
+
53
56
  def __init__(self,
54
57
  template_path: str | Path,
55
58
  morphology_path: str | Path,
56
- gid: int = 0,
59
+ cell_id: Optional[CellId] = None,
57
60
  record_dt: Optional[float] = None,
58
61
  template_format: str = "v5",
59
62
  emodel_properties: Optional[EmodelProperties] = None,
@@ -74,6 +77,10 @@ class Cell(InjectableMixin, PlottableMixin):
74
77
  object used by the Cell. Defaults to None.
75
78
  """
76
79
  super().__init__()
80
+ if cell_id is None:
81
+ cell_id = CellId("", Cell.max_id)
82
+ Cell.max_id += 1
83
+ self.cell_id = cell_id
77
84
  # Persistent objects, like clamps, that exist as long
78
85
  # as the object exists
79
86
  self.persistent: list[HocObjectType] = []
@@ -83,7 +90,7 @@ class Cell(InjectableMixin, PlottableMixin):
83
90
  # Load the template
84
91
  neuron_template = NeuronTemplate(template_path, morphology_path)
85
92
  self.template_id = neuron_template.template_name # useful to map NEURON and python objects
86
- self.cell = neuron_template.get_cell(template_format, gid, emodel_properties)
93
+ self.cell = neuron_template.get_cell(template_format, self.cell_id.id, emodel_properties)
87
94
  self.soma = public_hoc_cell(self.cell).soma[0]
88
95
  # WARNING: this finitialize 'must' be here, otherwhise the
89
96
  # diameters of the loaded morph are wrong
@@ -92,8 +99,7 @@ class Cell(InjectableMixin, PlottableMixin):
92
99
  self.cellname = neuron.h.secname(sec=self.soma).split(".")[0]
93
100
 
94
101
  # Set the gid of the cell
95
- public_hoc_cell(self.cell).gid = gid
96
- self.gid = gid
102
+ self.cell.getCell().gid = self.cell_id.id
97
103
 
98
104
  if rng_settings is None:
99
105
  self.rng_settings = RNGSettings("Random123") # SONATA value
@@ -212,17 +218,17 @@ class Cell(InjectableMixin, PlottableMixin):
212
218
  for section in self.somatic:
213
219
  for seg in section:
214
220
  neuron.h.setdata_StochKv(seg.x, sec=section)
215
- neuron.h.setRNG_StochKv(channel_id, self.gid)
221
+ neuron.h.setRNG_StochKv(channel_id, self.cell_id.id)
216
222
  channel_id += 1
217
223
  for section in self.basal:
218
224
  for seg in section:
219
225
  neuron.h.setdata_StochKv(seg.x, sec=section)
220
- neuron.h.setRNG_StochKv(channel_id, self.gid)
226
+ neuron.h.setRNG_StochKv(channel_id, self.cell_id.id)
221
227
  channel_id += 1
222
228
  for section in self.apical:
223
229
  for seg in section:
224
230
  neuron.h.setdata_StochKv(seg.x, sec=section)
225
- neuron.h.setRNG_StochKv(channel_id, self.gid)
231
+ neuron.h.setRNG_StochKv(channel_id, self.cell_id.id)
226
232
  channel_id += 1
227
233
  else:
228
234
  self.cell.re_init_rng()
@@ -444,7 +450,7 @@ class Cell(InjectableMixin, PlottableMixin):
444
450
 
445
451
  self.synapses[synapse_id] = synapse
446
452
 
447
- logger.debug(f'Added synapse to cell {self.gid}')
453
+ logger.debug(f'Added synapse to cell {self.cell_id.id}')
448
454
 
449
455
  def add_replay_delayed_weight(
450
456
  self, sid: tuple[str, int], delay: float, weight: float
@@ -590,10 +596,10 @@ class Cell(InjectableMixin, PlottableMixin):
590
596
  + self.rng_settings.minis_seed
591
597
  self.ips[synapse_id].setRNGs(
592
598
  sid + 200,
593
- self.gid + 250,
599
+ self.cell_id.id + 250,
594
600
  seed2 + 300,
595
601
  sid + 200,
596
- self.gid + 250,
602
+ self.cell_id.id + 250,
597
603
  seed2 + 350)
598
604
  else:
599
605
  exprng = bluecellulab.neuron.h.Random()
@@ -604,18 +610,18 @@ class Cell(InjectableMixin, PlottableMixin):
604
610
 
605
611
  if self.rng_settings.mode == 'Compatibility':
606
612
  exp_seed1 = sid * 100000 + 200
607
- exp_seed2 = self.gid + 250 + base_seed + \
613
+ exp_seed2 = self.cell_id.id + 250 + base_seed + \
608
614
  self.rng_settings.minis_seed
609
615
  uniform_seed1 = sid * 100000 + 300
610
- uniform_seed2 = self.gid + 250 + base_seed + \
616
+ uniform_seed2 = self.cell_id.id + 250 + base_seed + \
611
617
  self.rng_settings.minis_seed
612
618
  elif self.rng_settings.mode == "UpdatedMCell":
613
619
  exp_seed1 = sid * 1000 + 200
614
- exp_seed2 = source_popid * 16777216 + self.gid + 250 + \
620
+ exp_seed2 = source_popid * 16777216 + self.cell_id.id + 250 + \
615
621
  base_seed + \
616
622
  self.rng_settings.minis_seed
617
623
  uniform_seed1 = sid * 1000 + 300
618
- uniform_seed2 = source_popid * 16777216 + self.gid + 250 \
624
+ uniform_seed2 = source_popid * 16777216 + self.cell_id.id + 250 \
619
625
  + base_seed + \
620
626
  self.rng_settings.minis_seed
621
627
  else:
@@ -692,7 +698,7 @@ class Cell(InjectableMixin, PlottableMixin):
692
698
  dend found in section %s" % secname)
693
699
 
694
700
  @staticmethod
695
- @tools.deprecated("bluecellulab.cell.section_distance.EuclideanSectionDistance")
701
+ @deprecated("Use bluecellulab.cell.section_distance.EuclideanSectionDistance instead.")
696
702
  def euclid_section_distance(
697
703
  hsection1=None,
698
704
  hsection2=None,
@@ -788,7 +794,7 @@ class Cell(InjectableMixin, PlottableMixin):
788
794
  spike_location=spike_location,
789
795
  )
790
796
  logger.debug(
791
- f"Added synapse replay from {pre_gid} to {self.gid}, {synapse_id}"
797
+ f"Added synapse replay from {pre_gid} to {self.cell_id.id}, {synapse_id}"
792
798
  )
793
799
 
794
800
  self.connections[synapse_id] = connection
@@ -18,9 +18,9 @@ import warnings
18
18
  import logging
19
19
 
20
20
  import numpy as np
21
+ from typing_extensions import deprecated
21
22
 
22
23
  import bluecellulab
23
- from bluecellulab import tools
24
24
  from bluecellulab.cell.stimuli_generator import (
25
25
  gen_ornstein_uhlenbeck,
26
26
  gen_shotnoise_signal,
@@ -156,20 +156,20 @@ class InjectableMixin:
156
156
  def _get_noise_step_rand(self, noisestim_count):
157
157
  """Return rng for noise step stimulus."""
158
158
  if self.rng_settings.mode == "Compatibility":
159
- rng = bluecellulab.neuron.h.Random(self.gid + noisestim_count)
159
+ rng = bluecellulab.neuron.h.Random(self.cell_id.id + noisestim_count)
160
160
  elif self.rng_settings.mode == "UpdatedMCell":
161
161
  rng = bluecellulab.neuron.h.Random()
162
162
  rng.MCellRan4(
163
163
  noisestim_count * 10000 + 100,
164
164
  self.rng_settings.base_seed +
165
165
  self.rng_settings.stimulus_seed +
166
- self.gid * 1000)
166
+ self.cell_id.id * 1000)
167
167
  elif self.rng_settings.mode == "Random123":
168
168
  rng = bluecellulab.neuron.h.Random()
169
169
  rng.Random123(
170
170
  noisestim_count + 100,
171
171
  self.rng_settings.stimulus_seed + 500,
172
- self.gid + 300)
172
+ self.cell_id.id + 300)
173
173
 
174
174
  self.persistent.append(rng)
175
175
  return rng
@@ -235,7 +235,7 @@ class InjectableMixin:
235
235
  if self.rng_settings.mode == "Random123":
236
236
  seed1 = stim_count + 2997 # stimulus block
237
237
  seed2 = self.rng_settings.stimulus_seed + 291204 # stimulus type
238
- seed3 = self.gid + 123 if seed is None else seed # GID
238
+ seed3 = self.cell_id.id + 123 if seed is None else seed # GID
239
239
  logger.debug("Using ornstein_uhlenbeck process seeds %d %d %d" %
240
240
  (seed1, seed2, seed3))
241
241
  rng = bluecellulab.neuron.h.Random()
@@ -251,7 +251,7 @@ class InjectableMixin:
251
251
  if self.rng_settings.mode == "Random123":
252
252
  seed1 = shotnoise_stim_count + 2997
253
253
  seed2 = self.rng_settings.stimulus_seed + 19216
254
- seed3 = self.gid + 123 if seed is None else seed
254
+ seed3 = self.cell_id.id + 123 if seed is None else seed
255
255
  logger.debug("Using shot noise seeds %d %d %d" %
256
256
  (seed1, seed2, seed3))
257
257
  rng = bluecellulab.neuron.h.Random()
@@ -416,13 +416,13 @@ class InjectableMixin:
416
416
  currents.play(pulse._ref_amp, time)
417
417
  return currents
418
418
 
419
- @tools.deprecated("inject_current_waveform")
419
+ @deprecated("Use inject_current_waveform instead.")
420
420
  def injectCurrentWaveform(self, t_content, i_content, section=None,
421
421
  segx=0.5):
422
422
  """Inject a current in the cell."""
423
423
  return self.inject_current_waveform(t_content, i_content, section, segx)
424
424
 
425
- @tools.deprecated("add_sin_current")
425
+ @deprecated("Use add_sin_current instead.")
426
426
  def addSineCurrentInject(self, start_time, stop_time, freq,
427
427
  amplitude, mid_level, dt=1.0):
428
428
  """Add a sinusoidal current injection.
@@ -18,6 +18,7 @@ from typing import Optional
18
18
  import numpy as np
19
19
 
20
20
  import bluecellulab
21
+ from bluecellulab.cell.core import Cell
21
22
  from bluecellulab.circuit import SynapseProperty
22
23
 
23
24
 
@@ -28,7 +29,7 @@ class Connection:
28
29
  self,
29
30
  post_synapse,
30
31
  pre_spiketrain: Optional[np.ndarray] = None,
31
- pre_cell=None,
32
+ pre_cell: Optional[Cell] = None,
32
33
  stim_dt=None,
33
34
  parallel_context=None,
34
35
  spike_threshold: float = -30.0,
@@ -76,7 +77,7 @@ class Connection:
76
77
  self.post_netcon = self.pre_cell.create_netcon_spikedetector(
77
78
  self.post_synapse.hsynapse, location=spike_location,
78
79
  threshold=spike_threshold) if self.pc is None else \
79
- self.pc.gid_connect(self.pre_cell.gid, self.post_synapse.hsynapse)
80
+ self.pc.gid_connect(self.pre_cell.cell_id.id, self.post_synapse.hsynapse)
80
81
  self.post_netcon.weight[0] = self.post_netcon_weight
81
82
  self.post_netcon.delay = self.post_netcon_delay
82
83
  self.post_netcon.threshold = spike_threshold
@@ -94,7 +95,7 @@ class Connection:
94
95
  connection_dict = {}
95
96
 
96
97
  connection_dict['pre_cell_id'] = self.post_synapse.pre_gid
97
- connection_dict['post_cell_id'] = self.post_synapse.post_gid
98
+ connection_dict['post_cell_id'] = self.post_synapse.post_cell_id.id
98
99
  connection_dict['post_synapse_id'] = self.post_synapse.syn_id.sid
99
100
 
100
101
  connection_dict['post_netcon'] = {}
@@ -0,0 +1,85 @@
1
+ """Graph representation of Cells and Synapses."""
2
+
3
+ from matplotlib.cm import ScalarMappable
4
+ from matplotlib.colors import Normalize
5
+ import matplotlib.pyplot as plt
6
+ import networkx as nx
7
+ import numpy as np
8
+
9
+
10
+ from bluecellulab.cell.cell_dict import CellDict
11
+
12
+
13
+ def build_graph(cells: CellDict) -> nx.DiGraph:
14
+ G = nx.DiGraph()
15
+
16
+ # Add nodes (cells) to the graph
17
+ for cell_id, cell in cells.items():
18
+ G.add_node(cell_id, label=str(cell_id.id), population=cell_id.population_name)
19
+
20
+ # Extract and add edges (connections) to the graph from each cell
21
+ for cell_id, cell in cells.items():
22
+ for connection in cell.connections.values():
23
+ # Check if pre_cell exists for the connection
24
+ if connection.pre_cell is None:
25
+ continue
26
+
27
+ # Source is the pre_cell from the connection
28
+ source_cell_id = connection.pre_cell.cell_id
29
+
30
+ # Target is the post-synapse cell from the connection
31
+ target_cell_id = connection.post_synapse.post_cell_id
32
+
33
+ # Check if both source and target cells are within the current cell collection
34
+ if source_cell_id in cells and target_cell_id in cells:
35
+ G.add_edge(source_cell_id, target_cell_id, weight=connection.weight)
36
+
37
+ return G
38
+
39
+
40
+ def plot_graph(G: nx.Graph, node_size: float = 400, edge_width: float = 0.4, node_distance: float = 1.6):
41
+ # Extract unique populations from the graph nodes
42
+ populations = list(set([cell_id.population_name for cell_id in G.nodes()]))
43
+
44
+ # Create a color map for each population
45
+ color_map = plt.cm.tab20(np.linspace(0, 1, len(populations))) # type: ignore[attr-defined]
46
+ population_color = dict(zip(populations, color_map))
47
+
48
+ # Create node colors based on their population
49
+ node_colors = [population_color[node.population_name] for node in G.nodes()]
50
+
51
+ # Extract weights for edge color mapping
52
+ edge_weights = [d['weight'] for _, _, d in G.edges(data=True)]
53
+ edge_colors = plt.cm.Greens(np.interp(edge_weights, (min(edge_weights), max(edge_weights)), (0.3, 1))) # type: ignore[attr-defined]
54
+
55
+ # Create positions using spring layout for the entire graph
56
+ pos = nx.spring_layout(G, k=node_distance)
57
+
58
+ # Create labels only for the node ID
59
+ labels = {node: node.id for node in G.nodes()}
60
+
61
+ # Create a figure and axis for the drawing
62
+ fig, ax = plt.subplots(figsize=(6, 5))
63
+
64
+ # Draw the graph
65
+ nx.draw(G, pos, with_labels=True, labels=labels, node_color=node_colors,
66
+ edge_color=edge_colors, width=edge_width, node_size=node_size, ax=ax, connectionstyle='arc3, rad = 0.1')
67
+
68
+ # Draw directed edges
69
+ nx.draw_networkx_edges(G, pos, edge_color=edge_colors, width=edge_width, ax=ax, arrowstyle='-|>', arrowsize=20, connectionstyle='arc3, rad = 0.1')
70
+
71
+ # Create a legend
72
+ for population, color in population_color.items():
73
+ plt.plot([0], [0], color=color, label=population)
74
+ plt.legend(loc="upper left", bbox_to_anchor=(-0.1, 1.05)) # Adjust these values as needed
75
+
76
+ # Add a colorbar for edge weights
77
+ sm = ScalarMappable(cmap="Greens", norm=Normalize(vmin=min(edge_weights), vmax=max(edge_weights)))
78
+ sm.set_array([])
79
+ cbar = plt.colorbar(sm, ax=ax, orientation="vertical", fraction=0.03, pad=0.04)
80
+ cbar.set_label('Synaptic Strength')
81
+
82
+ # Add text at the bottom of the figure
83
+ plt.figtext(0.5, 0.01, "Network of simulated cells", ha="center", fontsize=10, va="bottom")
84
+
85
+ plt.show()
@@ -157,7 +157,7 @@ class Simulation:
157
157
 
158
158
  if self.pc is not None:
159
159
  for cell in self.cells:
160
- self.pc.prcellstate(cell.gid, f"bluecellulab_t={bluecellulab.neuron.h.t}")
160
+ self.pc.prcellstate(cell.cell_id.id, f"bluecellulab_t={bluecellulab.neuron.h.t}")
161
161
 
162
162
  try:
163
163
  neuron.h.continuerun(neuron.h.tstop)
@@ -17,7 +17,6 @@ simulations."""
17
17
 
18
18
  from __future__ import annotations
19
19
  from collections.abc import Iterable
20
- from collections import defaultdict
21
20
  from pathlib import Path
22
21
  from typing import Optional
23
22
  import logging
@@ -100,9 +99,6 @@ class SSim:
100
99
  self.cells: CellDict = CellDict()
101
100
 
102
101
  self.gids_instantiated = False
103
- self.connections: defaultdict = defaultdict(
104
- lambda: defaultdict(lambda: None)
105
- )
106
102
 
107
103
  # Make sure tstop is set correctly, because it is used by the
108
104
  # TStim noise stimulus
@@ -732,7 +728,7 @@ class SSim:
732
728
  cell_kwargs = {
733
729
  'template_path': self.circuit_access.emodel_path(cell_id),
734
730
  'morphology_path': self.circuit_access.morph_filepath(cell_id),
735
- 'gid': cell_id.id,
731
+ 'cell_id': cell_id,
736
732
  'record_dt': self.record_dt,
737
733
  'rng_settings': self.rng_settings,
738
734
  'template_format': self.circuit_access.get_template_format(),
@@ -746,7 +742,7 @@ class SSim:
746
742
  cell_kwargs = self.fetch_cell_kwargs(cell_id)
747
743
  return bluecellulab.Cell(template_path=cell_kwargs['template_path'],
748
744
  morphology_path=cell_kwargs['morphology_path'],
749
- gid=cell_kwargs['gid'],
745
+ cell_id=cell_kwargs['cell_id'],
750
746
  record_dt=cell_kwargs['record_dt'],
751
747
  rng_settings=cell_kwargs['rng_settings'],
752
748
  template_format=cell_kwargs['template_format'],
@@ -60,13 +60,13 @@ class SynapseFactory:
60
60
  randomize_gaba_risetime = condition_parameters.randomize_gaba_rise_time
61
61
  else:
62
62
  randomize_gaba_risetime = True
63
- synapse = GabaabSynapse(cell.rng_settings, cell.gid, syn_hoc_args, syn_id, syn_description,
63
+ synapse = GabaabSynapse(cell.rng_settings, cell.cell_id, syn_hoc_args, syn_id, syn_description,
64
64
  popids, extracellular_calcium, randomize_gaba_risetime)
65
65
  elif syn_type == SynapseType.AMPANMDA:
66
- synapse = AmpanmdaSynapse(cell.rng_settings, cell.gid, syn_hoc_args, syn_id, syn_description,
66
+ synapse = AmpanmdaSynapse(cell.rng_settings, cell.cell_id, syn_hoc_args, syn_id, syn_description,
67
67
  popids, extracellular_calcium)
68
68
  else:
69
- synapse = GluSynapse(cell.rng_settings, cell.gid, syn_hoc_args, syn_id, syn_description,
69
+ synapse = GluSynapse(cell.rng_settings, cell.cell_id, syn_hoc_args, syn_id, syn_description,
70
70
  popids, extracellular_calcium)
71
71
 
72
72
  synapse = cls.apply_connection_modifiers(connection_modifiers, synapse)
@@ -20,6 +20,7 @@ import logging
20
20
 
21
21
  import bluecellulab
22
22
  from bluecellulab.circuit import SynapseProperty
23
+ from bluecellulab.circuit.node_id import CellId
23
24
  from bluecellulab.rngsettings import RNGSettings
24
25
  from bluecellulab.type_aliases import HocObjectType, NeuronSection
25
26
 
@@ -46,7 +47,7 @@ class Synapse:
46
47
  def __init__(
47
48
  self,
48
49
  rng_settings: RNGSettings,
49
- gid: int,
50
+ cell_id: CellId,
50
51
  hoc_args: SynapseHocArgs,
51
52
  syn_id: tuple[str, int],
52
53
  syn_description: pd.Series,
@@ -72,7 +73,7 @@ class Synapse:
72
73
  self._delay_weights: list[tuple[float, float]] = []
73
74
  self._weight: Optional[float] = None
74
75
 
75
- self.post_gid = gid
76
+ self.post_cell_id = cell_id
76
77
  self.syn_id = SynapseID(*syn_id)
77
78
  self.extracellular_calcium = extracellular_calcium
78
79
  self.syn_description: pd.Series = self.update_syn_description(syn_description)
@@ -146,7 +147,7 @@ class Synapse:
146
147
  ValueError: when rng mode is not recognised.
147
148
  """
148
149
  if self.rng_settings.mode == "Random123":
149
- self.randseed1 = self.post_gid + 250
150
+ self.randseed1 = self.post_cell_id.id + 250
150
151
  self.randseed2 = self.syn_id.sid + 100
151
152
  self.randseed3 = self.source_popid * 65536 + self.target_popid + \
152
153
  self.rng_settings.synapse_seed + 300
@@ -158,12 +159,12 @@ class Synapse:
158
159
  rndd = bluecellulab.neuron.h.Random()
159
160
  if self.rng_settings.mode == "Compatibility":
160
161
  self.randseed1 = self.syn_id.sid * 100000 + 100
161
- self.randseed2 = self.post_gid + \
162
+ self.randseed2 = self.post_cell_id.id + \
162
163
  250 + self.rng_settings.base_seed
163
164
  elif self.rng_settings.mode == "UpdatedMCell":
164
165
  self.randseed1 = self.syn_id.sid * 1000 + 100
165
166
  self.randseed2 = self.source_popid * 16777216 + \
166
- self.post_gid + \
167
+ self.post_cell_id.id + \
167
168
  250 + self.rng_settings.base_seed + \
168
169
  self.rng_settings.synapse_seed
169
170
  else:
@@ -209,7 +210,7 @@ class Synapse:
209
210
 
210
211
  synapse_dict['synapse_id'] = self.syn_id
211
212
  synapse_dict['pre_cell_id'] = self.pre_gid
212
- synapse_dict['post_cell_id'] = self.post_gid
213
+ synapse_dict['post_cell_id'] = self.post_cell_id.id
213
214
  synapse_dict['syn_description'] = self.syn_description.to_dict()
214
215
  # if keys are enum make them str
215
216
  synapse_dict['syn_description'] = {
@@ -286,7 +287,7 @@ class GluSynapse(Synapse):
286
287
  if self.syn_description[SynapseProperty.NRRP] >= 0:
287
288
  self.hsynapse.Nrrp = self.syn_description[SynapseProperty.NRRP]
288
289
 
289
- self.randseed1 = self.post_gid
290
+ self.randseed1 = self.post_cell_id.id
290
291
  self.randseed2 = 100000 + self.syn_id.sid
291
292
  self.randseed3 = self.rng_settings.synapse_seed + 200
292
293
  self.hsynapse.setRNG(self.randseed1, self.randseed2, self.randseed3)
@@ -330,19 +331,19 @@ class GabaabSynapse(Synapse):
330
331
  if self.rng_settings.mode == "Compatibility":
331
332
  rng.MCellRan4(
332
333
  self.syn_id.sid * 100000 + 100,
333
- self.post_gid + 250 + self.rng_settings.base_seed)
334
+ self.post_cell_id.id + 250 + self.rng_settings.base_seed)
334
335
  elif self.rng_settings.mode == "UpdatedMCell":
335
336
  rng.MCellRan4(
336
337
  self.syn_id.sid * 1000 + 100,
337
338
  self.source_popid *
338
339
  16777216 +
339
- self.post_gid +
340
+ self.post_cell_id.id +
340
341
  250 +
341
342
  self.rng_settings.base_seed +
342
343
  self.rng_settings.synapse_seed)
343
344
  elif self.rng_settings.mode == "Random123":
344
345
  rng.Random123(
345
- self.post_gid +
346
+ self.post_cell_id.id +
346
347
  250,
347
348
  self.syn_id.sid +
348
349
  100,
@@ -24,7 +24,6 @@ import os
24
24
  from pathlib import Path
25
25
  import sys
26
26
  from typing import Any, Optional, Tuple
27
- import warnings
28
27
  import logging
29
28
 
30
29
  import numpy as np
@@ -74,30 +73,6 @@ def set_verbose_from_env() -> None:
74
73
  set_verbose_from_env()
75
74
 
76
75
 
77
- class deprecated:
78
- """Decorator to mark a function as deprecated."""
79
-
80
- def __init__(self, new_function=""):
81
- self.new_function = new_function
82
-
83
- def __call__(self, func):
84
- def rep_func(*args, **kwargs):
85
- """Replacement function."""
86
- warnings.warn(
87
- "Call to deprecated function {%s}. Use {%s} instead." % (
88
- func.__name__, self.new_function),
89
- category=DeprecationWarning)
90
- return func(*args, **kwargs)
91
- rep_func.__name__ = func.__name__
92
- if func.__doc__ is None or func.__doc__ == "":
93
- func.__doc__ = "Deprecated"
94
- rep_func.__doc__ = func.__doc__ + "\n\n \
95
- .. note:: Replaced by %s\n\n \
96
- .. deprecated:: .1\n" % self.new_function
97
- rep_func.__dict__.update(func.__dict__)
98
- return rep_func
99
-
100
-
101
76
  def calculate_input_resistance(
102
77
  template_path: str | Path,
103
78
  morphology_path: str | Path,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 1.8.0
3
+ Version: 1.8.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
@@ -20,6 +20,7 @@ bluecellulab/__init__.py
20
20
  bluecellulab/connection.py
21
21
  bluecellulab/dendrogram.py
22
22
  bluecellulab/exceptions.py
23
+ bluecellulab/graph.py
23
24
  bluecellulab/importer.py
24
25
  bluecellulab/neuron_interpreter.py
25
26
  bluecellulab/plotwindow.py
@@ -181,6 +182,7 @@ tests/__init__.py
181
182
  tests/test_ballstick.py
182
183
  tests/test_bglib.py
183
184
  tests/test_exceptions.py
185
+ tests/test_graph.py
184
186
  tests/test_importer.py
185
187
  tests/test_load.py
186
188
  tests/test_neuron_interpreter.py
@@ -5,3 +5,4 @@ pandas<3.0.0,>=1.0.0
5
5
  bluepysnap<3.0.0,>=2.0.0
6
6
  pydantic<3.0.0,>=2.5.2
7
7
  typing-extensions>=4.8.0
8
+ networkx>=3.1