Changeset 12221 in project


Ignore:
Timestamp:
10/21/08 05:45:40 (11 years ago)
Author:
Ivan Raikov
Message:

More documentation updates.

Location:
release/3/nemo/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/examples/AKP06/PotIhCa.nemo

    r12203 r12221  
    11(nemo-model PotIhCa
    2             ((input v  cai cao)
     2
     3  ((input v  cai cao)
    34             
    4              (const Vrest   = -68)
    5              (const diam    = 20)
    6              (const celsius = 24)
    7              
    8              (const temp_adj = (pow (3 ((celsius - 22) / 10))))
    9 
    10              (defun ghk (v celsius ci co)
    11                (let ((F 96485.0) (R 8.3145))
    12                 (let ((zeta ((2e-3 * F * v) / (R * (273.19 + celsius)))))
    13                   (if ((abs (1.0 - exp (neg (zeta)))) < 1e-6)
    14                        then (1e-6 * (2 * F) * (ci - (co * exp (neg (zeta)))) * (1.0 + (zeta / 2)))
    15                        else ((1e-6 * (2 * zeta * F) * (ci - (co * exp (neg (zeta))))) / (1.0 - exp (neg (zeta))))))))
    16 
    17              
    18              (decaying-pool (ca (initial 1e-4) (depth 0.1) (beta 1) (temp-adj temp_adj)))
    19              
    20              (component (type ion-channel) (name Kv1)
    21                        
    22                         (component (type gate)
    23                                  
    24                                   ;; rate functions
    25                                   (defun Kv1_amf (v)
    26                                      (let ((cma 0.12889)
    27                                           (cka -33.90877)
    28                                           (cva 45))
    29                                        (cma * (exp (neg ((v + cva) / cka))))))
    30                                  
    31                                   (defun Kv1_bmf (v)
    32                                      (let ((cmb   0.12889)
    33                                           (ckb   12.42101)
    34                                           (cvb   45))
    35                                        (cmb * (exp (neg ((v + cvb) / ckb))))))
    36                                  
    37                                   (hh-ionic-conductance
    38                                     (Kv1  ;; ion name: exported variables will be of the form {ion}_{id}
    39                                      (initial-m (Kv1_amf (Vrest) / (Kv1_amf (Vrest) + Kv1_bmf (Vrest))))
    40                                      (m-power   4)
    41                                      (h-power   0)
    42                                      (m-alpha   (temp_adj * Kv1_amf (v) ))
    43                                      (m-beta    (temp_adj * Kv1_bmf (v) ))))
    44                                  
    45                                   )
    46                        
    47                         (component (type pore)
    48                                   (const  gbar_Kv1  = 0.011)
    49                                   (output gbar_Kv1 ))
    50                        
    51                         (component (type permeating-substance) (name k)
    52                                   (const e_Kv1 = -85)
    53                                   (output e_Kv1 ))
    54                        
    55                         ) ;; end Kv1 current
    56 
    57              (component (type ion-channel) (name Kv4)
    58 
    59                         (component (type gate)
    60                                  
    61                                   ;; rate functions
    62                                  
    63                                  
    64                                   (defun Kv4_amf (v) 
    65                                      (let ((can    0.15743)
    66                                           (ckan   -32.19976)
    67                                           (cvan   57))
    68                                        (can * exp (neg ((v + cvan) / ckan)))))
    69                                  
    70 
    71                                   (defun Kv4_bmf (v) 
    72                                      (let ((cbn   0.15743)
    73                                           (ckbn  37.51346)
    74                                           (cvbn  57))
    75                                        (cbn * exp (neg ((v + cvbn) / ckbn)))))
    76 
    77                                  
    78                                   (defun Kv4_ahf (v) 
    79                                      (let ((cah   0.01342)
    80                                           (ckah  -7.86476)
    81                                           (cvah  60))
    82                                        (cah / (1.0 + (exp (neg ((v + cvah) / ckah)))))))
    83 
    84                                  
    85                                   (defun Kv4_bhf (v) 
    86                                      (let ((cbh   0.04477)
    87                                           (ckbh  11.3615)
    88                                           (cvbh  54))
    89                                        (cbh / (1.0 + (exp (neg ((v + cvbh) / ckbh)))))))
    90 
    91                                   (hh-ionic-conductance
    92                                     (Kv4  ;; ion name: exported variables will be of the form {ion}_{id}
    93                                      (initial-m (Kv4_amf (Vrest) / (Kv4_amf (Vrest) + Kv4_bmf (Vrest))) )
    94                                      (initial-h (Kv4_ahf (Vrest) / (Kv4_ahf (Vrest) + Kv4_bhf (Vrest))) )
    95                                      (m-power   4)
    96                                      (h-power   1)
    97                                      (m-alpha   (temp_adj * Kv4_amf (v)))
    98                                      (m-beta    (temp_adj * Kv4_bmf (v)))
    99                                      (h-alpha   (temp_adj * Kv4_ahf (v)))
    100                                      (h-beta    (temp_adj * Kv4_bhf (v)))
    101                                      ))
    102                                  
    103                                   )
    104 
    105                         (component (type pore)
    106                                   (const  gbar_Kv4  = 0.0039)
    107                                   (output gbar_Kv4 ))
    108                        
    109                         (component (type permeating-substance) (name k)
    110                                   (const e_Kv4 = -85)
    111                                   (output e_Kv4 ))
    112                        
    113                         ) ;; end Kv4 current
    114 
    115 
    116              (component (type ion-channel) (name Ih)
    117                        
    118                         (component (type gate)
    119                                  
    120                                   ;; rate functions
    121                                  
    122                                   (defun Ih_inf (v)
    123                                      (let ((cvn   90.1)
    124                                           (ckn   -9.9))
    125                                        (1.0 / (1.0 + exp (neg ((v + cvn) / ckn) )))))
    126                                  
    127                                   (defun Ih_tau (v)   
    128                                      (let ((cct  190)
    129                                           (cat  720)
    130                                           (cvt  81.5)
    131                                           (ckt  11.9))
    132                                        (cct + (cat * exp (neg (pow (((v + cvt) / ckt) 2)))))))
    133                                  
    134                                   (hh-ionic-conductance
    135                                     (Ih  ;; ion name: exported variables will be of the form {ion}_{id}
    136                                      (initial-m (Ih_inf (Vrest)))
    137                                      (m-power   1)
    138                                      (h-power   0)
    139                                      (m-inf     (Ih_inf (v)))
    140                                      (m-tau     (Ih_tau (v) / temp_adj))
    141                                      ))
    142                                  
    143                                   )
    144 
    145                         (component (type pore)
    146                                   (const  gbar_Ih  = 0.0002)
    147                                   (output gbar_Ih ))
    148                        
    149                         (component (type permeating-substance) (name non-specific)
    150                                   (const e_Ih = -30)
    151                                   (output e_Ih ))
    152                        
    153                         ) ;; end Ih current
    154              
    155              (component (type ion-channel) (name CaP)
    156                        
    157                         (component (type gate)
    158                                  
    159                                   ;; rate functions
    160                                   (defun CaP_inf (v) 
    161                                      (let ((cv  19)  (ck  5.5))
    162                                        (1.0 / (1.0 + exp (neg ((v + cv) / ck))))))
    163                                  
    164                                   (defun CaP_tau (v) 
    165                                      (if (v > -50)
    166                                         then (1e3 * (0.000191 + (0.00376 * pow ((exp (neg ((v + 41.9) / 27.8)))  2))))
    167                                         else (1e3 * (0.00026367 + (0.1278 * exp (0.10327 * v))))))
    168 
    169                                   (hh-ionic-conductance
    170                                     (CaP  ;; ion name: exported variables will be of the form {ion}_{id}
    171                                      (initial-m  (CaP_inf (Vrest)))
    172                                      (m-power    1)
    173                                      (h-power    0)
    174                                      (m-inf      (CaP_inf (v)))
    175                                      (m-tau      (CaP_tau (v) / temp_adj))))
    176                                  
    177                                   )
    178 
    179                         (component (type pore)
    180                                   (const gmax_CaP  = 0.01667)
    181                                   (gbar_CaP        = (gmax_CaP * ghk (v celsius cai cao)))
    182                                   (output gbar_CaP ))
    183                        
    184                         (component (type accumulating-substance) (name ca) )
    185                        
    186                        
    187                         ) ;; end CaP current
    188 
    189 
    190              (component (type ion-channel) (name CaBK)
    191                        
    192                         (component (type gate)
    193                                  
    194                                   ;; rate functions
    195                                  
    196                                   (defun CaBK_zinf (ca) 
    197                                      (let ((zhalf 0.001))
    198                                        (1 / (1 + (zhalf / ca)))))
    199 
    200                                   (const CaBK_ztau = 1.0)
    201                                  
    202                                   (defun CaBK_minf (v)
    203                                      (let ((cvm  28.9)
    204                                           (ckm  6.2))
    205                                        (1.0 / (1.0 + exp (neg ((v + 5.0 + cvm) / ckm))))))
    206                                  
    207                                   (defun CaBK_mtau (v)
    208                                      (let ((ctm     0.000505)
    209                                           (cvtm1   86.4)
    210                                           (cktm1   -10.1)
    211                                           (cvtm2   -33.3)
    212                                           (cktm2   10))
    213                                        (ctm + (1.0 / (exp (neg ((v + 5.0 + cvtm1) / cktm1)) +
    214                                                       exp (neg ((v + 5.0 + cvtm2) / cktm2)))))))
    215            
    216                                   (defun CaBK_hinf (v)
    217                                      (let ((ch    0.085)
    218                                           (cvh   32)
    219                                           (ckh   -5.8))
    220                                        (ch + ((1.0 - ch) / (1.0 + (exp (neg ((v + 5.0 + cvh) / ckh))))))))
    221                                  
    222                                   (defun CaBK_htau (v)
    223                                      (let ((cth     0.0019)
    224                                           (cvth1   48.5)
    225                                           (ckth1   -5.2)
    226                                           (cvth2   -54.2)
    227                                           (ckth2   12.9))
    228                                        (cth + (1.0 / (exp (neg ((v + cvth1) / ckth1)) +
    229                                                       exp (neg ((v + cvth2) / ckth2)))))))
    230                                  
    231                                   (state-complex
    232                                     (CaBK_z
    233                                      (transitions (<-> C O (CaBK_zinf (cai) / CaBK_ztau)
    234                                                        ((1 - CaBK_zinf (cai)) / CaBK_ztau)))
    235                                      (initial   (CaBK_zinf (1e-4)))
    236                                      (open O)  (power 2)))
    237                                  
    238                                   (output CaBK_z ) 
    239 
    240            
    241                                   (hh-ionic-conductance
    242                                     (CaBK  ;; ion name: exported variables will be of the form {ion}_{id}
    243                                      (initial-m  (CaBK_minf (Vrest) / temp_adj))
    244                                      (initial-h  (CaBK_hinf (Vrest) / temp_adj))
    245                                      (m-power    3)
    246                                      (h-power    1)
    247                                      (m-inf      (CaBK_minf (v) / temp_adj) )
    248                                      (m-tau      (CaBK_mtau (v) / temp_adj) )
    249                                      (h-inf      (CaBK_hinf (v) / temp_adj) )
    250                                      (h-tau      (CaBK_htau (v) / temp_adj) )))
    251                                  
    252                                   )
    253                        
    254                         (component (type pore)
    255                                   (const  gbar_CaBK  = 0.014)
    256                                   (output gbar_CaBK ))
    257                        
    258                         (component (type permeating-substance) (name k)
    259                                   (const e_CaBK = -85)
    260                                   (output e_CaBK ))
    261                        
    262                         ) ;; end BK current
     5   (const Vrest   = -68)
     6   (const diam    = 20)
     7   (const celsius = 24)
     8   
     9   (const temp_adj = (pow (3 ((celsius - 22) / 10))))
     10
     11   (defun ghk (v celsius ci co)
     12     (let ((F 96485.0) (R 8.3145))
     13      (let ((zeta ((2e-3 * F * v) / (R * (273.19 + celsius)))))
     14        (if ((abs (1.0 - exp (neg (zeta)))) < 1e-6)
     15             then (1e-6 * (2 * F) * (ci - (co * exp (neg (zeta)))) * (1.0 + (zeta / 2)))
     16             else ((1e-6 * (2 * zeta * F) * (ci - (co * exp (neg (zeta))))) / (1.0 - exp (neg (zeta))))))))
     17
     18   
     19   (decaying-pool (ca (initial 1e-4) (depth 0.1) (beta 1) (temp-adj temp_adj)))
     20   
     21   (component (type ion-channel) (name Kv1)
     22             
     23              (component (type gate)
     24                       
     25                        ;; rate functions
     26                        (defun Kv1_amf (v)
     27                           (let ((cma 0.12889)
     28                                (cka -33.90877)
     29                                (cva 45))
     30                             (cma * (exp (neg ((v + cva) / cka))))))
     31                       
     32                        (defun Kv1_bmf (v)
     33                           (let ((cmb   0.12889)
     34                                (ckb   12.42101)
     35                                (cvb   45))
     36                             (cmb * (exp (neg ((v + cvb) / ckb))))))
     37                       
     38                        (hh-ionic-conductance
     39                          (Kv1  ;; ion name: exported variables will be of the form {ion}_{id}
     40                           (initial-m (Kv1_amf (Vrest) / (Kv1_amf (Vrest) + Kv1_bmf (Vrest))))
     41                           (m-power   4)
     42                           (h-power   0)
     43                           (m-alpha   (temp_adj * Kv1_amf (v) ))
     44                           (m-beta    (temp_adj * Kv1_bmf (v) ))))
     45                       
     46                        )
     47             
     48              (component (type pore)
     49                        (const  gbar_Kv1  = 0.011)
     50                        (output gbar_Kv1 ))
     51             
     52              (component (type permeating-substance) (name k)
     53                        (const e_Kv1 = -85)
     54                        (output e_Kv1 ))
     55             
     56              ) ;; end Kv1 current
     57
     58   (component (type ion-channel) (name Kv4)
     59
     60              (component (type gate)
     61                       
     62                        ;; rate functions
     63                       
     64                       
     65                        (defun Kv4_amf (v) 
     66                           (let ((can    0.15743)
     67                                (ckan   -32.19976)
     68                                (cvan   57))
     69                             (can * exp (neg ((v + cvan) / ckan)))))
     70                       
     71
     72                        (defun Kv4_bmf (v) 
     73                           (let ((cbn   0.15743)
     74                                (ckbn  37.51346)
     75                                (cvbn  57))
     76                             (cbn * exp (neg ((v + cvbn) / ckbn)))))
     77
     78                       
     79                        (defun Kv4_ahf (v) 
     80                           (let ((cah   0.01342)
     81                                (ckah  -7.86476)
     82                                (cvah  60))
     83                             (cah / (1.0 + (exp (neg ((v + cvah) / ckah)))))))
     84
     85                       
     86                        (defun Kv4_bhf (v) 
     87                           (let ((cbh   0.04477)
     88                                (ckbh  11.3615)
     89                                (cvbh  54))
     90                             (cbh / (1.0 + (exp (neg ((v + cvbh) / ckbh)))))))
     91
     92                        (hh-ionic-conductance
     93                          (Kv4  ;; ion name: exported variables will be of the form {ion}_{id}
     94                           (initial-m (Kv4_amf (Vrest) / (Kv4_amf (Vrest) + Kv4_bmf (Vrest))) )
     95                           (initial-h (Kv4_ahf (Vrest) / (Kv4_ahf (Vrest) + Kv4_bhf (Vrest))) )
     96                           (m-power   4)
     97                           (h-power   1)
     98                           (m-alpha   (temp_adj * Kv4_amf (v)))
     99                           (m-beta    (temp_adj * Kv4_bmf (v)))
     100                           (h-alpha   (temp_adj * Kv4_ahf (v)))
     101                           (h-beta    (temp_adj * Kv4_bhf (v)))
     102                           ))
     103                       
     104                        )
     105
     106              (component (type pore)
     107                        (const  gbar_Kv4  = 0.0039)
     108                        (output gbar_Kv4 ))
     109             
     110              (component (type permeating-substance) (name k)
     111                        (const e_Kv4 = -85)
     112                        (output e_Kv4 ))
     113             
     114              ) ;; end Kv4 current
     115
     116
     117   (component (type ion-channel) (name Ih)
     118             
     119              (component (type gate)
     120                       
     121                        ;; rate functions
     122                       
     123                        (defun Ih_inf (v)
     124                           (let ((cvn   90.1)
     125                                (ckn   -9.9))
     126                             (1.0 / (1.0 + exp (neg ((v + cvn) / ckn) )))))
     127                       
     128                        (defun Ih_tau (v)   
     129                           (let ((cct  190)
     130                                (cat  720)
     131                                (cvt  81.5)
     132                                (ckt  11.9))
     133                             (cct + (cat * exp (neg (pow (((v + cvt) / ckt) 2)))))))
     134                       
     135                        (hh-ionic-conductance
     136                          (Ih  ;; ion name: exported variables will be of the form {ion}_{id}
     137                           (initial-m (Ih_inf (Vrest)))
     138                           (m-power   1)
     139                           (h-power   0)
     140                           (m-inf     (Ih_inf (v)))
     141                           (m-tau     (Ih_tau (v) / temp_adj))
     142                           ))
     143                       
     144                        )
     145
     146              (component (type pore)
     147                        (const  gbar_Ih  = 0.0002)
     148                        (output gbar_Ih ))
     149             
     150              (component (type permeating-substance) (name non-specific)
     151                        (const e_Ih = -30)
     152                        (output e_Ih ))
     153             
     154              ) ;; end Ih current
     155   
     156   (component (type ion-channel) (name CaP)
     157             
     158              (component (type gate)
     159                       
     160                        ;; rate functions
     161                        (defun CaP_inf (v) 
     162                           (let ((cv  19)  (ck  5.5))
     163                             (1.0 / (1.0 + exp (neg ((v + cv) / ck))))))
     164                       
     165                        (defun CaP_tau (v) 
     166                           (if (v > -50)
     167                              then (1e3 * (0.000191 + (0.00376 * pow ((exp (neg ((v + 41.9) / 27.8)))  2))))
     168                              else (1e3 * (0.00026367 + (0.1278 * exp (0.10327 * v))))))
     169
     170                        (hh-ionic-conductance
     171                          (CaP  ;; ion name: exported variables will be of the form {ion}_{id}
     172                           (initial-m  (CaP_inf (Vrest)))
     173                           (m-power    1)
     174                           (h-power    0)
     175                           (m-inf      (CaP_inf (v)))
     176                           (m-tau      (CaP_tau (v) / temp_adj))))
     177                       
     178                        )
     179
     180              (component (type pore)
     181                        (const gmax_CaP  = 0.01667)
     182                        (gbar_CaP        = (gmax_CaP * ghk (v celsius cai cao)))
     183                        (output gbar_CaP ))
     184             
     185              (component (type accumulating-substance) (name ca) )
     186             
     187             
     188              ) ;; end CaP current
     189
     190
     191   (component (type ion-channel) (name CaBK)
     192             
     193              (component (type gate)
     194                       
     195                        ;; rate functions
     196                       
     197                        (defun CaBK_zinf (ca) 
     198                           (let ((zhalf 0.001))
     199                             (1 / (1 + (zhalf / ca)))))
     200
     201                        (const CaBK_ztau = 1.0)
     202                       
     203                        (defun CaBK_minf (v)
     204                           (let ((cvm  28.9)
     205                                (ckm  6.2))
     206                             (1.0 / (1.0 + exp (neg ((v + 5.0 + cvm) / ckm))))))
     207                       
     208                        (defun CaBK_mtau (v)
     209                           (let ((ctm     0.000505)
     210                                (cvtm1   86.4)
     211                                (cktm1   -10.1)
     212                                (cvtm2   -33.3)
     213                                (cktm2   10))
     214                             (ctm + (1.0 / (exp (neg ((v + 5.0 + cvtm1) / cktm1)) +
     215                                                exp (neg ((v + 5.0 + cvtm2) / cktm2)))))))
     216                       
     217                        (defun CaBK_hinf (v)
     218                           (let ((ch    0.085)
     219                                (cvh   32)
     220                                (ckh   -5.8))
     221                             (ch + ((1.0 - ch) / (1.0 + (exp (neg ((v + 5.0 + cvh) / ckh))))))))
     222                       
     223                        (defun CaBK_htau (v)
     224                           (let ((cth     0.0019)
     225                                (cvth1   48.5)
     226                                (ckth1   -5.2)
     227                                (cvth2   -54.2)
     228                                (ckth2   12.9))
     229                             (cth + (1.0 / (exp (neg ((v + cvth1) / ckth1)) +
     230                                                exp (neg ((v + cvth2) / ckth2)))))))
     231                       
     232                        (state-complex
     233                          (CaBK_z
     234                           (transitions (<-> C O (CaBK_zinf (cai) / CaBK_ztau)
     235                                             ((1 - CaBK_zinf (cai)) / CaBK_ztau)))
     236                           (initial   (CaBK_zinf (1e-4)))
     237                           (open O)  (power 2)))
     238                       
     239                        (output CaBK_z ) 
     240
     241                       
     242                        (hh-ionic-conductance
     243                          (CaBK  ;; ion name: exported variables will be of the form {ion}_{id}
     244                           (initial-m  (CaBK_minf (Vrest) / temp_adj))
     245                           (initial-h  (CaBK_hinf (Vrest) / temp_adj))
     246                           (m-power    3)
     247                           (h-power    1)
     248                           (m-inf      (CaBK_minf (v) / temp_adj) )
     249                           (m-tau      (CaBK_mtau (v) / temp_adj) )
     250                           (h-inf      (CaBK_hinf (v) / temp_adj) )
     251                           (h-tau      (CaBK_htau (v) / temp_adj) )))
     252                       
     253                        )
     254             
     255              (component (type pore)
     256                        (const  gbar_CaBK  = 0.014)
     257                        (output gbar_CaBK ))
     258             
     259              (component (type permeating-substance) (name k)
     260                        (const e_CaBK = -85)
     261                        (output e_CaBK ))
     262             
     263              ) ;; end BK current
    263264             
    264265             ))
  • release/3/nemo/trunk/nemo-eggdoc.scm

    r12218 r12221  
    3636
    3737
    38      (requires (url "args.html" "args")
    39                (url "datatype.html" "datatype")
    40                (url "digraph.html" "digraph")
    41                (url "environments.html" "environments")
    42                (url "graph-bfs.html""graph-bfs")
    43                (url "graph-cycles.html" "graph-cycles")
    44                (url "matchable.html" "matchable")
    45                (url "mathh.html" "mathh")
     38     (requires (url "args.html"          "args")
     39               (url "datatype.html"      "datatype")
     40               (url "digraph.html"       "digraph")
     41               (url "environments.html"  "environments")
     42               (url "graph-bfs.html"     "graph-bfs")
     43               (url "graph-cycles.html"  "graph-cycles")
     44               (url "lalr.html"          "lalr")
     45               (url "matchable.html"     "matchable")
     46               (url "mathh.html"         "mathh")
    4647               (url "strictly-pretty.html" "strictly-pretty")
    4748               (url "sxml-tools.html" "sxml-tools")
    4849               (url "sxml-transforms.html" "sxml-transforms")
    4950               (url "syntax-case.html" "syntax-case")
    50                (url "varsubst.html" "varsubst")
    51                (url "vector-lib.html" "vector-lib"))
     51               (url "varsubst.html"    "varsubst")
     52               (url "vector-lib.html"  "vector-lib")
     53               (url "varsubst.html"    "varsubst")
     54               )
    5255
    5356
     
    6467      (subsection "Options"
    6568        (p (symbol-table
    66             (describe "-i FORMAT"          "specify input format (xml, sxml, s-exp)")
     69            (describe "-i FORMAT"          "specify input format (nemo, xml, sxml, s-exp)")
    6770            (describe "--xml[=FILE]"       "write XML output to file (default: <model-name>.xml")
    6871            (describe "--sxml[=FILE]"      "write SXML output to file (default: <model-name>.sxml")
     
    158161        (subsubsection "Ion channel definitions"
    159162          (p "Currently, the " (tt "NMODL") " code generator recognizes and generates code for "
    160              "ion channel components that are defined as follows: "
    161           (p (ebnf-def (ebnf-form "COMPONENT (TYPE ion-channel) (NAME {NAME})")
    162                        ( (ebnf-form "COMPONENT (TYPE gate) ...")
    163                          (comment "One or more gate definitions. Each component of type gate "
    164                                   "must export the state complexes that characterize the gate dynamics. "))
    165 
    166                        ( (ebnf-form "COMPONENT (TYPE pore) ...")
    167                          (comment "Conductance law definition. This component must export a "
    168                                   "constant maximal conductance, or an assigned quantity whose "
    169                                   "equation represents the conductance law used. "))
     163             "ion channel components that are defined as follows: ")
     164          (p (ebnf-form (ebnf-compound "COMPONENT (TYPE ion-channel) (NAME {NAME})"
     165
     166               ( (ebnf-form (ebnf-kw "COMPONENT") (ebnf-form (ebnf-kw "TYPE") "gate") "..." )
     167                 (comment "One or more gate definitions. Each component of type gate "
     168                          "must export the state complexes that characterize the gate dynamics. "))
     169               
     170               ( (ebnf-form (ebnf-kw "COMPONENT")
     171                            (ebnf-form (ebnf-kw "TYPE") "pore") "...")
     172                 (comment "Conductance law definition. This component must export a "
     173                          "constant maximal conductance, or an assigned quantity whose "
     174                          "equation represents the conductance law used. "))
     175               
     176               ( (ebnf-opt (ebnf-form (ebnf-kw "COMPONENT") (ebnf-form (ebnf-kw "TYPE") "permeating-substance") "..."))
     177                 (comment ""))
     178
     179               ( (ebnf-opt (ebnf-form (ebnf-kw "COMPONENT") (ebnf-form (ebnf-kw "TYPE") "accumulating-substance") "..."))
     180                 (comment ""))
    170181                           
    171                        ( (ebnf-opt (ebnf-form "COMPONENT (TYPE permeating-substance) ..."))
    172                          (comment "Conductance law definition. This component must export a "
    173                                   "constant maximal conductance, or an assigned quantity whose "
    174                                   "equation represents the conductance law used. "))
     182               ))))
     183
     184        (subsubsection "Hodgkin-Huxley ionic conductance extension"
     185          (p "The Hodgkin-Huxley ionic conductance extension is a shortcut that declares "
     186             "a state transition complex corresponding to the Hodgkin-Huxley formulation "
     187             "of ion channel dynamics. ")
     188
     189          (p (ebnf-form (ebnf-compound "HH-IONIC-CONDUCTANCE"
     190               ( (ebnf-form (ebnf-var "ION-NAME" )
     191                            (comment "Ion name: exported variables will be of the form " (tt "{ion}_{id}") ". ")
    175192                           
    176                        ))))
     193                            (ebnf-form (ebnf-kw "M-POWER") (ebnf-var "INTEGER") )
     194                            (comment "Power of state variable " (tt "M") ". " )
     195
     196                            (ebnf-form (ebnf-kw "H-POWER") (ebnf-var "INTEGER") )
     197                            (comment "Power of state variable " (tt "H") ". If zero, the initial value and "
     198                                     "equations for this variable can be omitted. ")
     199
     200                            (ebnf-form (ebnf-kw "INITIAL-M") (ebnf-var "EXPR") )
     201                            (comment "Expression that computes initial value for state variable " (tt "M") ". " )
     202
     203                            (ebnf-form (ebnf-kw "INITIAL-H") (ebnf-var "EXPR") )
     204                            (comment "Expression that computes initial value for state variable " (tt "H") ". " )
     205
     206
     207                            (ebnf-form (ebnf-kw "M-ALPHA") (ebnf-var "EXPR") )
     208                            (comment "Closed state to open state rate expression for state variable " (tt "M") ". " )
     209
     210                            (ebnf-form (ebnf-kw "M-BETA") (ebnf-var "EXPR") )
     211                            (comment "Open state to closed state rate expression for state variable " (tt "M") ". " )
     212
     213                            (ebnf-form (ebnf-kw "H-ALPHA") (ebnf-var "EXPR") )
     214                            (comment "Closed state to open state rate expression for state variable " (tt "H") ". " )
     215
     216                            (ebnf-form (ebnf-kw "H-BETA") (ebnf-var "EXPR") )
     217                            (comment "Open state to closed state rate expression for state variable " (tt "H") ". " )
     218
     219
     220                            (ebnf-form (ebnf-kw "M-INF") (ebnf-var "EXPR") )
     221                            (comment "Steady state expression for variable " (tt "M") ". " )
     222
     223                            (ebnf-form (ebnf-kw "M-TAU") (ebnf-var "EXPR") )
     224                            (comment "Time constant expression for variable " (tt "M") ". " )
     225
     226                            (ebnf-form (ebnf-kw "H-INF") (ebnf-var "EXPR") )
     227                            (comment "Steady state expression for variable " (tt "H") ". " )
     228
     229                            (ebnf-form (ebnf-kw "H-TAU") (ebnf-var "EXPR") )
     230                            (comment "Time constant expression for variable " (tt "H") ". " )
     231
     232
     233                            ))
     234                 )))
     235          )
     236
    177237        )
    178238
     
    183243
    184244(nemo-model PotIhCa
    185             ((input v  cai cao)
     245
     246  ((input v  cai cao)
    186247             
    187              (const Vrest   = -68)
    188              (const diam    = 20)
    189              (const celsius = 24)
     248   (const Vrest   = -68)
     249   (const diam    = 20)
     250   (const celsius = 24)
     251   
     252   (const temp_adj = (pow (3 ((celsius - 22) / 10))))
     253
     254   (defun ghk (v celsius ci co)
     255     (let ((F 96485.0) (R 8.3145))
     256       (let ((zeta ((2e-3 * F * v) / (R * (273.19 + celsius)))))
     257         (if ((abs (1.0 - exp (neg (zeta)))) < 1e-6)
     258             then (1e-6 * (2 * F) * (ci - (co * exp (neg (zeta)))) * (1.0 + (zeta / 2)))
     259             else ((1e-6 * (2 * zeta * F) * (ci - (co * exp (neg (zeta))))) / (1.0 - exp (neg (zeta))))))))
     260
     261   
     262   (decaying-pool (ca (initial 1e-4) (depth 0.1) (beta 1) (temp-adj temp_adj)))
     263   
     264   (component (type ion-channel) (name Kv1)
     265             
     266              (component (type gate)
     267                         
     268                         ;; rate functions
     269                         (defun Kv1_amf (v)
     270                           (let ((cma 0.12889)
     271                                 (cka -33.90877)
     272                                 (cva 45))
     273                             (cma * (exp (neg ((v + cva) / cka))))))
     274                         
     275                         (defun Kv1_bmf (v)
     276                           (let ((cmb   0.12889)
     277                                 (ckb   12.42101)
     278                                 (cvb   45))
     279                             (cmb * (exp (neg ((v + cvb) / ckb))))))
     280                         
     281                         (hh-ionic-conductance
     282                          (Kv1  ;; ion name: exported variables will be of the form {ion}_{id}
     283                           (initial-m (Kv1_amf (Vrest) / (Kv1_amf (Vrest) + Kv1_bmf (Vrest))))
     284                           (m-power   4)
     285                           (h-power   0)
     286                           (m-alpha   (temp_adj * Kv1_amf (v) ))
     287                           (m-beta    (temp_adj * Kv1_bmf (v) ))))
     288                         
     289                         )
     290             
     291              (component (type pore)
     292                         (const  gbar_Kv1  = 0.011)
     293                         (output gbar_Kv1 ))
     294             
     295              (component (type permeating-substance) (name k)
     296                         (const e_Kv1 = -85)
     297                         (output e_Kv1 ))
     298             
     299              ) ;; end Kv1 current
     300
     301   (component (type ion-channel) (name Kv4)
     302
     303              (component (type gate)
     304                         
     305                         ;; rate functions
     306                         
     307                         
     308                         (defun Kv4_amf (v) 
     309                           (let ((can    0.15743)
     310                                 (ckan   -32.19976)
     311                                 (cvan   57))
     312                             (can * exp (neg ((v + cvan) / ckan)))))
     313                         
     314
     315                         (defun Kv4_bmf (v) 
     316                           (let ((cbn   0.15743)
     317                                 (ckbn  37.51346)
     318                                 (cvbn  57))
     319                             (cbn * exp (neg ((v + cvbn) / ckbn)))))
     320
     321                         
     322                         (defun Kv4_ahf (v) 
     323                           (let ((cah   0.01342)
     324                                 (ckah  -7.86476)
     325                                 (cvah  60))
     326                             (cah / (1.0 + (exp (neg ((v + cvah) / ckah)))))))
     327
     328                         
     329                         (defun Kv4_bhf (v) 
     330                           (let ((cbh   0.04477)
     331                                 (ckbh  11.3615)
     332                                 (cvbh  54))
     333                             (cbh / (1.0 + (exp (neg ((v + cvbh) / ckbh)))))))
     334
     335                         (hh-ionic-conductance
     336                          (Kv4  ;; ion name: exported variables will be of the form {ion}_{id}
     337                           (initial-m (Kv4_amf (Vrest) / (Kv4_amf (Vrest) + Kv4_bmf (Vrest))) )
     338                           (initial-h (Kv4_ahf (Vrest) / (Kv4_ahf (Vrest) + Kv4_bhf (Vrest))) )
     339                           (m-power   4)
     340                           (h-power   1)
     341                           (m-alpha   (temp_adj * Kv4_amf (v)))
     342                           (m-beta    (temp_adj * Kv4_bmf (v)))
     343                           (h-alpha   (temp_adj * Kv4_ahf (v)))
     344                           (h-beta    (temp_adj * Kv4_bhf (v)))
     345                           ))
     346                         
     347                         )
     348
     349              (component (type pore)
     350                         (const  gbar_Kv4  = 0.0039)
     351                         (output gbar_Kv4 ))
     352             
     353              (component (type permeating-substance) (name k)
     354                         (const e_Kv4 = -85)
     355                         (output e_Kv4 ))
     356             
     357              ) ;; end Kv4 current
     358
     359
     360   (component (type ion-channel) (name Ih)
     361             
     362              (component (type gate)
     363                         
     364                         ;; rate functions
     365                         
     366                         (defun Ih_inf (v)
     367                           (let ((cvn   90.1)
     368                                 (ckn   -9.9))
     369                             (1.0 / (1.0 + exp (neg ((v + cvn) / ckn) )))))
     370                         
     371                         (defun Ih_tau (v)   
     372                           (let ((cct  190)
     373                                 (cat  720)
     374                                 (cvt  81.5)
     375                                 (ckt  11.9))
     376                             (cct + (cat * exp (neg (pow (((v + cvt) / ckt) 2)))))))
     377                         
     378                         (hh-ionic-conductance
     379                          (Ih  ;; ion name: exported variables will be of the form {ion}_{id}
     380                           (initial-m (Ih_inf (Vrest)))
     381                           (m-power   1)
     382                           (h-power   0)
     383                           (m-inf     (Ih_inf (v)))
     384                           (m-tau     (Ih_tau (v) / temp_adj))
     385                           ))
     386                         
     387                         )
     388
     389              (component (type pore)
     390                         (const  gbar_Ih  = 0.0002)
     391                         (output gbar_Ih ))
     392             
     393              (component (type permeating-substance) (name non-specific)
     394                         (const e_Ih = -30)
     395                         (output e_Ih ))
     396             
     397              ) ;; end Ih current
     398   
     399   (component (type ion-channel) (name CaP)
     400             
     401              (component (type gate)
     402                         
     403                         ;; rate functions
     404                         (defun CaP_inf (v) 
     405                           (let ((cv  19)  (ck  5.5))
     406                             (1.0 / (1.0 + exp (neg ((v + cv) / ck))))))
     407                         
     408                         (defun CaP_tau (v) 
     409                           (if (v > -50)
     410                               then (1e3 * (0.000191 + (0.00376 * pow ((exp (neg ((v + 41.9) / 27.8)))  2))))
     411                               else (1e3 * (0.00026367 + (0.1278 * exp (0.10327 * v))))))
     412
     413                         (hh-ionic-conductance
     414                          (CaP  ;; ion name: exported variables will be of the form {ion}_{id}
     415                           (initial-m  (CaP_inf (Vrest)))
     416                           (m-power    1)
     417                           (h-power    0)
     418                           (m-inf      (CaP_inf (v)))
     419                           (m-tau      (CaP_tau (v) / temp_adj))))
     420                         
     421                         )
     422
     423              (component (type pore)
     424                         (const gmax_CaP  = 0.01667)
     425                         (gbar_CaP        = (gmax_CaP * ghk (v celsius cai cao)))
     426                         (output gbar_CaP ))
     427             
     428              (component (type accumulating-substance) (name ca) )
     429             
     430             
     431              ) ;; end CaP current
     432
     433
     434   (component (type ion-channel) (name CaBK)
     435             
     436              (component (type gate)
     437                         
     438                         ;; rate functions
     439                         
     440                         (defun CaBK_zinf (ca) 
     441                           (let ((zhalf 0.001))
     442                             (1 / (1 + (zhalf / ca)))))
     443
     444                         (const CaBK_ztau = 1.0)
     445                         
     446                         (defun CaBK_minf (v)
     447                           (let ((cvm  28.9)
     448                                 (ckm  6.2))
     449                             (1.0 / (1.0 + exp (neg ((v + 5.0 + cvm) / ckm))))))
     450                         
     451                         (defun CaBK_mtau (v)
     452                           (let ((ctm     0.000505)
     453                                 (cvtm1   86.4)
     454                                 (cktm1   -10.1)
     455                                 (cvtm2   -33.3)
     456                                 (cktm2   10))
     457                             (ctm + (1.0 / (exp (neg ((v + 5.0 + cvtm1) / cktm1)) +
     458                                                exp (neg ((v + 5.0 + cvtm2) / cktm2)))))))
     459                         
     460                         (defun CaBK_hinf (v)
     461                           (let ((ch    0.085)
     462                                 (cvh   32)
     463                                 (ckh   -5.8))
     464                             (ch + ((1.0 - ch) / (1.0 + (exp (neg ((v + 5.0 + cvh) / ckh))))))))
     465                         
     466                         (defun CaBK_htau (v)
     467                           (let ((cth     0.0019)
     468                                 (cvth1   48.5)
     469                                 (ckth1   -5.2)
     470                                 (cvth2   -54.2)
     471                                 (ckth2   12.9))
     472                             (cth + (1.0 / (exp (neg ((v + cvth1) / ckth1)) +
     473                                                exp (neg ((v + cvth2) / ckth2)))))))
     474                         
     475                         (state-complex
     476                          (CaBK_z
     477                           (transitions (<-> C O (CaBK_zinf (cai) / CaBK_ztau)
     478                                             ((1 - CaBK_zinf (cai)) / CaBK_ztau)))
     479                           (initial   (CaBK_zinf (1e-4)))
     480                           (open O)  (power 2)))
     481                         
     482                         (output CaBK_z ) 
     483
     484                         
     485                         (hh-ionic-conductance
     486                          (CaBK  ;; ion name: exported variables will be of the form {ion}_{id}
     487                           (initial-m  (CaBK_minf (Vrest) / temp_adj))
     488                           (initial-h  (CaBK_hinf (Vrest) / temp_adj))
     489                           (m-power    3)
     490                           (h-power    1)
     491                           (m-inf      (CaBK_minf (v) / temp_adj) )
     492                           (m-tau      (CaBK_mtau (v) / temp_adj) )
     493                           (h-inf      (CaBK_hinf (v) / temp_adj) )
     494                           (h-tau      (CaBK_htau (v) / temp_adj) )))
     495                         
     496                         )
     497             
     498              (component (type pore)
     499                         (const  gbar_CaBK  = 0.014)
     500                         (output gbar_CaBK ))
     501             
     502              (component (type permeating-substance) (name k)
     503                         (const e_CaBK = -85)
     504                         (output e_CaBK ))
     505             
     506              ) ;; end BK current
    190507             
    191              (const temp_adj = (pow 3 (/ (- celsius 22) 10)))
    192              
    193              (defun ghk (v celsius ci co)
    194                (let ((F 96485.0) (R 8.3145))
    195                  (let ((zeta (/ (* 2e-3 F v) (* R (+ 273.19 celsius)))))
    196                    (if (< (abs (- 1.0 (exp (neg zeta)))) 1e-6)
    197                        (* 1e-6  (* 2 F) (- ci (* co (exp (neg zeta)))) (+ 1.0 (/ zeta 2)))
    198                        (/ (* 1e-6 (* 2 zeta F) (- ci (* co (exp (neg zeta))))) (- 1.0 (exp (neg zeta))))))))
    199              
    200              
    201              (component (type ion-channel) (name Kv1)
    202                        
    203                         (component (type gate)
    204                                    
    205                                    ;; rate functions
    206                                    (defun Kv1_amf (v)
    207                                      (let ((cma 0.12889)
    208                                            (cka -33.90877)
    209                                            (cva 45))
    210                                        (* cma (exp (neg (/ (+ v cva) cka))))))
    211                                    
    212                                    (defun Kv1_bmf (v)
    213                                      (let ((cmb   0.12889)
    214                                            (ckb   12.42101)
    215                                            (cvb   45))
    216                                        (* cmb (exp (neg (/ (+ v cvb) ckb))))))
    217                                    
    218                                    (hh-ionic-conductance
    219                                     (Kv1  ;; ion name: exported variables will be of the form {ion}_{id}
    220                                      (initial-m (/ (Kv1_amf Vrest) (+ (Kv1_amf Vrest) (Kv1_bmf Vrest))))
    221                                      (m-power   4)
    222                                      (h-power   0)
    223                                      (m-alpha   (* temp_adj (Kv1_amf v) ))
    224                                      (m-beta    (* temp_adj (Kv1_bmf v) )))
    225                                    
    226                                     ))
    227 
    228 
    229                        
    230                         (component (type pore)
    231                                    (const  gbar_Kv1  = 0.011)
    232                                    (output gbar_Kv1 ))
    233                        
    234                         (component (type permeating-substance) (name k)
    235                                    (const e_Kv1 = -85)
    236                                    (output e_Kv1 ))
    237                        
    238                         ) ;; end Kv1 current
    239              
    240              
    241              (component (type ion-channel) (name Kv4)
    242 
    243                         (component (type gate)
    244                                    
    245                                    ;; rate functions
    246                                    
    247                                    
    248                                    (defun Kv4_amf (v) 
    249                                      (let ((can    0.15743)
    250                                            (ckan   -32.19976)
    251                                            (cvan   57))
    252                                        (* can (exp (neg (/ (+ v cvan) ckan))))))
    253                                    
    254 
    255                                    (defun Kv4_bmf (v) 
    256                                      (let ((cbn   0.15743)
    257                                            (ckbn  37.51346)
    258                                            (cvbn  57))
    259                                        (* cbn (exp (neg (/ (+ v cvbn) ckbn))))))
    260 
    261                                    
    262                                    (defun Kv4_ahf (v) 
    263                                      (let ((cah   0.01342)
    264                                            (ckah  -7.86476)
    265                                            (cvah  60))
    266                                        (/ cah (+ 1.0 (exp (neg (/ (+ v cvah) ckah)))))))
    267 
    268                                    
    269                                    (defun Kv4_bhf (v) 
    270                                      (let ((cbh   0.04477)
    271                                            (ckbh  11.3615)
    272                                            (cvbh  54))
    273                                        (/ cbh (+ 1.0 (exp (neg (/ (+ v cvbh) ckbh)))))))
    274 
    275                                    (hh-ionic-conductance
    276                                     (Kv4  ;; ion name: exported variables will be of the form {ion}_{id}
    277                                      (initial-m (/ (Kv4_amf Vrest) (+ (Kv4_amf Vrest) (Kv4_bmf Vrest))))
    278                                      (initial-h (/ (Kv4_ahf Vrest)  (+ (Kv4_ahf Vrest) (Kv4_bhf Vrest))) )
    279                                      (m-power   4)
    280                                      (h-power   1)
    281                                      (m-alpha   (* temp_adj (Kv4_amf v)))
    282                                      (m-beta    (* temp_adj (Kv4_bmf v)))
    283                                      (h-alpha   (* temp_adj (Kv4_ahf v)))
    284                                      (h-beta    (* temp_adj (Kv4_bhf v)))
    285                                      ))
    286                                    
    287                                    )
    288 
    289                         (component (type pore)
    290                                    (const  gbar_Kv4  = 0.0039)
    291                                    (output gbar_Kv4 ))
    292                        
    293                         (component (type permeating-substance) (name k)
    294                                    (const e_Kv4 = -85)
    295                                    (output e_Kv4 ))
    296                        
    297                         ) ;; end Kv4 current
    298              
    299 
    300              
    301              (component (type ion-channel) (name Ih)
    302                        
    303                         (component (type gate)
    304                                    
    305                                    ;; rate functions
    306                                    
    307                                    (defun Ih_inf (v)
    308                                      (let ((cvn   90.1)
    309                                            (ckn   -9.9))
    310                                        (/ 1.0 (+ 1.0 (exp (neg (/ (+ v cvn) ckn) ))))))
    311                                    
    312                                    (defun Ih_tau (v)   
    313                                      (let ((cct  190)
    314                                            (cat  720)
    315                                            (cvt  81.5)
    316                                            (ckt  11.9))
    317                                        (+ cct (* cat (exp (neg (pow (/ (+ v cvt) ckt) 2)))))))
    318                                    
    319                                    (hh-ionic-conductance
    320                                     (Ih  ;; ion name: exported variables will be of the form {ion}_{id}
    321                                      (initial-m (Ih_inf Vrest))
    322                                      (m-power   1)
    323                                      (h-power   0)
    324                                      (m-inf     (Ih_inf v))
    325                                      (m-tau     (/ (Ih_tau v) temp_adj))
    326                                      ))
    327                                    
    328                                    )
    329 
    330                         (component (type pore)
    331                                    (const  gbar_Ih  = 0.0002)
    332                                    (output gbar_Ih ))
    333                        
    334                         (component (type permeating-substance) (name non-specific)
    335                                    (const e_Ih = -30)
    336                                    (output e_Ih ))
    337                        
    338                         ) ;; end Ih current
    339 
    340              (component (type ion-channel) (name CaP)
    341                        
    342                         (component (type gate)
    343                                    
    344                                    ;; rate functions
    345                                    (defun CaP_inf (v) 
    346                                      (let ((cv  19)  (ck  5.5))
    347                                        (/ 1.0 (+ 1.0 (exp (neg (/ (+ v cv) ck)))))))
    348                                    
    349                                    (defun CaP_tau (v) 
    350                                      (if (> v -50)
    351                                          (* 1e3 (+ 0.000191 (* 0.00376 (pow (exp (neg (/ (+ v 41.9) 27.8)))  2))))
    352                                          (* 1e3 (+ 0.00026367 (* 0.1278 (exp (* 0.10327 v)))))))
    353 
    354                                    (hh-ionic-conductance
    355                                     (CaP  ;; ion name: exported variables will be of the form {ion}_{id}
    356                                      (initial-m  (CaP_inf Vrest))
    357                                      (m-power    1)
    358                                      (h-power    0)
    359                                      (m-inf      (CaP_inf v))
    360                                      (m-tau      (/ (CaP_tau v) temp_adj))))
    361                                    
    362                                    )
    363 
    364                         (component (type pore)
    365                                    (const gmax_CaP  = 0.01667)
    366                                    (gbar_CaP = (* gmax_CaP (ghk v celsius cai cao)))
    367                                    (output gbar_CaP ))
    368                        
    369                         (component (type accumulating-substance) (name ca) )
    370                        
    371                        
    372                         ) ;; end CaP current
    373 
    374              
    375              (component (type ion-channel) (name CaBK)
    376                        
    377                         (component (type gate)
    378                                    
    379                                    ;; rate functions
    380                                    
    381                                    (defun CaBK_zinf (ca) 
    382                                      (let ((zhalf 0.001))
    383                                        (/ 1 (+ 1 (/ zhalf ca)))))
    384 
    385                                    (const CaBK_ztau = 1.0)
    386                                    
    387                                    (defun CaBK_minf (v)
    388                                      (let ((cvm  28.9)
    389                                            (ckm  6.2))
    390                                        (/ 1.0 (+ 1.0 (exp (neg (/ (+ v 5.0 cvm) ckm)))))))
    391                                    
    392                                    (defun CaBK_mtau (v)
    393                                      (let ((ctm     0.000505)
    394                                            (cvtm1   86.4)
    395                                            (cktm1   -10.1)
    396                                            (cvtm2   -33.3)
    397                                            (cktm2   10))
    398                                        (+ ctm (/ 1.0 (+ (exp (neg (/ (+ v 5.0 cvtm1) cktm1)))
    399                                                         (exp (neg (/ (+ v 5.0 cvtm2) cktm2))))))))
    400            
    401                                    (defun CaBK_hinf (v)
    402                                      (let ((ch    0.085)
    403                                            (cvh   32)
    404                                            (ckh   -5.8))
    405                                        (+ ch (/ (- 1.0 ch) (+ 1.0 (exp (neg (/ (+ v 5.0 cvh) ckh))))))))
    406                                    
    407                                    (defun CaBK_htau (v)
    408                                      (let ((cth     0.0019)
    409                                            (cvth1   48.5)
    410                                            (ckth1   -5.2)
    411                                            (cvth2   -54.2)
    412                                            (ckth2   12.9))
    413                                        (+ cth (/ 1.0 ( + (exp (- (/ (+ v cvth1) ckth1)))
    414                                                          (exp (- (/ (+ v cvth2) ckth2))))))))
    415                                    
    416                                    (state-complex
    417                                     (CaBK_z
    418                                      (transitions (-> zC zO  (/ (CaBK_zinf cai) CaBK_ztau))
    419                                                   (-> zO zC  (/ (- 1 (CaBK_zinf cai)) CaBK_ztau)))
    420                                      (initial   (CaBK_zinf 1e-4))
    421                                      (open zO)  (power 2)))
    422                                    
    423                                    (output CaBK_z ) 
    424 
    425            
    426                                    (hh-ionic-conductance
    427                                     (CaBK  ;; ion name: exported variables will be of the form {ion}_{id}
    428                                      (initial-m  (/ (CaBK_minf Vrest) temp_adj))
    429                                      (initial-h  (/ (CaBK_hinf Vrest) temp_adj ))
    430                                      (m-power    3)
    431                                      (h-power    1)
    432                                      (m-inf      (/ (CaBK_minf v) temp_adj ))
    433                                      (m-tau      (/ (CaBK_mtau v) temp_adj ))
    434                                      (h-inf      (/ (CaBK_hinf v) temp_adj) )
    435                                      (h-tau      (/ (CaBK_htau v) temp_adj) )))
    436                                    
    437                                    )
    438                        
    439                         (component (type pore)
    440                                    (const  gbar_CaBK  = 0.014)
    441                                    (output gbar_CaBK ))
    442                        
    443                         (component (type permeating-substance) (name k)
    444                                    (const e_CaBK = -85)
    445                                    (output e_CaBK ))
    446                        
    447                         ) ;; end BK current
    448              
    449              
    450              
    451              )) ;; end model
     508             ))
    452509
    453510EOF
     
    661718         . ,(lambda (tag . terms)
    662719              `("( " ,@(intersperse terms " ") " )")))
    663                          
    664         (ebnf-several
    665          . ,(lambda (tag . elems)
    666               (intersperse elems ", ")))
     720
     721        (ebnf-compound  ; Compound form
     722         *macro*
     723         . ,(lambda (tag term-def . others)
     724              `(dl (dt (b (tt ,term-def)) )
     725                   (dd ,@others))))
    667726                         
    668727        ,@(eggdoc:make-stylesheet doc) ))
Note: See TracChangeset for help on using the changeset viewer.