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.
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/PKG-INFO +1 -1
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/core.py +23 -17
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/injector.py +8 -8
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/connection.py +4 -3
- bluecellulab-1.8.2/bluecellulab/graph.py +85 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/simulation/simulation.py +1 -1
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/ssim.py +2 -6
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/synapse/synapse_factory.py +3 -3
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/synapse/synapse_types.py +11 -10
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/tools.py +0 -25
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/PKG-INFO +1 -1
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/SOURCES.txt +2 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/requires.txt +1 -0
- bluecellulab-1.8.2/examples/2-sonata-network/sonata-network.ipynb +960 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/setup.py +2 -1
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_core.py +16 -0
- bluecellulab-1.8.2/tests/test_graph.py +74 -0
- bluecellulab-1.8.0/examples/2-sonata-network/sonata-network.ipynb +0 -929
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.compile_mod.sh +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.gitattributes +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.github/dependabot.yml +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.github/workflows/release.yml +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.github/workflows/test.yml +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.gitignore +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.gitlab-ci.yml +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.readthedocs.yml +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/.zenodo.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/AUTHORS.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/CHANGELOG.rst +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/LICENSE +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/MANIFEST.in +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/Makefile +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/README.rst +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/ballstick/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/ballstick/morphology.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/cell_dict.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/plotting.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/random.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/section_distance.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/serialized_sections.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/sonata_proxy.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/stimuli_generator.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/cell/template.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/circuit_access.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/config/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/config/sections.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/config/simulation_config.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/format.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/iotools.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/node_id.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/simulation_access.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/synapse_properties.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/circuit/validate.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/dendrogram.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/exceptions.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/Cell.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/RNGSettings.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/TDistFunc.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/TStim.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/hoc/fileUtils.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/importer.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/neuron_interpreter.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/plotwindow.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/psection.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/psegment.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/rngsettings.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/simulation/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/simulation/neuron_globals.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/stimuli.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/synapse/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab/type_aliases.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/dependency_links.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/bluecellulab.egg-info/top_level.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/Makefile +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/images/voltage-readme.png +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/make.bat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/requirements_docs.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/_static/.gitkeep +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/api.rst +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/changelog.rst +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/compiling-mechanisms.rst +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/conf.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/index.rst +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/1-singlecell/hoc/cADpyr_L2TPC.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/1-singlecell/morphology/rr110330_C3_idA.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/1-singlecell/singlecell.ipynb +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/3-bpap/bpap.ipynb +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/epsp.ipynb +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cacumm.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cagk.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cal2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/can2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/cat.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/h.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kadist.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kaprox.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kca.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kdb.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kdrbca1.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/kmb.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hippocampus_mechanisms/na3n.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/hoc/cell_seed2_0.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/4-epsp/morphology/011017HP2.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/README.rst +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/CaDynamics_DC0.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/CaDynamics_E2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca_HVA.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca_HVA2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ca_LVAst.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/DetAMPANMDA.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/DetGABAAB.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/GluSynapse.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Ih.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Im.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/K_Pst.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/K_Tst.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/KdShu2007.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/NaTa_t.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/NaTg.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/NaTs2_t.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/Nap_Et2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/ProbGABAAB_EMS.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/README.md +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/SK_E2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/SKv3_1.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/StochKv.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/StochKv3.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/TTXDynamicsSwitch.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/VecStim.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/gap.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/mechanisms/netstim_inhpoisson.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/examples/readme-plot.ipynb +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/pyproject.toml +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/setup.cfg +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/data/synapse_replay_file/spikes.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/analytic_expsyn.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/ballstick.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/ballstick.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/ballstick_cell/bs.cfg +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example1/test_cell.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example1/test_cell.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example1/test_cell_longname1.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example2/test_cell.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example2/test_cell.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_cstut/cSTUT_7.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_cstut/test_cell.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_empty/test_cell.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_empty/test_cell.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/cell_example_empty/test_cell_v6a.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/circuit_config.json +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/copy-hoc-morphs.ipynb +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/edges/edges.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hippocampus_projections/nodes.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hoc-and-morphs.csv +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/id_mapping.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/node_sets.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/nodes/nodes.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/circuit_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cADpyr_L2TPC.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/hoc/cNAC_L23BTC.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/C210401C.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/rr110330_C3_idA.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/C210401C.swc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/rr110330_C3_idA.swc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/node_sets.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
- {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
- {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
- {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
- {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
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/hippocampus_opt_cell_template/README.md +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/hippocampus_opt_cell_template/electrophysiology/cell.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/hippocampus_opt_cell_template/morphology/cell.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/legacy_circuitconfig/CircuitConfig +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/BlueConfig.SUCCESS +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/out.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/output/soma_SONATA.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_bluepy/user.target +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/circuit_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config.json.SUCCESS +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json.SUCCESS +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json.SUCCESS +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/circuit_sonata.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/node_sets.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/sim_conf/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config_many_inputs.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/circuit_config.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/echo +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/node_sets.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/out.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/populations_offset.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/output_sonata/soma.h5 +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json.SUCCESS +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/circuit_config.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/node_sets.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/simulation_config.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/sonata_unit_test_sims/synapse_replay/synapse_replay.dat +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/tapertest_cells/notaper_cell.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/tapertest_cells/taper_cell.hoc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/examples/tapertest_cells/test_cell.asc +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/helpers/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/helpers/os_utils.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/CaDynamics_DC0.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/CaDynamics_E2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca_HVA.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca_HVA2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ca_LVAst.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/DetAMPANMDA.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/DetGABAAB.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/GluSynapse.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Ih.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Im.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/K_Pst.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/K_Tst.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/KdShu2007.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/NaTa_t.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/NaTg.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/NaTs2_t.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/Nap_Et2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/ProbGABAAB_EMS.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/README.md +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/SK_E2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/SKv3_1.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/StochKv.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/StochKv3.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/TTXDynamicsSwitch.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/VecStim.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cacumm.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cacummb.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cagk.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cal2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/can2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/cat.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/gap.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/h.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kadist.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kaprox.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kca.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kd.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kd2.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kdb.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kdrbca1.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kdrca1.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/km.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/kmb.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/na3n.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/naxn.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/mechanisms/netstim_inhpoisson.mod +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ballstick.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_bglib.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_cell_dict.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_injector.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_random.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_serialized_sections.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_sonata_proxy.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_stimuli_generator.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_cell/test_template.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_circuit_access.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_config_sections.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_format.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_node_id.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_simulation_access.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_simulation_config.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_synapse_properties.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_circuit/test_validate.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_exceptions.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_importer.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_load.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_neuron_interpreter.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_rngsettings.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_simulation/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_simulation/test_neuron_globals.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_simulation/test_simulation.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ssim.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ssim_sonata.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_stimuli.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/__init__.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/test-synapse-series.json +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/test_synapse.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_synapse/test_synapse_factory.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_tools.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tests/test_ttx.py +0 -0
- {bluecellulab-1.8.0 → bluecellulab-1.8.2}/tox.ini +0 -0
|
@@ -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
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
599
|
+
self.cell_id.id + 250,
|
|
594
600
|
seed2 + 300,
|
|
595
601
|
sid + 200,
|
|
596
|
-
self.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
@
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
@
|
|
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
|
-
@
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
'
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
@@ -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
|