((section 2 "Outdated egg!" (p "This is an egg for CHICKEN 4, the unsupported old release.  You're almost certainly looking for " (int-link "/eggref/5/nemo" "the CHICKEN 5 version of this egg") ", if it exists.") (p "If it does not exist, there may be equivalent functionality provided by another egg; have a look at the " (link "https://wiki.call-cc.org/chicken-projects/egg-index-5.html" "egg index") ". Otherwise, please consider porting this egg to the current version of CHICKEN.") (tags "egg")) (section 2 "nemo" (p "An implementation of a description language for computational models of ion channels.") (toc)) (section 2 "Usage" (p "nemo [options...] [input files ...]")) (section 2 "Documentation" (p (tt "NEMO") " is a program that reads an ion channel description and generates corresponding model simulation code in " (link "http://www.gnu.org/software/octave/" "GNU Octave") ", " (link "http://www.nest-initiative.org/" "NEST") " C++ code, or the " (link "http://www.neuron.yale.edu/neuron/docs/help/neuron/nmodl/nmodl.html" "NMODL") " language used by the " (link "http://www.neuron.yale.edu/neuron/" "NEURON simulator") ".") (section 3 "Options" (dl (dt (tt "-i FORMAT")) (dd "specify input format (nemo, xml, sxml, s-exp)") (dt (tt "-p")) (dd "generate individual files for each current component in the input file") (dt (tt "--xml[=FILE]")) (dd "write XML output to file (default: <model-name>.xml)") (dt (tt "--sxml[=FILE]")) (dd "write SXML output to file (default: <model-name>.sxml)") (dt (tt "--nest")) (dd "write NEST output to files <model-name>.cpp and <model-name>.h") (dt (tt "--nmodl[=FILE]")) (dd "write NMODL output to file (default: <model-name>.mod)") (dt (tt "--nmodl-method=METHOD")) (dd "specify NMODL integration method (cnexp, derivimplicit, cvode)") (dt (tt "--nmodl-kinetic=[STATES]")) (dd "use NMODL kinetic equations for the given reactions") (dt (tt "--nmodl-depend=VARS")) (dd "specify DEPEND variables for NMODL interpolation tables") (dt (tt "--octave[=FILE]")) (dd "write Octave output to file (default: <model-name>.m)") (dt (tt "--matlab[=FILE]")) (dd "write Matlab output to file (default: <model-name>.m)") (dt (tt "--vclamp-octave[=FILE]")) (dd "write Octave voltage clamp script to file (default: <model-name>_vclamp.m)") (dt (tt "--vclamp-hoc[=FILE]")) (dd "write HOC voltage clamp script to file (default: <model-name>.ses)") (dt (tt "--debug")) (dd "print additional debugging information") (dt (tt "-t")) (dd "use interpolation tables in generated code") (dt (tt "-h, --help")) (dd "print help"))) (section 3 "Model description language" (p "The following constructs comprise the model description language:") (dl (dt (b (tt "MODEL")) (tt " ::= ") " " (b (tt "INPUT ")) " {" (i "ID") "}" (tt " | ") " {" (i "ID") "}  [" (b (tt "AS ")) "{" (i "LOCAL-ID") "}]   [" (b (tt "FROM ")) "{" (i "NAMESPACE") "}]  ...") (dd "Declares one or several imported quantities. If the optional " (b (tt "AS")) " parameter is given, then the quantity is imported as {" (i "LOCAL-ID") "}. If the optional " (b (tt "FROM")) " parameter is given, then the quantity is imported from namespace {" (i "NAMESPACE") "}. ") (dt (tt " | ") " " (b (tt "OUTPUT")) " {" (i "ID") "}") (dd "Declares that an existing quantity be exported.") (dt (tt " | ") " " (b (tt "CONST")) " {" (i "ID") "} = {" (i "EXPR") "}") (dd "Declares a constant quantity (its value will be computed at declaration time).") (dt (tt " | ") " " (b (tt "FUN")) " {" (i "ID") "} ( {" (i "ARG-ID") "} ... ) {" (i "EXPR") "}") (dd "Declares a function (a parameterized expression with no free variables).") (dt (tt " | ") " {" (i "ID") "} = {" (i "EXPR") "}") (dd "Declares an assigned quantity (an expression that can refer to other quantities in the system).") (dt (tt " | ") " " (b (tt "REACTION")) " {" (i "ID") "} {" (i "TRANSITIONS") "} {" (i "INITIAL-EXPR") "} {" (i "OPEN-ID") "}") (dd "Declares a reaction quantity. See below for the syntax of state transition equations. {" (i "INITIAL-EXPR") "} is an expression that computes the initial value. {" (i "OPEN-ID") "} is the name of the open state. It must be one of the states defined by the transition equations. ") (dt (tt " | ") " " (b (tt "COMPONENT")) " ( " (b (tt "TYPE")) " {" (i "ID") "} ) ( " (b (tt "NAME")) " {" (i "ID") "} ) {" (i "ELEMENTS") "} )") (dd "Declares a system component (a quantity that can contain other quantities).")) (section 4 "Expressions" (p "Expressions in the model description language are defined as:") (dl (dt (b (tt "EXPR")) (tt " ::= ") " {" (i "NUM") "}") (dd "A numeric constant.") (dt (tt " | ") "{" (i "ID") "}") (dd "A variable name.") (dt (tt " | ") "{" (i "ID") "} ( {" (i "EXPR") "} ... )") (dd "A function invocation.") (dt (tt " | ") "{" (i "EXPR") "} {" (i "OP") "} {" (i "EXPR") "}") (dd "Arithmetic operator invocation. The following operators are supported: " (tt "+ - / * > < <= >= ^")) (dt (tt " | ") (b (tt "LET")) " ( {" (i "BINDINGS") "} ) {" (i "EXPR") "}") (dd "Local variables declaration. Each element in {" (i "BINDINGS") "} is of the form: ( {" (i "ID") "} {" (i "EXPR") "} )") (dt (tt " | ") (b (tt "IF")) " {" (i "CONDITION") "} " (b (tt "THEN")) " {" (i "EXPR") "} " (b (tt "ELSE")) " {" (i "EXPR") "}") (dd "Conditional expression. The expression after " (b (tt "IF")) " must be a comparison expression. "))) (section 4 "State transition equations" (p "State transition equations in the model description language are defined as:") (dl (dt (b (tt "TRANSITION")) (tt " ::= ") "  " (b (tt "->")) " {" (i "SRC-ID") "} {" (i "DEST-ID") "} {" (i "EXPR") "}") (dd "Declares that a transition occurs from state {" (i "SRC-ID") "} to state {" (i "DEST-ID") "} at rate computed by {" (i "EXPR") "}. ") (dt (tt " | ") " " (b (tt "<->")) " {" (i "SRC-ID") "} {" (i "DEST-ID") "} {" (i "EXPR-1") "} {" (i "EXPR-2") "}") (dd "Declares that a transition occurs from state {" (i "SRC-ID") "} to state {" (i "DEST-ID") "} and vice versa, at rates computed by {" (i "EXPR-1") "} and {" (i "EXPR-2") "}. "))) (section 4 "Ionic current definitions" (p "Currently, the " (tt "NMODL") " code generator recognizes and generates code for ion channel components that are defined as follows:") (dl (dt (b (tt "COMPONENT (TYPE ionic-current) (NAME {NAME})")) " ( " (b (tt "COMPONENT")) " ( " (b (tt "TYPE")) " gate ) ...") (dd "One or more gate definitions. Each component of type gate must export the reactions that characterize the gate dynamics. ") (dt (b (tt "COMPONENT")) " ( " (b (tt "TYPE")) " pore ) ...") (dd "Conductance law definition. This component must export a constant maximal conductance, or an assigned quantity whose equation represents the conductance law used. ") (dt "[ " (b (tt "COMPONENT")) " ( " (b (tt "TYPE")) " permeating-ion ) ... ] ") (dt "[ " (b (tt "COMPONENT")) " ( " (b (tt "TYPE")) " accumulating-substance ) ... ] "))) (section 4 "Hodgkin-Huxley ionic conductance extension" (p "The Hodgkin-Huxley ionic conductance extension is a shortcut that declares a reaction corresponding to the Hodgkin-Huxley formulation of ion channel dynamics.") (dl (dt (b (tt "HH-IONIC-GATE"))) (dd "( {" (i "ION-NAME") "} : Ion name: exported variables will be of the form " (tt "{ion}_{id") "}. ") (dt (b (tt "M-POWER")) " {" (i "INTEGER") "}") (dd "Power of state variable " (tt "M") ". ") (dt (b (tt "H-POWER")) " {" (i "INTEGER") "}") (dd "Power of state variable " (tt "H") ". If zero, the initial value and equations for this variable can be omitted. ") (dt (b (tt "INITIAL-M")) " {" (i "EXPR") "}") (dd "Expression that computes initial value for state variable " (tt "M") ". ") (dt (b (tt "INITIAL-H")) " {" (i "EXPR") "}") (dd "Expression that computes initial value for state variable " (tt "H") ". ") (dt (b (tt "M-ALPHA")) " {" (i "EXPR") "}") (dd "Closed state to open state rate expression for state variable " (tt "M") ". ") (dt (b (tt "M-BETA")) " {" (i "EXPR") "}") (dd "Open state to closed state rate expression for state variable " (tt "M") ". ") (dt (b (tt "H-ALPHA")) " {" (i "EXPR") "}") (dd "Closed state to open state rate expression for state variable " (tt "H") ". ") (dt (b (tt "H-BETA")) " {" (i "EXPR") "}") (dd "Open state to closed state rate expression for state variable " (tt "H") ". ") (dt (b (tt "M-INF")) " {" (i "EXPR") "}") (dd "Steady state expression for variable " (tt "M") ". ") (dt (b (tt "M-TAU")) " {" (i "EXPR") "}") (dd "Time constant expression for variable " (tt "M") ". ") (dt (b (tt "H-INF")) " {" (i "EXPR") "}") (dd "Steady state expression for variable " (tt "H") ". ") (dt (b (tt "H-TAU")) " {" (i "EXPR") "}") (dd "Time constant expression for variable " (tt "H") ". "))))) (section 2 "Examples" (pre ";; Cerebellar Purkinje Cell: resurgent Na current and high frequency\n;; firing (Khaliq et al 2003).") (pre "nemo-model ") (pre " Khaliq03") (pre "  input v \n  cai from ion-pools\n  ica from ion-currents") (pre "  const ena = 60\n  const ek = -88\n  const ca0 = 1e-4") (pre "  component (type ionic-current) (name CaBK)\n  ;: BK-type Purkinje calcium-activated potassium current") (pre "      component (type gate)") (pre "\t\t ;; constants\n\t\t const ztau = 1.0") (pre "\t\t ;; rate functions") (pre "\t\t CaBK_v = (v + 5)") (pre "\t\t minf = (let ((vh -28.9)\n\t\t\t      (k  6.2))\n\t\t              (1.0 / (1.0 + exp (neg ((CaBK_v - vh) / k)))))") (pre "\t\t mtau = (let\n\t\t          ((y0   0.000505)\n\t\t\t   (vh1  -33.3)\n\t\t\t   (k1   -10.0)\n\t\t\t   (vh2  86.4)\n\t\t\t   (k2   10.1))\n\t\t          ((1e3) * (y0 + 1 / (exp ((CaBK_v + vh1) / k1) + \n\t\t     \t      \t         exp ((CaBK_v + vh2) / k2)))))") (pre "\t\t hinf = (let \n                                 ((y0  0.085)\n\t\t\t   (vh  -32.0)\n\t\t\t   (k   5.8))\n\t\t          (y0 + (1 - y0) / (1 + exp ((CaBK_v - vh) / k))))") (pre "\t\t htau = (let\n                                 ((y0   0.0019)\n\t\t\t   (vh1  -54.2)\n\t\t\t   (k1   -12.9)\n\t\t\t   (vh2   48.5)\n\t\t\t   (k2    5.2))\n\t\t          ((1e3) * (y0 + 1 / (exp ((CaBK_v + vh1) / k1) + exp ((CaBK_v + vh2) / k2)))))") (pre "\t\t zinf = (let ((k 0.001))\n\t\t          (1 / (1 + (k / cai))))") (pre "\t\t z_alpha = (zinf / ztau)\n\t\t z_beta  = ((1 - zinf) / ztau)") (pre "\t\t reaction\n\t\t  z\n                          transitions (<-> O C z_alpha z_beta)\n                          conserve  (1 = (O + C))\n                          initial   (let ((k 0.001)) (1 / (1 + k / ca0)))\n                          open O\n                          power 2\n\t\t \n\t\t output z") (pre "\t\t \n\t\t hh-ionic-gate \n\t\t  CaBK  ;; ion name: exported variables will be of the form {ion}_{id}\n\t\t   initial-m  (minf)\n\t\t   initial-h  (hinf)\n\t\t   m-power    3\n\t\t   h-power    1\n\t\t   m-inf      (minf)\n\t\t   m-tau      (mtau)\n\t\t   h-inf      (hinf)\n\t\t   h-tau      (htau)\n      \n      component (type pore)\n\t\t const  gbar_CaBK  = 0.007\n\t\t output gbar_CaBK \n      \n      component (type permeating-ion) (name k)\n\t\t const e_CaBK = ek\n\t\t output e_CaBK\n      \n      ;; end BK current") (pre "  component (type ionic-current) (name CaP)\n      ;; HH P-type Calcium current\n      \n      component (type gate)") (pre "\t\t ;; rate functions\n\t\t inf =  (let ((cv  -19)  (ck  5.5))\n\t\t          (1.0 / (1.0 + exp (neg ((v - cv) / ck)))))") (pre "\t\t tau = ((1e3) *\n\t\t        (if (v > -50) \n\t\t         then (0.000191 + (0.00376 * exp (neg (((v + 41.9) / 27.8) ^ 2))))\n\t\t         else (0.00026367 + (0.1278 * exp (0.10327 * v)))))") (pre "\t\t hh-ionic-gate \n\t\t  CaP  ;; ion name: exported variables will be of the form {ion}_{id}\n\t\t   initial-m  (inf)\n\t\t   m-power    1\n\t\t   h-power    0\n\t\t   m-inf      inf\n\t\t   m-tau      tau") (pre "      component (type permeability)") (pre "\t\t fun ghk (v ci co)\n\t\t   (let ((F  9.6485e4)\n\t\t   \t (R  8.3145)\n  \t\t\t         (T  (22 + 273.19))  \n                                (Z  2)\n\t\t\t (E  ((1e-3) * v)))\n                            (let ((k0 ((Z * (F * E)) / (R * T))))\n\t\t               (let ((k1 (exp (neg (k0))))\n\t\t             (k2 (((Z ^ 2) * (E * (F ^ 2))) / (R * T))))\n                               (1e-6) * (if (abs (1 - k1) < 1e-6) \n                                         then (Z * F * (ci - (co * k1)) * (1 - k0))\n                                         else (k2 * (ci - (co * k1)) / (1 - k1))))))\n\t\t \n\t\t const pcabar  = 0.00005\n\t\t const cao     = 2.4\n\t\t pca           = (pcabar * ghk (v cai cao))") (pre "\t\t output pca\n      \n      component (type permeating-ion) (name ca)\n      \n      \n      ;; end CaP current") (pre "  component (type ionic-current) (name K1)\n  ;; HH TEA-sensitive Purkinje potassium current") (pre "      component (type gate)") (pre "\t\t ;; constants") (pre "\t\t ;; rate functions") (pre "\t\t K1_v = (v + 11) ;; account for junction potential") (pre "\t\t minf = (let ((mivh -24)\n\t\t\t      (mik  15.4))\n\t\t              (1 / (1 + exp (neg (K1_v - mivh) / mik))))") (pre "\t\t mtau = (let ((mty0   0.00012851)\n\t\t              (mtvh1  100.7)\n\t\t\t      (mtk1   12.9)\n\t\t\t      (mtvh2  -56.0)\n\t\t\t      (mtk2   -23.1))\n\t\t             (1e3 * (if (K1_v < -35) \n\t\t\t  \tthen (3.0 * (3.4225e-5 + 0.00498 * exp (neg (K1_v) / -28.29)))\n\t\t\t\telse (mty0 + 1.0 / (exp ((K1_v + mtvh1) / mtk1) + exp ((K1_v + mtvh2) / mtk2)))\n\t\t\t\t)))") (pre "\t\t hinf = (let ((hiy0  0.31)\n\t\t\t      (hiA   0.78)\n\t\t\t      (hivh  -5.802)\n\t\t\t      (hik   11.2))\n\t\t           (hiy0 + hiA / (1 + exp ((K1_v - hivh) / hik))))") (pre "\t\t htau =  (1e3 * (if ( K1_v > 0 ) \n\t\t\t\t   then (0.0012 + 0.0023 * exp (-0.141 * K1_v))\n\t\t\t\t   else (1.2202e-05 + 0.012 * exp (neg (((K1_v - (-56.3)) / 49.6) ^ 2)))))") (pre "\t\t hh-ionic-gate \n\t\t  K1  ;; ion name: exported variables will be of the form {ion}_{id}\n\t\t   initial-m  (minf)\n\t\t   initial-h  (hinf)\n\t\t   m-power    3\n\t\t   h-power    1\n\t\t   m-inf      (minf)\n\t\t   m-tau      (mtau)\n\t\t   h-inf      (hinf)\n\t\t   h-tau      (htau)\n      \n      component (type pore)\n\t\t const  gbar  = 0.004\n\t\t output gbar\n      \n      component (type permeating-ion) (name k)\n\t\t const e = ek\n\t\t output e\n      \n      ;; end K1 current") (pre "  component (type ionic-current) (name K2)\n  ;; HH Low TEA-sensitive Purkinje potassium current") (pre "      component (type gate)") (pre "\t\t ;; constants") (pre "\t\t ;; rate functions") (pre "\t\t K2_v = (v + 11) ;; account for junction potential") (pre "\t\t minf = (let ((mivh -24)\n\t\t\t      (mik  20.4))\n\t\t            (1 / (1 + exp ((neg (K2_v - mivh)) / mik))))") (pre "\t\t mtau = ((1e3) * (if (K2_v < -20) \n\t\t\t\t  then (0.000688 + 1 / (exp ((K2_v + 64.2) / 6.5) + exp ((K2_v - 141.5) / -34.8)))\n\t\t\t\t  else (0.00016 + 0.0008 * exp (-0.0267 * K2_v))))") (pre "\t\t \n\t\t hh-ionic-gate \n\t\t  K2  ;; ion name: exported variables will be of the form {ion}_{id}\n\t\t   initial-m  (minf)\n\t\t   m-power    4\n\t\t   h-power    0\n\t\t   m-inf      (minf)\n\t\t   m-tau      (mtau)\n      \n      component (type pore)\n\t\t const  gbar  = 0.002\n\t\t output gbar\n      \n      component (type permeating-ion) (name k)\n\t\t const e = ek\n\t\t output e\n      \n      ;; end K2 current") (pre "  component (type ionic-current) (name K3)\n  ;; HH slow TEA-insensitive Purkinje potassium current") (pre "      component (type gate)") (pre "\t\t ;; constants") (pre "\t\t ;; rate functions") (pre "\t\t K3_v = (v + 11) ;; account for junction potential") (pre "\t\t minf = (let ((mivh -16.5)\n\t\t\t      (mik  18.4))\n\t\t            (1 / (1 + exp ((neg (K3_v - mivh)) / mik))))") (pre "\t\t mtau = ((1e3) * (0.000796 + 1.0 / (exp ((K3_v + 73.2) / 11.7) + exp ((K3_v - 306.7) / -74.2))))\n\t\t \n\t\t hh-ionic-gate \n\t\t  K3  ;; ion name: exported variables will be of the form {ion}_{id}\n\t\t   initial-m  (minf)\n\t\t   m-power    4\n\t\t   h-power    0\n\t\t   m-inf      (minf)\n\t\t   m-tau      (mtau)") (pre "      \n      component (type pore)\n\t\t const  gbar  =  0.004\n\t\t output gbar\n      \n      component (type permeating-ion) (name k)\n\t\t const e = ek\n\t\t output e\n      ;; end K3 current") (pre "  component (type ionic-current) (name Narsg) ") (pre "             component (type gate)\n\t\t\t\n\tconst Con   = 0.005\n\tconst Coff  = 0.5\n\tconst Oon   = 0.75\n\tconst Ooff  = 0.005") (pre "\tconst alfac = (pow ((Oon / Con) (1.0 / 4.0)))\n\tconst btfac = (pow ((Ooff / Coff) (1.0 / 4.0)))\n\t\t \n\tconst alpha = 150\n\tconst beta  = 3\n\tconst gamma = 150\n\tconst delta = 40\n\tconst epsilon = 1.75\n\tconst zeta = 0.03\n\tconst x1 = 20\n\tconst x2 = -20\n\tconst x3 = 1e12\n\tconst x4 = -1e12\n\tconst x5 = 1e12\n\tconst x6 = -25\n \n\t;; rate functions\n\t\t \n\tf01 = (4.0 * alpha * exp (v / x1))\n\tf02 = (3.0 * alpha * exp (v / x1))\n\tf03 = (2.0 * alpha * exp (v / x1))\n\tf04 = (alpha * exp (v / x1))\n\tf0O = (gamma * exp (v / x3))\n\tfip = (epsilon * exp (v / x5))\n\tf11 = (4.0 * alpha * alfac * exp (v / x1))\n\tf12 = (3.0 * alpha * alfac * exp (v / x1))\n\tf13 = (2.0 * alpha * alfac * exp (v / x1))\n\tf14 = (alpha * alfac * exp (v / x1))\n\tf1n = (gamma * exp (v / x3))\n\t\t \n\tfi1 = (Con)\n\tfi2 = (Con * alfac)\n\tfi3 = (Con * alfac * alfac)\n\tfi4 = (Con * alfac * alfac * alfac)\n\tfi5 = (Con * alfac * alfac * alfac * alfac)\n\tfin = (Oon)\n\t \n\tb01 = (beta * exp (v / x2))\n\tb02 = (2.0 * beta * exp (v / x2))\n\tb03 = (3.0 * beta * exp (v / x2))\n\tb04 = (4.0 * beta * exp (v / x2))\n\tb0O = (delta * exp (v / x4))\n\tbip = (zeta * exp (v / x6))\n\t\t \n\tb11 = (beta * btfac * exp (v / x2))\n\tb12 = (2.0 * beta * btfac * exp (v / x2))\n\tb13 = (3.0 * beta * btfac * exp (v / x2))\n\tb14 = (4.0 * beta * btfac * exp (v / x2))\n\tb1n = (delta * exp (v / x4))\n\t\t \n\tbi1 = (Coff)\n\tbi2 = (Coff * btfac)\n\tbi3 = (Coff * btfac * btfac)\n\tbi4 = (Coff * btfac * btfac * btfac)\n\tbi5 = (Coff * btfac * btfac * btfac * btfac)\n\tbin = (Ooff)\n \n\treaction\n\t   z\n                    transitions\n                     <-> C1 C2 f01 b01\n                     <-> C2 C3 f02 b02\n                     <-> C3 C4 f03 b03\n                     <-> C4 C5 f04 b04\n                     <-> C5 O  f0O b0O\n                     <-> O  B  fip bip\n                     <-> O  I6 fin bin\n                     <-> C1 I1 fi1 bi1\n                     <-> C2 I2 fi2 bi2\n                     <-> C3 I3 fi3 bi3\n                     <-> C4 I4 fi4 bi4\n                     <-> C5 I5 fi5 bi5\n                     <-> I1 I2 f11 b11\n                     <-> I2 I3 f12 b12\n                     <-> I3 I4 f13 b13\n                     <-> I4 I5 f14 b14\n                     <-> I5 I6 f1n b1n") (pre "                    conserve (1 = (I1 + I2 + I3 + I4 + I5 + I6 + C1 + C2 + C3 + C4 + C5 + O + B))\n                    open O\n                    power 1\n\t   \n             output z\n\t\t\n             component (type pore)\n\t\t   const  gbar  = 0.015\n\t\t   output gbar\n\t\n             component (type permeating-ion) (name na)\n\t\t   const e = ena\n\t\t   output e\n\t\n\t;; end Narsg component") (pre "  component (type ionic-current) (name Ih)\n      \n      component (type gate)\n\t\t \n\t\t ;; rate functions\n\t\t \n\t\t inf = (1.0 / (1.0 + exp ((v + 90.1) / 9.9)))\n\t\t \n\t\t tau = ((1e3) * (0.19 + 0.72 * exp (neg (((v - (-81.5)) / 11.9) ^ 2))))") (pre "\t\t hh-ionic-gate \n\t\t  Ih  ;; ion name: exported variables will be of the form {ion}_{id}\n\t\t   initial-m (inf)\n\t\t   m-power   1\n\t\t   h-power   0\n\t\t   m-inf     (inf)\n\t\t   m-tau     (tau)") (pre "      component (type pore)\n\t\t const  gbar  = 0.0001\n\t\t output gbar\n      \n      component (type permeating-ion) (name non-specific)\n\t\tconst e = -30\n\t\toutput e\n      \n      ;; end Ih current") (pre "  component (type ionic-current) (name Leak)\n      \n      component (type pore)\n\t\t const  gbar  = 5e-5\n\t\t output gbar\n      \n      component (type permeating-ion) (name non-specific)\n\t\t const e = -60\n\t\t output e\n      \n      ;; end leak current") (pre "  component (type decaying-pool) (name ca)\n             const  F = 96485.0\n             const  ca_depth   = 0.1\n             const  ca_beta    = 1.0\n             d (ca) =  ((neg (ica) / (2 * ca0 * F * ca_depth)) -\n\t\t\t  ((if (ca < ca0) then ca0 else ca) * ca_beta))\n      \t      \tinitial ca0\n             cac = (if (ca < ca0) then ca0 else ca)\n             output cac") (pre "  component (type membrane-capacitance)\n          const C_m  = (1e-3)\n          output C_m") (pre "  component (type voltage-clamp) (name K1)\n      \n          const vchold   = -71\n          const vcbase   = -69\n          const vcinc    = 10\n          const vcsteps  = 8\n          const vchdur   = 30\n          const vcbdur   = 100") (pre "          output vchold vcbase vcinc vcsteps vchdur vcbdur")) (section 2 "About this egg" (section 3 "Author" (p (int-link "/users/ivan-raikov" "Ivan Raikov"))) (section 3 "Version history" (dl (dt "9.0") (dd "transitioning to " (tt "ersatz") " templates for code generation") (dt "7.0-8.x") (dd "support for the NEST simulator and CVODE solver, discrete events, synaptic components") (dt "6.11") (dd "bug fix in surface XML generation") (dt "6.9") (dd "added -p and --surface-xml option") (dt "6.4-6.8") (dd "bug fixes and enhancements to NMODL code generator") (dt "6.3") (dd "bug fixes in XML parsing") (dt "6.2") (dd "supported for deployment as a self-contained package") (dt "6.0-6.1") (dd "introduced indentation-based syntax") (dt "5.0-5.1") (dd "Added some flexibility in generating HH rate equations") (dt "4.4") (dd "Voltage clamp script generation") (dt "4.3") (dd "Renamed permeating-substance components to permeating-ion") (dt "4.2") (dd "Using installation-chicken-home to install example files") (dt "4.1") (dd "Documentation converted to wiki format") (dt "4.0") (dd "Introducing the gate-complex element") (dt "3.4") (dd "Documentation update") (dt "3.1-3.3") (dd "Fixes to the examples") (dt "3.0") (dd "Internal restructuring and new examples") (dt "2.5") (dd "Bug fixes in option handling and NMODL backend") (dt "2.4") (dd "Converted to using getopt-long") (dt "2.3") (dd "Added eggdoc as a dependency") (dt "2.2") (dd "Added stx-engine.scm to file manifest") (dt "2.1") (dd "Ported to Chicken 4") (dt "2.0") (dd "Introduced functors") (dt "1.15") (dd "Added nmodl-depend option") (dt "1.14") (dd "Added support for exponential Euler integration") (dt "1.13") (dd "Change in the integration method used for the AKP example") (dt "1.12") (dd "Added support for binary conductances and conservation equations") (dt "1.11") (dd "Bug fixes in the current equations part of NMODL code generator") (dt "1.10") (dd "AKP06 example is now installed in CHICKEN-HOME/nemo/examples") (dt "1.9") (dd "Documentation and example updates") (dt "1.8") (dd "Bug fixes related to kinetic equation processing") (dt "1.6") (dd "Added infix expression parser (nemo format)") (dt "1.0") (dd "Initial release"))) (section 3 "License" (pre "Copyright 2008-2014 Ivan Raikov\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or (at\nyour option) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\nGeneral Public License for more details.\n\nA full copy of the GPL license can be found at\n<http://www.gnu.org/licenses/>."))))