bluecellulab 2.6.56__tar.gz → 2.6.58__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.
Files changed (109) hide show
  1. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/PKG-INFO +1 -1
  2. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/analysis/analysis.py +0 -1
  3. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/validation/validation.py +59 -9
  4. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab.egg-info/PKG-INFO +1 -1
  5. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.compile_mod.sh +0 -0
  6. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.gitattributes +0 -0
  7. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.github/dependabot.yml +0 -0
  8. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.github/workflows/release.yml +0 -0
  9. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.github/workflows/test.yml +0 -0
  10. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.gitignore +0 -0
  11. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.gitlab-ci.yml +0 -0
  12. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.readthedocs.yml +0 -0
  13. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/.zenodo.json +0 -0
  14. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/AUTHORS.txt +0 -0
  15. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/CHANGELOG.rst +0 -0
  16. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/CITATION.cff +0 -0
  17. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/CONTRIBUTING.rst +0 -0
  18. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/LICENSE +0 -0
  19. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/MANIFEST.in +0 -0
  20. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/Makefile +0 -0
  21. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/README.rst +0 -0
  22. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/__init__.py +0 -0
  23. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/analysis/__init__.py +0 -0
  24. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/analysis/inject_sequence.py +0 -0
  25. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/analysis/plotting.py +0 -0
  26. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/analysis/utils.py +0 -0
  27. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/__init__.py +0 -0
  28. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/ballstick/__init__.py +0 -0
  29. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
  30. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/ballstick/morphology.asc +0 -0
  31. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/cell_dict.py +0 -0
  32. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/core.py +0 -0
  33. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/injector.py +0 -0
  34. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/plotting.py +0 -0
  35. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/random.py +0 -0
  36. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/recording.py +0 -0
  37. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/section_distance.py +0 -0
  38. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/serialized_sections.py +0 -0
  39. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/sonata_proxy.py +0 -0
  40. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/stimuli_generator.py +0 -0
  41. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/cell/template.py +0 -0
  42. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/__init__.py +0 -0
  43. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/circuit_access/__init__.py +0 -0
  44. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +0 -0
  45. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/circuit_access/definition.py +0 -0
  46. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/circuit_access/sonata_circuit_access.py +0 -0
  47. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/config/__init__.py +0 -0
  48. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/config/bluepy_simulation_config.py +0 -0
  49. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/config/definition.py +0 -0
  50. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/config/sections.py +0 -0
  51. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/config/sonata_simulation_config.py +0 -0
  52. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/format.py +0 -0
  53. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/iotools.py +0 -0
  54. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/node_id.py +0 -0
  55. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/simulation_access.py +0 -0
  56. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/synapse_properties.py +0 -0
  57. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit/validate.py +0 -0
  58. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/circuit_simulation.py +0 -0
  59. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/connection.py +0 -0
  60. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/dendrogram.py +0 -0
  61. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/exceptions.py +0 -0
  62. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/graph.py +0 -0
  63. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/hoc/Cell.hoc +0 -0
  64. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/hoc/RNGSettings.hoc +0 -0
  65. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/hoc/TDistFunc.hoc +0 -0
  66. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/hoc/TStim.hoc +0 -0
  67. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/hoc/fileUtils.hoc +0 -0
  68. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/importer.py +0 -0
  69. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/neuron_interpreter.py +0 -0
  70. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/plotwindow.py +0 -0
  71. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/psection.py +0 -0
  72. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/psegment.py +0 -0
  73. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/rngsettings.py +0 -0
  74. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/simulation/__init__.py +0 -0
  75. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/simulation/neuron_globals.py +0 -0
  76. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/simulation/parallel.py +0 -0
  77. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/simulation/report.py +0 -0
  78. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/simulation/simulation.py +0 -0
  79. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/stimulus/__init__.py +0 -0
  80. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/stimulus/circuit_stimulus_definitions.py +0 -0
  81. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/stimulus/factory.py +0 -0
  82. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/stimulus/stimulus.py +0 -0
  83. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/synapse/__init__.py +0 -0
  84. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/synapse/synapse_factory.py +0 -0
  85. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/synapse/synapse_types.py +0 -0
  86. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/tools.py +0 -0
  87. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/type_aliases.py +0 -0
  88. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/utils.py +0 -0
  89. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab/verbosity.py +0 -0
  90. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab.egg-info/SOURCES.txt +0 -0
  91. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab.egg-info/dependency_links.txt +0 -0
  92. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab.egg-info/requires.txt +0 -0
  93. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/bluecellulab.egg-info/top_level.txt +0 -0
  94. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/Makefile +0 -0
  95. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/images/voltage-readme.png +0 -0
  96. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/make.bat +0 -0
  97. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/requirements_docs.txt +0 -0
  98. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/_static/.gitkeep +0 -0
  99. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/api.rst +0 -0
  100. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/changelog.rst +0 -0
  101. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/compiling-mechanisms.rst +0 -0
  102. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/conf.py +0 -0
  103. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/contributing.rst +0 -0
  104. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/index.rst +0 -0
  105. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/list_of_stim.rst +0 -0
  106. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
  107. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/pyproject.toml +0 -0
  108. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/setup.cfg +0 -0
  109. {bluecellulab-2.6.56 → bluecellulab-2.6.58}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluecellulab
3
- Version: 2.6.56
3
+ Version: 2.6.58
4
4
  Summary: Biologically detailed neural network simulations and analysis.
5
5
  Author: Blue Brain Project, EPFL
6
6
  License: Apache2.0
@@ -350,7 +350,6 @@ class BPAP:
350
350
  validated = True
351
351
  notes = ""
352
352
  popt_dend, popt_apic = self.fit(soma_amp, dend_amps, dend_dist, apic_amps, apic_dist)
353
- logging.warning(popt_dend)
354
353
  if dend_amps is not None:
355
354
  plt.cla()
356
355
  plt.plot([0], soma_amp, '.')
@@ -25,6 +25,7 @@ from bluecellulab.analysis.analysis import compute_plot_iv_curve
25
25
  from bluecellulab.analysis.inject_sequence import run_multirecordings_stimulus
26
26
  from bluecellulab.analysis.inject_sequence import run_stimulus
27
27
  from bluecellulab.cell.core import Cell
28
+ from bluecellulab.simulation.neuron_globals import NeuronGlobals
28
29
  from bluecellulab.stimulus.factory import IDRestTimings
29
30
  from bluecellulab.stimulus.factory import StimulusFactory
30
31
  from bluecellulab.tools import calculate_input_resistance
@@ -33,15 +34,17 @@ from bluecellulab.tools import calculate_rheobase
33
34
  logger = logging.getLogger(__name__)
34
35
 
35
36
 
36
- def plot_trace(recording, out_dir, fname, title):
37
+ def plot_trace(recording, out_dir, fname, title, plot_current=True):
37
38
  """Plot a trace with inout current given a recording."""
38
39
  outpath = out_dir / fname
39
40
  fig, ax1 = plt.subplots(figsize=(10, 6))
40
41
  plt.plot(recording.time, recording.voltage, color="black")
41
- current_axis = ax1.twinx()
42
- current_axis.plot(recording.time, recording.current, color="gray", alpha=0.6)
43
- current_axis.set_ylabel("Stimulus Current [nA]")
44
- fig.suptitle(title)
42
+ if plot_current:
43
+ current_axis = ax1.twinx()
44
+ current_axis.plot(recording.time, recording.current, color="gray", alpha=0.6)
45
+ current_axis.set_ylabel("Stimulus Current [nA]")
46
+ if title:
47
+ fig.suptitle(title)
45
48
  ax1.set_xlabel("Time [ms]")
46
49
  ax1.set_ylabel("Voltage [mV]")
47
50
  fig.tight_layout()
@@ -291,15 +294,17 @@ def hyperpolarization_test(template_params, rheobase, out_dir):
291
294
  "stim_end": [IDRestTimings.PRE_DELAY.value + IDRestTimings.DURATION.value],
292
295
  }
293
296
  features_results = efel.get_feature_values([trace], ["voltage_base", "steady_state_voltage_stimend"])
294
- rmp = features_results[0]["voltage_base"][0]
295
- ss_voltage = features_results[0]["steady_state_voltage_stimend"][0]
296
- if rmp is None or ss_voltage is None:
297
+ rmp = features_results[0]["voltage_base"]
298
+ ss_voltage = features_results[0]["steady_state_voltage_stimend"]
299
+ if rmp is None or len(rmp) == 0 or ss_voltage is None or len(ss_voltage) == 0:
297
300
  return {
298
301
  "name": name,
299
302
  "passed": False,
300
303
  "validation_details": "Validation failed: Could not determine RMP or steady state voltage.",
301
304
  "figures": [outpath],
302
305
  }
306
+ rmp = rmp[0]
307
+ ss_voltage = ss_voltage[0]
303
308
  hyperpol_bool = bool(ss_voltage < rmp)
304
309
 
305
310
  notes = (
@@ -408,8 +413,42 @@ def fi_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30.):
408
413
  }
409
414
 
410
415
 
416
+ def thumbnail_test(template_params, rheobase, out_dir):
417
+ """Thumbnail test: creating a thumbnail."""
418
+ stim_factory = StimulusFactory(dt=1.0)
419
+ step_stimulus = stim_factory.idrest(threshold_current=rheobase, threshold_percentage=130)
420
+ recording = run_stimulus(
421
+ template_params,
422
+ step_stimulus,
423
+ "soma[0]",
424
+ 0.5,
425
+ add_hypamp=True,
426
+ )
427
+
428
+ # plotting
429
+ outpath = plot_trace(
430
+ recording,
431
+ out_dir,
432
+ fname="thumbnail.pdf",
433
+ title="",
434
+ plot_current=False
435
+ )
436
+
437
+ return {
438
+ "name": "thumbnail",
439
+ "passed": True,
440
+ "validation_details": "",
441
+ "figures": [outpath],
442
+ }
443
+
444
+
411
445
  def run_validations(
412
- cell, cell_name, spike_threshold_voltage=-30, output_dir="./memodel_validation_figures"
446
+ cell,
447
+ cell_name,
448
+ spike_threshold_voltage=-30,
449
+ v_init=-80.0,
450
+ celsius=34.0,
451
+ output_dir="./memodel_validation_figures"
413
452
  ):
414
453
  """Run all the validations on the cell.
415
454
 
@@ -417,11 +456,18 @@ def run_validations(
417
456
  cell (Cell): The cell to validate.
418
457
  cell_name (str): The name of the cell, used in the output directory.
419
458
  spike_threshold_voltage (float): The voltage threshold for spike detection.
459
+ v_init: Initial membrane potential. Default is -80.0 mV.
460
+ celsius: Temperature in Celsius. Default is 34.0.
420
461
  output_dir (str): The directory to save the validation figures.
421
462
  """
422
463
  out_dir = pathlib.Path(output_dir) / cell_name
423
464
  out_dir.mkdir(parents=True, exist_ok=True)
424
465
 
466
+ # set initial voltage and temperature
467
+ neuron_globals = NeuronGlobals.get_instance()
468
+ neuron_globals.temperature = celsius
469
+ neuron_globals.v_init = v_init
470
+
425
471
  # get me-model properties
426
472
  holding_current = cell.hypamp if cell.hypamp else 0.0
427
473
  if cell.threshold:
@@ -471,6 +517,9 @@ def run_validations(
471
517
  # Validation 9: FI Test
472
518
  fi_test_result = fi_test(cell.template_params, rheobase, out_dir, spike_threshold_voltage)
473
519
 
520
+ # Validation 10: Thumbnail Test
521
+ thumbnail_result = thumbnail_test(cell.template_params, rheobase, out_dir)
522
+
474
523
  return {
475
524
  "memodel_properties": {
476
525
  "holding_current": holding_current,
@@ -485,4 +534,5 @@ def run_validations(
485
534
  "rin_test": rin_result,
486
535
  "iv_test": iv_test_result,
487
536
  "fi_test": fi_test_result,
537
+ "thumbnail_test": thumbnail_result,
488
538
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluecellulab
3
- Version: 2.6.56
3
+ Version: 2.6.58
4
4
  Summary: Biologically detailed neural network simulations and analysis.
5
5
  Author: Blue Brain Project, EPFL
6
6
  License: Apache2.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes