public class SpikingNeuron extends java.lang.Object implements Neuron, Probeable, NEFNode
VisiblyMutable.Event, VisiblyMutable.Listener, VisiblyMutable.NameChangeEvent, VisiblyMutable.NodeRemovedEvent
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CURRENT
Name of Origin representing unscaled and unbiased current entering the soma.
|
Constructor and Description |
---|
SpikingNeuron(SynapticIntegrator integrator,
SpikeGenerator generator,
float scale,
float bias,
java.lang.String name)
Note: current = scale * (weighted sum of inputs at each termination) * (radial input) + bias.
|
Modifier and Type | Method and Description |
---|---|
void |
addChangeListener(VisiblyMutable.Listener listener) |
SpikingNeuron |
clone() |
protected void |
fireVisibleChangeEvent()
Called by subclasses when properties have changed in such a way that the
display of the ensemble may need updating.
|
float |
getBias() |
Node[] |
getChildren() |
java.lang.String |
getDocumentation() |
SpikeGenerator |
getGenerator() |
TimeSeries |
getHistory(java.lang.String stateName)
Available states include "I" (net current into SpikeGenerator) and the states of the
SpikeGenerator.
|
SynapticIntegrator |
getIntegrator() |
SimulationMode |
getMode() |
java.lang.String |
getName() |
Noise |
getNoise() |
Origin |
getOrigin(java.lang.String name) |
Origin[] |
getOrigins() |
float |
getScale() |
Termination |
getTermination(java.lang.String name) |
Termination[] |
getTerminations() |
java.util.Properties |
listStates() |
void |
notifyAboutDeletion()
This method tells the Node (network) that is being deleted from Nengo,
Node can inform its children (child Nodes) that are being deleted,
these nodes can e.g.
|
void |
removeChangeListener(VisiblyMutable.Listener listener) |
void |
reset(boolean randomize) |
void |
run(float startTime,
float endTime)
Runs the Node (including all its components), updating internal state and outputs as needed.
|
void |
setBias(float bias) |
void |
setDocumentation(java.lang.String text) |
void |
setGenerator(SpikeGenerator generator) |
void |
setIntegrator(SynapticIntegrator integrator) |
void |
setMode(SimulationMode mode)
Sets the object to run in either the given mode or the closest mode that it supports
(all ModeConfigurables must support SimulationMode.DEFAULT, and must default to this mode).
|
void |
setName(java.lang.String name) |
void |
setNoise(Noise noise) |
void |
setRadialInput(float value) |
void |
setScale(float scale) |
java.lang.String |
toScript(java.util.HashMap<java.lang.String,java.lang.Object> scriptData) |
public static final java.lang.String CURRENT
public SpikingNeuron(SynapticIntegrator integrator, SpikeGenerator generator, float scale, float bias, java.lang.String name)
integrator
- SynapticIntegrator used to model dendritic/somatic integration of inputs
to this Neurongenerator
- SpikeGenerator used to model spike generation at the axon hillock of this
Neuronscale
- A coefficient that scales summed inputbias
- A bias current that models unaccounted-for inputs and/or intrinsic currentsname
- A unique name for this neuron in the context of the Network or Ensemble to which
it belongspublic void run(float startTime, float endTime) throws SimulationException
Node
run
in interface Node
startTime
- simulation time at which running starts (s)endTime
- simulation time at which running ends (s)SimulationException
- if a problem is encountered while trying to runNode.run(float, float)
public Origin[] getOrigins()
getOrigins
in interface Node
Node.getOrigins()
public Origin getOrigin(java.lang.String name) throws StructuralException
getOrigin
in interface Node
name
- Name of an Origin on this NodeStructuralException
- if the named Origin does not existNode.getOrigin(java.lang.String)
public void setMode(SimulationMode mode)
SimulationMode.ModeConfigurable
setMode
in interface SimulationMode.ModeConfigurable
mode
- SimulationMode in which it is desired that the object runs.SimulationMode.ModeConfigurable.setMode(ca.nengo.model.SimulationMode)
public SimulationMode getMode()
getMode
in interface SimulationMode.ModeConfigurable
SimulationMode.ModeConfigurable.getMode()
public void reset(boolean randomize)
reset
in interface Resettable
randomize
- True indicates that the object should be reset to a
randomly selected initial state (the object must be aware of the
distribution from which to draw from). False indicates that the
object should be reset to a fixed initial state (which it must
also know). Some objects may not support randomization of the initial
state, in which case a fixed state will be used in either case.Resettable.reset(boolean)
public TimeSeries getHistory(java.lang.String stateName) throws SimulationException
getHistory
in interface Probeable
stateName
- A state variable nameSimulationException
- if the Probeable does not have the requested stateProbeable.getHistory(java.lang.String)
public java.util.Properties listStates()
listStates
in interface Probeable
Probeable.listStates()
public java.lang.String getName()
getName
in interface Node
Node.getName()
public void setName(java.lang.String name) throws StructuralException
setName
in interface Node
name
- The new nameStructuralException
- if name already exists?public float getScale()
public void setScale(float scale)
scale
- New scaling coefficientpublic float getBias()
public void setBias(float bias)
bias
- New bias currentpublic SynapticIntegrator getIntegrator()
public void setIntegrator(SynapticIntegrator integrator)
integrator
- New synaptic integratorpublic SpikeGenerator getGenerator()
public void setGenerator(SpikeGenerator generator)
generator
- New SpikeGeneratorpublic Termination[] getTerminations()
getTerminations
in interface Node
Node.getTerminations()
public Termination getTermination(java.lang.String name) throws StructuralException
getTermination
in interface Node
name
- Name of a Termination onto this NodeStructuralException
- if the named Termination does not existNode.getTermination(java.lang.String)
public void setRadialInput(float value)
setRadialInput
in interface NEFNode
value
- Value of filtered summary input. This value is typically in the range
[-1 1], and correponds to an inner product of vectors in the space
represented by the NEFEnsemble to which this Node belongs.NEFNode.setRadialInput(float)
public java.lang.String getDocumentation()
getDocumentation
in interface Node
Node.getDocumentation()
public void setDocumentation(java.lang.String text)
setDocumentation
in interface Node
text
- New user-specified documentation for the NodeNode.setDocumentation(java.lang.String)
public void addChangeListener(VisiblyMutable.Listener listener)
addChangeListener
in interface VisiblyMutable
listener
- Listener to addVisiblyMutable.addChangeListener(ca.nengo.util.VisiblyMutable.Listener)
public void removeChangeListener(VisiblyMutable.Listener listener)
removeChangeListener
in interface VisiblyMutable
listener
- Listener to removeVisiblyMutable.removeChangeListener(ca.nengo.util.VisiblyMutable.Listener)
protected void fireVisibleChangeEvent()
public SpikingNeuron clone() throws java.lang.CloneNotSupportedException
public void setNoise(Noise noise)
noise
- Noise object to apply to this neuronpublic Noise getNoise()
public Node[] getChildren()
getChildren
in interface Node
public java.lang.String toScript(java.util.HashMap<java.lang.String,java.lang.Object> scriptData) throws ScriptGenException
toScript
in interface Node
scriptData
- Map of class parent and prefix data for generating python scriptScriptGenException
- if the node cannot be generated in scriptpublic void notifyAboutDeletion()
Node
notifyAboutDeletion
in interface Node