bluecellulab 2.6.61__py3-none-any.whl → 2.6.63__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.

@@ -337,7 +337,7 @@ def rin_test(rin):
337
337
  }
338
338
 
339
339
 
340
- def iv_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30.):
340
+ def iv_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30., n_processes=None):
341
341
  """IV curve should have a positive slope."""
342
342
  name = "Simulatable Neuron IV Curve Validation"
343
343
  amps, steady_states = compute_plot_iv_curve(
@@ -348,7 +348,9 @@ def iv_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30.):
348
348
  show_figure=False,
349
349
  save_figure=True,
350
350
  output_dir=out_dir,
351
- output_fname="iv_curve.pdf")
351
+ output_fname="iv_curve.pdf",
352
+ n_processes=n_processes,
353
+ )
352
354
 
353
355
  outpath = pathlib.Path(out_dir) / "iv_curve.pdf"
354
356
 
@@ -375,7 +377,7 @@ def iv_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30.):
375
377
  }
376
378
 
377
379
 
378
- def fi_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30.):
380
+ def fi_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30., n_processes=None):
379
381
  """FI curve should have a positive slope."""
380
382
  name = "Simulatable Neuron FI Curve Validation"
381
383
  amps, spike_counts = compute_plot_fi_curve(
@@ -386,7 +388,9 @@ def fi_test(template_params, rheobase, out_dir, spike_threshold_voltage=-30.):
386
388
  show_figure=False,
387
389
  save_figure=True,
388
390
  output_dir=out_dir,
389
- output_fname="fi_curve.pdf")
391
+ output_fname="fi_curve.pdf",
392
+ n_processes=n_processes,
393
+ )
390
394
 
391
395
  outpath = pathlib.Path(out_dir) / "fi_curve.pdf"
392
396
 
@@ -448,7 +452,8 @@ def run_validations(
448
452
  spike_threshold_voltage=-30,
449
453
  v_init=-80.0,
450
454
  celsius=34.0,
451
- output_dir="./memodel_validation_figures"
455
+ output_dir="./memodel_validation_figures",
456
+ n_processes=None,
452
457
  ):
453
458
  """Run all the validations on the cell.
454
459
 
@@ -459,6 +464,9 @@ def run_validations(
459
464
  v_init: Initial membrane potential. Default is -80.0 mV.
460
465
  celsius: Temperature in Celsius. Default is 34.0.
461
466
  output_dir (str): The directory to save the validation figures.
467
+ n_processes (int, optional): The number of processes to use for parallel execution
468
+ in IV and FI curves computation. If None or higher than the number of steps,
469
+ then it will use the number of steps as the number of processes instead.
462
470
  """
463
471
  out_dir = pathlib.Path(output_dir) / cell_name
464
472
  out_dir.mkdir(parents=True, exist_ok=True)
@@ -484,41 +492,68 @@ def run_validations(
484
492
  )
485
493
 
486
494
  logger.debug("Running validations...")
487
- # Validation 1: Spiking Test
488
- spiking_test_result = spiking_test(
489
- cell.template_params, rheobase, out_dir, spike_threshold_voltage
490
- )
495
+ from bluecellulab.utils import NestedPool
496
+ val_n_processes = n_processes if n_processes is not None else 7
497
+ with NestedPool(processes=val_n_processes) as pool:
498
+ # Validation 1: Spiking Test
499
+ spiking_test_result_future = pool.apply_async(
500
+ spiking_test,
501
+ (cell.template_params, rheobase, out_dir, spike_threshold_voltage)
502
+ )
491
503
 
492
- # Validation 2: Depolarization Block Test
493
- depolarization_block_result = depolarization_block_test(
494
- cell.template_params, rheobase, out_dir
495
- )
504
+ # Validation 2: Depolarization Block Test
505
+ depolarization_block_result_future = pool.apply_async(
506
+ depolarization_block_test,
507
+ (cell.template_params, rheobase, out_dir)
508
+ )
496
509
 
497
- # Validation 3: Backpropagating AP Test
498
- bpap_result = bpap_test(cell.template_params, rheobase, out_dir)
510
+ # Validation 3: Backpropagating AP Test
511
+ bpap_result_future = pool.apply_async(
512
+ bpap_test,
513
+ (cell.template_params, rheobase, out_dir)
514
+ )
499
515
 
500
- # Validation 4: Postsynaptic Potential Test
501
- # We have to wait for ProbAMPANMDA_EMS to be present in entitycore to implement this test
516
+ # Validation 4: Postsynaptic Potential Test
517
+ # We have to wait for ProbAMPANMDA_EMS to be present in entitycore to implement this test
502
518
 
503
- # Validation 5: AIS Spiking Test
504
- ais_spiking_test_result = ais_spiking_test(
505
- cell.template_params, rheobase, out_dir, spike_threshold_voltage
506
- )
519
+ # Validation 5: AIS Spiking Test
520
+ ais_spiking_test_result_future = pool.apply_async(
521
+ ais_spiking_test,
522
+ (cell.template_params, rheobase, out_dir, spike_threshold_voltage)
523
+ )
507
524
 
508
- # Validation 6: Hyperpolarization Test
509
- hyperpolarization_result = hyperpolarization_test(cell.template_params, rheobase, out_dir)
525
+ # Validation 6: Hyperpolarization Test
526
+ hyperpolarization_result_future = pool.apply_async(
527
+ hyperpolarization_test,
528
+ (cell.template_params, rheobase, out_dir)
529
+ )
510
530
 
511
- # Validation 7: Rin Test
512
- rin_result = rin_test(rin)
531
+ # Validation 7: Rin Test
532
+ rin_result_future = pool.apply_async(
533
+ rin_test,
534
+ (rin,)
535
+ )
513
536
 
537
+ # Validation 10: Thumbnail Test
538
+ thumbnail_result_future = pool.apply_async(
539
+ thumbnail_test,
540
+ (cell.template_params, rheobase, out_dir)
541
+ )
542
+
543
+ spiking_test_result = spiking_test_result_future.get()
544
+ depolarization_block_result = depolarization_block_result_future.get()
545
+ bpap_result = bpap_result_future.get()
546
+ ais_spiking_test_result = ais_spiking_test_result_future.get()
547
+ hyperpolarization_result = hyperpolarization_result_future.get()
548
+ rin_result = rin_result_future.get()
549
+ thumbnail_result = thumbnail_result_future.get()
550
+
551
+ # IV and FI tests are outside of nestedpool, because they use multiprocessing internaly
514
552
  # Validation 8: IV Test
515
- iv_test_result = iv_test(cell.template_params, rheobase, out_dir, spike_threshold_voltage)
553
+ iv_test_result = iv_test(cell.template_params, rheobase, out_dir, spike_threshold_voltage, n_processes)
516
554
 
517
555
  # Validation 9: FI Test
518
- fi_test_result = fi_test(cell.template_params, rheobase, out_dir, spike_threshold_voltage)
519
-
520
- # Validation 10: Thumbnail Test
521
- thumbnail_result = thumbnail_test(cell.template_params, rheobase, out_dir)
556
+ fi_test_result = fi_test(cell.template_params, rheobase, out_dir, spike_threshold_voltage, n_processes)
522
557
 
523
558
  return {
524
559
  "memodel_properties": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluecellulab
3
- Version: 2.6.61
3
+ Version: 2.6.63
4
4
  Summary: Biologically detailed neural network simulations and analysis.
5
5
  Author: Blue Brain Project, EPFL
6
6
  License: Apache2.0
@@ -1,5 +1,5 @@
1
1
  bluecellulab/__init__.py,sha256=1d_CKIJLIpon7o13h3lBnV_-33obZEPwa9KDTjlFPD8,880
2
- bluecellulab/circuit_simulation.py,sha256=N_kMjWykpt_UouvwCp-7g0o0NMd_1jB4IHxWplEvEME,39294
2
+ bluecellulab/circuit_simulation.py,sha256=CryoBSUGc9z6nIAyNzCsyppeSlc_URJX6hZoZPgQI2Q,36807
3
3
  bluecellulab/connection.py,sha256=-xT0mU7ppeHI_qjCKj17TtxXVVcUDgBsaMKt9ODmcEU,4640
4
4
  bluecellulab/dendrogram.py,sha256=FjS6RZ6xcp5zJoY5d5qv_edqPM13tL2-UANgbZuDBjY,6427
5
5
  bluecellulab/exceptions.py,sha256=1lKD92VIyD8cUggAI1SLxeKzj_09Ik_TlHCzPLCvDHg,2379
@@ -15,7 +15,7 @@ bluecellulab/type_aliases.py,sha256=DvgjERv2Ztdw_sW63JrZTQGpJ0x5uMTFB5hcBHDb0WA,
15
15
  bluecellulab/utils.py,sha256=0NhwlzyLnSi8kziSfDsQf7pokO4qDkMJVAO33kSX4O0,2227
16
16
  bluecellulab/verbosity.py,sha256=T0IgX7DrRo19faxrT4Xzb27gqxzoILQ8FzYKxvUeaPM,1342
17
17
  bluecellulab/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- bluecellulab/analysis/analysis.py,sha256=O2nKHdVqVuL8SP_Q-FjyaRyHJdJCf0315bNrCTVies4,21611
18
+ bluecellulab/analysis/analysis.py,sha256=W5MBCJthuuA7fFEJRZExONjTEWOhgDbtmTq23Cv7fbc,22449
19
19
  bluecellulab/analysis/inject_sequence.py,sha256=bpi_C1oz_G5cZv_CvvZG8SnGYaKIlDsIFHdkOAkDm-E,12666
20
20
  bluecellulab/analysis/plotting.py,sha256=PqRoaZz33ULMw8A9YnZXXrxcUd84M_dwlYMTFhG7YT4,3999
21
21
  bluecellulab/analysis/utils.py,sha256=eMirP557D11BuedgSqjripDxOq1haIldNbnYNetV1bg,121
@@ -38,7 +38,7 @@ bluecellulab/circuit/__init__.py,sha256=Khpa13nzNvDlDS2JduyoFTukEduEkWCc5ML_JwGp
38
38
  bluecellulab/circuit/format.py,sha256=90gWOXg6HK0R9a4WFSnnRH8XezxmzOGk5dRpJHbvbbU,1674
39
39
  bluecellulab/circuit/iotools.py,sha256=Q65xYDaiensMtrulC3OLsS2_hcWr_Kje0nXFrAizMMo,1589
40
40
  bluecellulab/circuit/node_id.py,sha256=FdoFAGq0_sCyQySOuNI0chdbVr3L8R0w2Y1em5MyIDA,1265
41
- bluecellulab/circuit/simulation_access.py,sha256=keME58gzLVAPEg2nnWD_bwEm9V2Kjeqyfoj_55GPMCM,7061
41
+ bluecellulab/circuit/simulation_access.py,sha256=8LX5nbKw_Hu7AR3pGLdTFGwehvhaj-r8Mh1q3dVoiVg,7745
42
42
  bluecellulab/circuit/synapse_properties.py,sha256=TvUMiXZAAeYo1zKkus3z1EUvrE9QCIQ3Ze-jSnPSJWY,6374
43
43
  bluecellulab/circuit/validate.py,sha256=wntnr7oIDyasqD1nM-kqz1NpfWDxBGhx0Ep3e5hHXIw,3593
44
44
  bluecellulab/circuit/circuit_access/__init__.py,sha256=sgp6m5kP-pq60V1IFGUiSUR1OW01zdxXNNUJmPA8anI,201
@@ -47,19 +47,26 @@ bluecellulab/circuit/circuit_access/definition.py,sha256=_sUU0DkesGOFW82kS1G9vki
47
47
  bluecellulab/circuit/circuit_access/sonata_circuit_access.py,sha256=tADHxVZw4VgZAz2z4NKMUwc0rd_EO40EZggw5fDhnF4,10411
48
48
  bluecellulab/circuit/config/__init__.py,sha256=aaoJXRKBJzpxxREo9NxKc-_CCPmVeuR1mcViRXcLrC4,215
49
49
  bluecellulab/circuit/config/bluepy_simulation_config.py,sha256=V3eqOzskX7VrMDpl-nMQVEhDg8QWgRmRduyJBii5sgI,6974
50
- bluecellulab/circuit/config/definition.py,sha256=I1jd4KUX21mw03FEv1aYNsT0UFbDANY3YEPwwKXqe4k,2774
50
+ bluecellulab/circuit/config/definition.py,sha256=cotKRDHOjzZKNgNSrZ29voU-66W8jaGt5yuge1hyv18,2953
51
51
  bluecellulab/circuit/config/sections.py,sha256=QRnU44-OFvHxcF1LX4bAEP9dk3I6UKsuPNBbWkdfmRE,7151
52
- bluecellulab/circuit/config/sonata_simulation_config.py,sha256=BlezWJ3dRNIu0Xs6gocscX5X69u45FSrqBtYWRTdhi4,6936
52
+ bluecellulab/circuit/config/sonata_simulation_config.py,sha256=J1DFqNxIJKAxD1KU_oJV9tigMdpT_Not0Q8SF5q2EeQ,7271
53
53
  bluecellulab/hoc/Cell.hoc,sha256=z77qRQG_-afj-RLX0xN6V-K6Duq3bR7vmlDrGWPdh4E,16435
54
54
  bluecellulab/hoc/RNGSettings.hoc,sha256=okJBdqlPXET8BrpG1Q31GdaxHfpe3CE0L5P7MAhfQTE,1227
55
55
  bluecellulab/hoc/TDistFunc.hoc,sha256=WKX-anvL83xGuGPH9g1oIORB17UM4Pi3-iIXzKO-pUQ,2663
56
56
  bluecellulab/hoc/TStim.hoc,sha256=noBJbM_ZqF6T6MEgBeowNzz21I9QeYZ5brGgUvCSm4k,8473
57
57
  bluecellulab/hoc/fileUtils.hoc,sha256=LSM7BgyjYVqo2DGSOKvg4W8IIusbsL45JVYK0vgwitU,2539
58
+ bluecellulab/reports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
+ bluecellulab/reports/manager.py,sha256=hy54B7AXa46bgjKJ_Ar65_GYIu9C8Zg2fgxIlxSweRE,3284
60
+ bluecellulab/reports/utils.py,sha256=yZPtO0HXs6HPDVOZQbeXlPajnSOqE2Qmx8VufQFJFT0,5557
61
+ bluecellulab/reports/writers/__init__.py,sha256=Q8Y2GC83jseH5QY9IlEQsvaUQIH-BzgqhVjGRWD5j90,826
62
+ bluecellulab/reports/writers/base_writer.py,sha256=P5ramFD2oFIroEBCH1pAscbkfcBIVYFIBg4pVpSP2IU,1042
63
+ bluecellulab/reports/writers/compartment.py,sha256=EwFc2NwqhGEwGShEFOIrpYWRgH4b7qZCwsPvpUxeboU,7212
64
+ bluecellulab/reports/writers/spikes.py,sha256=ycMuoT6f-UbAbC47X9gkG44OQYeAGBQMB2RdJAq3Ykg,2558
58
65
  bluecellulab/simulation/__init__.py,sha256=P2ebt0SFw-08J3ihN-LeRn95HeF79tzA-Q0ReLm32dM,214
59
66
  bluecellulab/simulation/neuron_globals.py,sha256=iBjhg0-1YMP5LsVdtUDt24PEypkCL6mlyzEBZqoS8xo,4508
60
67
  bluecellulab/simulation/parallel.py,sha256=oQ_oV2EKr8gP4yF2Dq8q9MiblDyi89_wBgLzQkLV_U0,1514
61
- bluecellulab/simulation/report.py,sha256=i_VjwIkDnHHAUk4Tx2F5LhaeBVBctcOzchK_8nG6NFw,10474
62
- bluecellulab/simulation/simulation.py,sha256=VhftOMYU1Rfrphvud6f0U4kvbUivSviQ5TlVljuTb88,6486
68
+ bluecellulab/simulation/report.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ bluecellulab/simulation/simulation.py,sha256=OfrzeHvLmOV2ptYcGie_fVGrtkDfizLpE6ZyQWVxnIE,6492
63
70
  bluecellulab/stimulus/__init__.py,sha256=DgIgVaSyR-URf3JZzvO6j-tjCerzvktuK-ep8pjMRPQ,37
64
71
  bluecellulab/stimulus/circuit_stimulus_definitions.py,sha256=h_SqjJ-L3yNxiEO8I6Cy7i-lhfZXjrdCc92dl8bjOog,17229
65
72
  bluecellulab/stimulus/factory.py,sha256=4fvVFFjOGHSqBidLe_W1zQozfMEeePXWO6yYCs30-SM,30780
@@ -67,10 +74,10 @@ bluecellulab/stimulus/stimulus.py,sha256=a_hKJUtZmIgjiFjbJf6RzUPokELqn0IHCgIWGw5
67
74
  bluecellulab/synapse/__init__.py,sha256=RW8XoAMXOvK7OG1nHl_q8jSEKLj9ZN4oWf2nY9HAwuk,192
68
75
  bluecellulab/synapse/synapse_factory.py,sha256=NHwRMYMrnRVm_sHmyKTJ1bdoNmWZNU4UPOGu7FCi-PE,6987
69
76
  bluecellulab/synapse/synapse_types.py,sha256=zs_yBvGTH4QrbQF3nEViidyq1WM_ZcTSFdjUxB3khW0,16871
70
- bluecellulab/validation/validation.py,sha256=vLaOAyCO1qwwQ5Ud9X9NDX3iSsh_2S5tUA9xRmoDHiA,18465
71
- bluecellulab-2.6.61.dist-info/licenses/AUTHORS.txt,sha256=EDs3H-2HXBojbma10psixk3C2rFiOCTIREi2ZAbXYNQ,179
72
- bluecellulab-2.6.61.dist-info/licenses/LICENSE,sha256=dAMAR2Sud4Nead1wGFleKiwTZfkTNZbzmuGfcTKb3kg,11335
73
- bluecellulab-2.6.61.dist-info/METADATA,sha256=DiUIlPkw6xJkCmmFK2tCHbfeaoY3VdsUAMFsK-iN6BE,8259
74
- bluecellulab-2.6.61.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
- bluecellulab-2.6.61.dist-info/top_level.txt,sha256=VSyEP8w9l3pXdRkyP_goeMwiNA8KWwitfAqUkveJkdQ,13
76
- bluecellulab-2.6.61.dist-info/RECORD,,
77
+ bluecellulab/validation/validation.py,sha256=csy1xKOOWdlo3NYHdknePPxb7KBRTjoUV-81ZmWo2CM,20041
78
+ bluecellulab-2.6.63.dist-info/licenses/AUTHORS.txt,sha256=EDs3H-2HXBojbma10psixk3C2rFiOCTIREi2ZAbXYNQ,179
79
+ bluecellulab-2.6.63.dist-info/licenses/LICENSE,sha256=dAMAR2Sud4Nead1wGFleKiwTZfkTNZbzmuGfcTKb3kg,11335
80
+ bluecellulab-2.6.63.dist-info/METADATA,sha256=J9j4rWRv1plUDoTz99tw1JxhVUNpJq4f1jk6qbLM5p4,8259
81
+ bluecellulab-2.6.63.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
82
+ bluecellulab-2.6.63.dist-info/top_level.txt,sha256=VSyEP8w9l3pXdRkyP_goeMwiNA8KWwitfAqUkveJkdQ,13
83
+ bluecellulab-2.6.63.dist-info/RECORD,,