5656per_ms = 1e3
5757PI = 3.14159265359
5858FaradayConst = 96485.3365 # Coulomb/mol
59- CA_SCALE = 25000 # Ratio of Traub units to mM. 250::0.01
59+ #CA_SCALE = 25000 # Ratio of Traub units to mM. 250::0.01
60+ CA_SCALE = 1.0 # I have now set sensible ranges in the KCA and KAHP
6061
6162
6263
@@ -312,13 +313,17 @@ def make_Ca_conc( name ):
312313# this was specified here in make_Ca_conc.
313314
314315#========================================================================
315- # Tabulated Ca-dependent K AHP Channel
316+ # Tabulated Ca-dependent K AHP Channel: Traub 1991
316317#========================================================================
317318
318319# This is a tabchannel which gets the calcium concentration from Ca_conc
319320# in order to calculate the activation of its Z gate. It is set up much
320321# like the Ca channel, except that the A and B tables have values which are
321322# functions of concentration, instead of voltage.
323+ # Traub's original equation is min(0.2e-4 Xi, 0.01) which suggests a max
324+ # of 500 for the Xi (calcium) in his system. For dendritic calcium say 10uM
325+ # or 0.01 mM. Elsewhere we estimate that the ratio of Traub units to mM is
326+ # 250:0.01. Using this ratio, we should have xmax = 0.02.
322327
323328def make_K_AHP ( name ):
324329 if moose .exists ( '/library/' + name ):
@@ -332,7 +337,7 @@ def make_K_AHP( name ):
332337 K_AHP .Zpower = 1
333338
334339 zgate = moose .element ( K_AHP .path + '/gateZ' )
335- xmax = 500.0
340+ xmax = 0.02 # 20 micromolar.
336341 zgate .min = 0
337342 zgate .max = xmax
338343 zgate .divs = 3000
@@ -341,7 +346,7 @@ def make_K_AHP( name ):
341346 dx = (zgate .max - zgate .min )/ zgate .divs
342347 x = zgate .min
343348 for i in range ( zgate .divs + 1 ):
344- zA [i ] = min ( 0.02 * CA_SCALE * x , 10 )
349+ zA [i ] = min ( 250.00 * CA_SCALE * x , 10 )
345350 zB [i ] = 1.0
346351 x = x + dx
347352
@@ -405,13 +410,14 @@ def make_K_C( name ):
405410 xgate .tableB = xB
406411
407412# Create a table for the function of concentration, allowing a
408- # concentration range of 0 to 200 , with 3000 divisions. This is done
413+ # concentration range of 0 to 100 uM , with 3000 divisions. This is done
409414# using the Z gate, which can receive a CONCEN message. By using
410415# the "instant" flag, the A and B tables are evaluated as lookup tables,
411416# rather than being used in a differential equation.
412417 zgate = moose .element ( K_C .path + '/gateZ' )
413418 zgate .min = 0.0
414- xmax = 150.0
419+ xmax = 0.02 # Max Ca conc is likely to be 100 uM even in spine, but
420+ # based on estimates above let's keep it at 20uM.
415421 zgate .max = xmax
416422 zgate .divs = 3000
417423 zA = np .zeros ( (zgate .divs + 1 ), dtype = float )
@@ -420,8 +426,8 @@ def make_K_C( name ):
420426 x = zgate .min
421427 #CaScale = 100000.0 / 250.0e-3
422428 for i in range ( zgate .divs + 1 ):
423- zA [i ] = min ( 1000 .0 , x * CA_SCALE / ( 250 * xmax ) )
424- zB [i ] = 1000 .0
429+ zA [i ] = min ( 1 .0 , x * CA_SCALE / xmax )
430+ zB [i ] = 1 .0
425431 x += dx
426432 zgate .tableA = zA
427433 zgate .tableB = zB
0 commit comments