bluecellulab 2.5.10__tar.gz → 2.6.0__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.5.10 → bluecellulab-2.6.0}/PKG-INFO +1 -1
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/__init__.py +2 -2
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/analysis/inject_sequence.py +3 -7
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +2 -1
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/circuit_access/sonata_circuit_access.py +2 -1
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/simulation/neuron_globals.py +13 -0
- bluecellulab-2.6.0/bluecellulab/simulation/parallel.py +36 -0
- bluecellulab-2.6.0/bluecellulab/stimulus/factory.py +389 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/tools.py +2 -1
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/utils.py +20 -22
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab.egg-info/PKG-INFO +1 -1
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab.egg-info/SOURCES.txt +2 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/list_of_stim.rst +14 -14
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/3-bpap/bpap.ipynb +2 -1
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/epsp.ipynb +2 -1
- bluecellulab-2.6.0/examples/5-stimuli/stimuli.ipynb +527 -0
- bluecellulab-2.6.0/examples/6-stimuli-sequence/stimuli-sequence.ipynb +478 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_analysis/test_inject_sequence.py +4 -4
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_simulation/test_neuron_globals.py +20 -1
- bluecellulab-2.6.0/tests/test_simulation/test_parallel.py +8 -0
- bluecellulab-2.6.0/tests/test_stimulus/test_factory.py +182 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_utils.py +1 -8
- bluecellulab-2.5.10/bluecellulab/stimulus/factory.py +0 -254
- bluecellulab-2.5.10/examples/5-stimuli/stimuli.ipynb +0 -609
- bluecellulab-2.5.10/examples/6-stimuli-sequence/stimuli-sequence.ipynb +0 -458
- bluecellulab-2.5.10/tests/test_stimulus/test_factory.py +0 -143
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.compile_mod.sh +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.gitattributes +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.github/dependabot.yml +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.github/workflows/release.yml +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.github/workflows/test.yml +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.gitignore +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.gitlab-ci.yml +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.readthedocs.yml +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/.zenodo.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/AUTHORS.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/CHANGELOG.rst +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/LICENSE +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/MANIFEST.in +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/Makefile +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/README.rst +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/analysis/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/ballstick/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/ballstick/morphology.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/cell_dict.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/core.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/injector.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/plotting.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/random.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/recording.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/section_distance.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/serialized_sections.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/sonata_proxy.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/stimuli_generator.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/cell/template.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/circuit_access/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/circuit_access/definition.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/config/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/config/bluepy_simulation_config.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/config/definition.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/config/sections.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/config/sonata_simulation_config.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/format.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/iotools.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/node_id.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/simulation_access.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/synapse_properties.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit/validate.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/circuit_simulation.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/connection.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/dendrogram.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/exceptions.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/graph.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/hoc/Cell.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/hoc/RNGSettings.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/hoc/TDistFunc.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/hoc/TStim.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/hoc/fileUtils.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/importer.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/neuron_interpreter.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/plotwindow.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/psection.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/psegment.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/rngsettings.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/simulation/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/simulation/simulation.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/stimulus/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/stimulus/circuit_stimulus_definitions.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/synapse/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/synapse/synapse_factory.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/synapse/synapse_types.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/type_aliases.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab/verbosity.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab.egg-info/dependency_links.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab.egg-info/requires.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/bluecellulab.egg-info/top_level.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/Makefile +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/images/voltage-readme.png +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/make.bat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/requirements_docs.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/_static/.gitkeep +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/api.rst +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/changelog.rst +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/compiling-mechanisms.rst +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/conf.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/index.rst +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/1-singlecell/README.md +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/1-singlecell/hoc/cADpyr_L2TPC.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/1-singlecell/morphology/rr110330_C3_idA.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/1-singlecell/singlecell.ipynb +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/2-sonata-network/sonata-network.ipynb +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/cacumm.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/cagk.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/cal2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/can2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/cat.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/h.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/kadist.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/kaprox.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/kca.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/kdb.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/kdrbca1.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/kmb.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hippocampus_mechanisms/na3n.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/hoc/cell_seed2_0.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/4-epsp/morphology/011017HP2.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/README.rst +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/Ca.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/CaDynamics_DC0.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/CaDynamics_E2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/Ca_HVA.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/Ca_HVA2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/Ca_LVAst.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/DetAMPANMDA.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/DetGABAAB.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/GluSynapse.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/Ih.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/Im.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/K_Pst.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/K_Tst.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/KdShu2007.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/NaTa_t.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/NaTg.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/NaTs2_t.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/Nap_Et2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/ProbGABAAB_EMS.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/README.md +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/SK_E2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/SKv3_1.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/StochKv.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/StochKv3.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/TTXDynamicsSwitch.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/VecStim.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/gap.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/mechanisms/netstim_inhpoisson.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/examples/readme-plot.ipynb +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/pyproject.toml +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/setup.cfg +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/data/synapse_replay_file/spikes.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/ballstick_cell/analytic_expsyn.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/ballstick_cell/ballstick.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/ballstick_cell/ballstick.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/ballstick_cell/bs.cfg +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/bpo_cell/0_cADpyr_L5TPC_a6e707a_1_sNone.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/bpo_cell/C060114A5.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example1/test_cell.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example1/test_cell.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example1/test_cell_longname1.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example2/test_cell.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example2/test_cell.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example_cstut/cSTUT_7.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example_cstut/test_cell.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example_empty/test_cell.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example_empty/test_cell.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/cell_example_empty/test_cell_v6a.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/circuit_config.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg141217_A_idB_2019030511280.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_mpg150305_A_idB_2019030511201.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idB_2019030510521.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idF_2019030511545.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/components/hoc/CA1_pyr_cACpyr_oh140807_A0_idJ_2019032814272.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/copy-hoc-morphs.ipynb +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/edges/edges.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hippocampus_projections/nodes.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/hoc-and-morphs.csv +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/id_mapping.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/node_sets.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_hipp_mooc_most_central_10_SP_PC/nodes/nodes.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/circuit_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/components/hoc/cADpyr_L2TPC.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/components/hoc/cNAC_L23BTC.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/C210401C.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/components/morphologies/asc/rr110330_C3_idA.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/C210401C.swc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/components/morphologies/swc/rr110330_C3_idA.swc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/local_edges_A.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/node_sets.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx/nodes_A.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/.exception_node +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/circuit_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cADpyr_L2TPC.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/hoc/cNAC_L23BTC.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/C210401C.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/asc/rr110330_C3_idA.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/C210401C.swc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitA/morphologies/swc/rr110330_C3_idA.swc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/bAC_IN.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/components/CircuitB/hoc/cNAD_noscltb.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/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.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/edges_AB.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_A.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/local_edges_B.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/node_sets.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_A.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/nodes_B.h5.txt +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/circuit_sonata_quick_scx_multi_circuit/simulation_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/hippocampus_opt_cell_template/README.md +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/hippocampus_opt_cell_template/electrophysiology/cell.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/hippocampus_opt_cell_template/morphology/cell.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/legacy_circuitconfig/CircuitConfig +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_bluepy/BlueConfig +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_bluepy/BlueConfig.SUCCESS +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_bluepy/output/out.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_bluepy/output/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_bluepy/output/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_bluepy/output/soma_SONATA.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_bluepy/user.target +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/circuit_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/output_sonata_hypamp/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/output_sonata_noinput/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/simulation_config.json.SUCCESS +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/simulation_config_hypamp.json.SUCCESS +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata/simulation_config_noinput.json.SUCCESS +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/circuit_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_hypamp/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_noinput/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_ornstein/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/output_sonata_shotnoise/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_hypamp.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_noinput.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_ornstein.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sim_quick_scx_sonata_multicircuit/simulation_config_shotnoise.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/condition_parameters/circuit_sonata.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/condition_parameters/node_sets.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/condition_parameters/sim_conf/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/condition_parameters/simulation_config_many_inputs.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/circuit_config.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/echo +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/node_sets.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/output_sonata/out.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/output_sonata/populations_offset.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/output_sonata/soma.h5 +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/projections/simulation_config.json.SUCCESS +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/synapse_replay/circuit_config.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/synapse_replay/node_sets.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/synapse_replay/simulation_config.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/sonata_unit_test_sims/synapse_replay/synapse_replay.dat +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/tapertest_cells/notaper_cell.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/tapertest_cells/taper_cell.hoc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/examples/tapertest_cells/test_cell.asc +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/helpers/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/helpers/os_utils.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/Ca.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/CaDynamics_DC0.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/CaDynamics_E2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/Ca_HVA.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/Ca_HVA2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/Ca_LVAst.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/DetAMPANMDA.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/DetGABAAB.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/GluSynapse.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/Ih.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/Im.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/K_Pst.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/K_Tst.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/KdShu2007.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/NaTa_t.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/NaTg.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/NaTs2_t.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/Nap_Et2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/ProbAMPANMDA_EMS.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/ProbGABAAB_EMS.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/README.md +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/SK_E2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/SKv3_1.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/StochKv.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/StochKv3.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/TTXDynamicsSwitch.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/VecStim.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/cacumm.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/cacummb.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/cagk.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/cal2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/can2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/cat.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/gap.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/h.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kadist.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kaprox.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kca.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kd.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kd2.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kdb.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kdrbca1.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kdrca1.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/km.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/kmb.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/na3n.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/naxn.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/mechanisms/netstim_inhpoisson.mod +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_ballstick.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_bglib.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_cell_dict.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_core.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_injector.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_random.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_recording.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_serialized_sections.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_sonata_proxy.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_stimuli_generator.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_cell/test_template.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_circuit_access.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_config_sections.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_format.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_node_id.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_simulation_access.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_simulation_config.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_synapse_properties.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_circuit/test_validate.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_exceptions.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_graph.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_importer.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_load.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_neuron_interpreter.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_psection.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_rngsettings.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_simulation/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_simulation/test_simulation.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_ssim.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_ssim_sonata.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_stimulus/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_stimulus/test_circuit_stimulus_definitions.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_synapse/__init__.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_synapse/test-synapse-series.json +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_synapse/test_synapse.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_synapse/test_synapse_factory.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_tools.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_ttx.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tests/test_verbosity.py +0 -0
- {bluecellulab-2.5.10 → bluecellulab-2.6.0}/tox.ini +0 -0
|
@@ -7,7 +7,7 @@ try:
|
|
|
7
7
|
except ImportError:
|
|
8
8
|
BLUEPY_AVAILABLE = False
|
|
9
9
|
|
|
10
|
-
from .importer import
|
|
10
|
+
from bluecellulab.importer import import_hoc
|
|
11
11
|
from .verbosity import *
|
|
12
12
|
from .cell import Cell, create_ball_stick # NOQA
|
|
13
13
|
from .circuit import EmodelProperties
|
|
@@ -19,7 +19,7 @@ from .psegment import PSegment # NOQA
|
|
|
19
19
|
from .simulation import Simulation # NOQA
|
|
20
20
|
from .rngsettings import RNGSettings # NOQA
|
|
21
21
|
from .circuit_simulation import CircuitSimulation, CircuitSimulation # NOQA
|
|
22
|
-
|
|
22
|
+
import neuron
|
|
23
23
|
|
|
24
24
|
from .simulation.neuron_globals import NeuronGlobals
|
|
25
25
|
|
|
@@ -7,9 +7,9 @@ import neuron
|
|
|
7
7
|
import numpy as np
|
|
8
8
|
from bluecellulab.cell.core import Cell
|
|
9
9
|
from bluecellulab.cell.template import TemplateParams
|
|
10
|
+
from bluecellulab.simulation.parallel import IsolatedProcess
|
|
10
11
|
from bluecellulab.simulation.simulation import Simulation
|
|
11
12
|
from bluecellulab.stimulus.factory import Stimulus, StimulusFactory
|
|
12
|
-
from bluecellulab.utils import IsolatedProcess
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class StimulusName(Enum):
|
|
@@ -35,7 +35,6 @@ def run_stimulus(
|
|
|
35
35
|
stimulus: Stimulus,
|
|
36
36
|
section: str,
|
|
37
37
|
segment: float,
|
|
38
|
-
duration: float,
|
|
39
38
|
) -> Recording:
|
|
40
39
|
"""Creates a cell and stimulates it with a given stimulus.
|
|
41
40
|
|
|
@@ -44,7 +43,6 @@ def run_stimulus(
|
|
|
44
43
|
stimulus: The input stimulus to inject into the cell.
|
|
45
44
|
section: Name of the section of cell where the stimulus is to be injected.
|
|
46
45
|
segment: The segment of the section where the stimulus is to be injected.
|
|
47
|
-
duration: The duration for which the simulation is to be run.
|
|
48
46
|
|
|
49
47
|
Returns:
|
|
50
48
|
The voltage-time recording at the specified location.
|
|
@@ -61,7 +59,7 @@ def run_stimulus(
|
|
|
61
59
|
current_vector = neuron.h.Vector()
|
|
62
60
|
current_vector.record(iclamp._ref_i)
|
|
63
61
|
simulation = Simulation(cell)
|
|
64
|
-
simulation.run(
|
|
62
|
+
simulation.run(stimulus.stimulus_time)
|
|
65
63
|
current = np.array(current_vector.to_python())
|
|
66
64
|
voltage = cell.get_voltage_recording(neuron_section, segment)
|
|
67
65
|
time = cell.get_time()
|
|
@@ -74,7 +72,6 @@ def apply_multiple_step_stimuli(
|
|
|
74
72
|
cell: Cell,
|
|
75
73
|
stimulus_name: StimulusName,
|
|
76
74
|
amplitudes: Sequence[float],
|
|
77
|
-
duration: float,
|
|
78
75
|
section_name: str | None = None,
|
|
79
76
|
segment: float = 0.5,
|
|
80
77
|
n_processes: int | None = None,
|
|
@@ -85,7 +82,6 @@ def apply_multiple_step_stimuli(
|
|
|
85
82
|
cell: The cell to which the stimuli are applied.
|
|
86
83
|
stimulus_name: The name of the stimulus to apply.
|
|
87
84
|
amplitudes: The amplitudes of the stimuli to apply.
|
|
88
|
-
duration: The duration for which each stimulus is applied.
|
|
89
85
|
section_name: Section name of the cell where the stimuli are applied.
|
|
90
86
|
If None, the stimuli are applied at the soma[0] of the cell.
|
|
91
87
|
segment: The segment of the section where the stimuli are applied.
|
|
@@ -116,7 +112,7 @@ def apply_multiple_step_stimuli(
|
|
|
116
112
|
else:
|
|
117
113
|
raise ValueError("Unknown stimulus name.")
|
|
118
114
|
|
|
119
|
-
task_args.append((cell.template_params, stimulus, section_name, segment
|
|
115
|
+
task_args.append((cell.template_params, stimulus, section_name, segment))
|
|
120
116
|
|
|
121
117
|
with IsolatedProcess(processes=n_processes) as pool:
|
|
122
118
|
# Map expects a function and a list of argument tuples
|
|
@@ -19,8 +19,9 @@ import os
|
|
|
19
19
|
from pathlib import Path
|
|
20
20
|
from typing import Optional
|
|
21
21
|
|
|
22
|
+
import neuron
|
|
22
23
|
import pandas as pd
|
|
23
|
-
from bluecellulab import circuit
|
|
24
|
+
from bluecellulab import circuit
|
|
24
25
|
from bluecellulab.circuit.circuit_access import EmodelProperties
|
|
25
26
|
from bluecellulab.circuit.config import BluepySimulationConfig
|
|
26
27
|
from bluecellulab.circuit.config.definition import SimulationConfig
|
|
@@ -22,8 +22,9 @@ from bluepysnap.bbp import Cell as SnapCell
|
|
|
22
22
|
from bluepysnap.circuit_ids import CircuitNodeId, CircuitEdgeIds
|
|
23
23
|
from bluepysnap.exceptions import BluepySnapError
|
|
24
24
|
from bluepysnap import Circuit as SnapCircuit
|
|
25
|
+
import neuron
|
|
25
26
|
import pandas as pd
|
|
26
|
-
from bluecellulab import circuit
|
|
27
|
+
from bluecellulab import circuit
|
|
27
28
|
from bluecellulab.circuit.circuit_access.definition import EmodelProperties
|
|
28
29
|
from bluecellulab.circuit import CellId, SynapseProperty
|
|
29
30
|
from bluecellulab.circuit.config import SimulationConfig
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
"""Module that handles the global NEURON parameters."""
|
|
15
15
|
|
|
16
|
+
from typing import NamedTuple
|
|
16
17
|
import neuron
|
|
17
18
|
from bluecellulab.circuit.config.sections import Conditions, MechanismConditions
|
|
18
19
|
from bluecellulab.exceptions import error_context
|
|
@@ -62,6 +63,11 @@ def set_minis_single_vesicle_values(mech_conditions: MechanismConditions) -> Non
|
|
|
62
63
|
)
|
|
63
64
|
|
|
64
65
|
|
|
66
|
+
class NeuronGlobalParams(NamedTuple):
|
|
67
|
+
temperature: float
|
|
68
|
+
v_init: float
|
|
69
|
+
|
|
70
|
+
|
|
65
71
|
class NeuronGlobals:
|
|
66
72
|
_instance = None
|
|
67
73
|
|
|
@@ -96,3 +102,10 @@ class NeuronGlobals:
|
|
|
96
102
|
def v_init(self, value):
|
|
97
103
|
self._v_init = value
|
|
98
104
|
neuron.h.v_init = value
|
|
105
|
+
|
|
106
|
+
def export_params(self) -> NeuronGlobalParams:
|
|
107
|
+
return NeuronGlobalParams(self.temperature, self.v_init)
|
|
108
|
+
|
|
109
|
+
def load_params(self, params: NeuronGlobalParams) -> None:
|
|
110
|
+
self.temperature = params.temperature
|
|
111
|
+
self.v_init = params.v_init
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""Controlled simulations in parallel."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from multiprocessing.pool import Pool
|
|
5
|
+
from bluecellulab.simulation.neuron_globals import NeuronGlobals
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class IsolatedProcess(Pool):
|
|
9
|
+
"""Multiprocessing Pool that restricts a worker to run max 1 process.
|
|
10
|
+
|
|
11
|
+
Use this when running isolated NEURON simulations. Running 2 NEURON
|
|
12
|
+
simulations on a single process is to be avoided. Required global
|
|
13
|
+
NEURON simulation parameters will automatically be passed to each
|
|
14
|
+
worker.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, processes: int | None = 1):
|
|
18
|
+
"""Initialize the IsolatedProcess pool.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
processes: The number of processes to use for running the simulations.
|
|
22
|
+
If set to None, then the number returned by os.cpu_count() is used.
|
|
23
|
+
"""
|
|
24
|
+
neuron_global_params = NeuronGlobals.get_instance().export_params()
|
|
25
|
+
super().__init__(
|
|
26
|
+
processes=processes,
|
|
27
|
+
initializer=self.init_worker,
|
|
28
|
+
initargs=(neuron_global_params,),
|
|
29
|
+
maxtasksperchild=1,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
@staticmethod
|
|
33
|
+
def init_worker(neuron_global_params):
|
|
34
|
+
"""Load global parameters for the NEURON environment in each worker
|
|
35
|
+
process."""
|
|
36
|
+
NeuronGlobals.get_instance().load_params(neuron_global_params)
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
import matplotlib.pyplot as plt
|
|
4
|
+
import numpy as np
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Stimulus(ABC):
|
|
8
|
+
def __init__(self, dt: float) -> None:
|
|
9
|
+
self.dt = dt
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
@abstractmethod
|
|
13
|
+
def time(self) -> np.ndarray:
|
|
14
|
+
"""Time values of the stimulus."""
|
|
15
|
+
...
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
@abstractmethod
|
|
19
|
+
def current(self) -> np.ndarray:
|
|
20
|
+
"""Current values of the stimulus."""
|
|
21
|
+
...
|
|
22
|
+
|
|
23
|
+
def __len__(self) -> int:
|
|
24
|
+
return len(self.time)
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def stimulus_time(self) -> float:
|
|
28
|
+
return len(self) * self.dt
|
|
29
|
+
|
|
30
|
+
def __repr__(self) -> str:
|
|
31
|
+
return f"{self.__class__.__name__}(dt={self.dt})"
|
|
32
|
+
|
|
33
|
+
def plot(self, ax=None, **kwargs):
|
|
34
|
+
if ax is None:
|
|
35
|
+
ax = plt.gca()
|
|
36
|
+
ax.plot(self.time, self.current, **kwargs)
|
|
37
|
+
ax.set_xlabel("Time (ms)")
|
|
38
|
+
ax.set_ylabel("Current (nA)")
|
|
39
|
+
ax.set_title(self.__class__.__name__)
|
|
40
|
+
return ax
|
|
41
|
+
|
|
42
|
+
def __add__(self, other: Stimulus) -> CombinedStimulus:
|
|
43
|
+
"""Override + operator to concatenate Stimulus objects."""
|
|
44
|
+
if self.dt != other.dt:
|
|
45
|
+
raise ValueError(
|
|
46
|
+
"Stimulus objects must have the same dt to be concatenated"
|
|
47
|
+
)
|
|
48
|
+
if len(self.time) == 0:
|
|
49
|
+
return CombinedStimulus(other.dt, other.time, other.current)
|
|
50
|
+
elif len(other.time) == 0:
|
|
51
|
+
return CombinedStimulus(self.dt, self.time, self.current)
|
|
52
|
+
else:
|
|
53
|
+
# shift other time
|
|
54
|
+
other_time = other.time + self.time[-1] + self.dt
|
|
55
|
+
combined_time = np.concatenate([self.time, other_time])
|
|
56
|
+
# Concatenate the current arrays
|
|
57
|
+
combined_current = np.concatenate([self.current, other.current])
|
|
58
|
+
return CombinedStimulus(self.dt, combined_time, combined_current)
|
|
59
|
+
|
|
60
|
+
def __eq__(self, other: object) -> bool:
|
|
61
|
+
if not isinstance(other, Stimulus):
|
|
62
|
+
return NotImplemented
|
|
63
|
+
else:
|
|
64
|
+
return (
|
|
65
|
+
np.allclose(self.time, other.time)
|
|
66
|
+
and np.allclose(self.current, other.current)
|
|
67
|
+
and self.dt == other.dt
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class CombinedStimulus(Stimulus):
|
|
72
|
+
"""Represents the Stimulus created by combining multiple stimuli."""
|
|
73
|
+
|
|
74
|
+
def __init__(self, dt: float, time: np.ndarray, current: np.ndarray) -> None:
|
|
75
|
+
super().__init__(dt)
|
|
76
|
+
self._time = time
|
|
77
|
+
self._current = current
|
|
78
|
+
|
|
79
|
+
@property
|
|
80
|
+
def time(self) -> np.ndarray:
|
|
81
|
+
return self._time
|
|
82
|
+
|
|
83
|
+
@property
|
|
84
|
+
def current(self) -> np.ndarray:
|
|
85
|
+
return self._current
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class Empty(Stimulus):
|
|
89
|
+
"""Represents empty stimulus (all zeros) that has no impact on the cell.
|
|
90
|
+
|
|
91
|
+
This is required by some Stimuli that expect the cell to rest.
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
def __init__(self, dt: float, duration: float) -> None:
|
|
95
|
+
super().__init__(dt)
|
|
96
|
+
self.duration = duration
|
|
97
|
+
|
|
98
|
+
@property
|
|
99
|
+
def time(self) -> np.ndarray:
|
|
100
|
+
return np.arange(0.0, self.duration, self.dt)
|
|
101
|
+
|
|
102
|
+
@property
|
|
103
|
+
def current(self) -> np.ndarray:
|
|
104
|
+
return np.zeros_like(self.time)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class Flat(Stimulus):
|
|
108
|
+
def __init__(self, dt: float, duration: float, amplitude: float) -> None:
|
|
109
|
+
super().__init__(dt)
|
|
110
|
+
self.duration = duration
|
|
111
|
+
self.amplitude = amplitude
|
|
112
|
+
|
|
113
|
+
@property
|
|
114
|
+
def time(self) -> np.ndarray:
|
|
115
|
+
return np.arange(0.0, self.duration, self.dt)
|
|
116
|
+
|
|
117
|
+
@property
|
|
118
|
+
def current(self) -> np.ndarray:
|
|
119
|
+
return np.full_like(self.time, self.amplitude)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class Slope(Stimulus):
|
|
123
|
+
def __init__(
|
|
124
|
+
self, dt: float, duration: float, amplitude_start: float, amplitude_end: float
|
|
125
|
+
) -> None:
|
|
126
|
+
super().__init__(dt)
|
|
127
|
+
self.duration = duration
|
|
128
|
+
self.amplitude_start = amplitude_start
|
|
129
|
+
self.amplitude_end = amplitude_end
|
|
130
|
+
|
|
131
|
+
@property
|
|
132
|
+
def time(self) -> np.ndarray:
|
|
133
|
+
return np.arange(0.0, self.duration, self.dt)
|
|
134
|
+
|
|
135
|
+
@property
|
|
136
|
+
def current(self) -> np.ndarray:
|
|
137
|
+
return np.linspace(self.amplitude_start, self.amplitude_end, len(self.time))
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
class Step(Stimulus):
|
|
141
|
+
|
|
142
|
+
def __init__(self):
|
|
143
|
+
raise NotImplementedError(
|
|
144
|
+
"This class cannot be instantiated directly. "
|
|
145
|
+
"Please use the class methods 'amplitude_based' "
|
|
146
|
+
"or 'threshold_based' to create objects."
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
@classmethod
|
|
150
|
+
def amplitude_based(
|
|
151
|
+
cls,
|
|
152
|
+
dt: float,
|
|
153
|
+
pre_delay: float,
|
|
154
|
+
duration: float,
|
|
155
|
+
post_delay: float,
|
|
156
|
+
amplitude: float,
|
|
157
|
+
) -> CombinedStimulus:
|
|
158
|
+
"""Create a Step stimulus from given time events and amplitude.
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
dt: The time step of the stimulus.
|
|
162
|
+
pre_delay: The delay before the start of the step.
|
|
163
|
+
duration: The duration of the step.
|
|
164
|
+
post_delay: The time to wait after the end of the step.
|
|
165
|
+
amplitude: The amplitude of the step.
|
|
166
|
+
"""
|
|
167
|
+
return (
|
|
168
|
+
Empty(dt, duration=pre_delay)
|
|
169
|
+
+ Flat(dt, duration=duration, amplitude=amplitude)
|
|
170
|
+
+ Empty(dt, duration=post_delay)
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
@classmethod
|
|
174
|
+
def threshold_based(
|
|
175
|
+
cls,
|
|
176
|
+
dt: float,
|
|
177
|
+
pre_delay: float,
|
|
178
|
+
duration: float,
|
|
179
|
+
post_delay: float,
|
|
180
|
+
threshold_current: float,
|
|
181
|
+
threshold_percentage: float,
|
|
182
|
+
) -> CombinedStimulus:
|
|
183
|
+
"""Creates a Step stimulus with respect to the threshold current.
|
|
184
|
+
|
|
185
|
+
Args:
|
|
186
|
+
|
|
187
|
+
dt: The time step of the stimulus.
|
|
188
|
+
pre_delay: The delay before the start of the step.
|
|
189
|
+
duration: The duration of the step.
|
|
190
|
+
post_delay: The time to wait after the end of the step.
|
|
191
|
+
threshold_current: The threshold current of the Cell.
|
|
192
|
+
threshold_percentage: Percentage of desired threshold_current amplification.
|
|
193
|
+
"""
|
|
194
|
+
amplitude = threshold_current * threshold_percentage / 100
|
|
195
|
+
res = cls.amplitude_based(
|
|
196
|
+
dt,
|
|
197
|
+
pre_delay=pre_delay,
|
|
198
|
+
duration=duration,
|
|
199
|
+
post_delay=post_delay,
|
|
200
|
+
amplitude=amplitude,
|
|
201
|
+
)
|
|
202
|
+
return res
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
class Ramp(Stimulus):
|
|
206
|
+
|
|
207
|
+
def __init__(self):
|
|
208
|
+
raise NotImplementedError(
|
|
209
|
+
"This class cannot be instantiated directly. "
|
|
210
|
+
"Please use the class methods 'amplitude_based' "
|
|
211
|
+
"or 'threshold_based' to create objects."
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
@classmethod
|
|
215
|
+
def amplitude_based(
|
|
216
|
+
cls,
|
|
217
|
+
dt: float,
|
|
218
|
+
pre_delay: float,
|
|
219
|
+
duration: float,
|
|
220
|
+
post_delay: float,
|
|
221
|
+
amplitude: float,
|
|
222
|
+
) -> CombinedStimulus:
|
|
223
|
+
"""Create a Ramp stimulus from given time events and amplitudes.
|
|
224
|
+
|
|
225
|
+
Args:
|
|
226
|
+
dt: The time step of the stimulus.
|
|
227
|
+
pre_delay: The delay before the start of the ramp.
|
|
228
|
+
duration: The duration of the ramp.
|
|
229
|
+
post_delay: The time to wait after the end of the ramp.
|
|
230
|
+
amplitude: The final amplitude of the ramp.
|
|
231
|
+
"""
|
|
232
|
+
return (
|
|
233
|
+
Empty(dt, duration=pre_delay)
|
|
234
|
+
+ Slope(
|
|
235
|
+
dt,
|
|
236
|
+
duration=duration,
|
|
237
|
+
amplitude_start=0.0,
|
|
238
|
+
amplitude_end=amplitude,
|
|
239
|
+
)
|
|
240
|
+
+ Empty(dt, duration=post_delay)
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
@classmethod
|
|
244
|
+
def threshold_based(
|
|
245
|
+
cls,
|
|
246
|
+
dt: float,
|
|
247
|
+
pre_delay: float,
|
|
248
|
+
duration: float,
|
|
249
|
+
post_delay: float,
|
|
250
|
+
threshold_current: float,
|
|
251
|
+
threshold_percentage: float,
|
|
252
|
+
) -> CombinedStimulus:
|
|
253
|
+
"""Creates a Ramp stimulus with respect to the threshold current.
|
|
254
|
+
|
|
255
|
+
Args:
|
|
256
|
+
|
|
257
|
+
dt: The time step of the stimulus.
|
|
258
|
+
pre_delay: The delay before the start of the ramp.
|
|
259
|
+
duration: The duration of the ramp.
|
|
260
|
+
post_delay: The time to wait after the end of the ramp.
|
|
261
|
+
threshold_current: The threshold current of the Cell.
|
|
262
|
+
threshold_percentage: Percentage of desired threshold_current amplification.
|
|
263
|
+
"""
|
|
264
|
+
amplitude = threshold_current * threshold_percentage / 100
|
|
265
|
+
res = cls.amplitude_based(
|
|
266
|
+
dt,
|
|
267
|
+
pre_delay=pre_delay,
|
|
268
|
+
duration=duration,
|
|
269
|
+
post_delay=post_delay,
|
|
270
|
+
amplitude=amplitude,
|
|
271
|
+
)
|
|
272
|
+
return res
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
class StimulusFactory:
|
|
276
|
+
def __init__(self, dt: float):
|
|
277
|
+
self.dt = dt
|
|
278
|
+
|
|
279
|
+
def step(
|
|
280
|
+
self, pre_delay: float, duration: float, post_delay: float, amplitude: float
|
|
281
|
+
) -> Stimulus:
|
|
282
|
+
return Step.amplitude_based(
|
|
283
|
+
self.dt,
|
|
284
|
+
pre_delay=pre_delay,
|
|
285
|
+
duration=duration,
|
|
286
|
+
post_delay=post_delay,
|
|
287
|
+
amplitude=amplitude,
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
def ramp(
|
|
291
|
+
self, pre_delay: float, duration: float, post_delay: float, amplitude: float
|
|
292
|
+
) -> Stimulus:
|
|
293
|
+
return Ramp.amplitude_based(
|
|
294
|
+
self.dt,
|
|
295
|
+
pre_delay=pre_delay,
|
|
296
|
+
duration=duration,
|
|
297
|
+
post_delay=post_delay,
|
|
298
|
+
amplitude=amplitude,
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
def ap_waveform(
|
|
302
|
+
self, threshold_current: float, threshold_percentage: float = 220.0
|
|
303
|
+
) -> Stimulus:
|
|
304
|
+
"""Returns the APWaveform Stimulus object, a type of Step stimulus.
|
|
305
|
+
|
|
306
|
+
Args:
|
|
307
|
+
threshold_current: The threshold current of the Cell.
|
|
308
|
+
threshold_percentage: Percentage of desired threshold_current amplification.
|
|
309
|
+
"""
|
|
310
|
+
pre_delay = 250.0
|
|
311
|
+
duration = 50.0
|
|
312
|
+
post_delay = 250.0
|
|
313
|
+
return Step.threshold_based(
|
|
314
|
+
self.dt,
|
|
315
|
+
pre_delay=pre_delay,
|
|
316
|
+
duration=duration,
|
|
317
|
+
post_delay=post_delay,
|
|
318
|
+
threshold_current=threshold_current,
|
|
319
|
+
threshold_percentage=threshold_percentage,
|
|
320
|
+
)
|
|
321
|
+
|
|
322
|
+
def idrest(
|
|
323
|
+
self,
|
|
324
|
+
threshold_current: float,
|
|
325
|
+
threshold_percentage: float = 200.0,
|
|
326
|
+
) -> Stimulus:
|
|
327
|
+
"""Returns the IDRest Stimulus object, a type of Step stimulus.
|
|
328
|
+
|
|
329
|
+
Args:
|
|
330
|
+
threshold_current: The threshold current of the Cell.
|
|
331
|
+
threshold_percentage: Percentage of desired threshold_current amplification.
|
|
332
|
+
"""
|
|
333
|
+
pre_delay = 250.0
|
|
334
|
+
duration = 1350.0
|
|
335
|
+
post_delay = 250.0
|
|
336
|
+
return Step.threshold_based(
|
|
337
|
+
self.dt,
|
|
338
|
+
pre_delay=pre_delay,
|
|
339
|
+
duration=duration,
|
|
340
|
+
post_delay=post_delay,
|
|
341
|
+
threshold_current=threshold_current,
|
|
342
|
+
threshold_percentage=threshold_percentage,
|
|
343
|
+
)
|
|
344
|
+
|
|
345
|
+
def iv(
|
|
346
|
+
self,
|
|
347
|
+
threshold_current: float,
|
|
348
|
+
threshold_percentage: float = -40.0,
|
|
349
|
+
) -> Stimulus:
|
|
350
|
+
"""Returns the IV Stimulus object, a type of Step stimulus.
|
|
351
|
+
|
|
352
|
+
Args:
|
|
353
|
+
threshold_current: The threshold current of the Cell.
|
|
354
|
+
threshold_percentage: Percentage of desired threshold_current amplification.
|
|
355
|
+
"""
|
|
356
|
+
pre_delay = 250.0
|
|
357
|
+
duration = 3000.0
|
|
358
|
+
post_delay = 250.0
|
|
359
|
+
return Step.threshold_based(
|
|
360
|
+
self.dt,
|
|
361
|
+
pre_delay=pre_delay,
|
|
362
|
+
duration=duration,
|
|
363
|
+
post_delay=post_delay,
|
|
364
|
+
threshold_current=threshold_current,
|
|
365
|
+
threshold_percentage=threshold_percentage,
|
|
366
|
+
)
|
|
367
|
+
|
|
368
|
+
def fire_pattern(
|
|
369
|
+
self,
|
|
370
|
+
threshold_current: float,
|
|
371
|
+
threshold_percentage: float = 200.0,
|
|
372
|
+
) -> Stimulus:
|
|
373
|
+
"""Returns the FirePattern Stimulus object, a type of Step stimulus.
|
|
374
|
+
|
|
375
|
+
Args:
|
|
376
|
+
threshold_current: The threshold current of the Cell.
|
|
377
|
+
threshold_percentage: Percentage of desired threshold_current amplification.
|
|
378
|
+
"""
|
|
379
|
+
pre_delay = 250.0
|
|
380
|
+
duration = 3600.0
|
|
381
|
+
post_delay = 250.0
|
|
382
|
+
return Step.threshold_based(
|
|
383
|
+
self.dt,
|
|
384
|
+
pre_delay=pre_delay,
|
|
385
|
+
duration=duration,
|
|
386
|
+
post_delay=post_delay,
|
|
387
|
+
threshold_current=threshold_current,
|
|
388
|
+
threshold_percentage=threshold_percentage,
|
|
389
|
+
)
|
|
@@ -25,7 +25,8 @@ import numpy as np
|
|
|
25
25
|
import bluecellulab
|
|
26
26
|
from bluecellulab.circuit.circuit_access import EmodelProperties
|
|
27
27
|
from bluecellulab.exceptions import UnsteadyCellError
|
|
28
|
-
from bluecellulab.
|
|
28
|
+
from bluecellulab.simulation.parallel import IsolatedProcess
|
|
29
|
+
from bluecellulab.utils import CaptureOutput
|
|
29
30
|
|
|
30
31
|
logger = logging.getLogger(__name__)
|
|
31
32
|
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"""Utility functions used within BlueCellulab."""
|
|
2
|
+
|
|
2
3
|
from __future__ import annotations
|
|
3
4
|
import contextlib
|
|
4
5
|
import io
|
|
5
6
|
import json
|
|
6
|
-
from multiprocessing.pool import Pool
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def run_once(func):
|
|
12
12
|
"""A decorator to ensure a function is only called once."""
|
|
13
|
+
|
|
13
14
|
def wrapper(*args, **kwargs):
|
|
14
15
|
if not wrapper.has_run:
|
|
15
16
|
wrapper.has_run = True
|
|
16
17
|
return func(*args, **kwargs)
|
|
18
|
+
|
|
17
19
|
wrapper.has_run = False
|
|
18
20
|
return wrapper
|
|
19
21
|
|
|
@@ -32,29 +34,25 @@ class CaptureOutput(list):
|
|
|
32
34
|
|
|
33
35
|
class NumpyEncoder(json.JSONEncoder):
|
|
34
36
|
def default(self, obj):
|
|
35
|
-
if isinstance(
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
if isinstance(
|
|
38
|
+
obj,
|
|
39
|
+
(
|
|
40
|
+
np.int_,
|
|
41
|
+
np.intc,
|
|
42
|
+
np.intp,
|
|
43
|
+
np.int8,
|
|
44
|
+
np.int16,
|
|
45
|
+
np.int32,
|
|
46
|
+
np.int64,
|
|
47
|
+
np.uint8,
|
|
48
|
+
np.uint16,
|
|
49
|
+
np.uint32,
|
|
50
|
+
np.uint64,
|
|
51
|
+
),
|
|
52
|
+
):
|
|
38
53
|
return int(obj)
|
|
39
|
-
elif isinstance(obj, (np.float_, np.float16, np.float32,
|
|
40
|
-
np.float64)):
|
|
54
|
+
elif isinstance(obj, (np.float_, np.float16, np.float32, np.float64)):
|
|
41
55
|
return float(obj)
|
|
42
56
|
elif isinstance(obj, np.ndarray):
|
|
43
57
|
return obj.tolist()
|
|
44
58
|
return json.JSONEncoder.default(self, obj)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class IsolatedProcess(Pool):
|
|
48
|
-
"""Multiprocessing Pool that restricts a worker to run max 1 process.
|
|
49
|
-
|
|
50
|
-
Use this when running isolated NEURON simulations. Running 2 NEURON
|
|
51
|
-
simulations on a single process is to be avoided.
|
|
52
|
-
"""
|
|
53
|
-
def __init__(self, processes: int | None = 1):
|
|
54
|
-
"""Initialize the IsolatedProcess pool.
|
|
55
|
-
|
|
56
|
-
Args:
|
|
57
|
-
processes: The number of processes to use for running the stimuli.
|
|
58
|
-
If set to None, then the number returned by os.cpu_count() is used.
|
|
59
|
-
"""
|
|
60
|
-
super().__init__(processes=processes, maxtasksperchild=1)
|
|
@@ -76,6 +76,7 @@ bluecellulab/hoc/TStim.hoc
|
|
|
76
76
|
bluecellulab/hoc/fileUtils.hoc
|
|
77
77
|
bluecellulab/simulation/__init__.py
|
|
78
78
|
bluecellulab/simulation/neuron_globals.py
|
|
79
|
+
bluecellulab/simulation/parallel.py
|
|
79
80
|
bluecellulab/simulation/simulation.py
|
|
80
81
|
bluecellulab/stimulus/__init__.py
|
|
81
82
|
bluecellulab/stimulus/circuit_stimulus_definitions.py
|
|
@@ -420,6 +421,7 @@ tests/test_circuit/test_synapse_properties.py
|
|
|
420
421
|
tests/test_circuit/test_validate.py
|
|
421
422
|
tests/test_simulation/__init__.py
|
|
422
423
|
tests/test_simulation/test_neuron_globals.py
|
|
424
|
+
tests/test_simulation/test_parallel.py
|
|
423
425
|
tests/test_simulation/test_simulation.py
|
|
424
426
|
tests/test_stimulus/__init__.py
|
|
425
427
|
tests/test_stimulus/test_circuit_stimulus_definitions.py
|