{"title": "GENESIS: A System for Simulating Neural Networks", "book": "Advances in Neural Information Processing Systems", "page_first": 485, "page_last": 492, "abstract": null, "full_text": "485 \n\nGENESIS: A SYSTEM FOR SIMULATING NEURAL \n\nNETWOfl.KS \n\nMatthew A. Wilson, Upinder S. Bhalla, John D. Uhley, James M. Bower. \n\nDivision of Biology \n\nCalifornia Institute of Technology \n\nPasadena, CA 91125 \n\nABSTRACT \n\nsupport  simulations  at  many \nit  is \n\nWe  have  developed  a  graphically  oriented,  general  purpose \nsimulation  system  to  facilitate  the  modeling  of  neural  networks. \nThe  simulator  is  implemented  under  UNIX  and  X-windows  and  is \nlevels  of  detail. \ndesigned \nto \nin  both  applied  network \nSpecifically, \nmodeling  and  in  the  simulation  of  detailed,  realistic,  biologically(cid:173)\nbased  models.  Examples  of  current  models  developed  under  this \nsystem  include  mammalian  olfactory  bulb  and  cortex,  invertebrate \ncentral  pattern  generators,  as  well  as  more  abstract  connectionist \nsimulations. \n\nintended  for  use \n\nINTRODUCTION \n\nincrease \n\nin \n\ninterest \n\nin  exploring \n\nthere  has  been  a  dramatic \n\nRecently, \nthe \ncomputational  properties  of  networks  of  parallel  distributed  processing  elements \nItneural  networks\" \n(Rumelhart  and  McClelland,  1986)  often \n(Anderson,  1988).  Much  of  the  current  research  involves  numerical  simulations  of \nthese  types  of  networks  (Anderson,  1988;  Touretzky,  1989).  Over  the  last  several \nyears,  there  has  also  been  a  significant  increase  in  interest  in  using  similar computer \nsimulation  techniques \nto  study  the  structure  and  function  of  biological  neural \nnetworks.  This  effort  can  be  seen  as  an  attempt  to  reverse-engineer  the  brain  with \nthe  objective  of  understanding  the  functional  organization  of  its  very  complicated \nfrom  detailed \nnetworks \nreconstructions  of  single  neurons,  or  even  components  of  single  neurons, \nto \nsimulations  of  large  networks  of  complex  neurons  (Koch  and  Segev,  1989). \nModelers  associated  with  each  area of research  are  likely  to  benefit  from  exposure  to \na  large  range  of  neural  network  simulations.  A  simulation  package  capable  of \nimplementing these varied types of network models would facilitate this interaction. \n\n(Bower,  1989).  Simulations  of  these  systems \n\nreferred \n\nto  as \n\nrange \n\n\f486 \n\nWilson, Bhalla, Uhley and Bower \n\nDESIGN FEATURES OF THE SIMULATOR \nWe  have  built  GENESIS  (GEneral  NEtwork  SImulation  System)  and  its  graphical \ninterface  XODUS  (X-based  Output  and  Display  Utility  for  Simulators)  to  provide  a \nstandardized  and  flexible  means  of  constructing  neural  network  simulations  while \nmaking  minimal  assumptions  about  the  actual  structure  of  the  neural  components. \nThe  system  is  capable  of growing  according  to  the  needs  of users  by  incorporating \nuser-defined code.  We will now describe the specific features of this system. \n\nDevice independence. \nThe  entire  system  has  been  designed  to  run  under  UNIX  and  X-windows  (version \n11)  for  maximum  portability.  The  code  was  developed  on  Sun  workstations  and  has \nbeen  ported  to  Sun3's,  Sun4's,  Sun  386i's,  and  Masscomp  computers.  It  should  be \nportable  to  all  installations  supporting  UNIX  and  X-II.  In  addition,  we  will  be \ndeveloping a parallel implementation of the simulation system (Nelson et al., 1989). \n\nModular design. \n\nThe  design  of  the  simulator  and  interface  is  based  on  a  \"building-block\"  approach. \nSimulations  are  constructed  of  modules  which  receive  inputs,  perform  calculations \non  them,  and  generate  outputs  (figs.  2,3).  This  approach  is  central  to  the  generality \nand  flexibility  of  the  system  as  it  allows  the  user  to  easily  add  new  features \nwithout modification to the base code. \n\nInteractive specification and control. \nNetwork  specification  and  control  is done  at  a  high  level  using  graphical  tools  and  a \nnetwork  specification  language  (fig.  1).  The  graphics  interface  provides  the  highest \nand  most  user  friendly  level  of  interaction.  It  consists  of a  number  of  tools  which \nthe  user  can  configure  to  suit  a  particular  simulation.  Through  the  graphical \ninterface  the  user  can  display,  control  and  adjust  the  parameters  of simulations.  The \nnetwork  specification  language  we  have  developed  for  network  modeling  represents  a \nmore  basic  level  of  interaction.  This  language  consists  of  a  set  of  simulator  and \ninterface  functions  that  can  be  executed  interactively  from  the  keyboard  or  from \ntext  flies  storing  command  sequences  (scripts).  The  language  also  provides  for \narithmetic  operations  and  program  control  functions  such  as  looping,  conditional \nstatements,  and  subprograms  or  macros.  Figures  3  and  4  demonstrate  how  some  of \nthese script functions are used. \n\nSimulator and interrace toolkits. \nExtendable  toolkits  which  consist  of  module  libraries,  graphical  tools  and  the \nsimulator  base  code  itself  (fig.  2)  provide  the  routines  and  modules  used  to \nconstruct  specific  simulations.  The  base  code  provides  the  common  control  and \nsupport routines for the entire system. \n\n\fGENESIS: A System for Simulating Neural Networks \n\n487 \n\nScript  Files \n\nGra  hics  Interface \n.. ~ ..  ~ \n.DP~~Data \n\nFiles \n\n( \n\nGenesis  command \nwindow and ke  board \n\nGenesis  1% \n\nScript  Language \n\nInterpreter \n\nFigure  1. Levels  Of Interaction  With  The  Simulator \n\nCONSTRUCTING SIMULATIONS \nThe  first  step  in  using  GENESIS  involves  selecting  and  linking  together  those \nmodules  from  the  toolkits  that  will  be  necessary  for  a  particular  simulation  (fig. \n2,3).  Additional  commands  in  the  scripting  language  establish  the  network  and  the \ngraphical interface (fig. 4). \n\nModule Classes. \nModules  in  GENESIS  are  divided  into  computational  modules,  communications \nmodules  and  graphical  modules.  All  instances  of computational  modules  are  called \nelements.  These  are  the  central  components  of  simulations,  performing  all  of  the \nnumerical  calculations.  Elements  can  communicate  in  two  ways:  via  links  and  via \nconnections.  Links  allow  the  passing  of  data  between  two  elements  with  no  time \ndelay  and  with  no  computation  being  performed  on  the  data.  Thus.  links  serve  to \nunify  a  large  number  of  elements  into  a  single  computational  unit  (e.g.  they  are \nused  to  link  elements  together  to  form  the  neuron  in  fig.  3C).  Connections.  on  the \nother  hand.  interconnect  computational  units  via  simulated  communication  channels \nwhich  can  incorporate  time  delays  and  perform  transformations  on  data  being \ntransmitted  (e.g.  axons  in  fig.  3C).  Graphical  modules  called  widgets  are  used  to \nconstruct  the  interface.  These  modules  can  issue  script  commands  as  well  as  respond \nto them, thus allowing interactive access to simulator structures and functions. \n\n\f488 \n\nWilson, Bhalla, Uhley and Bower \n\nHierarchical organization. \n\nIn  order  to  keep  track  of the  structure  of a  simulation,  elements  are  organized  into  a \ntree  hierarchy  similar  to \nthe  directory  structure  in  UNIX  (fig.  3B).  The  tree \nstructure  does  not  explicitly  represent  the  pattern  of  links  and  connections  between \nelements,  it  is  simply  a  tool  for  organizing  complex  groups  of  elements  in  the \nsimulation. \n\nSimulation example. \n\nAs  an  example  of the  types  of modules  available  and  the  process  of structuring  them \ninto  a  network  simulation  and  graphical  interface,  we  will  describe  the  construction \nof  a  simple  biological  neural  simulation  (fig.  3).  The  I11pdel  consists  of  two \nneurons.  Each  neuron  contains  a  passive  dendritic  compartment,  an  active  cell  body, \nan  axonal  output,  and  a  synaptic  input  onto  the  dendrite.  The  axon  of  one  neuron \nconnects  to  a  synaptic  input  of the  other.  Figure  3  shows  the  basic  structure  of the \nimplemented  under  GENESIS.  In  the  model,  the  synapse,  channels, \nmodel  as \n\nSimulator  and  interrace  toolkit \n\n-----------------------------------------------------------------~ \n\nGraphics Modules \n\nCommunications \n\nmodules \n\nComputational \n\nModules \n\n(  A  oDCO \nEarn \n\nSimulation \n\nCLinker \n\n\u2022 \n\nSimulator \n\n=> __ \nca \n\nffi ~ \n.. \n\n.... ;.......... \n\n.::<::;:::;\";::::,:::-:.<.,  ..... . \n\n\\.< ..  :\u00b7 j~ : CQdK  .. ... \n\n.... -----0001 \n\nFigure  2.  Stages  In  Constructing  A  Simulation. \n\n\fGENESIS: A System for Simulating Neural Net~orks \n\n489 \n\nB \n\nnetwork \n\n~~ \n\n~ \n\nneuron! \n\nneuron2 \n\ncell-body A \n\nK \n\nNa \n\naxon \n\ndendrite \\ \n\nsynapse \n\nKEY \n\nElement \n\nConnection \n-Link \n\nA \n\nC \n\nD \n\ndendrite \n\nFigure  3.  Implementation  of a  two  neuron  model  in  GENESIS.  (A)  Schematic  dia(cid:173)\ngram  of compartmentally  modeled  neurons.  Each  cell  in  this  simple  model  has  a  pas(cid:173)\nsive  dendritic  compartment,  an  active  cell-body,  and  an  output  axon.  There  is  a \nsynaptic  input  to  the  dendrite  of one  cell  and  two  ionic  channels  on  the  cell  body. \n(B)  Hierarchical  representation  of the  components  of the  simulation  as  maintained  in \nGENESIS.  The  cell-body  of neuron  1  is  referred  to  as  /network/neuronl/cell-body. \n(C)  A  representation  of  the  functional  links  between  the  basic  components  of  one \nneuron.  (D)  Sample  interface  control  and  display  widgets  created  using  the  XODUS \ntoolkit. \n\n\f490 \n\nWilson, Bhalla, Uhley and Bower \n\ntreated  as  separate \ndendritic  compartments,  cell  body  and  axon  are  each \ncomputational  elements  (fig.  3C).  Links  allow  elements  to  share  information  (e.g. \nthe  Na  channel  needs  to  have  access  to  the  cell-body  membrane  voltage).  Figure  4 \nshows a portion of the script used to construct this simulation. \n\nCreate  different  types  or elements  and  assign  them  names. \n\nneuronl \ncell-body \ndendrite \ndendrite/synapse \n\ncreate \ncreate \ncreate \ncreate \n\nactive  compartment \npassive_compartment \nsynapse \n\nEstablish  functional  \"links\"  between  the  elements. \n\nlink \nlink \n\ndendrite \ndendrite/synapse \n\nto \nto \n\ncell-body \ndendrite \n\nSet  parameters  associated  with  the  elements. \n\nset \n\ndendrit~ \n\ncapacitance \n\nl.Oe-6 \n\nMake  copies  or entire  element  subtrees. \n\ncopy \n\nneuronl \n\nto \n\nneuron2 \n\nEstablish  \"connections\"  between  two  elements. \n\nconnect  neuronl/axon \n\nto \n\nneuron2/dendrite/ synapse \n\nSet  up  a  graph to  monitor an  element variable \npotential \n\nneuronl/cell-body \n\ngraph \n\nMake  a  control  panel  with  several  control  \"widgets\". \n\ncontrol \n\nxform \nxdialo g  nstep \nxdialog  dt \nXloggle  Euler \n\nset-nstep \nset-dt \nset-euler \n\n-default 200 \n-default 0.5 \n\nFigure 4.  Sample  script commands  for  constructing  a  simulation  (see  fig.  3) \n\nSIMULATOR SPECIFICATIONS \n\nMemory requirements or GENESIS. \n\nCurrently.  GENESIS  consists  of about  20,000  lines  of  simulator  code  and  a  similar \namount  of graphics  code,  all  written  in  C.  The executable  binaries  take  up  about  1.5 \nMegabytes.  A  rough  estimate  of  the  amount  of additional  memory  necessary  for  a \nparticular  simulation  can  be  calculated  from  the  sizes  and  number  of  modules  used \nin  a  simulation.  Typically,  elements  use  around  100  bytes,  connections  16  and \nmessages 20.  Widgets use 5-20 Kbytes each. \n\n\fGENESIS: A System for Simulating Neural Networks \n\n491 \n\nPerformance \n\nThe  overall  efficiency  of  the  GENESIS  system  is  highly  simulation  specific.  To \nconsider  briefly  a  specific  case,  the  most  sophisticated  biologically  based  simulation \ncurrently  implemented  under  GENESIS,  is  a  model  of  piriform  (olfactory)  cortex \n(Wilson  et  al.,  1986;  Wilson  and  Bower,  1988;  Wilson  and  Bower,  1989).  This \nsimulation  consists  of  neurons  of  four  different  types.  Each  neuron  contains  from \none  to  five  compartments.  Each  compartment  can  contain  several  channels.  On  a \nSUN  386i  with  8  Mbytes  of RAM.  this  simulation  with  500  cells  runs  at  I  second \nper time step. \n\nOther models that have been implemented under GENESIS \n\nThe  list  of projects  currently  completed  under  GENESIS  includes  approximately  ten \ndifferent  simulations.  These  include  models  of  the  olfactory  bulb  (Bhalla  et  al., \n1988),  the  inferior  olive  (Lee  and  Bower,  1988).  and  a  motor  circuit  in  the \ninvertebrate  sea  slug  Tritonia  (Ryckebusch  et aI.,  1989)~  We have  also  built  several \ntutorials  to  allow  students  to  explore  compartmental  biological  models  (Hodgkin \nand Huxley, 1952), and Hopfield networks (Hopfield. 1982). \n\nAccess/use of GENESIS \n\nGENESIS  and  XODUS  will  be  made  available  at  the  cost  of  distribution  to  all \ninterested  users.  As  described  above,  new  user-defined  modules  can  be  linked  into \nthe  simulator  to  extend  the  system.  Users  are  encouraged  to  support  the  continuing \ndevelopment  of  this  system  by  sending  modules  they  develop  to  Caltech.  These \nwill  be  reviewed  and  compiled  into  the  overall  system  by  GENESIS  support  staff. \nWe  would  also  hope  that  users  would  send  completed  published  simulations  to  the \nGENESIS  data  base.  This  will  provide  others  with  an  opportunity  to  observe  the \nbehavior  of  a  simulation  first  hand.  A  current \nlisting  of  modules  and  full \nsimulations  will  be  maintained  and  available  through  an  electronic  mail  newsgroup. \nBabel.  Enquiries  about  the  system  should  be  sent  to  GENESIS@caltech.edu  or \nGENESIS@caltech.biblet. \n\nAcknowledgments \n\nto \n\ninvaluable  assistance \n\nin \n\nlike \n\nthank  Mark  Nelson  for  his \n\nWe  would \nthe \ndevelopment  of  this  system  and  specifically  for  his  suggestions  on  the  content  of \nthis  manuscript.  We  would  also  like  to  recognize  Dave  Bilitch.  Wojtek  Furmanski. \nChristof  Koch,  innumerable  Caltech  students  and  the  students  of  the  1988  MBL \nsummer  course  on  Methods  in  Computational  Neuroscience  for  their  contributions \nto  the  creation  and  evolution  of GENESIS  (not  mutually  exclusive).  This  research \nwas  also  supported  by  the  NSF  (EET-8700064).  the  NIH  (BNS  22205).  the  ONR \n(Contract  NOOOI4-88-K-0513).  the  Lockheed  Corporation.  the  Caltech  Presidents \nFund, the JPL Directors Development Fund. and the Joseph Drown Foundation. \n\n\f492 \n\nWilson, Bhalla, Uhley and Bower \n\nReferences \nD.  Anderson.  (ed.)  Neural  information  processing  systems.  American  Institute  of \nPhysics, New York (1988). \n\nU.S.  Bhalla,  M.A.  Wilson,  &  J.M.  Bower. \nand  multi-unit  recording  in  the  rat  olfactory  system.  Soc.  Neurosci.  Abstr. \n1188 (1988). \n\nIntegration  of  computer  simulations \n14: \n\nI.M.  Bower.  Reverse  engineering  the  nervous  system:  An  anatomical,  physiological, \nand  computer  based  approach. \nIn:  An  Introduction  to  Neural  and  Electronic \nNetworks. Zornetzer, Davis, and Lau, editors. Academic Press (1989)(in press). \n\nA.L.  Hodgkin  and  A.F.  Huxley.  A  quantitative  description  of membrane  current  and \nits  application  to  conduction  and  excitation  in  nerve.  I.Physiol,  (Lond.)  117,  500-\n544 (1952). \n\n1.J.  Hopfield.  Neural  networks  and  physical  systems  with  emergent  collective \ncomputational abilities. Proc. Natl. Acad. Sci. USA. 79,2554-2558 (1982). \n\nC.  Koch  and  I.  Segev.  (eds.)  Methods  in  Neuronal  Modeling:  From  Synapses  to \nNetworks. MIT Press, Cambridge, MA (in press). \n\nM.  Lee  and  I.M.  Bower.  A  structural  simulation  of  the  inferior  olivary  nucleus. \nSoc. Neurosci. Abstr.  14:  184 (1988). \n\nM.  Nelson,  W.  Furmanski  and  I.M.  Bower.  Simulating  neurons  and  neuronal \nnetworks  on  parallel  computers.  In:  Methods  in  Neuronal  Modeling:  From  Synapses \nto  Networks.  C.  Koch  and  I.  Segev,  editors.  MIT  Press,  Cambridge,  MA  (1989)(in \npress). \n\nS.  Ryckebusch,  C.  Mead  and  I.M.  Bower.  Modeling  a  central  pattern  generator  in \nsoftware and hardware: Tritonia in sea moss (CMOS). (l989)(this volume). \n\nD.E.  Rumelhart,  1.L.  McClelland  and  the  PDP  Research  Group.  Parallel  Distributed \nProcessing. MIT Press, Cambridge, MA (1986). \n\nD.  Touretzky.  (ed.)  Advances  in  Neural  Network  Information  Processing  Systems. \nMorgan Kaufmann Publishers, San Mateo, California (1989). \n\nM.A.  Wilson  and  I.M.  Bower.  The  simulation  of large-scale  neuronal  networks.  In: \nMethods  in  Neuronal  Modeling:  From  Synapses  to  Networks.  C.  Koch  and  I.  Segev, \neditors. MIT Press, Cambridge, MA (1989)(in press). \n\nM.A.  Wilson  and  I.M.  Bower.  A  computer  simulation  of  olfactory  cortex  with \nIn: \nfunctional \nNeural  information  processing  systems.  pp.  114-126  D.  Anderson,  editor.  Published \nby AlP Press, New York, N.Y (1988). \n\nimplications  for  storage  and  retrieval  of  olfactory \n\ninformation. \n\nM.A.  Wilson,  I.M.  Bower  and  L.B.  Haberly.  A  computer  simulation  of  piriform \ncortex. Soc. Neurosci. Abstr.  12.1358 (1986). \n\n\fPart IV \n\nStructured Networks \n\n\f", "award": [], "sourceid": 182, "authors": [{"given_name": "Matthew", "family_name": "Wilson", "institution": null}, {"given_name": "Upinder", "family_name": "Bhalla", "institution": null}, {"given_name": "John", "family_name": "Uhley", "institution": null}, {"given_name": "James", "family_name": "Bower", "institution": null}]}