bluecellulab 2.6.5__py3-none-any.whl → 2.6.7__py3-none-any.whl

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.

@@ -18,6 +18,8 @@ class StimulusName(Enum):
18
18
  IDREST = auto()
19
19
  IV = auto()
20
20
  FIRE_PATTERN = auto()
21
+ POS_CHEOPS = auto()
22
+ NEG_CHEOPS = auto()
21
23
 
22
24
 
23
25
  class Recording(NamedTuple):
@@ -68,7 +70,7 @@ def run_stimulus(
68
70
  return Recording(current, voltage, time)
69
71
 
70
72
 
71
- def apply_multiple_step_stimuli(
73
+ def apply_multiple_stimuli(
72
74
  cell: Cell,
73
75
  stimulus_name: StimulusName,
74
76
  amplitudes: Sequence[float],
@@ -109,6 +111,10 @@ def apply_multiple_step_stimuli(
109
111
  stimulus = stim_factory.iv(threshold_current=cell.threshold, threshold_percentage=amplitude)
110
112
  elif stimulus_name == StimulusName.FIRE_PATTERN:
111
113
  stimulus = stim_factory.fire_pattern(threshold_current=cell.threshold, threshold_percentage=amplitude)
114
+ elif stimulus_name == StimulusName.POS_CHEOPS:
115
+ stimulus = stim_factory.pos_cheops(threshold_current=cell.threshold, threshold_percentage=amplitude)
116
+ elif stimulus_name == StimulusName.NEG_CHEOPS:
117
+ stimulus = stim_factory.neg_cheops(threshold_current=cell.threshold, threshold_percentage=amplitude)
112
118
  else:
113
119
  raise ValueError("Unknown stimulus name.")
114
120
 
@@ -387,3 +387,71 @@ class StimulusFactory:
387
387
  threshold_current=threshold_current,
388
388
  threshold_percentage=threshold_percentage,
389
389
  )
390
+
391
+ def pos_cheops(
392
+ self,
393
+ threshold_current: float,
394
+ threshold_percentage: float = 300.0,
395
+ ) -> Stimulus:
396
+ """A combination of pyramid shaped Ramp stimuli with a positive
397
+ amplitude.
398
+
399
+ Args:
400
+ threshold_current: The threshold current of the Cell.
401
+ threshold_percentage: Percentage of desired threshold_current amplification.
402
+ """
403
+ delay = 250.0
404
+ ramp1_duration = 4000.0
405
+ ramp2_duration = 2000.0
406
+ ramp3_duration = 1333.0
407
+ inter_delay = 2000.0
408
+ post_delay = 250.0
409
+
410
+ amplitude = threshold_current * threshold_percentage / 100
411
+ result = (
412
+ Empty(self.dt, duration=delay)
413
+ + Slope(self.dt, duration=ramp1_duration, amplitude_start=0.0, amplitude_end=amplitude)
414
+ + Slope(self.dt, duration=ramp1_duration, amplitude_start=amplitude, amplitude_end=0.0)
415
+ + Empty(self.dt, duration=inter_delay)
416
+ + Slope(self.dt, duration=ramp2_duration, amplitude_start=0.0, amplitude_end=amplitude)
417
+ + Slope(self.dt, duration=ramp2_duration, amplitude_start=amplitude, amplitude_end=0.0)
418
+ + Empty(self.dt, duration=inter_delay)
419
+ + Slope(self.dt, duration=ramp3_duration, amplitude_start=0.0, amplitude_end=amplitude)
420
+ + Slope(self.dt, duration=ramp3_duration, amplitude_start=amplitude, amplitude_end=0.0)
421
+ + Empty(self.dt, duration=post_delay)
422
+ )
423
+ return result
424
+
425
+ def neg_cheops(
426
+ self,
427
+ threshold_current: float,
428
+ threshold_percentage: float = 300.0,
429
+ ) -> Stimulus:
430
+ """A combination of pyramid shaped Ramp stimuli with a negative
431
+ amplitude.
432
+
433
+ Args:
434
+ threshold_current: The threshold current of the Cell.
435
+ threshold_percentage: Percentage of desired threshold_current amplification.
436
+ """
437
+ delay = 1750.0
438
+ ramp1_duration = 3333.0
439
+ ramp2_duration = 1666.0
440
+ ramp3_duration = 1111.0
441
+ inter_delay = 2000.0
442
+ post_delay = 250.0
443
+
444
+ amplitude = - threshold_current * threshold_percentage / 100
445
+ result = (
446
+ Empty(self.dt, duration=delay)
447
+ + Slope(self.dt, duration=ramp1_duration, amplitude_start=0.0, amplitude_end=amplitude)
448
+ + Slope(self.dt, duration=ramp1_duration, amplitude_start=amplitude, amplitude_end=0.0)
449
+ + Empty(self.dt, duration=inter_delay)
450
+ + Slope(self.dt, duration=ramp2_duration, amplitude_start=0.0, amplitude_end=amplitude)
451
+ + Slope(self.dt, duration=ramp2_duration, amplitude_start=amplitude, amplitude_end=0.0)
452
+ + Empty(self.dt, duration=inter_delay)
453
+ + Slope(self.dt, duration=ramp3_duration, amplitude_start=0.0, amplitude_end=amplitude)
454
+ + Slope(self.dt, duration=ramp3_duration, amplitude_start=amplitude, amplitude_end=0.0)
455
+ + Empty(self.dt, duration=post_delay)
456
+ )
457
+ return result
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bluecellulab
3
- Version: 2.6.5
3
+ Version: 2.6.7
4
4
  Summary: Biologically detailed neural network simulations and analysis.
5
5
  Author: Blue Brain Project, EPFL
6
6
  License: Apache2.0
@@ -15,7 +15,7 @@ bluecellulab/type_aliases.py,sha256=DvgjERv2Ztdw_sW63JrZTQGpJ0x5uMTFB5hcBHDb0WA,
15
15
  bluecellulab/utils.py,sha256=SbOOkzw1YGjCKV3qOw0zpabNEy7V9BRtgMLsQJiFRq4,1526
16
16
  bluecellulab/verbosity.py,sha256=T0IgX7DrRo19faxrT4Xzb27gqxzoILQ8FzYKxvUeaPM,1342
17
17
  bluecellulab/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- bluecellulab/analysis/inject_sequence.py,sha256=qr3N1tQX4avvKzFBT0L7W6LnSgk2y_P_7Yhy0UjlGmk,4769
18
+ bluecellulab/analysis/inject_sequence.py,sha256=Kgs-Be6CtRc9LI1qsM7mC4oGfpW6VrqGPHSuoa7XFYs,5148
19
19
  bluecellulab/cell/__init__.py,sha256=Sbc0QOsJ8E7tSwf3q7fsXuE_SevBN6ZmoCVyyU5zfII,208
20
20
  bluecellulab/cell/cell_dict.py,sha256=PVmZsjhZ9jp3HC-8QmdFqp-crAcVMSVeLWujcOPLlpo,1346
21
21
  bluecellulab/cell/core.py,sha256=ZVzy3tsA5X7OyCmnHQn0d6AlNg9rOG2ojKuojvKdsFw,31487
@@ -58,13 +58,13 @@ bluecellulab/simulation/parallel.py,sha256=xmlIelxYNct-vGhPip7_vF9gwyehdpomYB8kf
58
58
  bluecellulab/simulation/simulation.py,sha256=I__cZwV_A8I7XSefn6aJDBA_jXCI3E35-pCNCLUsnvo,6206
59
59
  bluecellulab/stimulus/__init__.py,sha256=DgIgVaSyR-URf3JZzvO6j-tjCerzvktuK-ep8pjMRPQ,37
60
60
  bluecellulab/stimulus/circuit_stimulus_definitions.py,sha256=uij_s44uNdmMwMLGmTHSRgmp9K9B_vvHHshX6YPJNJU,15686
61
- bluecellulab/stimulus/factory.py,sha256=cjnMqFx-Y31kV1XHvkSbGI2f1OpEawU3Wg_cLqcIyRc,11883
61
+ bluecellulab/stimulus/factory.py,sha256=hoq5JA69eX4bAdtOJNErhBn_p0uQh8QPoFvCqqeGBN4,14874
62
62
  bluecellulab/synapse/__init__.py,sha256=RW8XoAMXOvK7OG1nHl_q8jSEKLj9ZN4oWf2nY9HAwuk,192
63
63
  bluecellulab/synapse/synapse_factory.py,sha256=MjUorWoMl4lFSBgQw4QS09Dzh0-LYWlCHJKYy8N-d3w,6847
64
64
  bluecellulab/synapse/synapse_types.py,sha256=4gne-hve2vq1Lau-LAVPsfLjffVYqAYBW3kCfC7_600,16871
65
- bluecellulab-2.6.5.dist-info/AUTHORS.txt,sha256=EDs3H-2HXBojbma10psixk3C2rFiOCTIREi2ZAbXYNQ,179
66
- bluecellulab-2.6.5.dist-info/LICENSE,sha256=xOouu1gC1GGklDxkITlaVl60I9Ab860O-nZsFbWydvU,11749
67
- bluecellulab-2.6.5.dist-info/METADATA,sha256=N9CDlJekDBY0lDhztlnlbbQGcMXYsMQqn6W4VbHu104,7054
68
- bluecellulab-2.6.5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
69
- bluecellulab-2.6.5.dist-info/top_level.txt,sha256=VSyEP8w9l3pXdRkyP_goeMwiNA8KWwitfAqUkveJkdQ,13
70
- bluecellulab-2.6.5.dist-info/RECORD,,
65
+ bluecellulab-2.6.7.dist-info/AUTHORS.txt,sha256=EDs3H-2HXBojbma10psixk3C2rFiOCTIREi2ZAbXYNQ,179
66
+ bluecellulab-2.6.7.dist-info/LICENSE,sha256=xOouu1gC1GGklDxkITlaVl60I9Ab860O-nZsFbWydvU,11749
67
+ bluecellulab-2.6.7.dist-info/METADATA,sha256=sTJAPEzsGahpUEldyozFUZbcg7wdnOGObLSkRIasmaw,7054
68
+ bluecellulab-2.6.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
69
+ bluecellulab-2.6.7.dist-info/top_level.txt,sha256=VSyEP8w9l3pXdRkyP_goeMwiNA8KWwitfAqUkveJkdQ,13
70
+ bluecellulab-2.6.7.dist-info/RECORD,,