Skip to content

Commit e464295

Browse files
authored
Merge pull request #314 from upibhalla/master
Some fixes to Ca-dependent channel prototypes in rdesigneur.
2 parents d274993 + b57a6d0 commit e464295

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

python/rdesigneur/rdesigneurProtos.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656
per_ms = 1e3
5757
PI = 3.14159265359
5858
FaradayConst = 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

323328
def 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

Comments
 (0)