CHANGES.DOC

advertisement
2.
Changes Introduced in GENESIS 2
GENESIS version 2.1 includes many new features and enhancements to
previous versions. The following section describes changes introduced
between versions 2.0 and 2.1. The rest of this chapter describes the
considerable changes which were introduced in version 2.0. If you
have previously used GENESIS 1 (e.g., version 1.4 or earlier), please
read those sections also, in order to understand the differences
between GENESIS 2 and GENESIS 1.
2.1.
Changes Introduced in GENESIS 2.1
The ``genesis/src/CHANGES'' file lists the changes introduced in each
new release of GENESIS. Likewise, ``genesis/Doc/README.changes''
lists the documentation files which have been added or changed. In
addition to many bug fixes, these are the most significant new
features of GENESIS version 2.1:
There are now two-dimensional versions of the tabchannel and table
objects (tab2Dchannel and table2D) which will be useful for modeling
voltage and concentration dependent channels. The tabcurrent object,
along with the setupNaCa and setupghk commands, may be used to model
non-ohmic currents, and can also be used to compute the solution to
the Goldman-Hodgkin-Katz equation.
The diskio, variable, and metadata objects may be used to provide the
features of the existing disk_in and disk_out objects to read and
write data in the portable binary NETCDF format. This will ease the
interfacing of GENESIS simulations with popular analysis and signalprocessing tools such as MATLAB, and make it possible to use binary
files produced by GENESIS on multiple platforms.
There is a new version of the library (``genesis/src/concen'') of
objects which are used to model the effects of the diffusion of ions
(e.g., calcium). (These are largely undocumented at present. Please
see the short summaries below, the source code, and the results of the
showobject command. Full documentation will be provided in the
GENESIS 2.2 release.)
There have been substantial improvements in the hsolve object, which
is used to maximize the speed and accuracy of computations for
compartmental models. The default mode of use (chanmode 0) has been
revised so that it is possible to easily add and delete outgoing
messages to other elements, and to use it with any elements whether or
not they are handled by hsolve. There is a new mode (chanmode 4), and
some changes in the restrictions of the other modes. These are
explained in detail in the revised documentation for hsolve. A new
command findsolvefield has been provided to make it easy to accesss
fields of the hsolve element when using these faster chanmodes, thus
avoiding their restrictions on input and output of field values. The
useconcen and usenernst fields of the hsolve object have been removed,
as they are no longer needed. A new restriction is that, for
chanmodes 2-4, the element tree of your cell (or other element tree to
be taken over by hsolve) must not contain any non-hsolvable elements
other than neutral elements. For existing simulations which violate
this restriction, it will be easiest to switch to chanmode 0 or 1.
The readcell command and the hsolve object recognize the new
concentration and channel objects. Both readcell and hsolve may be
used to create an hsolve element instead of a neutral element at the
root of the cell hierarchy.
Compartments now have both start and end coordinates.
XODUS forms can now be nested, allowing for grouping of widgets within
a form using a nested form.
The latest version of the library of objects for biochemical kinetics
modeling and its graphical interface (Kinetikit) are now part of the
GENESIS distribution.
Several changes have been made to allow parallel GENESIS (PGENESIS) to
be built on top of GENESIS.
2.1.1.
New Commands in GENESIS 2.1
The following commands are new in GENESIS 2.1. Most of these are
described in the ``GENESIS Command Reference''.
______________________________________________________________________
Routine
Description
______________________________________________________________________
findsolvefield
Used with hsolve for input/output of values
getsolvecompname
Used with hsolve to find compartment names
planardelay2
Faster version of planardelay; requires destination
planarweight2
Faster version of planarweight; requires destination
setupNaCa
Sets up a tabcurrent to model the Na-Ca exchanger
current
setupghk
Sets up a tabcurrent to solve the GHK equation
______________________________________________________________________
2.1.2.
New Objects in GENESIS 2.1
The following objects are new in GENESIS 2.1. Most of these are
described in the ``GENESIS Object Reference''.
______________________________________________________________________
Object
Description
______________________________________________________________________
concchan
Handles 1-D diffusion of molecules across a membrane
concpool
Concentration pool without diffusion
difbuffer
First order diffusable buffer; constant total
concentration
dif2buffer
First order diffusable buffer; variable total
concentration
difshell
Concentration shell with one-dimensional diffusion
diskio
Similar to disk_in/disk_out with portable binary NETCDF
format
enz
Handles Michaelis-Menten enzyme kinetics with pool
object
fixbuffer
First order fixed buffer
fura2
Computes fura2 fluorescence in a single difshell
ghk
Calculates the Goldman-Hodgkin-Katz (constant field)
equation
metadata
Used with diskio to read/write descriptive content
mmpump
Models a Ca-ATPase pump obeying Michaelis-Menten
kinetics
pool
A concentration pool used in kinetic reactions
reac
Handles standard kinetic reaction schemes with pool
object
res_asc_file
Like asc_file, for changes outside a given range
spikehistory
Outputs neuron ID and spike times to an ascii file
tab2Dchannel
Channel with 2-D tables, e.g. for dependence on Vm and
[Ca]
tabcurrent
Tabulated non-ohmic ion current; also solves GHK
equation
table2D
Has an internal 2-D table, with interpolation
variable
Used with diskio to read/write binary data
______________________________________________________________________
2.2.
Changes Introduced in GENESIS 2.0
With the release of GENESIS version 2.0, many parts of the system have
been redesigned and reimplemented to provide a more portable, stable
and consistent system. The GENESIS command set has been revised
subtantially in order to provide more consistent command names and
command options. Likewise, the scripting language has also been
revised to make it more consistent and to address various
idiosyncracies in the syntax. There has also been a complete
reimplementation of the XODUS graphical user interface objects. This
was done in order to provide an improved appearance of the graphics,
correction of design problems including memory allocation, improved
portability and elimination of dependency on the Athena widget set.
Although these changes extend the capabilities of GENESIS and make it
more flexible and easier to use, this is at the cost of some loss of
backwards compatibility with previous versions of GENESIS. The
convert utility described below, and in ``Script Conversion''
(Convert.doc) should make the conversion of existing GENESIS scripts
relatively painless. This section of the manual gives an overview of
some of the more significant changes that will affect present users of
GENESIS 1.
2.3.
Command Names
Some of the names of GENESIS commands have been changed in GENESIS 2,
in order to provide a more consistent and intuitive naming scheme.
For example, underscores have been eliminated in command names, unless
they are obsolete commands related to ``old-style connections'' that
are being preserved for backwards-compatibility. In some cases, names
of command options have been changed and new options have been added.
In order to find the names of allowed options, give the name of the
command followed by the ``-usage'' option. Note that in GENESIS 2,
options follow any command arguments. Options may be abbreviated to
the shortest unambiguous character string.
The following table lists the old and new names of commands which have
changed.
______________________________________________________________________
GENESIS 1
GENESIS 2
______________________________________________________________________
EL, element_list
el, getelementlist
Error
error
INPUT
input
VERSION
version
addschedule
addtask
alias
addalias
calc_Cm
calcCm
calc_Rm
calcRm
cell_sheet
cellsheet
clean
deleteall
clear_buffer
clearbuffer
clearschedule
deletetasks
clocks
showclocks
commands
listcommands
date
getdate
dd_3d_msg
dd3dmsg
duplicate_table
duplicatetable
float_format
floatformat
gen_3d_msg
gen3dmsg
get
getfield
get_input
getinput
getfields
getfieldnames
jobs
showjobs
killjob
deletejob
paste_channel
pastechannel
pathname
getpath
pop
pope
priority
setpriority
prompt
setprompt
push
pushe
rall_calc_Rm
rallcalcRm
rancoord
randcoord
rand_comp
randcomp
randomfield
setrandfield
randomseed
randseed
read_cell
readcell
rel_position
relposition
reschedule
resched
scale_parms
scaleparms
scale_tabchan
scaletabchan
sched
showsched
sendmsg
addmsg
set
setup_alpha
setup_gate
setup_tau
show
showbinding
spatialfield
status
status
tweak_alpha
tweak_tau
write_cell
xshow_on_top
setfield
setupalpha
setupgate
setuptau
showfield
showcommand
setspatialfield
getstat (function returns value)
showstat (prints to screen)
tweakalpha
tweaktau
writecell
xshowontop
______________________________________________________________________
The following obsolete GENESIS 1 commands have been removed from
GENESIS 2, either because they are no longer needed, or because have
been replaced by a more general command or better way of accomplishing
the same result.
______________________________________________________________________
Old command
Reason for removal
______________________________________________________________________
addfunc
used only when compiling libraries
autoshell
of no known use
bgstep
replaced by ``step -background''
click1, click2
see ``XODUS Mouse Clicks'' (Clicks.doc)
delete_output_data
removed with print_out object
dropwhen
see ``XODUS Mouse Clicks'' (Clicks.doc)
endscript
use return statement to return from a script
getinfo
never implemented
getobjenv
see ``Extended Objects'' (Extended.doc)
graphpts
call ADDPTS action of xplot
library
obsolete
listwhen
see ``XODUS Mouse Clicks'' (Clicks.doc)
object
used only when compiling libraries
newclass
used only when compiling libraries
read
not needed
restoreimage
replaced by simundump
saveimage
replaced by simdump
setobjenv
see ``Extended Objects'' (Extended.doc)
simplot
same as xsimplot
source
not needed
statusline
obsolete and terminal-dependent
when
see ``XODUS Mouse Clicks'' (Clicks.doc)
xaddpts
call ADDPTS action of xplot
xcreate
obsolete XODUS alias for create
xevent
see ``XODUS Mouse Clicks'' (Clicks.doc)
xget
subsumed by getfield
xgraphfile
now an ASCII option of xsimplot
xkill
subsumed by delete command for widgets
xsendevent
see ``XODUS Mouse Clicks'' (Clicks.doc)
xset
subsumed by setfield
xshowall
use ``xshow /##[ISA=xform]''
xshowconn
replaced by xtree actions
xtreetrunc
use xtree TRUNCATE action
xupdatepix
subsumed by xupdate, PROCESS or RESET actions
______________________________________________________________________
The following commands are new in GENESIS 2.
the ``GENESIS Command Reference''.
addclass
addobject
deleteforwmsg
deletemsgdef
getelementlist
getsyncount
initdump
normalizeweights
planarweight
setfieldprot
simundump
tab2file
warning
xmap
2.4.
These are described in
addfield
callfunc
addforwmsg
enddump
file2tab
getdefault
getsyndest
isa
pixflags
resetsynchanbuffers
setspatialfield
strsub
volumeconnect
xflushevents
xpixflags
getsynindex
listactions
planarconnect
rmsmatch
simdump
swapdump
volumedelay
xgetstat
xps
addmsgdef
getsynsrc
loadtab
planardelay
setdefault
simobjdump
syndelay
volumeweight
xinit
xtextload
Objects
The names of GENESIS objects have not changed in version 2. However,
some new objects have been added, new fields and actions have been
added to some, and a few have been removed. Most of the XODUS draw
widgets have undergone considerable change, although there is a high
degree of backwards compatibility for the simple widgets. For
detailed descriptions of the XODUS objects, see the individual object
reference summaries and Chapter 20 of ``The Book of GENESIS''.
2.4.1.
New GENESIS Objects
______________________________________________________________________
Object
Description
______________________________________________________________________
hebbsynchan
Like synchan, with Hebbian modification of weights
randomspike
Generates random spike events, replacing random
spikegen
Performs threshold spike discrimination, replacing spike
synchan
Synaptically activated channel, replacing channelC2
synchan2
Alias for synchan
xaxis
Makes axis for plots - is created by xgraph
xcoredraw
Foundation object class for displaying pixes.
xdumbdraw
Demonstration object class for displaying pixes.
xgif
Draws gif images as a pix inside a draw widget
xpix
Base object for all pix widgets
xplot
Draws graphical plots - is created by xgraph
xsphere
Example pix which draws a filled circle
xtree
Displays/manipulates relationships between elements and
objects
xvar
Displays numerical values graphically with shape and
color
______________________________________________________________________
2.4.2.
Removed from GENESIS 2
______________________________________________________________________
Old object
Reason for removal
______________________________________________________________________
xconn
Now incorporated into xview
xelmtree
Now incorporated into xtree
xfileview
Implemented by sending messages from disk_in to xview
______________________________________________________________________
2.5.
SLI Syntax Changes
In addition to changes in some command names, there have been some
changes to the syntax of statements used by the Script Language
Interpreter.
2.5.1.
Function Arguments
GENESIS 1 used both the ``command form'' and the ``function call
form'' of specifying function arguments. In addition, it required
that the function call form be used when a function is expected to
return a value, as with ``get'' (now ``getfield''). GENESIS 2 uses
only the command form. Thus, you can no longer type a command as
``commandname(arg1,arg2...)''. The new syntax for command invocation
in expressions is to delimit the command and its arguments with curly
braces.
For example, the GENESIS 1.4 version of
``Scripts/tutorials/tutorial3.g'' used:
set /cell/soma inject {get({dialog}, value)}
GENESIS 2 (``The Book of GENESIS'', p. 219) uses:
setfield /cell/soma inject {getfield {dialog} value}
2.5.2.
Operands in Expressions
The other change is in how operands in expressions are handled. For
arithmetic operators, any string arguments are cast to floating point.
For logical and bitwise operators, all operands are cast to integers.
Comparison operators are unchanged. The string concatenation
operation, which was previously provided using the + operator when
both operands were strings, has been replaced by the @ operator which
casts both operands to strings and concatenates them. The precedence
for @ is the same as for +, -, etc. This is described in further
detail under ``Operators'' (Operators.doc).
2.6.
Synaptic Connections
Synaptic connections are handled much differently under GENESIS 2 than
in GENESIS 1. With version 1, a spike generating object sends a
message to an axon object and the ``connect'' command is used to link
the axon with a channelC2 object. With version 2, messages are used
from a spike generating object to a synchan object, which incorporates
the features of both the axon and the synaptically activated
channelC2. This replaces the idiosyncratic ``axonal connection'' with
standard GENESIS elements and messages, allowing easier access to
synaptic data at both the script and C levels. The relevant GENESIS
commands are summarized in ``Synaptic Connections'' (Connections.doc).
An example of this new method of implementing connections may be found
in ``Scripts/tutorials/tutorial4.g''.
In order to provide backwards compatibility with GENESIS 1 and to ease
the process of converting existing simulations, the old-style
connection objects and commands have been preserved in a connection
compatability library. This library (oldconn) may be compiled as an
optional part of the GENESIS 2.0 release. Setting and getting axon
connection fields is provided via the new setconn and getconn commands
(which are only available in the compatability library). The convert
utility converts set and get commands on connections to use setconn
and getconn.
2.7.
Extended Fields
Environment variables of objects and their elements have now been
replaced with extended fields. The addfield and deletefield commands
are used to add and delete extended fields. The setfield, getfield,
showfield, setdefault, and getdefault commands work the same for
extended fields as for predefined fields. For example, the GENESIS 1
command
set -env /cell/soma area 1e-9
would be replaced by
if (!{exists /cell/soma area})
addfield /cell/soma area
end
setfield /cell/soma area 1e-9
2.8.
Extended Objects
GENESIS now has an an extended object facility for the creation of new
objects at the script level. This allows for prototyping new objects,
creating higher level or model specific objects built from other
GENESIS objects, without the need for writing C code to be compiled
into GENESIS. The extended field facility described above may be used
to create additional fields for these new objects. When a new object
is defined, the user can specify script functions to be called when an
associated action is called on these types of elements. Once an
extended object is defined, it may be used in the same manner as any
built-in object and elements created from the object behave just as
elements of built-in objects. The construction and use of extended
objects is described in ``Extended Objects'' (Extended.doc).
2.9.
Saving Simulations
The save command file format has changed to include the number of
saved values for each element. Old save files are not compatible with
the new format and cannot be read in by restore. Three new commands
(simdump, simundump, and simobjdump) have been provided for saving the
state of a simulation. These replace the old saveimage and
restoreimage commands, but are not equivalent.
2.10.
Script Conversion
Because of these major changes in command names, options, and script
language syntax, GENESIS 1 scripts will generally not run under
GENESIS 2. The convert program converts GENESIS 1 compatible scripts
to use GENESIS 2 syntax, commands and features. Some features have
changed dramatically enough that an automatic conversion to the new
features is not feasible. In these cases, convert generates script
code for compatibility libraries which support the GENESIS 1 features.
Although some scripts can be converted and run successfully without
any manual changes to the converted scripts, it will often be
necessary to make additional changes. The use of convert and a
discussion of conversion issues is given in ``Converting GENESIS 1
Scripts to GENESIS 2'' (Convert.doc) and in the man page for convert.
2.11.
The Parallel Library
GENESIS 2 included the first release of a parallel processing
capability, which allows a model to be partitioned and run on
workstation clusters and on parallel supercomputers. Single
simulations can be parallelized and automated searches of parameter
space can be performed in parallel. This is described in a separate
manual. As the parallel library is under continual development, and
may not be of interest to all GENESIS users, it is not included in the
GENESIS distribution file, but is available separately. You may
download the latest version of the parallel library and its
documentation from the GENESIS WWW site
<http://www.bbb.caltech.edu/GENESIS/>, or from the GENESIS anonymous
ftp site <ftp://genesis.bbb.caltech.edu/pub/genesis>.
2.12. Rallpacks Benchmarks
Rallpacks are a set of benchmarks for evaluating neuronal simulators
for both speed and accuracy. As both of these criteria are important
when choosing a simulator, we are now including Rallpacks within the
GENESIS distribution, in the directory ``genesis/rallpack''.
Download