| 1 | <Lems xmlns="http://www.neuroml.org/lems/0.5" |
|---|
| 2 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|---|
| 3 | xsi:schemaLocation="http://www.neuroml.org/lems/0.5 ../Schemas/LEMS/LEMS_v0.5.xsd" |
|---|
| 4 | description="Defines voltage (and concentration) gated ion channel models. Ion channels will generally extend _baseIonChannel_. The most commonly used voltage dependent gate will extend _baseGate_."> |
|---|
| 5 | |
|---|
| 6 | <!-- A number of channel types for use in NeuroML 2 documents --> |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | <!-- Including standard unit comp types & units for NeuroML v2.0 --> |
|---|
| 10 | <Include file="NeuroMLCoreCompTypes.xml"/> |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | <ComponentType name="baseVoltageDepRate" |
|---|
| 14 | description="Base ComponentType for voltage dependent rate. Produces a time varying rate _r which depends on _v."> |
|---|
| 15 | <Exposure name="r" dimension="per_time"/> |
|---|
| 16 | <Requirement name="v" dimension="voltage"/> |
|---|
| 17 | </ComponentType> |
|---|
| 18 | |
|---|
| 19 | <ComponentType name="baseVoltageConcDepRate" |
|---|
| 20 | description="Base ComponentType for voltage and concentration dependent rate. Produces a time varying rate _r which depends on _v and _caConc." |
|---|
| 21 | extends="baseVoltageDepRate"> |
|---|
| 22 | <Requirement name="caConc" dimension="concentration"/> |
|---|
| 23 | </ComponentType> |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | <ComponentType name="baseHHRate" |
|---|
| 27 | description="Base ComponentType for rate which follow one of the typical forms for rate equations in the standard HH formalism, using the parameters _rate, _midpoint and _scale" |
|---|
| 28 | extends="baseVoltageDepRate"> |
|---|
| 29 | <Parameter name="rate" dimension="per_time"/> |
|---|
| 30 | <Parameter name="midpoint" dimension="voltage"/> |
|---|
| 31 | <Parameter name="scale" dimension="voltage"/> |
|---|
| 32 | </ComponentType> |
|---|
| 33 | |
|---|
| 34 | |
|---|
| 35 | <ComponentType name="HHExpRate" |
|---|
| 36 | extends="baseHHRate" |
|---|
| 37 | description="Exponential form for rate equation (Q: Should these be renamed hhExpRate, etc?)"> |
|---|
| 38 | <Behavior> |
|---|
| 39 | <DerivedVariable name="r" exposure="r" value="rate * exp((v - midpoint)/scale)" dimension="per_time"/> |
|---|
| 40 | </Behavior> |
|---|
| 41 | </ComponentType> |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | <ComponentType name="HHSigmoidRate" |
|---|
| 45 | extends="baseHHRate" |
|---|
| 46 | description="Sigmoidal form for rate equation"> |
|---|
| 47 | <Behavior> |
|---|
| 48 | <DerivedVariable name="r" exposure="r" value="rate / (1 + exp(0 - (v - midpoint)/scale))" dimension="per_time"/> |
|---|
| 49 | </Behavior> |
|---|
| 50 | </ComponentType> |
|---|
| 51 | |
|---|
| 52 | |
|---|
| 53 | <ComponentType name="HHExpLinearRate" |
|---|
| 54 | extends="baseHHRate" |
|---|
| 55 | description="Exponential linear form for rate equation. Linear for large positive _v, exponentially decays for large negative _v."> |
|---|
| 56 | <Behavior> |
|---|
| 57 | <DerivedVariable name="x" value="(v - midpoint) / scale" dimension="none"/> |
|---|
| 58 | <DerivedVariable name="r" exposure="r" value="rate * x / (1 - exp(0 - x))" dimension="per_time"/> |
|---|
| 59 | </Behavior> |
|---|
| 60 | </ComponentType> |
|---|
| 61 | |
|---|
| 62 | |
|---|
| 63 | <ComponentType name="baseVoltageDepVariable" |
|---|
| 64 | description="Base ComponentType for voltage dependent variable _x, which depends on _v. Can be used for inf/steady state of rate variable."> |
|---|
| 65 | <Exposure name="x" dimension="none"/> |
|---|
| 66 | <Requirement name="v" dimension="voltage"/> |
|---|
| 67 | </ComponentType> |
|---|
| 68 | |
|---|
| 69 | <ComponentType name="baseVoltageConcDepVariable" |
|---|
| 70 | description="Base ComponentType for voltage and calcium concentration dependent variable _x, which depends on _v and _caConc." |
|---|
| 71 | extends="baseVoltageDepVariable"> |
|---|
| 72 | <Requirement name="caConc" dimension="concentration"/> |
|---|
| 73 | </ComponentType> |
|---|
| 74 | |
|---|
| 75 | <ComponentType name="baseHHVariable" |
|---|
| 76 | description="Base ComponentType for voltage dependent dimensionless variable which follow one of the typical forms for variable equations in the standard HH formalism, using the parameters _rate, _midpoint, _scale" |
|---|
| 77 | extends="baseVoltageDepVariable"> |
|---|
| 78 | <Parameter name="rate" dimension="none"/> |
|---|
| 79 | <Parameter name="midpoint" dimension="voltage"/> |
|---|
| 80 | <Parameter name="scale" dimension="voltage"/> |
|---|
| 81 | </ComponentType> |
|---|
| 82 | |
|---|
| 83 | |
|---|
| 84 | <ComponentType name="HHExpVariable" |
|---|
| 85 | extends="baseHHVariable" |
|---|
| 86 | description="Exponential form for variable equation"> |
|---|
| 87 | <Behavior> |
|---|
| 88 | <DerivedVariable name="x" dimension="none" exposure="x" value="rate * exp((v - midpoint)/scale)"/> |
|---|
| 89 | </Behavior> |
|---|
| 90 | </ComponentType> |
|---|
| 91 | |
|---|
| 92 | |
|---|
| 93 | <ComponentType name="HHSigmoidVariable" |
|---|
| 94 | extends="baseHHVariable" |
|---|
| 95 | description="Sigmoidal form for variable equation"> |
|---|
| 96 | <Behavior> |
|---|
| 97 | <DerivedVariable name="x" dimension="none" exposure="x" value="rate / (1 + exp(0 - (v - midpoint)/scale))"/> |
|---|
| 98 | </Behavior> |
|---|
| 99 | </ComponentType> |
|---|
| 100 | |
|---|
| 101 | |
|---|
| 102 | <ComponentType name="HHExpLinearVariable" |
|---|
| 103 | extends="baseHHVariable" |
|---|
| 104 | description="Exponential linear form for variable equation. Linear for large positive _v, exponentially decays for large negative _v."> |
|---|
| 105 | <Behavior> |
|---|
| 106 | <DerivedVariable name="a" dimension="none" value="(v - midpoint) / scale"/> |
|---|
| 107 | <DerivedVariable name="x" dimension="none" exposure="x" value="rate * a / (1 - exp(0 - a))"/> |
|---|
| 108 | </Behavior> |
|---|
| 109 | </ComponentType> |
|---|
| 110 | |
|---|
| 111 | |
|---|
| 112 | <ComponentType name="baseVoltageDepTime" |
|---|
| 113 | description="Base type for voltage dependent ComponentType producing value _t with dimension time (e.g. for time course of rate variable). Note: time course would not normally be fit to exp/sigmoid etc."> |
|---|
| 114 | <Exposure name="t" dimension="time"/> |
|---|
| 115 | <Requirement name="v" dimension="voltage"/> |
|---|
| 116 | </ComponentType> |
|---|
| 117 | |
|---|
| 118 | <ComponentType name="fixedTimeCourse" |
|---|
| 119 | extends="baseVoltageDepTime" |
|---|
| 120 | description="Time course of a fixed magnitude _tau which can be used for the time course in _gateHH_"> |
|---|
| 121 | |
|---|
| 122 | <Parameter name="tau" dimension="time"/> |
|---|
| 123 | <Behavior> |
|---|
| 124 | <DerivedVariable name="t" dimension="time" exposure="t" value="tau"/> |
|---|
| 125 | </Behavior> |
|---|
| 126 | </ComponentType> |
|---|
| 127 | |
|---|
| 128 | |
|---|
| 129 | |
|---|
| 130 | <ComponentType name="baseQ10Settings" |
|---|
| 131 | description="Base ComponentType for a scaling to apply to gating variable time course, usually temperature dependent"> |
|---|
| 132 | |
|---|
| 133 | <Exposure name="q10" dimension="none"/> |
|---|
| 134 | <Requirement name="temperature" dimension="temperature"/> |
|---|
| 135 | |
|---|
| 136 | </ComponentType> |
|---|
| 137 | |
|---|
| 138 | |
|---|
| 139 | <ComponentType name="q10Fixed" |
|---|
| 140 | extends="baseQ10Settings" |
|---|
| 141 | description="A fixed value, _fixedQ10, for the scaling of the time course of the gating variable"> |
|---|
| 142 | <Parameter name="fixedQ10" dimension="none"/> |
|---|
| 143 | <Behavior> |
|---|
| 144 | <DerivedVariable name="q10" exposure="q10" dimension="none" value="fixedQ10"/> |
|---|
| 145 | </Behavior> |
|---|
| 146 | </ComponentType> |
|---|
| 147 | |
|---|
| 148 | |
|---|
| 149 | <ComponentType name="q10ExpTemp" |
|---|
| 150 | extends="baseQ10Settings" |
|---|
| 151 | description="A value for the Q10 scaling which varies as a standard function of the difference between the current temperature, _temperature, and the temperature at which the gating variable equations were determined, _experimentalTemp"> |
|---|
| 152 | |
|---|
| 153 | <Parameter name="q10Factor" dimension="none"/> |
|---|
| 154 | <Parameter name="experimentalTemp" dimension="temperature"/> |
|---|
| 155 | |
|---|
| 156 | <Behavior> |
|---|
| 157 | <DerivedVariable name="q10" exposure="q10" dimension="none" value="q10Factor^((temperature - experimentalTemp)/10)"/> |
|---|
| 158 | </Behavior> |
|---|
| 159 | </ComponentType> |
|---|
| 160 | |
|---|
| 161 | <ComponentType name="baseConductanceScaling" |
|---|
| 162 | description="Base ComponentType for a scaling to apply to a gate's conductance, e.g. temperature dependent scaling"> |
|---|
| 163 | |
|---|
| 164 | <Exposure name="factor" dimension="none"/> |
|---|
| 165 | <Requirement name="temperature" dimension="temperature"/> |
|---|
| 166 | |
|---|
| 167 | </ComponentType> |
|---|
| 168 | |
|---|
| 169 | |
|---|
| 170 | <ComponentType name="q10ConductanceScaling" |
|---|
| 171 | extends="baseConductanceScaling" |
|---|
| 172 | description="A value for the conductance scaling which varies as a standard function of the difference between the current temperature, _temperature, and the temperature at which the conductance was originally determined, _experimentalTemp"> |
|---|
| 173 | |
|---|
| 174 | <Parameter name="q10Factor" dimension="none"/> |
|---|
| 175 | <Parameter name="experimentalTemp" dimension="temperature"/> |
|---|
| 176 | |
|---|
| 177 | <Behavior> |
|---|
| 178 | <DerivedVariable name="factor" exposure="factor" dimension="none" value="q10Factor^((temperature - experimentalTemp)/10)"/> |
|---|
| 179 | </Behavior> |
|---|
| 180 | </ComponentType> |
|---|
| 181 | |
|---|
| 182 | <ComponentType name="baseGate" |
|---|
| 183 | description="Base ComponentType for a voltage and/or concentration dependent gate"> |
|---|
| 184 | <Parameter name="instances" dimension="none"/> |
|---|
| 185 | <Exposure name="fcond" dimension="none"/> |
|---|
| 186 | <Exposure name="q" dimension="none"/> |
|---|
| 187 | |
|---|
| 188 | </ComponentType> |
|---|
| 189 | |
|---|
| 190 | <ComponentType name="gateHH" |
|---|
| 191 | extends="baseGate" |
|---|
| 192 | description="Gate which follows the general Hodgkin Huxley formalism"> |
|---|
| 193 | |
|---|
| 194 | <Child name="notes" type="notes"/> |
|---|
| 195 | <Child name="q10Settings" type="baseQ10Settings"/> |
|---|
| 196 | |
|---|
| 197 | <Child name="forwardRate" type="baseVoltageDepRate"/> |
|---|
| 198 | <Child name="reverseRate" type="baseVoltageDepRate"/> |
|---|
| 199 | |
|---|
| 200 | <Child name="timeCourse" type="baseVoltageDepTime" /> |
|---|
| 201 | |
|---|
| 202 | <Child name="steadyState" type="baseVoltageDepVariable" /> |
|---|
| 203 | |
|---|
| 204 | <Exposure name="alpha" dimension="per_time"/> |
|---|
| 205 | <Exposure name="beta" dimension="per_time"/> |
|---|
| 206 | |
|---|
| 207 | <Exposure name="tau" dimension="time"/> |
|---|
| 208 | <Exposure name="inf" dimension="none"/> |
|---|
| 209 | |
|---|
| 210 | <Exposure name="rateScale" dimension="none"/> |
|---|
| 211 | |
|---|
| 212 | <Behavior> |
|---|
| 213 | <StateVariable name="q" exposure="q" dimension="none"/> |
|---|
| 214 | |
|---|
| 215 | <DerivedVariable name="rateScale" exposure="rateScale" dimension="none" select="q10Settings/q10" onAbsent="1"/> |
|---|
| 216 | |
|---|
| 217 | <DerivedVariable name="alpha" dimension="per_time" exposure="alpha" select="forwardRate/r" onAbsent="-1"/> |
|---|
| 218 | <DerivedVariable name="beta" dimension="per_time" exposure="beta" select="reverseRate/r" onAbsent="-1"/> |
|---|
| 219 | |
|---|
| 220 | <DerivedVariable name="fcond" exposure="fcond" dimension="none" value="q^instances"/> |
|---|
| 221 | |
|---|
| 222 | <!-- Perhaps not the neatest solution... --> |
|---|
| 223 | <DerivedVariable name="tauExplicit" dimension="time" select="timeCourse/t" onAbsent="-1"/> |
|---|
| 224 | <DerivedVariable name="infExplicit" dimension="none" select="steadyState/x" onAbsent="-1"/> |
|---|
| 225 | |
|---|
| 226 | <DerivedVariable name="inf" dimension="none" exposure="inf" value="infExplicit" valueCondition="infExplicit .geq. 0" valueIfFalse="alpha/(alpha+beta)"/> |
|---|
| 227 | |
|---|
| 228 | <DerivedVariable name="tau" dimension="time" exposure="tau" value="tauExplicit / rateScale" valueCondition="tauExplicit .geq. 0" valueIfFalse="1/((alpha+beta) * rateScale)"/> |
|---|
| 229 | |
|---|
| 230 | <TimeDerivative variable="q" value="(inf - q) / tau"/> |
|---|
| 231 | |
|---|
| 232 | <OnStart> |
|---|
| 233 | <StateAssignment variable="q" value="inf"/> |
|---|
| 234 | </OnStart> |
|---|
| 235 | |
|---|
| 236 | </Behavior> |
|---|
| 237 | </ComponentType> |
|---|
| 238 | |
|---|
| 239 | |
|---|
| 240 | |
|---|
| 241 | <!-- |
|---|
| 242 | <ComponentType name="gateHHTauInf" extends="gate"> |
|---|
| 243 | |
|---|
| 244 | |
|---|
| 245 | <Child name="notes" type="notes"/> |
|---|
| 246 | <Child name="q10Settings" type="q10Settings"/> |
|---|
| 247 | |
|---|
| 248 | <Child name="alpha" type="HHRate"/> may be absent.. |
|---|
| 249 | <Child name="beta" type="HHRate"/> may be absent... |
|---|
| 250 | |
|---|
| 251 | |
|---|
| 252 | <Child type="timeCourse" name="timeCourse"/> |
|---|
| 253 | |
|---|
| 254 | <Exposure name="tau" dimension="time"/> |
|---|
| 255 | <Exposure name="inf" dimension="none"/> |
|---|
| 256 | |
|---|
| 257 | |
|---|
| 258 | <Behavior> |
|---|
| 259 | <StateVariable name="q" exposure="q" dimension="none"/> |
|---|
| 260 | |
|---|
| 261 | <DerivedVariable name="rateScale" dimension="none" select="q10Settings/q10" onAbsent="1"/> |
|---|
| 262 | |
|---|
| 263 | <DerivedVariable name="inf" dimension="none" exposure="inf" value="1"/> |
|---|
| 264 | <DerivedVariable name="tau" dimension="time" exposure="tau" value="1"/> |
|---|
| 265 | |
|---|
| 266 | <DerivedVariable name="fcond" exposure="fcond" dimension="none" value="q^instances"/> |
|---|
| 267 | <OnStart> |
|---|
| 268 | <StateAssignment variable="q" value="inf"/> |
|---|
| 269 | </OnStart> |
|---|
| 270 | |
|---|
| 271 | |
|---|
| 272 | </Behavior> |
|---|
| 273 | </ComponentType> |
|---|
| 274 | |
|---|
| 275 | |
|---|
| 276 | |
|---|
| 277 | <ComponentType name="gateTauInfComplex" extends="gate"> |
|---|
| 278 | <Parameter name="threshold" dimension="voltage"/> |
|---|
| 279 | <Parameter name="vscale" dimension="voltage"/> |
|---|
| 280 | <Parameter name="C" dimension="time"/> |
|---|
| 281 | <Parameter name="a" dimension="none"/> |
|---|
| 282 | <Parameter name="b" dimension="none"/> |
|---|
| 283 | <Parameter name="vs1" dimension="voltage"/> |
|---|
| 284 | <Parameter name="vs2" dimension="voltage"/> |
|---|
| 285 | |
|---|
| 286 | <Requirement name="v" dimension="voltage"/> |
|---|
| 287 | |
|---|
| 288 | <Behavior> |
|---|
| 289 | <StateVariable name="q" exposure="q" dimension="none"/> |
|---|
| 290 | <DerivedVariable name="tau" dimension="time" value="C / (exp(a + v/vs1) + exp(b + v/vs2))"/> |
|---|
| 291 | <DerivedVariable name="qinf" dimension="none" value="1 / (1 + exp((v - threshold)/vscale))"/> |
|---|
| 292 | <TimeDerivative variable="q" value="(qinf - q) / tau"/> |
|---|
| 293 | <DerivedVariable name="fcond" exposure="fcond" dimension="none" value="q^instances"/> |
|---|
| 294 | </Behavior> |
|---|
| 295 | </ComponentType>--> |
|---|
| 296 | |
|---|
| 297 | |
|---|
| 298 | <!--<Component id="gtic" type="gateTauInfComplex" instances="1" C="1ms" |
|---|
| 299 | threshold="-75mV" vscale="5.5mV" a="-14.59" vs1="16mV" b="-1.87" vs2="17mV"/>--> |
|---|
| 300 | |
|---|
| 301 | |
|---|
| 302 | |
|---|
| 303 | <!-- neater way of expressing same thing |
|---|
| 304 | |
|---|
| 305 | <ComponentType name="Tau_t"> |
|---|
| 306 | <Exposure name="tau" dimension="time"/> |
|---|
| 307 | |
|---|
| 308 | </ComponentType> |
|---|
| 309 | |
|---|
| 310 | <ComponentType name="Inf_t"> |
|---|
| 311 | <Exposure name="minf" dimension="none"/> |
|---|
| 312 | |
|---|
| 313 | </ComponentType> |
|---|
| 314 | |
|---|
| 315 | <ComponentType name="gateTauInf" extends="gate"> |
|---|
| 316 | |
|---|
| 317 | <Child type="Tau_t" name="Tau"/> |
|---|
| 318 | <Child type="Inf_t" name="Inf"/> |
|---|
| 319 | |
|---|
| 320 | <Exposure name="minf" dimension="none"/> |
|---|
| 321 | <Exposure name="tau" dimension="time"/> |
|---|
| 322 | <Requirement name="v" dimension="voltage"/>--> |
|---|
| 323 | |
|---|
| 324 | |
|---|
| 325 | <!-- likely need for inner types here, so the Tau and Inf type definitions could be nested in here |
|---|
| 326 | <Behavior> |
|---|
| 327 | <StateVariable name="m" exposure="q" dimension="none"/> |
|---|
| 328 | <DerivedVariable name="minf" exposure="minf" dimension="none" select="Inf/minf"/> |
|---|
| 329 | <DerivedVariable name="tau" exposure="tau" dimension="time" select="Tau/tau"/> |
|---|
| 330 | |
|---|
| 331 | <DerivedVariable name="fcond" exposure="fcond" dimension="none" value="m^instances"/> |
|---|
| 332 | |
|---|
| 333 | <TimeDerivative variable="m" value="(minf - m) / tau"/> --> |
|---|
| 334 | |
|---|
| 335 | |
|---|
| 336 | <!-- note that '/' is part of a path, or a division operator depending on context |
|---|
| 337 | |
|---|
| 338 | </Behavior> |
|---|
| 339 | </ComponentType>--> |
|---|
| 340 | |
|---|
| 341 | <!-- |
|---|
| 342 | <ComponentType name="hillTau" extends="Tau_t"> |
|---|
| 343 | <Parameter name="C" dimension="time"/> |
|---|
| 344 | <Parameter name="a" dimension="none"/> |
|---|
| 345 | <Parameter name="b" dimension="none"/> |
|---|
| 346 | <Parameter name="vs1" dimension="voltage"/> |
|---|
| 347 | <Parameter name="vs2" dimension="voltage"/> |
|---|
| 348 | <Requirement name="v" dimension="voltage"/> |
|---|
| 349 | <Behavior> |
|---|
| 350 | <DerivedVariable name="tau" exposure="tau" dimension="time" value="C / (exp(a + v/vs1) + exp(b + v/vs2))"/> |
|---|
| 351 | </Behavior> |
|---|
| 352 | </ComponentType> |
|---|
| 353 | |
|---|
| 354 | <ComponentType name="hillInf" extends="Inf_t"> |
|---|
| 355 | <Parameter name="threshold" dimension="voltage"/> |
|---|
| 356 | <Parameter name="vscale" dimension="voltage"/> |
|---|
| 357 | <Requirement name="v" dimension="voltage"/> |
|---|
| 358 | |
|---|
| 359 | <Behavior> |
|---|
| 360 | <DerivedVariable name="inf" exposure="minf" dimension="none" value="1 / (1 + exp((v - threshold)/vscale))"/> |
|---|
| 361 | </Behavior> |
|---|
| 362 | </ComponentType>--> |
|---|
| 363 | |
|---|
| 364 | |
|---|
| 365 | |
|---|
| 366 | |
|---|
| 367 | <ComponentType name="baseIonChannel" |
|---|
| 368 | description="Base for all ion channel ComponentTypes"> |
|---|
| 369 | <Parameter name="conductance" dimension="conductance"/> |
|---|
| 370 | <Exposure name="g" dimension="conductance"/> |
|---|
| 371 | <Exposure name="fopen" dimension="none"/> |
|---|
| 372 | <Requirement name="v" dimension="voltage"/> |
|---|
| 373 | |
|---|
| 374 | </ComponentType> |
|---|
| 375 | |
|---|
| 376 | <ComponentType name="ionChannel" |
|---|
| 377 | extends="baseIonChannel" |
|---|
| 378 | description="Temporary ComponentTypes extending _baseIonChannel_. This is needed since many existing examples use the name ionChannel. Should be removed."> |
|---|
| 379 | |
|---|
| 380 | </ComponentType> |
|---|
| 381 | |
|---|
| 382 | <ComponentType name="ionChannelPassive" |
|---|
| 383 | extends="ionChannel" |
|---|
| 384 | description="Simple passive ion channel where the constant conductance through the channel is equal to _conductance"> |
|---|
| 385 | <Child name="notes" type="notes"/> |
|---|
| 386 | <Text name="neuroLexId"/> |
|---|
| 387 | |
|---|
| 388 | <Behavior> |
|---|
| 389 | <DerivedVariable name="fopen" exposure="fopen" value="1" dimension="none"/> |
|---|
| 390 | <DerivedVariable name="g" exposure="g" value="conductance" dimension="conductance"/> |
|---|
| 391 | </Behavior> |
|---|
| 392 | </ComponentType> |
|---|
| 393 | |
|---|
| 394 | <!--<ComponentType name="parameter"> |
|---|
| 395 | <Parameter name="value" dimension="none"/> |
|---|
| 396 | </ComponentType>--> |
|---|
| 397 | |
|---|
| 398 | <ComponentType name="ionChannelHH" |
|---|
| 399 | extends="ionChannel" |
|---|
| 400 | description="Ion channel according to the Hodgkin Huxley formalism, with a number of gates (of type _gateHH_)"> |
|---|
| 401 | <Child name="notes" type="notes"/> |
|---|
| 402 | <Child name="conductanceScaling" type="baseConductanceScaling"/> |
|---|
| 403 | <!--<Children name="parameters" type="parameter"/>--> |
|---|
| 404 | <Children name="gates" type="gateHH"/> |
|---|
| 405 | <Requirement name="temperature" dimension="temperature"/> |
|---|
| 406 | <Text name="neuroLexId"/> |
|---|
| 407 | <Text name="species"/> |
|---|
| 408 | |
|---|
| 409 | <Behavior> |
|---|
| 410 | <DerivedVariable name="conductanceScale" dimension="none" select="conductanceScaling/factor" onAbsent="1"/> |
|---|
| 411 | <DerivedVariable name="fopenUnscaled" dimension="none" select="gates[*]/fcond" reduce="multiply"/> |
|---|
| 412 | <DerivedVariable name="fopen" exposure="fopen" dimension="none" value="conductanceScale * fopenUnscaled"/> |
|---|
| 413 | <DerivedVariable name="g" exposure="g" value="conductance * fopen" dimension="conductance"/> |
|---|
| 414 | </Behavior> |
|---|
| 415 | </ComponentType> |
|---|
| 416 | |
|---|
| 417 | |
|---|
| 418 | |
|---|
| 419 | <ComponentType name="KSState" |
|---|
| 420 | description="One of the states in which a _gateKS_ can be. The rates of transitions between these states are given by _KSTransition_s"> |
|---|
| 421 | <Parameter name="relativeConductance" dimension="none"/> |
|---|
| 422 | <Child name="notes" type="notes"/> |
|---|
| 423 | <Exposure name="occupancy" dimension="none"/> |
|---|
| 424 | <Exposure name="q" dimension="none"/> |
|---|
| 425 | |
|---|
| 426 | <Behavior> |
|---|
| 427 | <StateVariable name="occupancy" exposure="occupancy" dimension="none"/> |
|---|
| 428 | <DerivedVariable name="q" dimension="none" exposure="q" value="relativeConductance * occupancy"/> |
|---|
| 429 | </Behavior> |
|---|
| 430 | </ComponentType> |
|---|
| 431 | |
|---|
| 432 | <ComponentType name="closedState" |
|---|
| 433 | extends="KSState" |
|---|
| 434 | description="A _KSState_ with _relativeConductance of 0"> |
|---|
| 435 | <Fixed parameter="relativeConductance" value="0"/> |
|---|
| 436 | </ComponentType> |
|---|
| 437 | |
|---|
| 438 | |
|---|
| 439 | <ComponentType name="openState" |
|---|
| 440 | extends="KSState" |
|---|
| 441 | description="A _KSState_ with _relativeConductance of 1"> |
|---|
| 442 | <Fixed parameter="relativeConductance" value="1"/> |
|---|
| 443 | </ComponentType> |
|---|
| 444 | |
|---|
| 445 | |
|---|
| 446 | <ComponentType name="ionChannelKS" |
|---|
| 447 | extends="ionChannel" |
|---|
| 448 | description="A kinetic scheme based ion channel with multiple _gateKS_s, each of which consists of multiple _KSState_s and _KSTransition_s giving the rates of transition between them"> |
|---|
| 449 | <Parameter name="conductance" dimension="conductance"/> |
|---|
| 450 | <Children name="gates" type="gateKS"/> |
|---|
| 451 | |
|---|
| 452 | <Text name="species"/> |
|---|
| 453 | |
|---|
| 454 | <Behavior> |
|---|
| 455 | <DerivedVariable name="fopen" exposure="fopen" dimension="none" select="gates[*]/fcond" reduce="multiply"/> |
|---|
| 456 | <DerivedVariable name="g" exposure="g" dimension="conductance" value="fopen * conductance"/> |
|---|
| 457 | |
|---|
| 458 | </Behavior> |
|---|
| 459 | </ComponentType> |
|---|
| 460 | |
|---|
| 461 | |
|---|
| 462 | |
|---|
| 463 | <ComponentType name="KSTransition" description="Specified the forward and reverse rates of transition between two _KSState_s in a _gateKS_"> |
|---|
| 464 | <Link name="from" type="KSState"/> |
|---|
| 465 | <Link name="to" type="KSState"/> |
|---|
| 466 | <Exposure name="rf" dimension="per_time"/> |
|---|
| 467 | <Exposure name="rr" dimension="per_time"/> |
|---|
| 468 | |
|---|
| 469 | </ComponentType> |
|---|
| 470 | |
|---|
| 471 | |
|---|
| 472 | <ComponentType name="forwardTransition" |
|---|
| 473 | extends="KSTransition" |
|---|
| 474 | description="A forward only _KSTransition_ for a _gateKS_ which specifies a _rate (type _baseHHRate_) which follows one of the standard Hodgkin Huxley forms (e.g. _HHExpRate_, _HHSigmoidRate_, _HHExpLinearRate_"> |
|---|
| 475 | |
|---|
| 476 | <Child name="rate" type="baseHHRate"/> |
|---|
| 477 | |
|---|
| 478 | <Behavior> |
|---|
| 479 | <DerivedVariable name="rf0" dimension="per_time" select="rate/r"/> |
|---|
| 480 | <DerivedVariable name="rf" exposure="rf" dimension="per_time" value="rf0"/> |
|---|
| 481 | <DerivedVariable name="rr" exposure="rr" dimension="per_time" value="0"/> |
|---|
| 482 | </Behavior> |
|---|
| 483 | |
|---|
| 484 | </ComponentType> |
|---|
| 485 | |
|---|
| 486 | <ComponentType name="reverseTransition" |
|---|
| 487 | extends="KSTransition" |
|---|
| 488 | description="A reverse only _KSTransition_ for a _gateKS_ which specifies a _rate (type _baseHHRate_) which follows one of the standard Hodgkin Huxley forms (e.g. _HHExpRate_, _HHSigmoidRate_, _HHExpLinearRate_"> |
|---|
| 489 | |
|---|
| 490 | <Child name="rate" type="baseHHRate"/> |
|---|
| 491 | |
|---|
| 492 | <Behavior> |
|---|
| 493 | <DerivedVariable name="rr0" dimension="per_time" select="rate/r"/> |
|---|
| 494 | <DerivedVariable name="rr" exposure="rr" dimension="per_time" value="rr0"/> |
|---|
| 495 | <DerivedVariable name="rf" exposure="rf" dimension="per_time" value="0"/> |
|---|
| 496 | </Behavior> |
|---|
| 497 | </ComponentType> |
|---|
| 498 | |
|---|
| 499 | |
|---|
| 500 | <ComponentType name="vHalfTransition" |
|---|
| 501 | extends="KSTransition" |
|---|
| 502 | description="Transition which specifies both the forward and reverse rates of transition"> |
|---|
| 503 | <Parameter name="vHalf" dimension="voltage"/> |
|---|
| 504 | <Parameter name="z" dimension="none"/> |
|---|
| 505 | <Parameter name="gamma" dimension="none"/> |
|---|
| 506 | <Parameter name="tau" dimension="time"/> |
|---|
| 507 | <Parameter name="tauMin" dimension="time"/> |
|---|
| 508 | <Constant name="kte" dimension="voltage" value="25.3mV"/> |
|---|
| 509 | <Requirement name="v" dimension="voltage"/> |
|---|
| 510 | |
|---|
| 511 | <Behavior> |
|---|
| 512 | |
|---|
| 513 | <DerivedVariable name="rf0" dimension="per_time" value="exp(z * gamma * (v - vHalf) / kte) / tau"/> |
|---|
| 514 | <DerivedVariable name="rr0" dimension="per_time" value="exp(-z * (1 - gamma) * (v - vHalf) / kte) / tau"/> |
|---|
| 515 | <DerivedVariable name="rf" exposure="rf" dimension="per_time" value="1 / (1/rf0 + tauMin)"/> |
|---|
| 516 | <DerivedVariable name="rr" exposure="rr" dimension="per_time" value="1 / (1/rr0 + tauMin)"/> |
|---|
| 517 | </Behavior> |
|---|
| 518 | </ComponentType> |
|---|
| 519 | |
|---|
| 520 | |
|---|
| 521 | |
|---|
| 522 | <ComponentType name="gateKS" |
|---|
| 523 | extends="baseGate" |
|---|
| 524 | description="A gate which consists of multiple _KSState_s and _KSTransition_s giving the rates of transition between them"> |
|---|
| 525 | <Parameter name="deltaV" dimension="voltage"/> |
|---|
| 526 | <Children name="states" type="KSState"/> |
|---|
| 527 | <Children name="transitions" type="KSTransition"/> |
|---|
| 528 | <Exposure name="qq" dimension="none"/> |
|---|
| 529 | |
|---|
| 530 | <Behavior> |
|---|
| 531 | |
|---|
| 532 | <DerivedVariable name="q" exposure="q" dimension="none" select="states[*]/q" reduce="add"/> |
|---|
| 533 | <DerivedVariable name="fopen" exposure="fcond" dimension="none" value="q^instances"/> |
|---|
| 534 | <DerivedVariable name="qq" exposure="qq" dimension="none" value="q"/> |
|---|
| 535 | |
|---|
| 536 | <KineticScheme name="ks"> |
|---|
| 537 | <Nodes children="states" variable="occupancy"/> |
|---|
| 538 | <Edges children="transitions" sourceNodeName="from" targetNodeName="to" forwardRate="rf" reverseRate="rr"/> |
|---|
| 539 | <Tabulable variable="v" increment="deltaV"/> |
|---|
| 540 | </KineticScheme> |
|---|
| 541 | |
|---|
| 542 | </Behavior> |
|---|
| 543 | |
|---|
| 544 | </ComponentType> |
|---|
| 545 | |
|---|
| 546 | |
|---|
| 547 | |
|---|
| 548 | </Lems> |
|---|
| 549 | |
|---|