Nengo.ca

ca.nengo.model.neuron.impl
Class PyramidalNetwork

java.lang.Object
  extended by ca.nengo.model.impl.NetworkImpl
      extended by ca.nengo.model.neuron.impl.PyramidalNetwork
All Implemented Interfaces:
Network, Node, Probeable, Resettable, SimulationMode.ModeConfigurable, TaskSpawner, VisiblyMutable, VisiblyMutable.Listener, java.io.Serializable, java.lang.Cloneable

public class PyramidalNetwork
extends NetworkImpl

Non Linear Network This network is a model of Pyramidal Cells found in the central nervous system These cells contain an active dendritic tree with functional computation occuring within the dendrites themselves. The implementation chosen involves creating a network of Ensembles(dendrites and cell bodies) such that one ensemble of "dendrites" projects to a specific termination in the "soma" ensemble with weights chosen in such a way that only one node of the soma is given an input from a specific dendritic branch.

See Also:
Serialized Form

Nested Class Summary
static class PyramidalNetwork.PoiraziDendriteFactory
          Creates neurons which are meant to model the dendrites of pyramidal cells Code is a modified version of NodeFactory written by Bryann Tripp
 
Nested classes/interfaces inherited from class ca.nengo.model.impl.NetworkImpl
NetworkImpl.OriginWrapper, NetworkImpl.TerminationWrapper
 
Nested classes/interfaces inherited from interface ca.nengo.util.VisiblyMutable
VisiblyMutable.Event, VisiblyMutable.Listener, VisiblyMutable.NameChangeEvent, VisiblyMutable.NodeRemovedEvent
 
Field Summary
 
Fields inherited from class ca.nengo.model.impl.NetworkImpl
DEFAULT_NAME, myNumGPU, myNumJavaThreads, myUseGPU
 
Constructor Summary
PyramidalNetwork()
          Default constructor
PyramidalNetwork(java.lang.String name)
          Gives a default of 1 dimension
PyramidalNetwork(java.lang.String name, int dim)
          Gives a default number of 20 neurons and 100 dendrites per neuron
PyramidalNetwork(java.lang.String name, int dim, int size)
          Gives a default subunit size of 100
PyramidalNetwork(java.lang.String name, int dim, int size, IndicatorPDF dendriteRange)
           
PyramidalNetwork(java.lang.String name, int dim, int size, IndicatorPDF dendriteRange, java.lang.String f)
           
PyramidalNetwork(java.lang.String name, int dim, int size, IndicatorPDF dendriteRange, java.lang.String f, boolean oneDim)
           
PyramidalNetwork(java.lang.String name, int dim, int size, IndicatorPDF dendriteRange, java.lang.String f, boolean oneDim, boolean LIFDendrites, boolean spikingLIFDendrites)
           
 
Method Summary
 void addDecodedTermination(java.lang.String name, float[][] transform, float tauPSC, boolean modulatory)
          Adds a standard decoded termination to the network
 void addOneDimTermination(java.lang.String name, int dimension)
          Default one dimension termination with no transform Sets a default transform of 1
 void addOneDimTermination(java.lang.String name, int dimension, float transform)
          Adds a one dimension termination to the network This allows the user to specify which dimension the input value should be stored in as opposed to sending in a weight matrix to do so A multiplier transform is also expected
 void createFunctionOriginDendrites()
          Creates an origin at the dendrite level with a user specified function The value calculated at the dendrites is then transferred to the soma ensemble
 NEFEnsemble getDendrites(int index)
          Mainly used for testing purposes when trying to find proper scale values
 java.lang.String getName()
           
 Origin getOrigin()
           
 float getRange(int index)
          For testing
 float[] getScales(int index)
          Gets the scale values for a particular dendritic ensemble
 NEFEnsemble getSoma()
           
 void makeNetwork()
          Creates nodes and calls methods to make all origins, terminations, and projections
 
Methods inherited from class ca.nengo.model.impl.NetworkImpl
addChangeListener, addNode, addProjection, addStepListener, addTasks, changed, clone, countNeurons, dumpToScript, dumpToScript, exposeOrigin, exposeState, exposeTermination, fireStepListeners, fixMode, getChildren, getDocumentation, getExposedOriginName, getExposedTerminationName, getHistory, getMetaData, getMode, getNeuronCount, getNode, getNodeCount, getNodeOrigins, getNodes, getNodeTerminations, getOrigin, getOrigins, getProjectionMap, getProjections, getSimulator, getStepSize, getTasks, getTermination, getTerminations, getUseGPU, hideOrigin, hideState, hideTermination, killNeurons, killNeurons, listStates, removeChangeListener, removeNode, removeProjection, removeStepListener, reset, run, run, setDocumentation, setMetaData, setMode, setMyMode, setName, setSimulator, setStepSize, setTasks, setTime, setUseGPU, toPostScript, toScript
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PyramidalNetwork

public PyramidalNetwork(java.lang.String name,
                        int dim,
                        int size,
                        IndicatorPDF dendriteRange,
                        java.lang.String f,
                        boolean oneDim,
                        boolean LIFDendrites,
                        boolean spikingLIFDendrites)
                 throws StructuralException
Parameters:
name - Name of the network
dim - Dimensions of the network
size - Number of pyramidal neurons in the network
dendriteRange - Range of dendrites per neuron
f - function to be calculated at the dendrites
oneDim - whether or not terminations to the network are unidimensional or multidimensional
LIFDendrites - Use LIF dendrites?
spikingLIFDendrites - Use spiking LIF dendrites?
Throws:
StructuralException - if name isn't unique

PyramidalNetwork

public PyramidalNetwork(java.lang.String name,
                        int dim,
                        int size,
                        IndicatorPDF dendriteRange,
                        java.lang.String f,
                        boolean oneDim)
                 throws StructuralException
Parameters:
name - Name of the network
dim - Dimensions of the network
size - Number of pyramidal neurons in the network
dendriteRange - Range of dendrites per neuron
f - function to be calculated at the dendrites
oneDim - whether or not terminations to the network are unidimensional or multidimensional
Throws:
StructuralException - if name is taken

PyramidalNetwork

public PyramidalNetwork(java.lang.String name,
                        int dim,
                        int size,
                        IndicatorPDF dendriteRange,
                        java.lang.String f)
                 throws StructuralException
Parameters:
name - Name of the network
dim - Dimensions of the network
size - Number of pyramidal neurons in the network
dendriteRange - Range of dendrites per neuron
f - function to be calculated at the dendrites
Throws:
StructuralException - if name isn't unique

PyramidalNetwork

public PyramidalNetwork(java.lang.String name,
                        int dim,
                        int size,
                        IndicatorPDF dendriteRange)
                 throws StructuralException
Parameters:
name - Name of the network
dim - Dimensions of the network
size - Number of pyramidal neurons in the network
dendriteRange - Range of dendrites per neuron
Throws:
StructuralException - if name isn't unique

PyramidalNetwork

public PyramidalNetwork(java.lang.String name,
                        int dim,
                        int size)
                 throws StructuralException
Gives a default subunit size of 100

Parameters:
name - Name of the network
dim - Dimensions of the network
size - Number of pyramidal neurons in the network
Throws:
StructuralException - if name isn't unique

PyramidalNetwork

public PyramidalNetwork(java.lang.String name,
                        int dim)
                 throws StructuralException
Gives a default number of 20 neurons and 100 dendrites per neuron

Parameters:
name - Name of the network
dim - Dimensions of the network
Throws:
StructuralException - if name isn't unique

PyramidalNetwork

public PyramidalNetwork(java.lang.String name)
                 throws StructuralException
Gives a default of 1 dimension

Parameters:
name - Name of the network
Throws:
StructuralException - if name isn't unique

PyramidalNetwork

public PyramidalNetwork()
                 throws StructuralException
Default constructor

Throws:
StructuralException - if name isn't unique
Method Detail

makeNetwork

public void makeNetwork()
                 throws StructuralException
Creates nodes and calls methods to make all origins, terminations, and projections

Throws:
StructuralException - if name isn't unique

getDendrites

public NEFEnsemble getDendrites(int index)
Mainly used for testing purposes when trying to find proper scale values

Parameters:
index - index number of dendritic tree
Returns:
Dendritic ensemble at given index number

getName

public java.lang.String getName()
Specified by:
getName in interface Node
Overrides:
getName in class NetworkImpl
Returns:
Name of Node (must be unique in a Network)
See Also:
Node.getName()

createFunctionOriginDendrites

public void createFunctionOriginDendrites()
                                   throws StructuralException
Creates an origin at the dendrite level with a user specified function The value calculated at the dendrites is then transferred to the soma ensemble

Throws:
StructuralException - if decoded origin already exists

getRange

public float getRange(int index)
For testing

Parameters:
index - dendrite ensemble for which range is being returned
Returns:
the range of scale values for a particular dendrite ensemble

getScales

public float[] getScales(int index)
Gets the scale values for a particular dendritic ensemble

Parameters:
index - index number for dendritic ensemble
Returns:
returns the scale value for each node in the ensemble

getOrigin

public Origin getOrigin()
                 throws StructuralException
Returns:
Exposed network origin X (from the soma)
Throws:
StructuralException - if origin doesn't exist

addDecodedTermination

public void addDecodedTermination(java.lang.String name,
                                  float[][] transform,
                                  float tauPSC,
                                  boolean modulatory)
                           throws StructuralException
Adds a standard decoded termination to the network

Parameters:
name - Name of the termination
transform - Weight matrix for the termination
tauPSC - PSC time constant
modulatory - Modulatory?
Throws:
StructuralException - if termination already exists

addOneDimTermination

public void addOneDimTermination(java.lang.String name,
                                 int dimension,
                                 float transform)
                          throws StructuralException
Adds a one dimension termination to the network This allows the user to specify which dimension the input value should be stored in as opposed to sending in a weight matrix to do so A multiplier transform is also expected

Parameters:
name - Name of the termination
dimension - Dimension for input to be stored in
transform - Transform for input value
Throws:
StructuralException - if termination exists

addOneDimTermination

public void addOneDimTermination(java.lang.String name,
                                 int dimension)
                          throws StructuralException
Default one dimension termination with no transform Sets a default transform of 1

Parameters:
name - Name of the termination
dimension - Dimension input values are to be stored in
Throws:
StructuralException - if termination exists

getSoma

public NEFEnsemble getSoma()
Returns:
Soma ensemble

Nengo.ca