bluecellulab 2.6.52__tar.gz → 2.6.54__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.52 → bluecellulab-2.6.54}/PKG-INFO +1 -1
  2. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/analysis/analysis.py +43 -42
  3. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/validation/validation.py +24 -54
  4. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab.egg-info/PKG-INFO +1 -1
  5. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/tox.ini +1 -0
  6. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.compile_mod.sh +0 -0
  7. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.gitattributes +0 -0
  8. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.github/dependabot.yml +0 -0
  9. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.github/workflows/release.yml +0 -0
  10. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.github/workflows/test.yml +0 -0
  11. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.gitignore +0 -0
  12. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.gitlab-ci.yml +0 -0
  13. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.readthedocs.yml +0 -0
  14. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/.zenodo.json +0 -0
  15. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/AUTHORS.txt +0 -0
  16. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/CHANGELOG.rst +0 -0
  17. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/CITATION.cff +0 -0
  18. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/CONTRIBUTING.rst +0 -0
  19. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/LICENSE +0 -0
  20. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/MANIFEST.in +0 -0
  21. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/Makefile +0 -0
  22. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/README.rst +0 -0
  23. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/__init__.py +0 -0
  24. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/analysis/__init__.py +0 -0
  25. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/analysis/inject_sequence.py +0 -0
  26. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/analysis/plotting.py +0 -0
  27. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/analysis/utils.py +0 -0
  28. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/__init__.py +0 -0
  29. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/ballstick/__init__.py +0 -0
  30. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/ballstick/emodel.hoc +0 -0
  31. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/ballstick/morphology.asc +0 -0
  32. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/cell_dict.py +0 -0
  33. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/core.py +0 -0
  34. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/injector.py +0 -0
  35. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/plotting.py +0 -0
  36. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/random.py +0 -0
  37. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/recording.py +0 -0
  38. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/section_distance.py +0 -0
  39. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/serialized_sections.py +0 -0
  40. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/sonata_proxy.py +0 -0
  41. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/stimuli_generator.py +0 -0
  42. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/cell/template.py +0 -0
  43. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/__init__.py +0 -0
  44. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/circuit_access/__init__.py +0 -0
  45. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +0 -0
  46. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/circuit_access/definition.py +0 -0
  47. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/circuit_access/sonata_circuit_access.py +0 -0
  48. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/config/__init__.py +0 -0
  49. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/config/bluepy_simulation_config.py +0 -0
  50. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/config/definition.py +0 -0
  51. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/config/sections.py +0 -0
  52. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/config/sonata_simulation_config.py +0 -0
  53. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/format.py +0 -0
  54. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/iotools.py +0 -0
  55. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/node_id.py +0 -0
  56. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/simulation_access.py +0 -0
  57. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/synapse_properties.py +0 -0
  58. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit/validate.py +0 -0
  59. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/circuit_simulation.py +0 -0
  60. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/connection.py +0 -0
  61. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/dendrogram.py +0 -0
  62. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/exceptions.py +0 -0
  63. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/graph.py +0 -0
  64. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/hoc/Cell.hoc +0 -0
  65. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/hoc/RNGSettings.hoc +0 -0
  66. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/hoc/TDistFunc.hoc +0 -0
  67. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/hoc/TStim.hoc +0 -0
  68. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/hoc/fileUtils.hoc +0 -0
  69. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/importer.py +0 -0
  70. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/neuron_interpreter.py +0 -0
  71. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/plotwindow.py +0 -0
  72. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/psection.py +0 -0
  73. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/psegment.py +0 -0
  74. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/rngsettings.py +0 -0
  75. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/simulation/__init__.py +0 -0
  76. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/simulation/neuron_globals.py +0 -0
  77. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/simulation/parallel.py +0 -0
  78. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/simulation/report.py +0 -0
  79. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/simulation/simulation.py +0 -0
  80. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/stimulus/__init__.py +0 -0
  81. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/stimulus/circuit_stimulus_definitions.py +0 -0
  82. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/stimulus/factory.py +0 -0
  83. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/stimulus/stimulus.py +0 -0
  84. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/synapse/__init__.py +0 -0
  85. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/synapse/synapse_factory.py +0 -0
  86. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/synapse/synapse_types.py +0 -0
  87. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/tools.py +0 -0
  88. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/type_aliases.py +0 -0
  89. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/utils.py +0 -0
  90. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab/verbosity.py +0 -0
  91. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab.egg-info/SOURCES.txt +0 -0
  92. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab.egg-info/dependency_links.txt +0 -0
  93. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab.egg-info/requires.txt +0 -0
  94. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/bluecellulab.egg-info/top_level.txt +0 -0
  95. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/Makefile +0 -0
  96. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/images/voltage-readme.png +0 -0
  97. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/make.bat +0 -0
  98. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/requirements_docs.txt +0 -0
  99. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/_static/.gitkeep +0 -0
  100. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/api.rst +0 -0
  101. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/changelog.rst +0 -0
  102. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/compiling-mechanisms.rst +0 -0
  103. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/conf.py +0 -0
  104. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/contributing.rst +0 -0
  105. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/index.rst +0 -0
  106. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/list_of_stim.rst +0 -0
  107. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/docs/source/logo/BlueCelluLabBanner.jpg +0 -0
  108. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/pyproject.toml +0 -0
  109. {bluecellulab-2.6.52 → bluecellulab-2.6.54}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluecellulab
3
- Version: 2.6.52
3
+ Version: 2.6.54
4
4
  Summary: Biologically detailed neural network simulations and analysis.
5
5
  Author: Blue Brain Project, EPFL
6
6
  License: Apache2.0
@@ -4,11 +4,9 @@ try:
4
4
  except ImportError:
5
5
  efel = None
6
6
  from itertools import islice
7
- from itertools import repeat
8
7
  import logging
9
8
  from matplotlib.collections import LineCollection
10
9
  import matplotlib.pyplot as plt
11
- from multiprocessing import Pool
12
10
  import neuron
13
11
  import numpy as np
14
12
  import pathlib
@@ -97,20 +95,15 @@ def compute_plot_iv_curve(cell,
97
95
  for amp in list_amp
98
96
  ]
99
97
 
100
- with Pool(len(steps)) as p:
101
- recordings = p.starmap(
102
- run_stimulus,
103
- zip(
104
- repeat(cell.template_params),
105
- steps,
106
- repeat(injecting_section),
107
- repeat(injecting_segment),
108
- repeat(True), # cvode
109
- repeat(True), # add_hypamp
110
- repeat(recording_section),
111
- repeat(recording_segment),
112
- )
113
- )
98
+ recordings = []
99
+ for step in steps:
100
+ recording = run_stimulus(cell.template_params,
101
+ step,
102
+ section=injecting_section,
103
+ segment=injecting_segment,
104
+ recording_section=recording_section,
105
+ recording_segment=recording_segment)
106
+ recordings.append(recording)
114
107
 
115
108
  steady_states = []
116
109
  # compute steady state response
@@ -208,24 +201,19 @@ def compute_plot_fi_curve(cell,
208
201
  for amp in list_amp
209
202
  ]
210
203
 
211
- with Pool(len(steps)) as p:
212
- recordings = p.starmap(
213
- run_stimulus,
214
- zip(
215
- repeat(cell.template_params),
216
- steps,
217
- repeat(injecting_section),
218
- repeat(injecting_segment),
219
- repeat(True), # cvode
220
- repeat(True), # add_hypamp
221
- repeat(recording_section),
222
- repeat(recording_segment),
223
- repeat(True), # enable_spike_detection
224
- repeat(threshold_voltage), # threshold_spike_detection
225
- )
226
- )
204
+ spikes = []
205
+ for step in steps:
206
+ recording = run_stimulus(cell.template_params,
207
+ step,
208
+ section=injecting_section,
209
+ segment=injecting_segment,
210
+ recording_section=recording_section,
211
+ recording_segment=recording_segment,
212
+ enable_spike_detection=True,
213
+ threshold_spike_detection=threshold_voltage)
214
+ spikes.append(recording.spike)
227
215
 
228
- spike_count = [len(recording.spike) for recording in recordings]
216
+ spike_count = [len(spike) for spike in spikes]
229
217
 
230
218
  plot_fi_curve(list_amp,
231
219
  spike_count,
@@ -248,7 +236,7 @@ class BPAP:
248
236
  self.cell = cell
249
237
  self.dt = 0.025
250
238
  self.stim_start = 1000
251
- self.stim_duration = 3
239
+ self.stim_duration = 5
252
240
  self.basal_cmap = sns.color_palette("crest", as_cmap=True)
253
241
  self.apical_cmap = sns.color_palette("YlOrBr_r", as_cmap=True)
254
242
 
@@ -301,7 +289,11 @@ class BPAP:
301
289
  for rec in recs.values()
302
290
  ]
303
291
  features_results = efel.get_feature_values(traces, [efel_feature_name])
304
- amps = [feat_res[efel_feature_name][0] for feat_res in features_results]
292
+ amps = [
293
+ feat_res[efel_feature_name][0]
294
+ for feat_res in features_results
295
+ if feat_res[efel_feature_name] is not None
296
+ ]
305
297
 
306
298
  return amps
307
299
 
@@ -320,7 +312,7 @@ class BPAP:
320
312
 
321
313
  def get_amplitudes_and_distances(self):
322
314
  soma_rec, dend_rec, apic_rec = self.get_recordings()
323
- soma_amp = self.amplitudes({"soma": soma_rec})[0]
315
+ soma_amp = self.amplitudes({"soma": soma_rec})
324
316
  dend_amps = None
325
317
  dend_dist = None
326
318
  apic_amps = None
@@ -334,20 +326,21 @@ class BPAP:
334
326
 
335
327
  return soma_amp, dend_amps, dend_dist, apic_amps, apic_dist
336
328
 
337
- def fit(self, soma_amp, dend_amps, dend_dist, apic_amps, apic_dist):
329
+ @staticmethod
330
+ def fit(soma_amp, dend_amps, dend_dist, apic_amps, apic_dist):
338
331
  """Fit the amplitudes vs distances to an exponential decay function."""
339
332
  from scipy.optimize import curve_fit
340
333
 
341
334
  popt_dend = None
342
335
  if dend_amps and dend_dist:
343
336
  dist = [0] + dend_dist # add soma distance
344
- amps = [soma_amp] + dend_amps # add soma amplitude
337
+ amps = soma_amp + dend_amps # add soma amplitude
345
338
  popt_dend, _ = curve_fit(exp_decay, dist, amps)
346
339
 
347
340
  popt_apic = None
348
341
  if apic_amps and apic_dist:
349
342
  dist = [0] + apic_dist # add soma distance
350
- amps = [soma_amp] + apic_amps # add soma amplitude
343
+ amps = soma_amp + apic_amps # add soma amplitude
351
344
  popt_apic, _ = curve_fit(exp_decay, dist, amps)
352
345
 
353
346
  return popt_dend, popt_apic
@@ -357,10 +350,18 @@ class BPAP:
357
350
  validated = True
358
351
  notes = ""
359
352
  popt_dend, popt_apic = self.fit(soma_amp, dend_amps, dend_dist, apic_amps, apic_dist)
353
+ logging.warning(popt_dend)
354
+ if dend_amps is not None:
355
+ plt.cla()
356
+ plt.plot([0], soma_amp, '.')
357
+ plt.plot(dend_dist, dend_amps, '.')
358
+ x = np.linspace(0, max(dend_dist), 100)
359
+ plt.plot(x, exp_decay(x, *popt_dend), color='darkgreen', linestyle='--', label='Basal Dendritic Fit')
360
+ plt.savefig("bad_dendritic_fit.png")
360
361
  if popt_dend is None:
361
362
  logger.debug("No dendritic recordings found.")
362
363
  notes += "No dendritic recordings found.\n"
363
- elif popt_dend[1] <= 0:
364
+ elif popt_dend[1] <= 0 or popt_dend[0] <= 0:
364
365
  logger.debug("Dendritic fit is not decaying.")
365
366
  validated = False
366
367
  notes += "Dendritic fit is not decaying.\n"
@@ -369,7 +370,7 @@ class BPAP:
369
370
  if popt_apic is None:
370
371
  logger.debug("No apical recordings found.")
371
372
  notes += "No apical recordings found.\n"
372
- elif popt_apic[1] <= 0:
373
+ elif popt_apic[1] <= 0 or popt_apic[0] <= 0:
373
374
  logger.debug("Apical fit is not decaying.")
374
375
  validated = False
375
376
  notes += "Apical fit is not decaying.\n"
@@ -395,7 +396,7 @@ class BPAP:
395
396
 
396
397
  outpath = pathlib.Path(output_dir) / output_fname
397
398
  fig, ax1 = plt.subplots(figsize=(10, 6))
398
- ax1.scatter([0], [soma_amp], marker="^", color='black', label='Soma')
399
+ ax1.scatter([0], soma_amp, marker="^", color='black', label='Soma')
399
400
  if dend_amps and dend_dist:
400
401
  ax1.scatter(
401
402
  dend_dist,
@@ -438,68 +438,38 @@ def run_validations(
438
438
  )
439
439
 
440
440
  logger.debug("Running validations...")
441
- from bluecellulab.utils import NestedPool
442
- with NestedPool(processes=8) as pool:
443
- # Validation 1: Spiking Test
444
- spiking_test_result_future = pool.apply_async(
445
- spiking_test,
446
- (cell.template_params, rheobase, out_dir, spike_threshold_voltage)
447
- )
448
-
449
- # Validation 2: Depolarization Block Test
450
- depolarization_block_result_future = pool.apply_async(
451
- depolarization_block_test,
452
- (cell.template_params, rheobase, out_dir)
453
- )
441
+ # Validation 1: Spiking Test
442
+ spiking_test_result = spiking_test(
443
+ cell.template_params, rheobase, out_dir, spike_threshold_voltage
444
+ )
454
445
 
455
- # Validation 3: Backpropagating AP Test
456
- bpap_result_future = pool.apply_async(
457
- bpap_test,
458
- (cell.template_params, rheobase, out_dir)
459
- )
446
+ # Validation 2: Depolarization Block Test
447
+ depolarization_block_result = depolarization_block_test(
448
+ cell.template_params, rheobase, out_dir
449
+ )
460
450
 
461
- # Validation 4: Postsynaptic Potential Test
462
- # We have to wait for ProbAMPANMDA_EMS to be present in entitycore to implement this test
451
+ # Validation 3: Backpropagating AP Test
452
+ bpap_result = bpap_test(cell.template_params, rheobase, out_dir)
463
453
 
464
- # Validation 5: AIS Spiking Test
465
- ais_spiking_test_result_future = pool.apply_async(
466
- ais_spiking_test,
467
- (cell.template_params, rheobase, out_dir, spike_threshold_voltage)
468
- )
454
+ # Validation 4: Postsynaptic Potential Test
455
+ # We have to wait for ProbAMPANMDA_EMS to be present in entitycore to implement this test
469
456
 
470
- # Validation 6: Hyperpolarization Test
471
- hyperpolarization_result_future = pool.apply_async(
472
- hyperpolarization_test,
473
- (cell.template_params, rheobase, out_dir)
474
- )
457
+ # Validation 5: AIS Spiking Test
458
+ ais_spiking_test_result = ais_spiking_test(
459
+ cell.template_params, rheobase, out_dir, spike_threshold_voltage
460
+ )
475
461
 
476
- # Validation 7: Rin Test
477
- rin_result_future = pool.apply_async(
478
- rin_test,
479
- (rin,)
480
- )
462
+ # Validation 6: Hyperpolarization Test
463
+ hyperpolarization_result = hyperpolarization_test(cell.template_params, rheobase, out_dir)
481
464
 
482
- # # Validation 8: IV Test
483
- iv_test_result_future = pool.apply_async(
484
- iv_test,
485
- (cell.template_params, rheobase, out_dir, spike_threshold_voltage)
486
- )
465
+ # Validation 7: Rin Test
466
+ rin_result = rin_test(rin)
487
467
 
488
- # # Validation 9: FI Test
489
- fi_test_result_future = pool.apply_async(
490
- fi_test,
491
- (cell.template_params, rheobase, out_dir, spike_threshold_voltage)
492
- )
468
+ # Validation 8: IV Test
469
+ iv_test_result = iv_test(cell.template_params, rheobase, out_dir, spike_threshold_voltage)
493
470
 
494
- # Wait for all validations to complete
495
- spiking_test_result = spiking_test_result_future.get()
496
- depolarization_block_result = depolarization_block_result_future.get()
497
- bpap_result = bpap_result_future.get()
498
- ais_spiking_test_result = ais_spiking_test_result_future.get()
499
- hyperpolarization_result = hyperpolarization_result_future.get()
500
- rin_result = rin_result_future.get()
501
- iv_test_result = iv_test_result_future.get()
502
- fi_test_result = fi_test_result_future.get()
471
+ # Validation 9: FI Test
472
+ fi_test_result = fi_test(cell.template_params, rheobase, out_dir, spike_threshold_voltage)
503
473
 
504
474
  return {
505
475
  "memodel_properties": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluecellulab
3
- Version: 2.6.52
3
+ Version: 2.6.54
4
4
  Summary: Biologically detailed neural network simulations and analysis.
5
5
  Author: Blue Brain Project, EPFL
6
6
  License: Apache2.0
@@ -15,6 +15,7 @@ deps =
15
15
  pytest-timeout>=2.1.0
16
16
  pytest-xdist>=3.3.1 # multiprocessing
17
17
  pytest-forked>=1.6.0 # isolation
18
+ efel
18
19
  download = true
19
20
  allowlist_externals =
20
21
  make
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes