Note: these descriptions have been updated to the latest NeuroML v2beta definitions, using the latest version of LEMS!

Inputs

A number of ComponentTypes for providing spiking and current inputs to other ComponentTypes
Original LEMS ComponentType definitions: Inputs.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2beta.xsd

 
basePointCurrent
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
    The current may vary with the voltage exposed by the ComponentType on which this is placed
voltage
 
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
    The current may vary with the voltage exposed by the ComponentType on which this is placed
Dimensionless
 
baseSpikeSource
Base for any ComponentType whose main purpose is to emit spikes. 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 between spikes. First spike will be emitted after this time.
time
Exposures tsince    (from baseSpikeSource) time
Event Ports spike    (from baseSpikeSource) Direction: out
Dynamics State Variables

    tsince    time (exposed as tsince)

On Start

    tsince = 0

On Conditions

    IF tsince > period THEN
        tsince = 0
        EVENT OUT on port spike

Time Derivatives

    d tsince /dt = 1

 
spikeGeneratorRandom

    extends baseSpikeSource

Generator of spikes with a random interspike interval of at least minISI and at most maxISI
Parameters maxISI
    Maximum interspike interval
time
minISI
    Minimum interspike interval
time
Constants MSEC = 1ms time
Exposures isi
    The interval until the next spike
time
tsince    (from baseSpikeSource) time
Event Ports spike    (from baseSpikeSource) Direction: out
Dynamics State Variables

    tsince    time (exposed as tsince)
    isi    time (exposed as isi)

On Start

    tsince = 0
    isi = minISI + MSEC * random((maxISI - minISI) / MSEC)

On Conditions

    IF tsince >= isi THEN
        isi = minISI + MSEC * random((maxISI - minISI) / MSEC)
        tsince = 0
        EVENT OUT on port spike

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
Parameters amplitude
    Amplitude of current pulse
current
delay
    Delay before change in current. Current is zero prior to this.
time
duration
    Duration for holding current at amplitude. Current is zero after delay + 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 = amplitude

    IF t >= duration + delay THEN
        i = 0

On Events

    EVENT IN on port: in

 
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
    Amplitude of current pulse
Dimensionless
delay
    Delay before change in current. Current is zero prior to this.
time
duration
    Duration for holding current at amplitude. Current is zero after delay + 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 = 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 = 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 = baselineAmplitude

    IF t >= delay AND t < duration+delay THEN
        i = startAmplitude + (finishAmplitude - startAmplitude) * (t - delay) / (duration)

    IF t >= duration+delay THEN
        i = 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 = baselineAmplitude

    IF t >= delay AND t < duration+delay THEN
        I = startAmplitude + (finishAmplitude - startAmplitude) * (t - delay) / (duration)

    IF t >= duration+delay THEN
        I = 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!!!
Parameters delay
    Delay before change in current. Current is zero prior to this.
time
duration
    Duration for attempting to keep parent at targetVoltage. Current is zero after delay + duration.
time
seriesResistance
    Current will be calculated by the difference in voltage between the target and parent, divided by this value
resistance
targetVoltage
    Current will be applied to try to get parent to this target voltage
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 = 1e-5 * (targetVoltage - v) / seriesResistance

    IF t > duration + delay THEN
        i = 0

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 spike 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 at which to emit one spike event
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

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