mosaic.sim.neuron
Class Synapse

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--mosaic.sim.kernel.AbstractModelComponent
                          |
                          +--mosaic.sim.kernel.BasicModel
                                |
                                +--mosaic.sim.kernel.BasicActiveModel
                                      |
                                      +--mosaic.sim.neuron.Synapse
All Implemented Interfaces:
mosaic.sim.util.artificialidentifier.ArtificialIDOwner, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, mosaic.sim.kernel.ModelComponent, NeuronInput, java.beans.PropertyChangeListener, java.io.Serializable, mosaic.sim.kernel.simevent.SimEventComponent, mosaic.sim.kernel.simevent.SimEventListener, mosaic.sim.kernel.simevent.TimeEventComponent, mosaic.sim.kernel.simevent.TimeEventListener, mosaic.sim.kernel.variable.VariableChangeListener
Direct Known Subclasses:
PLSynapse

public abstract class Synapse
extends mosaic.sim.kernel.BasicActiveModel
implements NeuronInput

This class represents synapses, which are the connections between neurons. When a synapse object receives a spike event, it will forward it to the connected "post-synaptic" neuron object, which will then query the synapse for the response parameters. These parameters define how the neuron potential changes because of the incoming spike. This class is declared abstract

See Also:
Serialized Form

Inner Class Summary
static interface Synapse.LearningMethod
          This interface is used for external learning algorithms that are non-local to the synapse.
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
protected  double lastEventTime
          The time when the last spike event has been received by this synapse.
protected  Synapse.LearningMethod learningMethod
          The learning method to use whenever changing the synaptic parameters is to be done (e.g. when postNeuronFired() is called).
protected  Neuron receiver
          The post-synaptic neuron that should receive the forwarded spike events.
protected  NeuronOutput sender
          The pre-synaptic object that sends spike events to this synapse.
 
Fields inherited from class mosaic.sim.kernel.BasicActiveModel
activeVar, artificialID, deltaT, initTime, selectOrder, stopped, timeEvent, timeEventListeners, tl, tn
 
Fields inherited from class mosaic.sim.kernel.BasicModel
listenerVariables, priority, simEventComponents
 
Fields inherited from class mosaic.sim.kernel.AbstractModelComponent
application, components, enabled, label, parentModelComponent, sCESupport
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface mosaic.sim.kernel.ModelComponent
INF, INFINITY, NEGATIVE_INFINITY, NEGINF, NEGINFINITY, POSITIVE_INFINITY
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Synapse(NeuronOutput pre, Neuron post)
          A synapse object needs a pre-synaptic NeuronOutput object and a post-synaptic neuron.
Synapse(NeuronOutput pre, Neuron post, Synapse.LearningMethod learningMethod)
          Does the same as Synapse(NeuronOutput pre, Neuron post), but also sets the learning method.
 
Method Summary
 java.lang.Object clone()
          Returns a copy of the current object.
 double getLastEventTime()
          Returns the time when this synapse has received the last spike.
 Neuron getReceiver()
          Returns the post-synaptic neuron that receives the forwarded spike events from this synapse.
abstract  java.lang.Object getResponseParameters()
          This function is called by the post-synaptic neuron to retrieve the parameters which describe how the neuron potential changes because of the receives spike event.
 NeuronOutput getSender()
          Returns the pre-synaptic NeuronOutput object that sends spike events to this synapse.
 void postNeuronFired()
          The neuron calls this method whenever it fires a spike event to notify its input synapses of its firing.
 void setLearningMethod(Synapse.LearningMethod learningMethod)
          Sets the learning method.
 void setReceiver(Neuron receiver)
          Sets the post-synaptic neuron that receives the forwarded spike events from this synapse.
 void setSender(NeuronOutput sender)
          Sets the pre-synaptic NeuronOutput object that sends spike events to this synapse.
 void spikeEvent(NeuronOutput sender)
          This is the implementation of the NeuronInput interface.
 
Methods inherited from class mosaic.sim.kernel.BasicActiveModel
activate, activateAt, activateIn, addActiveListener, addSimEventComponent, addSimEventListener, addTimeEventComponent, addTimeEventListener, before, getArtificialID, getInitTime, getSelectOrder, getTL, getTN, initialize, isActive, isNextToFire, isPassive, isStopped, jbInit, passivate, processSimEvent, registerEvent, removeActiveListener, removeSimEventComponent, removeSimEventListener, removeTimeEventComponent, removeTimeEventListener, restart, setActive, setInitTime, setSelectOrder, setStopped, setTL, setTN, stop, triggerEvent, unregisterEvent
 
Methods inherited from class mosaic.sim.kernel.BasicModel
addListenerVariable, getListenerVariables, getNthListenerVariable, getPriority, propertyChange, removeListenerVariable, setPriority, variableChange
 
Methods inherited from class mosaic.sim.kernel.AbstractModelComponent
addModelComponent, addModelComponentEventListener, addModelComponentEventListener, addNotify, containsModelComponent, disable, enable, findParentModelComponent, fireModelComponentAdded, fireModelComponentChanged, fireModelComponentChanged, fireModelComponentDisabled, fireModelComponentEnabled, fireModelComponentGotContinuous, fireModelComponentGotDiscrete, fireModelComponentRemoved, getInfo, getLabel, getMinimumSize, getModelComponents, getParentModelComponent, getPreferredSize, getSimApplication, getTime, isDisabled, isEnabled, paintComponent, printDebugOutput, printDebugOutput, printDebugOutput, printDebugOutput, printErrorOutput, printErrorOutput, printLogOutput, printLogOutput, removeModelComponent, removeModelComponentEventListener, removeModelComponentEventListener, removeNotify, reset, setEnabled, setLabel, setParentModelComponent, setSimApplication
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, , addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getUIClassID, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paintWithBuffer, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update, updateUI, writeObject
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 
Methods inherited from interface mosaic.sim.kernel.ModelComponent
addModelComponent, addModelComponentEventListener, addModelComponentEventListener, containsModelComponent, disable, enable, fireModelComponentAdded, fireModelComponentChanged, fireModelComponentChanged, fireModelComponentDisabled, fireModelComponentEnabled, fireModelComponentGotContinuous, fireModelComponentGotDiscrete, fireModelComponentRemoved, getInfo, getLabel, getModelComponents, getParentModelComponent, getSimApplication, getTime, isDisabled, isEnabled, removeModelComponent, removeModelComponentEventListener, removeModelComponentEventListener, reset, setEnabled, setParentModelComponent, setSimApplication
 

Field Detail

receiver

protected Neuron receiver
The post-synaptic neuron that should receive the forwarded spike events.

sender

protected NeuronOutput sender
The pre-synaptic object that sends spike events to this synapse.

lastEventTime

protected double lastEventTime
The time when the last spike event has been received by this synapse.

learningMethod

protected Synapse.LearningMethod learningMethod
The learning method to use whenever changing the synaptic parameters is to be done (e.g. when postNeuronFired() is called). Can be set with setLearningMethod or via the constructor.
See Also:
postNeuronFired(), setLearningMethod(mosaic.sim.neuron.Synapse.LearningMethod)
Constructor Detail

Synapse

public Synapse(NeuronOutput pre,
               Neuron post)
A synapse object needs a pre-synaptic NeuronOutput object and a post-synaptic neuron. This constructor also registers the newly created synapse object with the sender and receiver objects.

Synapse

public Synapse(NeuronOutput pre,
               Neuron post,
               Synapse.LearningMethod learningMethod)
Does the same as Synapse(NeuronOutput pre, Neuron post), but also sets the learning method.
See Also:
learningMethod
Method Detail

getReceiver

public Neuron getReceiver()
Returns the post-synaptic neuron that receives the forwarded spike events from this synapse.

setReceiver

public void setReceiver(Neuron receiver)
Sets the post-synaptic neuron that receives the forwarded spike events from this synapse.

getSender

public NeuronOutput getSender()
Returns the pre-synaptic NeuronOutput object that sends spike events to this synapse.

setSender

public void setSender(NeuronOutput sender)
Sets the pre-synaptic NeuronOutput object that sends spike events to this synapse.

setLearningMethod

public void setLearningMethod(Synapse.LearningMethod learningMethod)
Sets the learning method.

spikeEvent

public void spikeEvent(NeuronOutput sender)
This is the implementation of the NeuronInput interface. It simply stores the current simulation time in lastEventTime and forwards the spike event to the post-synaptic neuron.
Specified by:
spikeEvent in interface NeuronInput

getResponseParameters

public abstract java.lang.Object getResponseParameters()
This function is called by the post-synaptic neuron to retrieve the parameters which describe how the neuron potential changes because of the receives spike event.

postNeuronFired

public void postNeuronFired()
The neuron calls this method whenever it fires a spike event to notify its input synapses of its firing. This is important for learning. This implementation calls the initialized learningMethod if it has been set (either via the constructor or via setLearningMethod). It can be overridden to implement local-only learning (using only the information that is locally available to the synapse).

getLastEventTime

public double getLastEventTime()
Returns the time when this synapse has received the last spike.

clone

public java.lang.Object clone()
Returns a copy of the current object.
Overrides:
clone in class java.lang.Object