bluecellulab 2.6.69__tar.gz → 2.6.71__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.6.69 → bluecellulab-2.6.71}/PKG-INFO +1 -1
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/core.py +12 -1
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/config/sonata_simulation_config.py +16 -2
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/stimulus/circuit_stimulus_definitions.py +3 -9
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/tools.py +1 -1
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab.egg-info/PKG-INFO +1 -1
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.compile_mod.sh +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.gitattributes +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.github/dependabot.yml +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.github/workflows/release.yml +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.github/workflows/test.yml +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.gitignore +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.gitlab-ci.yml +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.readthedocs.yml +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/.zenodo.json +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/AUTHORS.txt +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/CHANGELOG.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/CITATION.cff +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/CONTRIBUTING.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/LICENSE +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/MANIFEST.in +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/Makefile +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/README.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/analysis/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/analysis/analysis.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/analysis/inject_sequence.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/analysis/plotting.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/analysis/utils.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/ballstick/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/ballstick/morphology.asc +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/cell_dict.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/injector.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/plotting.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/random.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/recording.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/section_distance.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/section_tools.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/serialized_sections.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/sonata_proxy.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/stimuli_generator.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/cell/template.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/circuit_access/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/circuit_access/definition.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/circuit_access/sonata_circuit_access.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/config/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/config/bluepy_simulation_config.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/config/definition.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/config/sections.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/format.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/iotools.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/node_id.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/simulation_access.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/synapse_properties.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/validate.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit_simulation.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/connection.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/dendrogram.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/exceptions.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/graph.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/hoc/Cell.hoc +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/hoc/RNGSettings.hoc +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/hoc/TDistFunc.hoc +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/hoc/TStim.hoc +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/hoc/fileUtils.hoc +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/importer.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/neuron_interpreter.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/plotwindow.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/psection.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/psegment.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/reports/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/reports/manager.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/reports/utils.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/reports/writers/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/reports/writers/base_writer.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/reports/writers/compartment.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/reports/writers/spikes.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/rngsettings.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/simulation/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/simulation/neuron_globals.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/simulation/parallel.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/simulation/report.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/simulation/simulation.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/stimulus/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/stimulus/factory.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/stimulus/stimulus.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/synapse/__init__.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/synapse/synapse_factory.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/synapse/synapse_types.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/type_aliases.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/utils.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/validation/validation.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/verbosity.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab.egg-info/SOURCES.txt +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab.egg-info/dependency_links.txt +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab.egg-info/requires.txt +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab.egg-info/top_level.txt +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/Makefile +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/images/voltage-readme.png +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/make.bat +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/requirements_docs.txt +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/_static/.gitkeep +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/api.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/changelog.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/compiling-mechanisms.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/conf.py +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/contributing.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/index.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/list_of_stim.rst +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/pyproject.toml +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/setup.cfg +0 -0
- {bluecellulab-2.6.69 → bluecellulab-2.6.71}/tox.ini +0 -0
|
@@ -840,7 +840,18 @@ class Cell(InjectableMixin, PlottableMixin):
|
|
|
840
840
|
connected to that cell."""
|
|
841
841
|
if self.sonata_proxy is None:
|
|
842
842
|
raise BluecellulabError("Cell: add_synapse_replay requires a sonata proxy.")
|
|
843
|
-
|
|
843
|
+
|
|
844
|
+
file_path = Path(stimulus.spike_file).expanduser()
|
|
845
|
+
if not file_path.is_absolute():
|
|
846
|
+
config_dir = stimulus.config_dir
|
|
847
|
+
if config_dir is not None:
|
|
848
|
+
file_path = Path(config_dir) / file_path
|
|
849
|
+
|
|
850
|
+
file_path = file_path.resolve()
|
|
851
|
+
|
|
852
|
+
if not file_path.exists():
|
|
853
|
+
raise FileNotFoundError(f"Spike file not found: {str(file_path)}")
|
|
854
|
+
synapse_spikes: dict = get_synapse_replay_spikes(str(file_path))
|
|
844
855
|
for synapse_id, synapse in self.synapses.items():
|
|
845
856
|
source_population = synapse.syn_description["source_population_name"]
|
|
846
857
|
pre_gid = CellId(
|
{bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/config/sonata_simulation_config.py
RENAMED
|
@@ -55,8 +55,9 @@ class SonataSimulationConfig:
|
|
|
55
55
|
inputs = self.impl.config.get("inputs")
|
|
56
56
|
if inputs is None:
|
|
57
57
|
return result
|
|
58
|
+
config_dir = self._get_config_dir()
|
|
58
59
|
for value in inputs.values():
|
|
59
|
-
stimulus = Stimulus.from_sonata(value)
|
|
60
|
+
stimulus = Stimulus.from_sonata(value, config_dir=config_dir)
|
|
60
61
|
if stimulus:
|
|
61
62
|
result.append(stimulus)
|
|
62
63
|
return result
|
|
@@ -84,7 +85,11 @@ class SonataSimulationConfig:
|
|
|
84
85
|
filepath = self.impl.config.get("compartment_sets_file")
|
|
85
86
|
if not filepath:
|
|
86
87
|
raise ValueError("No 'compartment_sets_file' entry found in SONATA config.")
|
|
87
|
-
|
|
88
|
+
config_dir = self._get_config_dir()
|
|
89
|
+
full_path = Path(filepath)
|
|
90
|
+
if config_dir is not None and not full_path.is_absolute():
|
|
91
|
+
full_path = Path(config_dir) / filepath
|
|
92
|
+
with open(full_path, 'r') as f:
|
|
88
93
|
return json.load(f)
|
|
89
94
|
|
|
90
95
|
@lru_cache(maxsize=1)
|
|
@@ -214,3 +219,12 @@ class SonataSimulationConfig:
|
|
|
214
219
|
connection_override: ConnectionOverrides
|
|
215
220
|
) -> None:
|
|
216
221
|
self._connection_overrides.append(connection_override)
|
|
222
|
+
|
|
223
|
+
def _get_config_dir(self):
|
|
224
|
+
# Prefer config_path, fallback to _simulation_config_path
|
|
225
|
+
config_path = getattr(self.impl, "config_path", None)
|
|
226
|
+
if config_path is None:
|
|
227
|
+
sim_config_path = getattr(self.impl, "_simulation_config_path", None)
|
|
228
|
+
if sim_config_path is not None:
|
|
229
|
+
config_path = Path(sim_config_path)
|
|
230
|
+
return str(config_path.parent) if config_path is not None else None
|
{bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/stimulus/circuit_stimulus_definitions.py
RENAMED
|
@@ -19,7 +19,6 @@ Run-time validates the data via Pydantic.
|
|
|
19
19
|
from __future__ import annotations
|
|
20
20
|
|
|
21
21
|
from enum import Enum
|
|
22
|
-
from pathlib import Path
|
|
23
22
|
from typing import Optional
|
|
24
23
|
import warnings
|
|
25
24
|
|
|
@@ -212,7 +211,7 @@ class Stimulus:
|
|
|
212
211
|
raise ValueError(f"Unknown pattern {pattern}")
|
|
213
212
|
|
|
214
213
|
@classmethod
|
|
215
|
-
def from_sonata(cls, stimulus_entry: dict) -> Optional[Stimulus]:
|
|
214
|
+
def from_sonata(cls, stimulus_entry: dict, config_dir: Optional[str] = None) -> Optional[Stimulus]:
|
|
216
215
|
pattern = Pattern.from_sonata(stimulus_entry["module"])
|
|
217
216
|
if pattern == Pattern.NOISE:
|
|
218
217
|
return Noise(
|
|
@@ -259,6 +258,7 @@ class Stimulus:
|
|
|
259
258
|
delay=stimulus_entry["delay"],
|
|
260
259
|
duration=stimulus_entry["duration"],
|
|
261
260
|
spike_file=stimulus_entry["spike_file"],
|
|
261
|
+
config_dir=config_dir,
|
|
262
262
|
)
|
|
263
263
|
elif pattern == Pattern.SHOT_NOISE:
|
|
264
264
|
return ShotNoise(
|
|
@@ -361,13 +361,7 @@ class RelativeLinear(Stimulus):
|
|
|
361
361
|
@dataclass(frozen=True, config=dict(extra="forbid"))
|
|
362
362
|
class SynapseReplay(Stimulus):
|
|
363
363
|
spike_file: str
|
|
364
|
-
|
|
365
|
-
@field_validator("spike_file")
|
|
366
|
-
@classmethod
|
|
367
|
-
def spike_file_exists(cls, v):
|
|
368
|
-
if not Path(v).exists():
|
|
369
|
-
raise ValueError(f"spike_file {v} does not exist")
|
|
370
|
-
return v
|
|
364
|
+
config_dir: Optional[str] = None
|
|
371
365
|
|
|
372
366
|
|
|
373
367
|
@dataclass(frozen=True, config=dict(extra="forbid"))
|
|
@@ -127,7 +127,7 @@ def calculate_SS_voltage_subprocess(
|
|
|
127
127
|
simulation.run(1000, cvode=template_accepts_cvode(template_path))
|
|
128
128
|
time = cell.get_time()
|
|
129
129
|
voltage = cell.get_voltage_recording(section=neuron_section, segx=segx)
|
|
130
|
-
SS_voltage = np.mean(voltage[np.where((time
|
|
130
|
+
SS_voltage = np.mean(voltage[np.where((time <= 1000) & (time > 800))])
|
|
131
131
|
cell.delete()
|
|
132
132
|
|
|
133
133
|
if check_for_spiking:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/circuit_access/definition.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluecellulab-2.6.69 → bluecellulab-2.6.71}/bluecellulab/circuit/config/bluepy_simulation_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|