bluecellulab 2.6.0__py3-none-any.whl → 2.6.2__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.
- bluecellulab/cell/core.py +5 -7
- bluecellulab/circuit/circuit_access/bluepy_circuit_access.py +9 -17
- bluecellulab/circuit/synapse_properties.py +24 -8
- bluecellulab/synapse/synapse_factory.py +3 -3
- {bluecellulab-2.6.0.dist-info → bluecellulab-2.6.2.dist-info}/METADATA +1 -1
- {bluecellulab-2.6.0.dist-info → bluecellulab-2.6.2.dist-info}/RECORD +10 -10
- {bluecellulab-2.6.0.dist-info → bluecellulab-2.6.2.dist-info}/AUTHORS.txt +0 -0
- {bluecellulab-2.6.0.dist-info → bluecellulab-2.6.2.dist-info}/LICENSE +0 -0
- {bluecellulab-2.6.0.dist-info → bluecellulab-2.6.2.dist-info}/WHEEL +0 -0
- {bluecellulab-2.6.0.dist-info → bluecellulab-2.6.2.dist-info}/top_level.txt +0 -0
bluecellulab/cell/core.py
CHANGED
|
@@ -497,10 +497,6 @@ class Cell(InjectableMixin, PlottableMixin):
|
|
|
497
497
|
# numpy int to int
|
|
498
498
|
post_sec_id = int(syn_description[SynapseProperty.POST_SECTION_ID])
|
|
499
499
|
|
|
500
|
-
location = SynapseFactory.determine_synapse_location(
|
|
501
|
-
syn_description, self
|
|
502
|
-
)
|
|
503
|
-
|
|
504
500
|
weight_scalar = connection_modifiers.get('Weight', 1.0)
|
|
505
501
|
exc_mini_frequency, inh_mini_frequency = mini_frequencies \
|
|
506
502
|
if mini_frequencies is not None else (None, None)
|
|
@@ -516,13 +512,15 @@ class Cell(InjectableMixin, PlottableMixin):
|
|
|
516
512
|
spont_minis_rate = inh_mini_frequency
|
|
517
513
|
|
|
518
514
|
if spont_minis_rate is not None and spont_minis_rate > 0:
|
|
519
|
-
|
|
515
|
+
synapse_hoc_args = SynapseFactory.determine_synapse_location(
|
|
516
|
+
syn_description, self
|
|
517
|
+
)
|
|
520
518
|
# add the *minis*: spontaneous synaptic events
|
|
521
519
|
self.ips[synapse_id] = neuron.h.\
|
|
522
|
-
InhPoissonStim(location, sec=
|
|
520
|
+
InhPoissonStim(synapse_hoc_args.location, sec=synapse_hoc_args.section)
|
|
523
521
|
|
|
524
522
|
self.syn_mini_netcons[synapse_id] = neuron.h.\
|
|
525
|
-
NetCon(self.ips[synapse_id], synapse.hsynapse, sec=
|
|
523
|
+
NetCon(self.ips[synapse_id], synapse.hsynapse, sec=synapse_hoc_args.section)
|
|
526
524
|
self.syn_mini_netcons[synapse_id].delay = 0.1
|
|
527
525
|
self.syn_mini_netcons[synapse_id].weight[0] = weight * weight_scalar
|
|
528
526
|
# set netcon type
|
|
@@ -191,23 +191,15 @@ class BluepyCircuitAccess:
|
|
|
191
191
|
|
|
192
192
|
if isinstance(connectome._impl, SonataConnectome):
|
|
193
193
|
logger.debug('Using sonata style synapse file, not nrn.h5')
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
)
|
|
204
|
-
synapses.columns = properties_from_bluepy(synapses.columns)
|
|
205
|
-
else:
|
|
206
|
-
connectome_properties = properties_to_bluepy(connectome_properties)
|
|
207
|
-
synapses = connectome.afferent_synapses(
|
|
208
|
-
gid, properties=connectome_properties
|
|
209
|
-
)
|
|
210
|
-
synapses.columns = properties_from_bluepy(synapses.columns)
|
|
194
|
+
connectome_properties.remove(SynapseProperty.POST_SEGMENT_OFFSET)
|
|
195
|
+
else: # afferent section_pos will be computed via post_segment_offset
|
|
196
|
+
connectome_properties.remove(SynapseProperty.AFFERENT_SECTION_POS)
|
|
197
|
+
|
|
198
|
+
connectome_properties = properties_to_bluepy(connectome_properties)
|
|
199
|
+
synapses = connectome.afferent_synapses(
|
|
200
|
+
gid, properties=connectome_properties
|
|
201
|
+
)
|
|
202
|
+
synapses.columns = properties_from_bluepy(synapses.columns)
|
|
211
203
|
|
|
212
204
|
synapses = synapses.reset_index(drop=True)
|
|
213
205
|
synapses.index = pd.MultiIndex.from_tuples(
|
|
@@ -40,6 +40,7 @@ class SynapseProperty(Enum):
|
|
|
40
40
|
NRRP = "NRRP"
|
|
41
41
|
U_HILL_COEFFICIENT = "u_hill_coefficient"
|
|
42
42
|
CONDUCTANCE_RATIO = "conductance_scale_factor"
|
|
43
|
+
AFFERENT_SECTION_POS = "afferent_section_pos"
|
|
43
44
|
|
|
44
45
|
@classmethod
|
|
45
46
|
def from_bluepy(cls, prop: BLPSynapse) -> SynapseProperty:
|
|
@@ -76,6 +77,7 @@ class SynapseProperties:
|
|
|
76
77
|
SynapseProperty.NRRP,
|
|
77
78
|
SynapseProperty.U_HILL_COEFFICIENT,
|
|
78
79
|
SynapseProperty.CONDUCTANCE_RATIO,
|
|
80
|
+
SynapseProperty.AFFERENT_SECTION_POS,
|
|
79
81
|
)
|
|
80
82
|
plasticity = (
|
|
81
83
|
"volume_CR", "rho0_GB", "Use_d_TM", "Use_p_TM", "gmax_d_AMPA",
|
|
@@ -98,6 +100,7 @@ snap_to_synproperty = MappingProxyType({
|
|
|
98
100
|
"n_rrp_vesicles": SynapseProperty.NRRP,
|
|
99
101
|
"u_hill_coefficient": SynapseProperty.U_HILL_COEFFICIENT,
|
|
100
102
|
"conductance_scale_factor": SynapseProperty.CONDUCTANCE_RATIO,
|
|
103
|
+
"afferent_section_pos": SynapseProperty.AFFERENT_SECTION_POS,
|
|
101
104
|
})
|
|
102
105
|
|
|
103
106
|
|
|
@@ -137,23 +140,36 @@ def properties_from_bluepy(
|
|
|
137
140
|
'str's."""
|
|
138
141
|
if not BLUEPY_AVAILABLE:
|
|
139
142
|
raise ExtraDependencyMissingError("bluepy")
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if isinstance(prop, BLPSynapse)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
res: list[SynapseProperty | str] = []
|
|
144
|
+
for prop in props:
|
|
145
|
+
if isinstance(prop, BLPSynapse):
|
|
146
|
+
res.append(SynapseProperty.from_bluepy(prop))
|
|
147
|
+
elif prop == "afferent_section_pos": # jira_url/project/issues/browse/NSETM-2313
|
|
148
|
+
res.append(SynapseProperty.AFFERENT_SECTION_POS)
|
|
149
|
+
else:
|
|
150
|
+
res.append(prop)
|
|
151
|
+
return res
|
|
146
152
|
|
|
147
153
|
|
|
148
154
|
def properties_to_bluepy(props: list[SynapseProperty | str]) -> list[BLPSynapse | str]:
|
|
149
155
|
"""Convert a list of SynapseProperty to bluepy Synapse properties, spare
|
|
150
156
|
'str's."""
|
|
151
|
-
|
|
157
|
+
# bluepy does not have AFFERENT_SECTION_POS atm.
|
|
158
|
+
# jira_url/project/issues/browse/NSETM-2313
|
|
159
|
+
bluepy_recognised_props = props.copy()
|
|
160
|
+
removed_afferent_section_pos = False
|
|
161
|
+
if SynapseProperty.AFFERENT_SECTION_POS in bluepy_recognised_props:
|
|
162
|
+
removed_afferent_section_pos = True
|
|
163
|
+
bluepy_recognised_props.remove(SynapseProperty.AFFERENT_SECTION_POS)
|
|
164
|
+
res = [
|
|
152
165
|
prop.to_bluepy()
|
|
153
166
|
if isinstance(prop, SynapseProperty)
|
|
154
167
|
else prop
|
|
155
|
-
for prop in
|
|
168
|
+
for prop in bluepy_recognised_props
|
|
156
169
|
]
|
|
170
|
+
if removed_afferent_section_pos:
|
|
171
|
+
res.append("afferent_section_pos")
|
|
172
|
+
return res
|
|
157
173
|
|
|
158
174
|
|
|
159
175
|
def synapse_property_encoder(dct: dict[SynapseProperty | str, Any]) -> dict[str, Any]:
|
|
@@ -114,10 +114,10 @@ class SynapseFactory:
|
|
|
114
114
|
section: NeuronSection = cell.get_psection(section_id=isec).hsection
|
|
115
115
|
|
|
116
116
|
# old circuits don't have it, it needs to be computed via synlocation_to_segx
|
|
117
|
-
if (
|
|
118
|
-
not np.isnan(syn_description[
|
|
117
|
+
if (SynapseProperty.AFFERENT_SECTION_POS in syn_description and
|
|
118
|
+
not np.isnan(syn_description[SynapseProperty.AFFERENT_SECTION_POS])):
|
|
119
119
|
# position is pre computed in SONATA
|
|
120
|
-
location = syn_description[
|
|
120
|
+
location = syn_description[SynapseProperty.AFFERENT_SECTION_POS]
|
|
121
121
|
else:
|
|
122
122
|
ipt = syn_description[SynapseProperty.POST_SEGMENT_ID]
|
|
123
123
|
syn_offset = syn_description[SynapseProperty.POST_SEGMENT_OFFSET]
|
|
@@ -18,7 +18,7 @@ bluecellulab/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
18
18
|
bluecellulab/analysis/inject_sequence.py,sha256=qr3N1tQX4avvKzFBT0L7W6LnSgk2y_P_7Yhy0UjlGmk,4769
|
|
19
19
|
bluecellulab/cell/__init__.py,sha256=Sbc0QOsJ8E7tSwf3q7fsXuE_SevBN6ZmoCVyyU5zfII,208
|
|
20
20
|
bluecellulab/cell/cell_dict.py,sha256=PVmZsjhZ9jp3HC-8QmdFqp-crAcVMSVeLWujcOPLlpo,1346
|
|
21
|
-
bluecellulab/cell/core.py,sha256=
|
|
21
|
+
bluecellulab/cell/core.py,sha256=ZVzy3tsA5X7OyCmnHQn0d6AlNg9rOG2ojKuojvKdsFw,31487
|
|
22
22
|
bluecellulab/cell/injector.py,sha256=XC49VSHw78xCHzLJKO_-unnnVZAZXsYg5qbmZPx01AA,18091
|
|
23
23
|
bluecellulab/cell/plotting.py,sha256=hW5KAmaSonJ1tgR6xRrnfVe33I5mBsBUrKJQwGvAbUc,4032
|
|
24
24
|
bluecellulab/cell/random.py,sha256=FDby9BN4eJT27COwHP59bhDE2v-c6rdOKNFj3cYZTVY,1773
|
|
@@ -36,10 +36,10 @@ bluecellulab/circuit/format.py,sha256=eYhiBIQnPnnVBmaSDymFjQprXN9QjEYKmFhb2mIS86
|
|
|
36
36
|
bluecellulab/circuit/iotools.py,sha256=KVE7x5LNQ4RgjNh05Q-h3Swpbs3nRFtrcWNHj62aiRI,1585
|
|
37
37
|
bluecellulab/circuit/node_id.py,sha256=gaRAW3UhbPOPsoXMHLjo3qH9iNod7YB8ZOcguWprrU4,1265
|
|
38
38
|
bluecellulab/circuit/simulation_access.py,sha256=QHVEN-sEZbCCvblhBHEShGX0-NEXCD1AYpavpVGCgAE,7073
|
|
39
|
-
bluecellulab/circuit/synapse_properties.py,sha256=
|
|
39
|
+
bluecellulab/circuit/synapse_properties.py,sha256=a4-Yw_f8JIR6i2YG8qhCW97TMSd_Z-aF6lp_a1wBwnM,6374
|
|
40
40
|
bluecellulab/circuit/validate.py,sha256=7EUN15u0JFFlLf389jUBqLwDOHyZdfKtoidI-xLUVYA,3593
|
|
41
41
|
bluecellulab/circuit/circuit_access/__init__.py,sha256=sgp6m5kP-pq60V1IFGUiSUR1OW01zdxXNNUJmPA8anI,201
|
|
42
|
-
bluecellulab/circuit/circuit_access/bluepy_circuit_access.py,sha256=
|
|
42
|
+
bluecellulab/circuit/circuit_access/bluepy_circuit_access.py,sha256=pUoTw6wXMGZAqjjC3vpdZcm8ex108aEPw0L6fSypx9g,14273
|
|
43
43
|
bluecellulab/circuit/circuit_access/definition.py,sha256=SnKBFEgdXFG-QexYRrGSzVAd7bSj7NwN0IuTsjDOrDY,4435
|
|
44
44
|
bluecellulab/circuit/circuit_access/sonata_circuit_access.py,sha256=c0MMJuoT6_dRW8O5HSRS5hHv1zDKdW0sBR-DaP0F1bk,10351
|
|
45
45
|
bluecellulab/circuit/config/__init__.py,sha256=aaoJXRKBJzpxxREo9NxKc-_CCPmVeuR1mcViRXcLrC4,215
|
|
@@ -60,11 +60,11 @@ bluecellulab/stimulus/__init__.py,sha256=DgIgVaSyR-URf3JZzvO6j-tjCerzvktuK-ep8pj
|
|
|
60
60
|
bluecellulab/stimulus/circuit_stimulus_definitions.py,sha256=uij_s44uNdmMwMLGmTHSRgmp9K9B_vvHHshX6YPJNJU,15686
|
|
61
61
|
bluecellulab/stimulus/factory.py,sha256=cjnMqFx-Y31kV1XHvkSbGI2f1OpEawU3Wg_cLqcIyRc,11883
|
|
62
62
|
bluecellulab/synapse/__init__.py,sha256=RW8XoAMXOvK7OG1nHl_q8jSEKLj9ZN4oWf2nY9HAwuk,192
|
|
63
|
-
bluecellulab/synapse/synapse_factory.py,sha256=
|
|
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.
|
|
66
|
-
bluecellulab-2.6.
|
|
67
|
-
bluecellulab-2.6.
|
|
68
|
-
bluecellulab-2.6.
|
|
69
|
-
bluecellulab-2.6.
|
|
70
|
-
bluecellulab-2.6.
|
|
65
|
+
bluecellulab-2.6.2.dist-info/AUTHORS.txt,sha256=EDs3H-2HXBojbma10psixk3C2rFiOCTIREi2ZAbXYNQ,179
|
|
66
|
+
bluecellulab-2.6.2.dist-info/LICENSE,sha256=xOouu1gC1GGklDxkITlaVl60I9Ab860O-nZsFbWydvU,11749
|
|
67
|
+
bluecellulab-2.6.2.dist-info/METADATA,sha256=-Bzr4zTDTIqRTUF1lSnjxD74lQJO4tjgBJ4Ebi3f21Y,7025
|
|
68
|
+
bluecellulab-2.6.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
69
|
+
bluecellulab-2.6.2.dist-info/top_level.txt,sha256=VSyEP8w9l3pXdRkyP_goeMwiNA8KWwitfAqUkveJkdQ,13
|
|
70
|
+
bluecellulab-2.6.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|