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