NOTE: the latest version of this documentation can be found on docs.neuroml.org!
Inputs |
NeuroML2 ComponentType definitions from Inputs.xml |
Original LEMS ComponentType definitions: Inputs.xml Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd |
basePointCurrent
extends baseStandalone |
||
Base type for all ComponentTypes which produce a current i (with dimension current) | ||
Exposures | i The total (time varying) current produced by this ComponentType |
current |
baseVoltageDepPointCurrent
extends basePointCurrent |
||
Base type for all ComponentTypes which produce a current i (with dimension current) and require a membrane potential v exposed on the parent Component | ||
Exposures | i (from basePointCurrent) | current |
Requirements | v | voltage |
baseVoltageDepPointCurrentSpiking
extends baseVoltageDepPointCurrent |
||
Base type for all ComponentTypes which produce a current i, require a membrane potential v exposed on the parent and emit spikes (on a port spike). The exposed variable tsince can be used for plotting the time since the Component has spiked last | ||
Exposures | i (from basePointCurrent) | current | tsince Time since the last spike was emitted |
time |
Requirements | v (from baseVoltageDepPointCurrent) | voltage |
Event Ports | spike Port on which spikes are emitted |
Direction: out |
basePointCurrentDL | ||
Base type for all ComponentTypes which produce a dimensionless current I. There will eventually be dimensionless equivalents of all the core current producing ComponentTypes such as pulseGenerator, sineGenerator and rampGenerator | ||
Exposures | I The total (time varying) current produced by this ComponentType |
Dimensionless |
baseVoltageDepPointCurrentDL
extends basePointCurrentDL |
||
Base type for all ComponentTypes which produce a dimensionless current I and require a dimensionless membrane potential V exposed on the parent Component | ||
Exposures | I (from basePointCurrentDL) | Dimensionless |
Requirements | V | Dimensionless |
baseSpikeSource | ||
Base for any ComponentType whose main purpose is to emit spikes (on a port spike). The exposed variable tsince can be used for plotting the time since the Component has spiked last | ||
Exposures | tsince Time since the last spike was emitted |
time |
Event Ports | spike Port on which spikes are emitted |
Direction: out |
spikeGenerator
extends baseSpikeSource |
||
Simple generator of spikes at a regular interval set by period. | ||
Parameters | period | time |
Constants | SMALL_TIME = 1e-9ms | time |
Exposures | tnext When the next spike should ideally be emitted (dt permitting) |
time | tsince (from baseSpikeSource) | time |
Event Ports | spike (from baseSpikeSource) | Direction: out |
Dynamics |
State Variables tsince time (exposed as tsince) tnext time (exposed as tnext) On Start tsince = 0 tnext = period On Conditions IF tnext-t < SMALL_TIME THEN tsince = 0 tnext = tnext+period EVENT OUT on port spike Time Derivatives d tsince /dt = 1 d tnext /dt = 0 |
spikeGeneratorRandom
extends baseSpikeSource |
||
Generator of spikes with a random interspike interval of at least minISI and at most maxISI | ||
Parameters | maxISI | time | minISI | time |
Constants | MSEC = 1ms | time |
Exposures | isi The interval until the next spike |
time | tnext When the next spike should ideally be emitted (dt permitting) |
time | tsince (from baseSpikeSource) | time |
Event Ports | spike (from baseSpikeSource) | Direction: out |
Dynamics |
State Variables tsince time (exposed as tsince) tnext time (exposed as tnext) isi time (exposed as isi) On Start tsince = 0 isi = minISI + MSEC * random((maxISI - minISI) / MSEC) tnext = isi On Conditions IF t > tnext THEN isi = minISI + MSEC * random((maxISI - minISI) / MSEC) tsince = 0 tnext = tnext+isi EVENT OUT on port spike Time Derivatives d tsince /dt = 1 d tnext /dt = 0 |
spikeGeneratorPoisson
extends baseSpikeSource |
||
Generator of spikes whose ISI is distributed according to an exponential pdf with scale 1/_averageRate | ||
Parameters | averageRate | per_time |
Constants | SMALL_TIME = 1e-9ms | time |
Exposures | isi | time | tnextIdeal | time | tnextUsed | time | tsince (from baseSpikeSource) | time |
Event Ports | spike (from baseSpikeSource) | Direction: out |
Dynamics |
State Variables tsince time (exposed as tsince) tnextIdeal time (exposed as tnextIdeal) tnextUsed time (exposed as tnextUsed) isi time (exposed as isi) On Start tsince = 0 isi = -1 * log(random(1)) / averageRate tnextIdeal = isi tnextUsed = isi On Conditions IF t > tnextUsed THEN tsince = 0 isi = -1 * log(random(1)) / averageRate tnextIdeal = (tnextIdeal+isi) tnextUsed = tnextIdeal*H( (tnextIdeal-t)/t ) + (t+SMALL_TIME)*H( (t-tnextIdeal)/t ) EVENT OUT on port spike Time Derivatives d tsince /dt = 1 d tnextUsed /dt = 0 d tnextIdeal /dt = 0 |
spikeGeneratorRefPoisson
extends spikeGeneratorPoisson |
||
Generator of spikes whose ISI distribution is the maximum entropy distribution over [_minimumISI, +infinity) with mean 1/_averageRate | ||
Parameters | averageRate (from spikeGeneratorPoisson) | per_time | minimumISI | time |
Derived Parameters | averageIsi = 1 / averageRate | time |
Exposures | isi (from spikeGeneratorPoisson) | time | tnextIdeal (from spikeGeneratorPoisson) | time | tnextUsed (from spikeGeneratorPoisson) | time | tsince (from baseSpikeSource) | time |
Event Ports | spike (from baseSpikeSource) | Direction: out |
Dynamics |
State Variables tsince time (exposed as tsince) tnextIdeal time (exposed as tnextIdeal) tnextUsed time (exposed as tnextUsed) isi time (exposed as isi) On Start tsince = 0 isi = minimumISI - (averageIsi-minimumISI) * log(random(1)) tnextIdeal = isi tnextUsed = isi On Conditions IF t > tnextUsed THEN tsince = 0 isi = minimumISI - (averageIsi-minimumISI) * log(random(1)) tnextIdeal = (tnextIdeal+isi) tnextUsed = tnextIdeal*H( (tnextIdeal-t)/t ) + (t+SMALL_TIME)*H( (t-tnextIdeal)/t ) EVENT OUT on port spike Time Derivatives d tsince /dt = 1 d tnextUsed /dt = 0 d tnextIdeal /dt = 0 |
poissonFiringSynapse | ||
Poisson spike generator connected to single synapse providing an input current | ||
Parameters | averageRate | per_time |
Derived Parameters | averageIsi = 1 / averageRate | time |
Paths | spikeTarget | |
Component References | synapse | baseSynapse |
Constants | SMALL_TIME = 1e-9ms | time |
Exposures | i (from basePointCurrent) | current | isi | time | tnextIdeal | time | tnextUsed | time | tsince (from baseVoltageDepPointCurrentSpiking) | time |
Requirements | v (from baseVoltageDepPointCurrent) | voltage |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in | spike Port on which spikes are emitted |
Direction: out | spike (from baseVoltageDepPointCurrentSpiking) | Direction: out |
Dynamics |
Structure WITH this AS a WITH spikeTarget AS b CHILD INSTANCE: synapse EVENT CONNECTION from a TO b, RECEIVER: , TARGET PORT: State Variables tsince time (exposed as tsince) tnextIdeal time (exposed as tnextIdeal) tnextUsed time (exposed as tnextUsed) isi time (exposed as isi) On Start tsince = 0 isi = - averageIsi * log(random(1)) tnextIdeal = isi tnextUsed = isi On Conditions IF t > tnextUsed THEN tsince = 0 isi = - averageIsi * log(1 - random(1)) tnextIdeal = (tnextIdeal+isi) tnextUsed = tnextIdeal*H( (tnextIdeal-t)/t ) + (t+SMALL_TIME)*H( (t-tnextIdeal)/t ) EVENT OUT on port spike Derived Variables iSyn = synapse->i i = weight * iSyn (exposed as i) Time Derivatives d tsince /dt = 1 d tnextUsed /dt = 0 d tnextIdeal /dt = 0 |
transientPoissonFiringSynapse | ||
Poisson spike generator with delay and duration connected to single synapse providing an input current. Similar to ComponentType poissonFiringSynapse. | ||
Parameters | averageRate | per_time | delay | time | duration | time |
Derived Parameters | averageIsi = 1 / averageRate | time |
Paths | spikeTarget | |
Component References | synapse | baseSynapse |
Constants | SMALL_TIME = 1e-9ms | time | LONG_TIME = 1e9hour | time |
Exposures | i (from basePointCurrent) | current | isi | time | tnextIdeal | time | tnextUsed | time | tsince (from baseVoltageDepPointCurrentSpiking) | time |
Requirements | v (from baseVoltageDepPointCurrent) | voltage |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in | spike Port on which spikes are emitted |
Direction: out | spike (from baseVoltageDepPointCurrentSpiking) | Direction: out |
Dynamics |
Structure WITH this AS a WITH spikeTarget AS b CHILD INSTANCE: synapse EVENT CONNECTION from a TO b, RECEIVER: , TARGET PORT: State Variables tsince time (exposed as tsince) tnextIdeal time (exposed as tnextIdeal) tnextUsed time (exposed as tnextUsed) isi time (exposed as isi) On Start tsince = 0 isi = - averageIsi * log(1 - random(1)) +delay tnextIdeal = isi tnextUsed = isi On Conditions IF t > tnextUsed THEN tsince = 0 isi = - averageIsi * log(1 - random(1)) tnextIdeal = (tnextIdeal+isi) + H(((t+isi) - (delay+duration))/duration)*LONG_TIME tnextUsed = tnextIdeal*H( (tnextIdeal-t)/t ) + (t+SMALL_TIME)*H( (t-tnextIdeal)/t ) EVENT OUT on port spike Derived Variables iSyn = synapse->i i = weight * iSyn (exposed as i) Time Derivatives d tsince /dt = 1 d tnextUsed /dt = 0 d tnextIdeal /dt = 0 |
timedSynapticInput | ||
Spike array connected to a single synapse, producing current triggered by each spike in the array | ||
Paths | spikeTarget | |
Component References | synapse | baseSynapse |
Children elements | spikes | spike |
Exposures | i (from basePointCurrent) | current | tsince (from baseVoltageDepPointCurrentSpiking) | time |
Requirements | v (from baseVoltageDepPointCurrent) | voltage |
Event Ports | in This will receive events from the children |
Direction: in | spike (from baseVoltageDepPointCurrentSpiking) | Direction: out |
Dynamics |
Structure WITH this AS a WITH spikeTarget AS b CHILD INSTANCE: synapse EVENT CONNECTION from a TO b, RECEIVER: , TARGET PORT: State Variables tsince time (exposed as tsince) On Events EVENT IN on port: in tsince = 0 EVENT OUT on port spike Derived Variables iSyn = synapse->i i = weight * iSyn (exposed as i) Time Derivatives d tsince /dt = 1 |
pulseGenerator
extends basePointCurrent |
||
Generates a constant current pulse of a certain amplitude for a specified duration after a delay. Scaled by weight, if set | ||
Parameters | amplitude | current | delay | time | duration | time |
Exposures | i (from basePointCurrent) | current |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in |
Dynamics |
State Variables i current (exposed as i) On Conditions IF t < delay THEN i = 0 IF t >= delay AND t < duration + delay THEN i = weight * amplitude IF t >= duration + delay THEN i = 0 On Events EVENT IN on port: in |
compoundInput
extends basePointCurrent |
||
Generates a current which is the sum of all its child basePointCurrent elements | ||
Children elements | currents | basePointCurrent |
Exposures | i (from basePointCurrent) | current |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in |
Dynamics |
On Events EVENT IN on port: in Derived Variables i_total = currents[*]->i (reduce method: add) i = weight * i_total (exposed as i) |
compoundInputDL
extends basePointCurrentDL |
||
Generates a current which is the sum of all its child basePointCurrentDL elements | ||
Children elements | currents | basePointCurrentDL |
Exposures | I (from basePointCurrentDL) | Dimensionless |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in |
Dynamics |
On Events EVENT IN on port: in Derived Variables I_total = currents[*]->I (reduce method: add) I = weight * I_total (exposed as I) |
pulseGeneratorDL
extends basePointCurrentDL |
||
Dimensionless equivalent of pulseGenerator. Generates a constant current pulse of a certain amplitude for a specified duration after a delay | ||
Parameters | amplitude | Dimensionless | delay | time | duration | time |
Exposures | I (from basePointCurrentDL) | Dimensionless |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in |
Dynamics |
State Variables I Dimensionless (exposed as I) On Conditions IF t < delay THEN I = 0 IF t >= delay AND t < duration + delay THEN I = weight * amplitude IF t >= duration + delay THEN I = 0 On Events EVENT IN on port: in |
sineGenerator
extends basePointCurrent |
||
Generates a sinusoidally varying current after a time delay, for a fixed duration. The period and maximum amplitude of the current can be set as well as the phase at which to start. | ||
Parameters | amplitude | current | delay | time | duration | time | period | time | phase | Dimensionless |
Exposures | i (from basePointCurrent) | current |
Event Ports | in | Direction: in |
Dynamics |
State Variables i current (exposed as i) On Conditions IF t < delay THEN i = 0 IF t >= delay AND t < duration+delay THEN i = weight * amplitude * sin(phase + (2 * 3.14159265 * (t-delay)/period) ) IF t >= duration+delay THEN i = 0 On Events EVENT IN on port: in |
sineGeneratorDL
extends basePointCurrentDL |
||
Generates a sinusoidally varying current after a time delay, for a fixed duration. The period and maximum amplitude of the current can be set as well as the phase at which to start. | ||
Parameters | amplitude | Dimensionless | delay | time | duration | time | period | time | phase | Dimensionless |
Exposures | I (from basePointCurrentDL) | Dimensionless |
Event Ports | in | Direction: in |
Dynamics |
State Variables I Dimensionless (exposed as I) On Conditions IF t < delay THEN I = 0 IF t >= delay AND t < duration+delay THEN I = weight * amplitude * sin(phase + (2 * 3.14159265 * (t-delay)/period) ) IF t >= duration+delay THEN I = 0 On Events EVENT IN on port: in |
rampGenerator
extends basePointCurrent |
||
Generates a ramping current after a time delay, for a fixed duration. During this time the current steadily changes from startAmplitude to finishAmplitude. | ||
Parameters | baselineAmplitude | current | delay | time | duration | time | finishAmplitude | current | startAmplitude | current |
Exposures | i (from basePointCurrent) | current |
Event Ports | in | Direction: in |
Dynamics |
State Variables i current (exposed as i) On Start i = baselineAmplitude On Conditions IF t < delay THEN i = weight * baselineAmplitude IF t >= delay AND t < duration+delay THEN i = weight * (startAmplitude + (finishAmplitude - startAmplitude) * (t - delay) / (duration)) IF t >= duration+delay THEN i = weight * baselineAmplitude On Events EVENT IN on port: in |
rampGeneratorDL
extends basePointCurrentDL |
||
Generates a ramping current after a time delay, for a fixed duration. During this time the dimensionless current steadily changes from startAmplitude to finishAmplitude. | ||
Parameters | baselineAmplitude | Dimensionless | delay | time | duration | time | finishAmplitude | Dimensionless | startAmplitude | Dimensionless |
Exposures | I (from basePointCurrentDL) | Dimensionless |
Event Ports | in | Direction: in |
Dynamics |
State Variables I Dimensionless (exposed as I) On Start I = baselineAmplitude On Conditions IF t < delay THEN I = weight * baselineAmplitude IF t >= delay AND t < duration+delay THEN I = weight * (startAmplitude + (finishAmplitude - startAmplitude) * (t - delay) / (duration)) IF t >= duration+delay THEN I = weight * baselineAmplitude On Events EVENT IN on port: in |
voltageClamp
extends baseVoltageDepPointCurrent |
||
Voltage clamp. Applies a variable current i to try to keep parent at targetVoltage. Not yet fully tested!!! Consider using voltageClampTriple!! | ||
Parameters | delay | time | duration | time | simpleSeriesResistance | resistance | targetVoltage | voltage |
Exposures | i (from basePointCurrent) | current |
Requirements | v (from baseVoltageDepPointCurrent) | voltage |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in |
Dynamics |
State Variables i current (exposed as i) On Conditions IF t < delay THEN i = 0 IF t >= delay THEN i = weight * (targetVoltage - v) / simpleSeriesResistance IF t > duration + delay THEN i = 0 On Events EVENT IN on port: in |
voltageClampTriple
extends baseVoltageDepPointCurrent |
||
Voltage clamp with 3 clamp levels. Applies a variable current i (through simpleSeriesResistance) to try to keep parent cell at conditioningVoltage until time delay, testingVoltage until delay + duration, and returnVoltage afterwards. Only enabled if active = 1. | ||
Parameters | active | Dimensionless | conditioningVoltage | voltage | delay | time | duration | time | returnVoltage | voltage | simpleSeriesResistance | resistance | testingVoltage | voltage |
Exposures | i (from basePointCurrent) | current |
Requirements | v (from baseVoltageDepPointCurrent) | voltage |
Event Ports | in Note this is not used here. Will be removed in future |
Direction: in |
Dynamics |
State Variables i current (exposed as i) On Conditions IF active = 1 AND t < delay THEN i = weight * (conditioningVoltage - v) / simpleSeriesResistance IF active = 1 AND t >= delay THEN i = weight * (testingVoltage - v) / simpleSeriesResistance IF active = 1 AND t > duration + delay THEN i = weight * (returnVoltage - v) / simpleSeriesResistance On Events EVENT IN on port: in |
spikeArray
extends baseSpikeSource |
||
Set of spike ComponentTypes, each emitting one spike at a certain time. Can be used to feed a predetermined spike train into a cell | ||
Children elements | spikes | spike |
Exposures | tsince (from baseSpikeSource) | time |
Event Ports | in This will receive events from the children |
Direction: in | spike (from baseSpikeSource) | Direction: out |
Dynamics |
State Variables tsince time (exposed as tsince) On Start tsince = 0 On Events EVENT IN on port: in tsince = 0 EVENT OUT on port spike Time Derivatives d tsince /dt = 1 |
spike
extends baseSpikeSource |
||
Emits a single spike at the specified time | ||
Parameters | time | time |
Exposures | spiked 0 signals not yet spiked, 1 signals has spiked |
Dimensionless | tsince (from baseSpikeSource) | time |
Event Ports | spike (from baseSpikeSource) | Direction: out |
Dynamics |
Structure WITH this AS a WITH parent AS b EVENT CONNECTION from a TO b, RECEIVER: , TARGET PORT: State Variables tsince time (exposed as tsince) spiked Dimensionless (exposed as spiked) On Start tsince = 0 On Conditions IF (t >= time) AND (spiked = 0) THEN spiked = 1 tsince = 0 EVENT OUT on port spike Time Derivatives d tsince /dt = 1 |