Previous Next Table of Contents

## 10. Objects

The GENESIS distribution contains a large number of predefined element types, known as ``objects''. These are the templates from which simulation elements may be created. This terminology can be somewhat confusing, because a GENESIS object is similar to what object-oriented languages such as Java or C++ call a ``class'', and a GENESIS element corresponds to an ``object'' in these languages. Elements are created as instantiations of a particular object.

An object contains specification information needed to construct a particular type of element. The information contained in a object are the functions needed to create and simulate this type of element, and its data structure, as well as the messages that it can receive, and the actions that it can perform. The documentation on Actions gives more information about GENESIS actions. Objects can also contain additional information such as a description of the object and its data fields, and the author of the object. Information about a particular object can be displayed using the showobject command.

The following objects are currently available within GENESIS:

## 10.1 GENESIS Objects by Category

### Basic Objects

Object | Description
neutral | Empty object used for grouping, or basis for an extended object

### Neuron Modeling Objects

Membrane Objects:

Object | Description
compartment | Axially asymmetric compartment; Ra is located on one side
izcell | Izhikevich simple spiking neuron model (see Doc/izcell.txt)
symcompartment | Like compartment, with Ra divided into two equal components
unit | An isolated compartment that receives INJECT messages

Channel/Gate Objects:

Object | Description
Kpores | K channel with Markovian (stochastic) kinetics
Mg_block | Provides voltage and [Mg]-dependent blocking of a channel
Napores | Na channel with Markovian (stochastic) kinetics
SynE_object | Electrical synaptic transmission (see Doc/SynE_object.txt)
SynG_object | Graded synaptic inhibition (see Doc/SynG_object.txt)
SynS_object | Provides V-dependent modulation (see Doc/SynG_object.txt)
ddsyn | Modified synchan for dendrodendritic synapses
facsynchan | Like synchan, with synaptic facilitation and/or depression
hebbsynchan | Like synchan, with Hebbian modification of weights
hh_channel | Voltage dependent conductance using Hodgkin-Huxley parameters
leakage | Passive ``leakage'' channel with constant conductance
manuelconduct | Implements Perkel's receptor-mediated conductance model
synchan | Synaptically activated channel with presynaptic weights/delays
synchan2 | Same as synchan; for backwards compatibility
tab2Dchannel | Channel with 2-D tables, e.g. for dependence on Vm and [Ca]
tabchannel | Hodgkin-Huxley type channel with tabulated parameters
tabcurrent | Tabulated non-ohmic ion current; also solves GHK equation
tabgate | Gate with tables for alpha/beta rate variables
vdep_channel | H-H channel; gets activation gate values from other elements
vdep_gate | Gate with Hodgkin-Huxley parameters for rate variables

Ion Concentration Objects:

Object | Description
Ca_concen | Calculates ion concentration from current
concpool | Concentration pool without diffusion
difbuffer | First order diffusible buffer; constant total concentration
dif2buffer | First order diffusible buffer; variable total concentration
difshell | Concentration shell with one-dimensional diffusion
fixbuffer | First order fixed (non-mobile) buffer
fura2 | Computes fura2 fluorescence in a single difshell
ghk | Calculates the Goldman-Hodgkin-Katz (constant field) equation
hillpump | Variation of Michaelis-Menten store pump
mmpump | Models a Ca-ATPase pump obeying Michaelis-Menten kinetics
nernst | Calculates Nernst potential from concentration and temperature
taupump | Simple pump with a variable time constant of removal

The Ca_concen implements the simplest model for the change of calcium (or other ion) concentration, with a rate of increase of the intracellular ionic concentration proportional to the inward current, and a single time constant for decay of the concentration.

When it is necessary to provide a more detailed model of variations of calcium concentration within a compartment, the difshell is used to divide the compartment into a number of shells and to model diffusion between them. It is typically coupled to buffers and/or pumps. The concpool provides a single shell model of a "well-mixed" concentration pool without diffusion between shells. As it can also couple to buffers and pumps, it provides for multiple mechanisms for calcium removal.

The buffers (e.g., fixbuffer) interact with a difshell or concpool to model the binding of calcium to buffer molecules and to calculate the concentrations of free and bound buffer molecules, using a kinetic scheme with forward and backward rate constants for the binding and release of calcium. Diffusible (mobile) buffers are modeled with the difbuffer and dif2buffer objects, which also provide for the diffusion of buffer molecules (carrying bound calcium) between buffers. The ionic pumps provide various mechanisms to remove ions from the shell.

Miscellaneous Neural Objects:

Object | Description
hsolve | Implements Hines method for fast implicit solution of DEs
randomspike | Generates random spike events
receptor | Olfactory receptor-gives activation from weighted sum of odors
receptor2 | More realistic implementation of receptor
site | Simple synaptic transformation that maps input to current
spikegen | Generates a spike when input crosses a threshold

Obsolete objects used with GENESIS 1 axonal connections:

axon | axonlink | channelA | channelB
channelC | channelC2 | channelC3 | defsynapse
random | synapse | synapseA | synapseB
spike |  |  |

(These undocumented objects are available only if the Connection Compatibility Library has been installed. They are not recommended for use in new simulations, and are provided only for backwards compatibility with simulations that were developed under GENESIS 1.)

### Accessory Objects

Miscellaneous Objects:

Object | Description
graded | undocumented buffer object - obsolete ???
linear | undocumented buffer object - obsolete ???
passive_buffer | undocumented buffer object - obsolete ???
periodic | undocumented buffer object - obsolete ???
playback | Updates its state from a pre-filled buffer
script_out | Executes a script function at each simulation step
sigmoid | Computes the sigmoidal transformation of the input
table | 1-D table with various modes for output of contents
table2D | Has an internal 2-D table, with interpolation

Device Objects:

Object | Description
PID | Proportional, Integral, Derivative feedback controller
RC | A resistance R, shunted by a capacitance C
autocorr | Calculates histograms of auto-correlations
calculator | Adds, subtracts, multiplies, and divides using messages
crosscorr | Calculates histograms of cross-correlations
diffamp | Difference amplifier-output proportional to input difference
efield | Extracellular field potential recording electrode
event_tofile | Records event times; e.g spikes or threshold crossings
expthresh | undocumented - obsolete ???
freq_monitor | Calculates running event (spike) frequency
funcgen | Function generator (sine, square, triangle, constant)
interspike | Generates an interspike interval histogram
peristim | Generates a peristimulus spike histogram
pulsegen | Pulse generator that can generate a variety of patterns
timetable | A table of time values for change of synaptic activation

Input/Output Objects:

Object | Description
asc_file | Clocked write of data to a file in ASCII format
disk_in | Reads in a 2-d array of data from an ascii or binary file
disk_out | Clocked write of data to a file in binary format
diskio | Similar to disk_in/disk_out with portable binary NETCDF format
metadata | Used with diskio to read/write descriptive content
par_asc_file | Variation of asc_file for use with PGENESIS (see asc_file )
par_disk_out | Variation of disk_out for use with PGENESIS
print_out | undocumented - obsolete ???
res_asc_file | Like asc_file, with min time and value interval (see asc_file)
spikehistory | Outputs neuron ID and spike times to an ascii file
variable | Used with diskio to read/write binary data

### Biochemical Kinetics Modeling Objects

Object | Description
concchan | Handles 1-D diffusion of molecules across a membrane
enz | Handles Michaelis-Menten enzyme kinetics with pool object
pool | A concentration pool used in kinetic reactions
reac | Handles standard kinetic reaction schemes with pool object

(These objects are available only if the Kinetics Library has been installed.)

### Parameter Search Objects

Object | Description
paramtableBF | Implements "brute-force" parametersearch
paramtableCG | Implements conjugate-gradient descent parameter search
paramtableGA | Implements genetic algorithm parameter search
paramtableSA | Implements simulated annealing parameter search
paramtableSS | Implements stochastic parameter search

For a description of the use of the parammeter search objects see The GENESIS Parameter Search Library.

### Graphical (``XODUS Widget'') Objects

Object | Description
xaxis | Makes axis for plots -- automatically created by xgraph
xbutton | A button which executes script actions from mouse clicks
xcell | Similar to xview, but specialized for compartmental cell display
xcoredraw | The core class from which other draw widgets are subclassed
xdialog | A dialog box containing a text string
xdraw | Main object class for the display of pixes, with transforms
xdumbdraw | Simple example window for the display of pixes
xfastplot | High-speed graphic display similar to an oscilloscope
xform | The window containing other graphical elements
xgif | Draws GIF format images as a pix inside a draw
xgraph | Specialized draw widget for the display of plots
ximage | Displays a GIF format bitmapped image inside a form
xlabel | Rectangular label containing a text string
xpix | Basic object for drawing graphical objects (pixes) in 3-D space
xplot | Displays plots within a graph -- created by messages to xgraph
xshape | Pix used for drawing shapes -- often used for icons
xsphere | Example pix which draws a filled circle
xtext | A widget for the display and editing of text
xtoggle | Maintains toggle state and executes actions from mouse clicks
xtree | Displays and manipulates elements and their messages
xvar | Uses shapes to display numerical values with color, size, etc.
xview | Like an array of xvars, displaying multiple points in 3-D space

For a description of the use of the XODUS objects see The XODUS Graphical Interface.

## 10.2 Related Commands

The GENESIS routines used to establish and work with objects include the following. (Remember: the following routines refer to these element types in general, not specific instantiations of these objects).

Routine | Description
getdefault | Returns the default value of an object field
listactions | Lists the actions which are defined for GENESIS objects
listclasses | Displays list of currently defined element classes
listobjects | Lists the available objects
setdefault | Sets the default value of an object field
showobject | Displays description of a specified object

In addition, there are a number of routines that are used in the specification and creation of Extended Objects. To compile a new object into GENESIS, see Customizing GENESIS.

Previous Next Table of Contents