@@ -61,7 +61,7 @@ def __init__(self, name, compartment, specific_gbar, e_rev, Xpower, Ypower=0.0,
61
61
self .chan .Xpower = Xpower
62
62
self .chan .Ypower = Ypower
63
63
self .chan .Zpower = Zpower
64
- moose .connect (self .chan , 'channel' , compartment , 'channel' )
64
+ moose .connect (self .chan , 'channel' , compartment . C , 'channel' )
65
65
66
66
def setupAlpha (self , gate , params , vdivs , vmin , vmax ):
67
67
"""Setup alpha and beta parameters of specified gate.
@@ -118,7 +118,7 @@ def beta_h(self):
118
118
return numpy .array (moose .element ('%s/gateY' % (self .path )).tableB ) \
119
119
- numpy .array (moose .element ('%s/gateY' % (self .path )).tableA )
120
120
121
- class SquidAxon (moose . Compartment ):
121
+ class SquidAxon (object ):
122
122
EREST_ACT = 0.0 # can be -70 mV if not following original HH convention
123
123
VMIN = - 30.0
124
124
VMAX = 120.0
@@ -175,7 +175,9 @@ class SquidAxon(moose.Compartment):
175
175
"""Compartment class enhanced with specific values of passive
176
176
electrical properties set and calculated using dimensions."""
177
177
def __init__ (self , path ):
178
- moose .Compartment .__init__ (self , path )
178
+ # moose.Compartment.__init__(self, path)
179
+ self .path = path
180
+ self .C = moose .Compartment (self .path )
179
181
self .temperature = SquidAxon .defaults ['temperature' ]
180
182
self .K_out = SquidAxon .defaults ['K_out' ]
181
183
self .Na_out = SquidAxon .defaults ['Na_out' ]
@@ -187,10 +189,11 @@ def __init__(self, path):
187
189
self .Cl_out = SquidAxon .defaults ['Cl_out' ]
188
190
self .Cl_in = SquidAxon .defaults ['Cl_in' ]
189
191
190
- self .length = SquidAxon .defaults ['length' ]
191
- self .diameter = SquidAxon .defaults ['diameter' ]
192
- self .Em = SquidAxon .defaults ['Em' ]
193
- self .initVm = SquidAxon .defaults ['initVm' ]
192
+ self .C .length = SquidAxon .defaults ['length' ]
193
+ self .C .diameter = SquidAxon .defaults ['diameter' ]
194
+ self .C .Em = SquidAxon .defaults ['Em' ]
195
+ self .C .initVm = SquidAxon .defaults ['initVm' ]
196
+
194
197
self .specific_cm = SquidAxon .defaults ['specific_cm' ]
195
198
self .specific_gl = SquidAxon .defaults ['specific_gl' ]
196
199
self .specific_ra = SquidAxon .defaults ['specific_ra' ]
@@ -229,40 +232,43 @@ def reversal_potential(cls, temp, c_out, c_in):
229
232
@property
230
233
def xarea (self ):
231
234
"""Area of cross section in cm^2 when length and diameter are in um"""
232
- return 1e-8 * numpy .pi * self .diameter * self .diameter / 4.0 # cm^2
235
+ return 1e-8 * numpy .pi * self .C . diameter * self . C .diameter / 4.0 # cm^2
233
236
234
237
@property
235
238
def area (self ):
236
239
"""Area in cm^2 when length and diameter are in um"""
237
- return 1e-8 * self .length * numpy .pi * self .diameter # cm^2
240
+ return 1e-8 * self .C . length * numpy .pi * self . C .diameter # cm^2
238
241
239
242
@property
240
243
def specific_ra (self ):
241
- return self .Ra * self .xarea / self .length
244
+ return self .C . Ra * self .xarea / self . C .length
242
245
@specific_ra .setter
243
246
def specific_ra (self , value ):
244
- self .Ra = value * self .length / self .xarea
247
+ self .C . Ra = value * self . C .length / self .xarea
245
248
246
249
@property
247
250
def specific_cm (self ):
248
- return self .Cm / self .area
251
+ return self .C .Cm / self .area
252
+
249
253
@specific_cm .setter
250
254
def specific_cm (self , value ):
251
- self .Cm = value * self .area
255
+ self .C . Cm = value * self .area
252
256
253
257
@property
254
258
def specific_gl (self ):
255
- return 1.0 / (self .Rm * self .area )
259
+ return 1.0 / (self .C .Rm * self .area )
260
+
256
261
@specific_gl .setter
257
262
def specific_gl (self , value ):
258
- self .Rm = 1.0 / (value * self .area )
263
+ self .C . Rm = 1.0 / (value * self .area )
259
264
260
265
@property
261
266
def specific_rm (self ):
262
- return self .Rm * self .area
267
+ return self .C .Rm * self .area
268
+
263
269
@specific_rm .setter
264
270
def specific_rm (self , value ):
265
- self .Rm = value / self .area
271
+ self .C . Rm = value / self .area
266
272
267
273
@property
268
274
def specific_gNa (self ):
@@ -308,21 +314,22 @@ def use_defaults(self):
308
314
for field , value in list (SquidAxon .defaults .items ()):
309
315
setattr (self , field , value )
310
316
311
- class SquidModel (moose . Neutral ):
317
+ class SquidModel (object ):
312
318
"""Container for squid demo."""
313
319
def __init__ (self , path ):
314
- moose .Neutral .__init__ (self , path )
320
+ self .path = path
321
+ moose .Neutral (self .path )
315
322
self .squid_axon = SquidAxon (path + '/squid_axon' )
316
323
print ((self .squid_axon .Na_channel .chan .Gbar , self .squid_axon .K_channel .chan .Gbar ))
317
324
self .current_clamp = moose .PulseGen (path + '/pulsegen' )
318
325
self .current_clamp .firstDelay = 5.0 # ms
319
326
self .current_clamp .firstWidth = 40 # ms
320
327
self .current_clamp .firstLevel = 0.1 # uA
321
328
self .current_clamp .secondDelay = 1e9
322
- print (( 'Current clamp connected:' , moose .connect (self .current_clamp , 'output' , self .squid_axon , 'injectMsg' )) )
329
+ moose .connect (self .current_clamp , 'output' , self .squid_axon . C , 'injectMsg' )
323
330
324
331
self .Vm_table = moose .Table ('%s/Vm' % (self .path ))
325
- moose .connect (self .Vm_table , 'requestOut' , self .squid_axon , 'getVm' )
332
+ moose .connect (self .Vm_table , 'requestOut' , self .squid_axon . C , 'getVm' )
326
333
self .gK_table = moose .Table ('%s/gK' % (self .path ))
327
334
moose .connect (self .gK_table , 'requestOut' ,
328
335
self .squid_axon .K_channel .chan , 'getGk' )
0 commit comments