|
Converting the file: ChannelML_v1.8.1.xsd
<?xml version="1.0" encoding="UTF-8"?>
<rng:grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns="http://morphml.org/channelml/schema" xmlns:meta="http://morphml.org/metadata/schema" xmlns:bio="http://morphml.org/biophysics/schema" ns="http://morphml.org/channelml/schema" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<!--
This file specifies the form of ChannelML compliant files
This file has been developed as part of the neuroConstruct and NeuroML initiatives
Authors: Padraig Gleeson, Michael Hines
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-->
<rng:include href="../Level1/Metadata_v1.8.1.rng" ns="http://morphml.org/metadata/schema"/>
<rng:include href="Biophysics_v1.8.1.rng" ns="http://morphml.org/biophysics/schema"/>
<a:documentation>
Definition of the elements needed for specifying electrophysiological
cellular mechanisms. Voltage/concentration dependent channels can be
specified, but also activity dependent ion concentrations (e.g. decaying calcium pools)
and synaptic mechanisms.
The mechanisms which can be specified by this schema can be mapped on into the scripting
languages of a number of common simulation platforms, e.g. NEURON, GENESIS. This mapping
can be done a number of XML based ways, but XSL mappings are included with the
NeuroMLValidator code.
The elements outlined below are linked together with with those in MorphML.xsd
and Biophysics.xsd in the NeuroML.xsd file to make Level 2 compliant NeuroML files
</a:documentation>
<rng:start combine="choice">
<rng:ref name="channelml"/>
</rng:start>
<rng:define combine="choice" name="channelml">
<rng:element name="channelml">
<rng:ref name="ChannelML"/>
<a:documentation>
The root element of any ChannelML file. Note this element will only be present in a standalone ChannelML file.
For files covering many levels, neuroml will be the root element
</a:documentation>
</rng:element>
</rng:define>
<rng:define combine="choice" name="ChannelML">
<a:documentation>
Root element containing the ions used in the mechanism, the unit system of the
file (as attribute), and information on channels and/or ion concentration dynamics. Normally only the ion element and
one of channel_type, synapse_type or ion_concentration should be present.
</a:documentation>
<rng:ref name="metadata"/>
<rng:zeroOrMore>
<rng:element name="ion">
<rng:ref name="Deprecated_Ion"/>
<a:documentation>
One or more ions which play some role in the mechanism, e.g. transmitted by the channel, alters the rate, etc. Note: deprecated since v1.7.3
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:element name="channel_type">
<rng:ref name="ChannelType"/>
<a:documentation>
Specification of a voltage or ligand gated membrane conductance mechanism
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:element name="synapse_type">
<rng:ref name="SynapseType"/>
<a:documentation>
Specification of a synaptic conductance, triggered by a presynaptic event
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:element name="ion_concentration">
<rng:ref name="IonConcentration"/>
<a:documentation>
Specification of how an ion concentration alters with time, e.g. calcium dynamics. This may influence other
channels (e.g. Ca dependent K channels), and other mechanisms may have a contribution to the concentration of the ion specified here
(e.g. a channel transmitting calcium).
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:attribute name="units">
<rng:ref name="Units"/>
<a:documentation>
Unit system of all quantities. Only SI or Physiological units are allowed!
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Parameters">
<a:documentation>
Fixed value parameters which can be used in generic expressions
</a:documentation>
<rng:oneOrMore>
<rng:element name="parameter">
<rng:ref name="Parameter"/>
</rng:element>
</rng:oneOrMore>
</rng:define>
<rng:define combine="choice" name="Parameter">
<a:documentation>
A single parameter which can be used in generic expressions
</a:documentation>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
A unique name for the parameter
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="value">
<rng:data type="double">
<a:documentation>
The default value for the parameter
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="ChannelType">
<a:documentation>
Definition of a voltage/concentration dependent cell membrane conductance
</a:documentation>
<rng:optional>
<rng:element name="status">
<rng:ref name="Status"/>
<a:documentation>
Status of the channel specification: stable, in progress, etc.
</a:documentation>
</rng:element>
</rng:optional>
<rng:ref name="metadata"/>
<a:documentation>
Some metadata (notes, etc.) to describe the conductance.
</a:documentation>
<rng:ref name="referencedata"/>
<rng:optional>
<rng:element name="parameters">
<rng:ref name="Parameters"/>
<a:documentation>
Fixed value parameters which can be used in generic expressions
</a:documentation>
</rng:element>
</rng:optional>
<rng:element name="current_voltage_relation">
<rng:ref name="CurrentVoltageRelation"/>
<a:documentation>
The specification of how the current flow etc. into the cell relates to the membrane potential
difference (e.g. Ohmic relationship)
</a:documentation>
</rng:element>
<rng:zeroOrMore>
<rng:element name="hh_gate">
<rng:ref name="Deprecated_HHGate"/>
<a:documentation>
Channel specification based on the Hodgkin Huxley formalism. Deprecated! Will be removed in v2.0
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:element name="ks_gate">
<rng:ref name="Deprecated_KSGate"/>
<a:documentation>
Channel specification based on a kinetic scheme formalism. Deprecated! Will be removed in v2.0
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:optional>
<rng:element name="impl_prefs">
<rng:ref name="ImplementationPrefs"/>
<a:documentation>
Optional recommended values, e.g. for size of tables, when creating an implementation of the
channel mechanism on a specific simulator
</a:documentation>
</rng:element>
</rng:optional>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
A unique name for the channel mechanism
</a:documentation>
</rng:data>
</rng:attribute>
<rng:optional>
<a:documentation>
default value is : yes</a:documentation>
<rng:attribute name="density">
<rng:ref name="YesNo"/>
<a:documentation>
Is this a specification of conductance per unit area? Note: almost all channel mechanisms to far have been density mechanisms.
This attribute is subject to change when use of ChannelML for single channel conductances is supported.
</a:documentation>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="SynapseType">
<a:documentation>
Definition of a synaptic mechanism
</a:documentation>
<rng:optional>
<rng:element name="status">
<rng:ref name="Status"/>
<a:documentation>
Status of the synapse specification: stable, in progress, etc.
</a:documentation>
</rng:element>
</rng:optional>
<rng:ref name="metadata"/>
<a:documentation>
Some metadata (notes, etc.) to describe the synapse.
</a:documentation>
<rng:ref name="referencedata"/>
<rng:choice>
<a:documentation>
Choice of electrical synapse, or a number of chemical synaptic transmission mechanism
</a:documentation>
<rng:element name="electrical_syn">
<rng:ref name="ElectricalSynapse"/>
<a:documentation>
Electrical synaptic coupling as at a gap junction
</a:documentation>
</rng:element>
<rng:element name="doub_exp_syn">
<rng:ref name="DoubleExponentialSynapse"/>
<a:documentation>
Synaptic conductance with rise time and decay time
</a:documentation>
</rng:element>
<rng:element name="blocking_syn">
<rng:ref name="BlockingSynapse"/>
<a:documentation>
For example NMDA receptor synapses
</a:documentation>
</rng:element>
<rng:element name="multi_decay_syn">
<rng:ref name="MultiDecaySynapse"/>
<a:documentation>
An extension incorporating multiple decay time courses
</a:documentation>
</rng:element>
<rng:element name="fac_dep_syn">
<rng:ref name="FacDepSynapse"/>
<a:documentation>
A facilitating and depressing synaptic mechanism
</a:documentation>
</rng:element>
<rng:element name="stdp_syn">
<rng:ref name="StdpSynapse"/>
<a:documentation>
A synaptic mechanism implementing basic Spike Timing Dependent Plasticity based on Song and Abbott, 2001
</a:documentation>
</rng:element>
</rng:choice>
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="ElectricalSynapse">
<a:documentation>
Electrical synaptic coupling as at a gap junction. A simple model with just a parameter for the (2 way) conductance
</a:documentation>
<rng:ref name="metadata"/>
<rng:attribute name="conductance">
<rng:ref name="ConductanceValue"/>
<a:documentation>
The conductance of the electrical connection
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="DoubleExponentialSynapse">
<a:documentation>
A basic synaptic mechanism with a double exponential conductance time course. This mechanism maps
easily on to mechanisms in both NEURON (Exp2Syn) and GENESIS (synchan)
</a:documentation>
<rng:ref name="metadata"/>
<rng:attribute name="max_conductance">
<rng:ref name="ConductanceValue"/>
<a:documentation>
The maximum conductance of the channel
</a:documentation>
</rng:attribute>
<rng:attribute name="rise_time">
<rng:ref name="TimeConstantValueIncZero"/>
<a:documentation>
The characteristic rise time of the conductance waveform
</a:documentation>
</rng:attribute>
<rng:attribute name="decay_time">
<rng:ref name="TimeConstantValue"/>
<a:documentation>
The characteristic decay time of the conductance waveform
</a:documentation>
</rng:attribute>
<rng:attribute name="reversal_potential">
<rng:ref name="VoltageValue"/>
<a:documentation>
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">V</meta:units>
The reversal potential of the synapse, which (along with the membrane potential) will determine the current passing through the synapse when the conductance is non zero
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="BlockingSynapse">
<a:documentation>
A synaptic mechanism whose conductance can be blocked by the presence of a specific species (ion/molecule). Based on the
mechanism for blocking of an NMDA receptor by Mg as outlined in Gabbiani et al, 1994, Maex DeSchutter 1998
</a:documentation>
<rng:ref name="DoubleExponentialSynapse"/>
<rng:element name="block">
<rng:ref name="Block"/>
</rng:element>
</rng:define>
<rng:define combine="choice" name="Block">
<a:documentation>
Specification for the influence of a blocking species on the conductance of a BlockingSynapse. Based on the
mechanism for blocking of an NMDA receptor by Mg as outlined in Gabbiani et al, 1994, Maex DeSchutter 1998
</a:documentation>
<rng:attribute name="species">
<rng:data type="string">
<a:documentation>
Name of species. For ions use lowercase, e.g. mg
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="conc">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
Concentration of species. Multiplicative factor for total conductance: 1/(1 + eta * [conc] * exp(-1* gamma * V))
</a:documentation>
</rng:attribute>
<rng:attribute name="eta">
<rng:data type="double">
<a:documentation>
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">mM^-1</meta:units>
Used in multiplicative factor for total conductance: 1/(1 + eta * [conc] * exp(-1* gamma * V))
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="gamma">
<rng:data type="double">
<a:documentation>
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">V^-1</meta:units>
Used in multiplicative factor for total conductance: 1/(1 + eta * [conc] * exp(-1* gamma * V))
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="MultiDecaySynapse">
<a:documentation>
A more complex synaptic mechanism featuring up to 4 exponential components (1 rise and 3 decay).
Currently there is only an implementation of this in a NEURON mod file. Attributed added can be gmax_2, tau_decay_2, gmax_3 and tau_decay_3.
The overall conductance is effectively a linear sum of 3 independent conductances, all with the same rise time and different decays.
Note that the gmaxes are specific for each conductance and scaling is calculated for each individually, so the maximum total conductance (gmax + gmax_2 + gmax_3)
will only be reached when tau_decay = tau_decay_2 = tau_decay_3, otherwise peaks will not overlap.
</a:documentation>
<rng:ref name="DoubleExponentialSynapse"/>
<a:documentation>
Extends DoubleExponentialSynapse
</a:documentation>
<a:documentation>
The maximum conductance and decay constant of the 2nd (normally slower) component of the synaptic conductance
</a:documentation>
<a:documentation>
The maximum conductance and decay constant of the 3nd (normally slower) component of the synaptic conductance.
Note that either both attributes or neither should be present. Unfortunately attributeGroups can't be made optional...
</a:documentation>
</rng:define>
<a:documentation>
The maximum conductance and decay constant of the 2nd (normally slower) component of the synaptic conductance.
Note that either both attributes or neither should be present. Unfortunately attributeGroups can't be made optional...
</a:documentation>
<rng:optional>
<rng:attribute name="max_conductance_2">
<rng:ref name="ConductanceValue"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="decay_time_2">
<rng:ref name="TimeConstantValue"/>
</rng:attribute>
</rng:optional>
<a:documentation>
The maximum conductance and decay constant of the 3nd (normally slower) component of the synaptic conductance.
Note that either both attributes or neither should be present. Unfortunately attributeGroups can't be made optional...
</a:documentation>
<rng:optional>
<rng:attribute name="max_conductance_3">
<rng:ref name="ConductanceValue"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="decay_time_3">
<rng:ref name="TimeConstantValue"/>
</rng:attribute>
</rng:optional>
<rng:define combine="choice" name="FacDepSynapse">
<a:documentation>
A synaptic type with facilitating and depressing amplitude.
</a:documentation>
<rng:ref name="MultiDecaySynapse"/>
<a:documentation>
Extends MultiDecaySynapse
</a:documentation>
<rng:element name="plasticity">
<rng:ref name="FacDep"/>
</rng:element>
</rng:define>
<rng:define combine="choice" name="StdpSynapse">
<a:documentation>
A synaptic mechanism implementing basic Spike Timing Dependent Plasticity based on Song and Abbott, 2001
</a:documentation>
<rng:ref name="MultiDecaySynapse"/>
<a:documentation>
Extends MultiDecaySynapse
</a:documentation>
<rng:element name="spike_time_dep">
<rng:ref name="StdpDep"/>
</rng:element>
</rng:define>
<rng:define combine="choice" name="FacDep">
<a:documentation>
Facilitating and depressing synaptic parameters. See mapping to NEURON mod file for implementation details.
</a:documentation>
<rng:attribute name="init_release_prob">
<rng:data type="double"/>
</rng:attribute>
<rng:attribute name="tau_rec">
<rng:ref name="TimeConstantValueIncZero"/>
</rng:attribute>
<rng:attribute name="tau_fac">
<rng:ref name="TimeConstantValueIncZero"/>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="StdpDep">
<a:documentation>
A synaptic mechanism implementing basic Spike Timing Dependent Plasticity based on Song and Abbott, 2001. See mapping to NEURON mod file for implementation details.
</a:documentation>
<rng:attribute name="tau_ltp">
<rng:ref name="TimeConstantValue"/>
</rng:attribute>
<rng:attribute name="del_weight_ltp">
<rng:data type="double"/>
</rng:attribute>
<rng:attribute name="tau_ltd">
<rng:ref name="TimeConstantValue"/>
</rng:attribute>
<rng:attribute name="del_weight_ltd">
<rng:data type="double"/>
</rng:attribute>
<rng:attribute name="max_syn_weight">
<rng:data type="double"/>
</rng:attribute>
<rng:attribute name="post_spike_thresh">
<rng:ref name="VoltageValue"/>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="CurrentVoltageRelation">
<a:documentation>
How the current through the channel depends on the conductance of the channel.
Only ohmic and integrate_and_fire supported at the moment
</a:documentation>
<rng:optional>
<rng:element name="ohmic">
<rng:ref name="Deprecated_Ohmic"/>
<a:documentation>
Deprecated since v1.7.3. Use attribute cond_law and gate elements below this element instead.
</a:documentation>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="integrate_and_fire">
<rng:ref name="IntegrateAndFire"/>
<a:documentation>
Note: use attribute cond_law="integrate_and_fire" and no other attributes here when using this.
Signifies a current which will cause the cell to behave like an integrate and fire neuron
</a:documentation>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="conc_dependence">
<rng:ref name="ConcDependence"/>
<a:documentation>
Preferred location of conc_dependence since v1.7.3.
</a:documentation>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="conc_factor">
<rng:ref name="ConcFactor"/>
<a:documentation>
Preferred location of conc_factor since v1.7.3.
</a:documentation>
</rng:element>
</rng:optional>
<rng:zeroOrMore>
<rng:element name="q10_settings">
<rng:ref name="Q10Settings"/>
<a:documentation>
Preferred location of Q10 information since v1.7.3.
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:optional>
<rng:element name="offset">
<rng:ref name="Offset"/>
<a:documentation>
Preferred location of offset information since v1.7.3.
</a:documentation>
</rng:element>
</rng:optional>
<rng:zeroOrMore>
<rng:element name="gate">
<rng:ref name="GatingComplex"/>
<a:documentation>
Preferred way of expressing gating complexes since v1.7.3.
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<!-- <xs:attribute name="name" type="xs:string"/> removed in v1.7.3 -->
<rng:optional>
<rng:attribute name="cond_law">
<rng:ref name="ConductanceLaw"/>
<a:documentation>
Introduced in v1.7.3 for new format ChannelML. Specifies which type of conductance law to use: ohmic, etc.
</a:documentation>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="ion">
<rng:data type="string">
<a:documentation>
Introduced in v1.7.3 for new format ChannelML. The ion which will flow due to the conductance. Note this should be already declared in an Ion element at the beginning of the file.
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="default_gmax">
<rng:ref name="ConductanceDensityValue"/>
<a:documentation>
Introduced in v1.7.3 for new format ChannelML. Maximum conductance density of channel. Note this will normally be reset when the channel mechanism is placed on a cell, but it it
useful to have a default value here.
</a:documentation>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="default_erev">
<rng:ref name="VoltageValue"/>
<a:documentation>
Most implementations of these channel mechanisms (e.g. a mod file) will need a value for the
reversal potential for the ion which flows through the channel. However, this is a property of the cell, as opposed to the channel.
For convenience though, a typical value can be used here, so a pretty self contained script can be produced, but when used in a real cell the
actual value for erev must be calculated
</a:documentation>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="charge">
<rng:data type="positiveInteger">
<a:documentation>
Electrical charge of the ion in question
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<rng:optional>
<a:documentation>
default value is : no</a:documentation>
<rng:attribute name="fixed_erev">
<rng:ref name="YesNo"/>
<a:documentation>
Flags whether the reversal potential can be influenced from outside the channel (value = no; default)
as is normally the case (e.g. a Ca channel whose reversal potential is influenced by a decaying calcium pool), or
whether the rev pot remains fixed (just for this channel) at default_erev (value = yes)
</a:documentation>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="ConductanceLaw">
<a:documentation>
Introduced in v1.7.3 for new format ChannelML. Specifies which type of conductance law to use: ohmic, etc.
</a:documentation>
<rng:choice>
<rng:value>ohmic</rng:value>
<a:documentation>
Current is given by membrane potential times conductance (Ohm's law)
</a:documentation>
<rng:value>integrate_and_fire</rng:value>
<a:documentation>
Signifies a current which will cause the cell to behave like an integrate and fire neuron.
</a:documentation>
</rng:choice>
</rng:define>
<rng:define combine="choice" name="IntegrateAndFire">
<a:documentation>
Signifies a current which will cause the cell to behave like an integrate and fire neuron. There are many ways to describe an
Integrate and Fire mechanism, this one is based on the implementation in NEURON of the COBA IandF cell as described in Brette et al (2007)
</a:documentation>
<rng:attribute name="threshold">
<rng:ref name="VoltageValue"/>
<a:documentation>Voltage at which the mechanism causes the segment/cell to fire, i.e. membrane potential will be reset to v_reset</a:documentation>
</rng:attribute>
<rng:attribute name="t_refrac">
<rng:ref name="TimeValue"/>
<a:documentation>Time after a spike during which the segment will be clamped to v_reset (clamping current given by i = g_refrac*(v - v_reset))</a:documentation>
</rng:attribute>
<rng:attribute name="v_reset">
<rng:ref name="VoltageValue"/>
<a:documentation>Membrane potential is reset to this after spiking</a:documentation>
</rng:attribute>
<rng:attribute name="g_refrac">
<rng:ref name="ConductanceValue"/>
<a:documentation>Conductance during the period t_refrac after a spike, when the current due to this mechanism is given by i = g_refrac*(v - v_reset), therefore a high value for g_refrac, e.g. 100 microsiemens, will effectively clamp the cell at v_reset</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_Ohmic">
<a:documentation>
Signifies an ohmic relation; the current is proportional to the potential difference across the channel. Deprecated! Will be removed in v2.0
</a:documentation>
<rng:element name="conductance">
<a:documentation>
Description of the conductance including maximum conductance density and possible (voltage and/or concentration dependent) gating mechanisms
</a:documentation>
<rng:ref name="metadata"/>
<rng:optional>
<rng:element name="rate_adjustments">
<rng:ref name="RateAdjustments"/>
<a:documentation>Adjustments, e.g. temperature dependence, to apply to the gating mechanisms</a:documentation>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="conc_factor">
<rng:ref name="ConcFactor"/>
</rng:element>
</rng:optional>
<rng:zeroOrMore>
<rng:element name="gate">
<rng:ref name="Gate"/>
<a:documentation>
Voltage/concentration dependent gate
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:attribute name="default_gmax">
<rng:ref name="ConductanceDensityValue"/>
<a:documentation>Maximum conductance density of channel</a:documentation>
</rng:attribute>
</rng:element>
<rng:optional>
<rng:attribute name="ion">
<rng:data type="string">
<a:documentation>
The ion which will flow due to the conductance. Note this should be already declared in an Ion element at the beginning of the file.
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="ImplementationPrefs">
<a:documentation>
These items ideally shouldn't be in a specification which deals with
a description of the physiology of the channel. However, some channels won't be properly
implemented in the scripting mechanism of given simulator using the standard mappings
unless these factors are taken into account, e.g. if the rate equations change rapidly,
but the default table size isn't large enough.
</a:documentation>
<rng:optional>
<rng:element name="comment">
<rng:data type="string">
<a:documentation>
Comment element to give explination for the implementation preferences. Having a dedicated element as opposed to a <-- comment --> allows the comment to be repeated in the script file impl.
</a:documentation>
</rng:data>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="table_settings">
<a:documentation>
Preferences for the table of values for the rate equations, e.g. used in the TABLE statement in NMODL, or in tabchannel GENESIS objects
</a:documentation>
<a:documentation>
default value is : 70</a:documentation>
<rng:attribute name="max_v">
<rng:data type="double">
<a:documentation>
The maximum potential from which to calculate the tables of rate values
</a:documentation>
</rng:data>
</rng:attribute>
<a:documentation>
default value is : -100</a:documentation>
<rng:attribute name="min_v">
<rng:data type="double">
<a:documentation>
The minimum potential from which to calculate the tables of rate values
</a:documentation>
</rng:data>
</rng:attribute>
<a:documentation>
default value is : 200</a:documentation>
<rng:attribute name="table_divisions">
<rng:data type="positiveInteger">
<a:documentation>
The number of divisions in the table
</a:documentation>
</rng:data>
</rng:attribute>
</rng:element>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="RateAdjustments">
<a:documentation>
Adjustments necessary to all the rate equations, e.g
temperature dependencies, voltage offsets introduced when moving
between species, etc. See the XSL mappings for more information on the
meaning of these adjustments.
</a:documentation>
<rng:zeroOrMore>
<rng:element name="q10_settings">
<rng:ref name="Q10Settings"/>
</rng:element>
</rng:zeroOrMore>
<rng:optional>
<rng:element name="offset">
<rng:ref name="Offset"/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="Offset">
<rng:attribute name="value">
<rng:ref name="VoltageValue"/>
<a:documentation>
Offset introduced to alter voltage dependence of
rate equations, see NEURON/GENESIS mappings for details
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Q10Settings">
<a:documentation>
Q10 scaling affects the tau in the rate equations. It allows rate equations determined at one temperature to be used at a different temperature.
If tauExp is the experimentally measured tau, the rate at temperature T is given by tau(T) = tauExp / q10_factor ^ ((T - experimental_temp)/10). NOTE: if fixed_q10 is specified
the expression will be tau(T) = tauExp / fixed_q10, and the experimental_temp can be used to check that a simulation is running
at the desired temperature.
</a:documentation>
<rng:optional>
<rng:attribute name="gate">
<rng:data type="string">
<a:documentation>
The gate to which the Q10 adjustment should be applied. If this attribute is not present, assume the adjustment applies at all gates.
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fixed_q10">
<rng:data type="double">
<a:documentation>
Q10 factor if the cell is to be run at a different temp than that at which
the alpha and beta were determined. Only one of fixed_q10 or q10_factor should be specified!
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="q10_factor">
<rng:data type="double">
<a:documentation>
Q10 factor if the cell is to be run at a different temp than that at which
the alpha and beta were determined. Only one of fixed_q10 or q10_factor should be specified!
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<rng:attribute name="experimental_temp">
<rng:ref name="TemperatureValue"/>
<a:documentation>
The experimental temperature at which alpha and beta rate
equations were determined were measured
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_Ion">
<a:documentation>
Definition of an ion which is involved in this channel mechanism. Note: deprecated since v1.7.3
</a:documentation>
<rng:ref name="metadata"/>
<a:documentation>
Some metadata (notes, etc.) to describe the conductance.
</a:documentation>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
Simple name for the ion. Due to the conventions used in NEURON, it is usually best to use
the lower case form of the chemical symbol, e.g. na, ca, k
</a:documentation>
</rng:data>
</rng:attribute>
<rng:optional>
<rng:attribute name="default_erev">
<rng:ref name="VoltageValue"/>
<a:documentation>
Most implementations of these channel mechanisms (e.g. a mod file) will need a value for the
reversal potential for the ion which flows through the channel. However, this is a property of the cell, as opposed to the channel.
For convenience though, a typical value can be used here, so a pretty self contained script can be produced, but when used in a real cell the
actual value for erev must be calculated
</a:documentation>
</rng:attribute>
</rng:optional>
<rng:attribute name="charge">
<rng:data type="positiveInteger">
<a:documentation>
Electrical charge of the ion in question
</a:documentation>
</rng:data>
</rng:attribute>
<rng:optional>
<a:documentation>
default value is : PermeatedSubstance</a:documentation>
<rng:attribute name="role">
<rng:ref name="Deprecated_IonRole"/>
<a:documentation>
What role the ion plays in the dynamics of the channel/cell mechanism
</a:documentation>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="Deprecated_IonRole">
<a:documentation>
Role ion plays in cellular mechanism, e.g. ion passes through the channel (Na, K), or the
concentration of the ion is a factor in the rate equations of gating, or the mechanism alters
the concentration of this ion. This greatly simplifies the number of roles an ion can play
in the channel, but these options cover the majority of cases currently being modelled. Note: the term subtance is used as
this formalism can also be used for other chemicals which may be transmitted, modulate channels, etc.
</a:documentation>
<rng:choice>
<rng:value>PermeatedSubstance</rng:value>
<a:documentation>
Ion passes through the channel, e.g. Na ions permeate through an "Na Channel"
</a:documentation>
<rng:value>PermeatedSubstanceFixedRevPot</rng:value>
<a:documentation>
WARNING: Ion passes through the channel, but the reversal
potential of the ion isn't altered. This case is to cope with existing models which (rightly or wrongly) have calcium
channels which lead to a calcium current, but which have a fixed reversal potential (Traub et. al 2003 CaL, Maex, De Schutter 1998 CaHVA).
Be sure that this is the correct intended behaviour of the channel before using this IonRole.
</a:documentation>
<rng:value>ModulatingSubstance</rng:value>
<a:documentation>
Concentration of ion/substance modulates dynamics/rate equations of channel, e.g. Ca dependent K channel, K permeates, but the rate is dependent on concentration of internal Ca
</a:documentation>
<rng:value>SignallingSubstance</rng:value>
<a:documentation>
Ion/substance is involved in internal signalling in the cell and the mechanism can alter its concentration, e.g. exponentially decaying Ca pool
</a:documentation>
</rng:choice>
</rng:define>
<rng:define combine="choice" name="GatingComplex">
<a:documentation>
Preferred element for defining a gate since v1.7.3. Definition of a single voltage/concentration dependent gate,
with explicit definition of open and closed states and information on the transition rates between them.
</a:documentation>
<rng:oneOrMore>
<rng:element name="closed_state">
<rng:ref name="ClosedState"/>
</rng:element>
</rng:oneOrMore>
<rng:oneOrMore>
<rng:element name="open_state">
<rng:ref name="OpenState"/>
</rng:element>
</rng:oneOrMore>
<rng:optional>
<rng:element name="initialisation">
<rng:ref name="Initialisation"/>
<a:documentation>
For debugging/testing only! Use with caution!!
</a:documentation>
</rng:element>
</rng:optional>
<rng:zeroOrMore>
<rng:element name="transition">
<rng:ref name="Transition"/>
</rng:element>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:element name="time_course">
<rng:ref name="TimeCourse"/>
</rng:element>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:element name="steady_state">
<rng:ref name="SteadyState"/>
</rng:element>
</rng:zeroOrMore>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
Reference for the gating complex, e.g. m, h, n
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="instances">
<rng:data type="nonNegativeInteger">
<a:documentation>
The number of instances of the gate, i.e. the power to which the gating variable is raised in the expression for the total conductance
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="ClosedState">
<a:documentation>
Closed state of a gating complex
</a:documentation>
<rng:attribute name="id">
<rng:data type="string">
<a:documentation>
Id to use in transition elements when specifying this as the from or to state of the transition.
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="OpenState">
<a:documentation>
Open state of a gating complex
</a:documentation>
<rng:attribute name="id">
<rng:data type="string">
<a:documentation>
Id to use in transition elements when specifying this as the from or to state of the transition.
</a:documentation>
</rng:data>
</rng:attribute>
<a:documentation>
default value is : 1</a:documentation>
<rng:attribute name="fraction">
<rng:ref name="ZeroToOne"/>
<a:documentation>
The fractional conductance of the gate in this state. Has value 1 if not present
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Gate">
<a:documentation>
Definition of a single voltage/concentration dependent gate
</a:documentation>
<rng:element name="state">
<a:documentation>
Internal state of the gate, specifying a name, and possibly a fractional contribution.
HHGate or KSGate elements will specify the rate equations, etc. for the gate, referencing this state name.
</a:documentation>
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
<a:documentation>
default value is : 1</a:documentation>
<rng:attribute name="fraction">
<rng:ref name="ZeroToOne"/>
</rng:attribute>
</rng:element>
<rng:attribute name="power">
<rng:data type="nonNegativeInteger">
<a:documentation>
The power to which the gate is raised in the expression for the total conductance
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_HHGate">
<a:documentation>
Gate with Hodgkin Huxley like state transitions
</a:documentation>
<rng:element name="transition">
<rng:ref name="Deprecated_Transition"/>
</rng:element>
<rng:attribute name="state">
<rng:data type="string"/>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_KSGate">
<a:documentation>
Gate with kinetic scheme transitions
</a:documentation>
<rng:oneOrMore>
<rng:element name="state">
<rng:ref name="Deprecated_KSState"/>
</rng:element>
</rng:oneOrMore>
<rng:oneOrMore>
<rng:element name="transition">
<rng:ref name="Deprecated_Transition"/>
</rng:element>
</rng:oneOrMore>
</rng:define>
<rng:define combine="choice" name="Deprecated_KSState">
<a:documentation>
Single kinetic scheme state. Transitions will happen between these states. Deprecated! Will be removed in v2.0
</a:documentation>
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
</rng:define>
<rng:attribute name="from">
<rng:data type="string">
<a:documentation>
Source state of the transition in kinetic scheme.
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="to">
<rng:data type="string">
<a:documentation>
Target state of the transition in kinetic scheme.
</a:documentation>
</rng:data>
</rng:attribute>
<a:documentation>
Note: the following 3 attributes should always be used when using the exponential/exp_linear/sigmoidal form of expression.
These are only optional here, as whole attributeGroups can't be set as optional or required.
</a:documentation>
<rng:optional>
<rng:attribute name="rate">
<rng:data type="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="scale">
<rng:data type="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="midpoint">
<rng:data type="string"/>
</rng:attribute>
</rng:optional>
<a:documentation>
Note: the following attribute should be used when using the generic form of expression.
This is optional here, as whole attributeGroups can't be set as optional or required.
</a:documentation>
<rng:optional>
<rng:attribute name="expr">
<rng:data type="string"/>
</rng:attribute>
</rng:optional>
<rng:define combine="choice" name="Transition">
<a:documentation>
Transition between states in a GatingComplex
</a:documentation>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
Short name to use to refer to the transition, e.g. alpha, beta for forward, backward rates in HH gates
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="expr_form">
<rng:ref name="CoreEquationType"/>
<a:documentation>
Form of expression
</a:documentation>
</rng:attribute>
<!-- Only one of the following should be present!!-->
</rng:define>
<rng:define combine="choice" name="TimeCourse">
<a:documentation>
Time course of the transition between states in a GatingComplex
</a:documentation>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
Short name to use to refer to the time course e.g. tau
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="expr_form">
<rng:ref name="CoreEquationType"/>
<a:documentation>
Form of expression
</a:documentation>
</rng:attribute>
<!-- Only one of the following should be present!!-->
</rng:define>
<rng:define combine="choice" name="SteadyState">
<a:documentation>
Steady state value of the transition between states in a GatingComplex
</a:documentation>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
Short name to use to refer to the steady state e.g. inf
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="expr_form">
<rng:ref name="CoreEquationType"/>
<a:documentation>
Form of expression
</a:documentation>
</rng:attribute>
<!-- Only one of the following should be present!!-->
</rng:define>
<rng:define combine="choice" name="Deprecated_Transition">
<a:documentation>
Deprecated since v1.7.3. What causes the gate to open and close. A dependence on potential difference,
or a voltage and (ion) concentration dependence
</a:documentation>
<rng:choice>
<rng:element name="voltage_gate">
<rng:ref name="Deprecated_VoltageGate"/>
</rng:element>
<rng:element name="voltage_conc_gate">
<rng:ref name="Deprecated_VoltageConcGate"/>
</rng:element>
</rng:choice>
<rng:optional>
<rng:attribute name="source">
<rng:data type="string">
<a:documentation>
Source state of the transition if used in kinetic scheme. Must be used with attribute target. Use this in preference to src!!!
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<!--<xs:attribute name="src" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Deprecated! Use source for consistency with target attribute! Should be removed in v2.0!</xs:documentation>
</xs:annotation>
</xs:attribute>-->
<rng:optional>
<rng:attribute name="target">
<rng:data type="string">
<a:documentation>
Target state of the transition if used in kinetic scheme. Must be used with attribute src
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="Initialisation">
<a:documentation>
Element added for *testing purposes only*. Used to "incorrectly" initialise a channel when trying
to compare it to a mod file implementation (e.g. see Traub et al 2005 channels). Value here will be ignored if option in
neuroConstruct "Force correct ChannelML init" is used. Use with caution!!
</a:documentation>
<rng:attribute name="value">
<rng:data type="string"/>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_VoltageGate">
<a:documentation>
Definition of a voltage gate. Normally this will be specified as rate equations for
alpha and beta, or for tau and inf. Deprecated! Will be removed in v2.0
</a:documentation>
<rng:optional>
<rng:element name="initialisation">
<rng:ref name="Initialisation"/>
</rng:element>
</rng:optional>
<!-- Usually the alpha & beta form are specified/known, but tau and inf could be used instead-->
<rng:optional>
<rng:ref name="Deprecated_AlphaBetaForm"/>
</rng:optional>
<rng:optional>
<rng:ref name="Deprecated_ExtraRateExpressions"/>
</rng:optional>
<!-- Note: one of tau or inf could be specified even if alpha and beta are given-->
<rng:optional>
<rng:element name="tau">
<rng:ref name="Deprecated_RateConstantEqnChoice"/>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="inf">
<rng:ref name="Deprecated_RateConstantEqnChoice"/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="Deprecated_VoltageConcGate">
<a:documentation>
Definition of a mechanics of a gate which depends on voltage and concentration (e.g. Calcium conc dependent K channel).
Normally this will be specified as rate equations for alpha and beta (in terms of v and conc), or for tau and inf. Deprecated! Will be removed in v2.0
</a:documentation>
<rng:optional>
<rng:element name="initialisation">
<rng:ref name="Initialisation"/>
</rng:element>
</rng:optional>
<rng:element name="conc_dependence">
<rng:ref name="ConcDependence"/>
</rng:element>
<!-- Usually the alpha & beta form are specified/known, but tau and inf could be used instead-->
<rng:optional>
<rng:ref name="Deprecated_AlphaBetaFormVoltConcDep"/>
</rng:optional>
<rng:optional>
<rng:ref name="Deprecated_ExtraRateExpressions"/>
</rng:optional>
<!-- Note: one of tau or inf could be specified even if alpha and beta are given-->
<rng:optional>
<rng:element name="tau">
<rng:ref name="Deprecated_RateConstVoltConcDep"/>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="inf">
<rng:ref name="Deprecated_RateConstVoltConcDep"/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="ConcFactor">
<a:documentation>
Specification of the time independent scaling factor for a concentration dependent conductance. This factor will not be used n alpha, beta, etc. but the
expression in expr will scale the total conductance at each time step.
</a:documentation>
<rng:attribute name="ion">
<rng:data type="string">
<a:documentation>
Name of the ion
</a:documentation>
</rng:data>
</rng:attribute>
<rng:optional>
<a:documentation>
default value is : 1</a:documentation>
<rng:attribute name="charge">
<rng:data type="integer">
<a:documentation>
Electrical charge of the ion in question. Assumes charge of 1 if not present
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<rng:attribute name="variable_name">
<rng:data type="string">
<a:documentation>
How the value of conductance will be expressed in the equations
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="expr">
<rng:data type="string">
<a:documentation>
Expression for the time independent multiplicative factor for the concentration dependence
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="min_conc">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
Minimum expected concentration. May be needed by simulators (e.g. for generating tables)
</a:documentation>
</rng:attribute>
<rng:attribute name="max_conc">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
Maximum expected concentration. May be needed by simulators (e.g. for generating tables)
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="ConcDependence">
<a:documentation>
Specification of the factor to use in the concentration dependence of the rate expressions of a gate
</a:documentation>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
Name of substance, just for reference
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="ion">
<rng:data type="string">
<a:documentation>
Name of the ion
</a:documentation>
</rng:data>
</rng:attribute>
<rng:optional>
<a:documentation>
default value is : 1</a:documentation>
<rng:attribute name="charge">
<rng:data type="integer">
<a:documentation>
Electrical charge of the ion in question. Assumes charge of 1 if not present
</a:documentation>
</rng:data>
</rng:attribute>
</rng:optional>
<rng:attribute name="variable_name">
<rng:data type="string">
<a:documentation>
How the value of conductance will be expressed in the rate equations
</a:documentation>
</rng:data>
</rng:attribute>
<rng:attribute name="min_conc">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
Minimum expected concentration. Quite likely to be needed by simulators (e.g. for generating tables)
</a:documentation>
</rng:attribute>
<rng:attribute name="max_conc">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
Maximum expected concentration. Quite likely to be needed by simulators (e.g. for generating tables)
</a:documentation>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_AlphaBetaForm">
<a:documentation>
alpha, beta form of rate equations. These will always be together if present. Deprecated! Will be removed in v2.0
</a:documentation>
<rng:element name="alpha">
<rng:ref name="Deprecated_RateConstantEqnChoice"/>
</rng:element>
<rng:element name="beta">
<rng:ref name="Deprecated_RateConstantEqnChoice"/>
</rng:element>
</rng:define>
<rng:define combine="choice" name="Deprecated_ExtraRateExpressions">
<a:documentation>
Two more rate variables, which may be needed for calculating a non standard tau, inf, e.g.
Kdr in the Purkinje cell model. tau and inf will be calculated as normal unless otherwise specified.
</a:documentation>
<rng:element name="gamma">
<rng:ref name="Deprecated_RateConstantEqnChoice"/>
</rng:element>
<rng:optional>
<rng:element name="zeta">
<rng:ref name="Deprecated_RateConstantEqnChoice"/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="Deprecated_AlphaBetaFormVoltConcDep">
<a:documentation>
alpha, beta form of rate equations of voltage and conc dependent channels. These will always be together if present
</a:documentation>
<rng:element name="alpha">
<rng:ref name="Deprecated_RateConstVoltConcDep"/>
</rng:element>
<rng:element name="beta">
<rng:ref name="Deprecated_RateConstVoltConcDep"/>
</rng:element>
</rng:define>
<rng:define combine="choice" name="Deprecated_RateConstantEqnChoice">
<a:documentation>
Choice of the various rate constant expressions allowed
</a:documentation>
<rng:ref name="metadata"/>
<rng:choice>
<rng:element name="parameterised_hh">
<rng:ref name="Deprecated_AkdEquation"/>
</rng:element>
<rng:element name="generic_equation_hh">
<rng:ref name="Deprecated_GenericEquation"/>
<a:documentation>Note: use generic as opposed to generic_equation_hh. The latter will be removed in v2.0</a:documentation>
</rng:element>
<rng:element name="generic">
<rng:ref name="Deprecated_GenericEquation"/>
<a:documentation>Note: use generic as opposed to generic_equation_hh. The latter will be removed in v2.0</a:documentation>
</rng:element>
</rng:choice>
</rng:define>
<rng:define combine="choice" name="Deprecated_RateConstVoltConcDep">
<a:documentation>
Rate constant expressions allowed for voltage and conc dependent channels. Note, at this stage no
Akd like expression for a generic voltage/conc dep experssion. Time will tell if there's an expression common enough
across different models to be expressed in such a way
</a:documentation>
<rng:choice>
<rng:element name="generic_equation_hh">
<rng:ref name="Deprecated_GenericEquation"/>
<a:documentation>Note: use generic as opposed to generic_equation_hh. The latter will be removed in v2.0</a:documentation>
</rng:element>
<rng:element name="generic">
<rng:ref name="Deprecated_GenericEquation"/>
<a:documentation>Note: use generic as opposed to generic_equation_hh. The latter will be removed in v2.0</a:documentation>
</rng:element>
</rng:choice>
</rng:define>
<rng:define combine="choice" name="Deprecated_RateConstantEqn">
<a:documentation>
Definition of a rate constant equation.
</a:documentation>
<rng:zeroOrMore>
<rng:element name="parameter">
<rng:ref name="Deprecated_Parameter"/>
<a:documentation>
A parameter which is used in the equation
</a:documentation>
</rng:element>
</rng:zeroOrMore>
<rng:attribute name="type">
<rng:data type="string"/>
</rng:attribute>
<rng:attribute name="expr">
<rng:data type="string"/>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_AkdEquation">
<a:documentation>
Definition of a type of rate constant equation which takes parameters A, k, d
and maps to either exponential, sigmoidal or linoidal.
</a:documentation>
<rng:ref name="Deprecated_RateConstantEqn"/>
<rng:element name="parameter">
<rng:ref name="Deprecated_Parameter"/>
</rng:element>
<rng:element name="parameter">
<rng:ref name="Deprecated_Parameter"/>
</rng:element>
<rng:element name="parameter">
<rng:ref name="Deprecated_Parameter"/>
</rng:element>
<rng:attribute name="type">
<rng:ref name="Deprecated_CoreEquationType"/>
</rng:attribute>
<rng:attribute name="expr">
<rng:data type="string">
<a:documentation>
Note: this expression is has been useful to include when the type is, e.g. linoid, to remind users of the form of the equation.
However, it's use should be discouraged, as it could be assumed that changing this attribute can change the form of the equation (as for generic_equation_hh).
It's better to include the form of the equation as a comment, as in the examples. This attribute may be removed in v2.0
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="Deprecated_GenericEquation">
<a:documentation>
Definition of a type of rate constant equation
</a:documentation>
<rng:attribute name="expr">
<rng:data type="string">
<a:documentation>
Note: only variable allowed in expression is v (or for an expression for tau or inf,
alpha and beta can be used too). Also, liberal use of brackets, e.g. 5.0*(exp (-50*(v +46))) instead
of 5.0* exp (-50*(v +46)) is advised, due to GENESIS's handling of exp, abs, etc.
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="IonConcentration">
<a:documentation>
Specification of how an ion concentration alters with time, e.g. calcium dynamics. This may influence other
channels (e.g. Ca dependent K channels), and other mechanisms may have a contribution to the concentration of the ion specified here.
</a:documentation>
<rng:optional>
<rng:element name="status">
<rng:ref name="Status"/>
<a:documentation>
Status of the ion conc mech specification: stable, in progress, etc.
</a:documentation>
</rng:element>
</rng:optional>
<rng:ref name="metadata"/>
<a:documentation>
Some metadata to describe the ion concentration
</a:documentation>
<rng:ref name="referencedata"/>
<rng:element name="ion_species">
<rng:ref name="IonSpecies"/>
<a:documentation>
Which ion is involved in mechanism.
</a:documentation>
</rng:element>
<rng:choice>
<rng:element name="decaying_pool_model">
<rng:ref name="DecayingPoolModel"/>
<a:documentation>
At present there is only one choice of a model for this process,
more can be added later..
</a:documentation>
</rng:element>
</rng:choice>
<rng:attribute name="name">
<rng:data type="string">
<a:documentation>
A unique name for this ion concentration mechanism, as opposed to name of the ion used.
</a:documentation>
</rng:data>
</rng:attribute>
</rng:define>
<rng:define combine="choice" name="IonSpecies">
<a:documentation>
Which ion is involved in an ion_concentration mechanism. Note in v2.0 the attribute form for defining the name will be required.
</a:documentation>
<rng:data type="string">
<rng:optional>
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
</rng:optional>
</rng:data>
</rng:define>
<rng:define combine="choice" name="DecayingPoolModel">
<a:documentation>
Element for parameters in a decaying pool model of ion concentration (e.g. calcium pool)
</a:documentation>
<rng:optional>
<rng:element name="resting_conc">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
Resting concentration of ion. NOTE: In v2.0 this element will be removed. Attribute resting_conc will be used instead.
</a:documentation>
</rng:element>
</rng:optional>
<rng:choice>
<rng:optional>
<rng:element name="decay_constant">
<rng:ref name="TimeConstantValue"/>
<a:documentation>
Exponential decay time of pool. NOTE: In v2.0 this element will be removed. Attribute decay_constant will be used instead.
</a:documentation>
</rng:element>
</rng:optional>
<rng:element name="inv_decay_constant">
<rng:ref name="InvTimeConstantValue"/>
<a:documentation>
Reciprocal of exponential decay time constant of pool
</a:documentation>
</rng:element>
</rng:choice>
<rng:optional>
<rng:element name="ceiling">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
The maximum concentration which the ion pool should be allowed get to. NOTE: In v2.0 this element will be removed. Attribute ceiling will be used instead.
</a:documentation>
</rng:element>
</rng:optional>
<rng:choice>
<rng:element name="pool_volume_info">
<rng:ref name="PoolVolumeInfo"/>
</rng:element>
<rng:element name="fixed_pool_info">
<rng:ref name="FixedPoolInfo"/>
</rng:element>
</rng:choice>
<rng:optional>
<rng:attribute name="resting_conc">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
Resting concentration of ion. NOTE: In v2.0 the option for a resting_conc element will be removed. Attribute resting_conc will be required instead.
</a:documentation>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="decay_constant">
<rng:ref name="TimeConstantValue"/>
<a:documentation>
Exponential decay time of pool. Either decay_constant or inv_decay_constant must be included. NOTE: In v2.0 the option for
a decay_constant/inv_decay_constant element will be removed. Attribute decay_constant/inv_decay_constant will be used instead.
</a:documentation>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="inv_decay_constant">
<rng:ref name="InvTimeConstantValue"/>
<a:documentation>
Reciprocal of exponential decay time of pool. Either decay_constant or inv_decay_constant must be included. NOTE: In v2.0 the option for
a decay_constant/inv_decay_constant element will be removed. Attribute decay_constant/inv_decay_constant will be used instead.
</a:documentation>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="ceiling">
<rng:ref name="ConcentrationValue"/>
<a:documentation>
The maximum concentration which the ion pool should be allowed get to. NOTE: In v2.0 the option for
a ceiling element will be removed. Attribute ceiling will be used instead.
</a:documentation>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="PoolVolumeInfo">
<a:documentation>
Information on the volume of the ion pool
</a:documentation>
<rng:optional>
<rng:element name="shell_thickness">
<rng:ref name="LengthValue"/>
<a:documentation>
The volume of the pool is calculated from the thickness of the shell inside
the membrane. This will have to be multiplied by the surface area of the relevant compartment. NOTE: In v2.0 the option for
a shell_thickness element will be removed. Attribute shell_thickness will be used instead.
</a:documentation>
</rng:element>
</rng:optional>
<rng:optional>
<rng:attribute name="shell_thickness">
<rng:ref name="LengthValue"/>
<a:documentation>
The volume of the pool is calculated from the thickness of the shell inside
the membrane. This will have to be multiplied by the surface area of the relevant compartment. NOTE: In v2.0 the option for
a shell_thickness element will be removed. Attribute shell_thickness will be used instead.
</a:documentation>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define combine="choice" name="FixedPoolInfo">
<a:documentation>
(IN PROGRESS, not stable!!!!) In this case the parameter which determines how quickly the internal pool 'fills' is given as a fixed value. Note this is a far from ideal
way to express this value, but needed to be included as this was the parameter which was all that was present in a number of models, e.g. Traub et al. 2003 Layer 2/3 cell.
</a:documentation>
<a:documentation>
The dC/dt will be calculated from dC/dt = - phi * Ica + [Ca]/decay_constant. See mod/GENESIS impl for more details
</a:documentation>
<rng:element name="phi">
<rng:data type="double"/>
</rng:element>
</rng:define>
<rng:define combine="choice" name="Deprecated_Parameter">
<a:documentation>
Generic parameter used in rate equations
</a:documentation>
<rng:ref name="metadata"/>
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
<rng:attribute name="value">
<rng:data type="double"/>
</rng:attribute>
</rng:define>
<!-- Definition of core equation types follows. -->
<rng:define combine="choice" name="CoreEquationType">
<a:documentation>
Enumeration of core equation types, used from v1.7.3: exp_linear, sigmoidal, exponential
</a:documentation>
<rng:choice>
<rng:value>exponential</rng:value>
<a:documentation>
Of the form: A * exp((v-V1/2)/B)
</a:documentation>
<rng:value>sigmoid</rng:value>
<a:documentation>
Of the form: A / (1 + exp((v-V1/2)/B))
</a:documentation>
<rng:value>exp_linear</rng:value>
<a:documentation>
Of the form: A * ((v-V1/2)/B) / (1 - exp(-((v-V1/2)/B)))
</a:documentation>
<rng:value>generic</rng:value>
<a:documentation>
A generic expression for the rates. etc. in the expr attribute.
If possible the expression should be fit into one of the standard forms above (e.g. exponential, etc.)
</a:documentation>
</rng:choice>
</rng:define>
<!-- Definition of core equation types follows. -->
<rng:define combine="choice" name="Deprecated_CoreEquationType">
<a:documentation>
Core equation types prior to v1.7.3, linoidal, sigmoidal, exponential
</a:documentation>
<rng:choice>
<rng:value>exponential</rng:value>
<a:documentation>
Of the form: A * exp(k * (v-d))
</a:documentation>
<rng:value>sigmoid</rng:value>
<a:documentation>
Of the form: A / (1 + exp(k * (v-d)))
</a:documentation>
<rng:value>linoid</rng:value>
<a:documentation>
Of the form: A * (k * (v-d)) / (1 - exp(-(k * (v-d))))
</a:documentation>
</rng:choice>
</rng:define>
</rng:grammar>
|