The Book of GENESIS Contents



Part I   Neurobiological Tutorials with GENESIS                              1

1  Introduction                                                              3
   1.1 Computational Neuroscience   . . . . . . . . . . . . . . . . . . . .  3
   1.2 Using This Book  . . . . . . . . . . . . . . . . . . . . . . . . . .  4

2  Compartmental Modeling                                                    7
   2.1 Modeling Neurons . . . . . . . . . . . . . . . . . . . . . . . . . .  7
       2.1.1 Detailed Compartmental Models   . . . . . . . . . . . .  . . .  8
       2.1.2 Equivalent Cylinder Models  . . . . . . . . . . . . . . .  . .  9
       2.1.3 Single and Few Compartment Models  . . . . . . . . . . . . . . 10
   2.2 Equivalent Circuit of a Single Compartment . . . . . . . . . . . . . 10
   2.3 Axonal Connections, Synapses and Networks  . . . . . . . . . . . . . 12
   2.4 Simulation Accuracy  . . . . . . . . . . . . . . . . . . . . . . . . 13
       2.4.1 Choice of Numerical Integration Technique  . . . . . . . . . . 13
       2.4.2 Integration Time Step  . . . . . . . . . . . . . . . . . . . . 14
       2.4.3 Accuracy of GENESIS  . . . . . . . . . . . . . . . . . . . . . 15

3  Neural Modeling with GENESIS                                             17
   3.1 What is GENESIS?   . . . . . . . . . . . . . . . . . . . . . . . . . 17
       3.1.1 Why Use a General Simulator? . . . . . . . . . . . . . . . . . 17
       3.1.2 GENESIS Design Features  . . . . . . . . . . . . . . . . . . . 18
       3.1.3 GENESIS Development  . . . . . . . . . . . . . . . . . . . . . 20
   3.2 Introduction to the Tutorials  . . . . . . . . . . . . . . . . . . . 20
   3.3 Introduction to the GENESIS Graphical Interface  . . . . . . . . . . 22
       3.3.1 Starting the Simulation  . . . . . . . . . . . . . . . . . . . 22
       3.3.2 The Control Panel  . . . . . . . . . . . . . . . . . . . . . . 23
       3.3.3 Using Help Menus . . . . . . . . . . . . . . . . . . . . . . . 24
       3.3.4 Displaying the Simulation Results  . . . . . . . . . . . . . . 26

4  The Hodgkin-Huxley Model                                                 29
   4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
   4.2 Historical Background  . . . . . . . . . . . . . . . . . . . . . . . 30
   4.3 The Mathematical Model . . . . . . . . . . . . . . . . . . . . . . . 34
       4.3.1  Electrical Equivalent Circuit   . . . . . . . . . . . . . . . 34
       4.3.2  HH Conventions  . . . . . . . . . . . . . . . . . . . . . . . 35
       4.3.3  The Ionic Current . . . . . . . . . . . . . . . . . . . . . . 36
   4.4 Voltage Clamp Experiments  . . . . . . . . . . . . . . . . . . . . . 38
       4.4.1  Characterizing the K Conductance  . . . . . . . . . . . . . . 39
   4.5 GENESIS: Voltage Clamp Experiments   . . . . . . . . . . . . . . . . 41
   4.6 Parameterizing the Rate Constants  . . . . . . . . . . . . . . . . . 44
   4.7 Inactivation of the Na Conductance . . . . . . . . . . . . . . . . . 45
   4.8 Current Injection Experiments  . . . . . . . . . . . . . . . . . . . 47
   4.9 Exercises  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5  Cable and Compartmental Models of Dendritic Trees                        51
   5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
   5.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
       5.2.1  Dendritic Trees: Anatomy, Physiology and Synaptology  . . . . 53
       5.2.2  Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
   5.3 The One-Dimensional Cable Equation . . . . . . . . . . . . . . . . . 56
       5.3.1  Basic Concepts and Assumptions  . . . . . . . . . . . . . . . 56
       5.3.2  The Cable Equation  . . . . . . . . . . . . . . . . . . . . . 56
   5.4 Solution of the Cable Equation for Several Cases . . . . . . . . . . 59
       5.4.1  Steady-State Voltage Attenuation with Distance  . . . . . . . 59
       5.4.2  Voltage Decay with Time . . . . . . . . . . . . . . . . . . . 60
       5.4.3  Functional Significance of lambda and tau . . . . . . . . . . 61
       5.4.4  The Input Resistance Rin and "Trees Equivalent to a
              Cylinder" . . . . . . . . . . . . . . . . . . . . . . . . . . 62
       5.4.5  Summary of Main Results from the Cable Equation   . . . . . . 64
   5.5 Compartmental Modeling Approach  . . . . . . . . . . . . . . . . . . 65
   5.6 Compartmental Modeling Experiments . . . . . . . . . . . . . . . . . 68
   5.7 Main Insights for Passive Dendrites with Synapses  . . . . . . . . . 71
   5.8 Biophysics of Excitable Dendrites  . . . . . . . . . . . . . . . . . 73
   5.9 Computational Function of Dendrites  . . . . . . . . . . . . . . . . 75
   5.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6  Temporal Interactions Between Postsynaptic Potentials                    79
   6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
   6.2 Electrical Model of a Patch of Membrane  . . . . . . . . . . . . . . 80
       6.2.1 Voltage Response of Passive Membrane to a Current Pulse  . . . 81
   6.3 Response to Activation of Synaptic Channels  . . . . . . . . . . . . 85
       6.3.1 The Postsynaptic Current . . . . . . . . . . . . . . . . . . . 85
       6.3.2 The Postsynaptic Potential . . . . . . . . . . . . . . . . . . 86
       6.3.3 Smooth Synaptic Conductance Change: The "Alpha Function" . . . 88
   6.4 A Remark on Synaptic Excitation and Inhibition . . . . . . . . . . . 89
   6.5 GENESIS Experiments with PSPs  . . . . . . . . . . . . . . . . . . . 90
       6.5.1 Temporal Summation of Postsynaptic Potentials  . . . . . . . . 91
       6.5.2 Nonlinear Summation of Postsynaptic Potentials . . . . . . . . 93
   6.6 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . 94
   6.7 Exercises and Projects . . . . . . . . . . . . . . . . . . . . . . . 95

7  Ion Channels in Bursting Neurons                                         97
   7.1 Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . . .  97
   7.2 General Properties of Molluscan Neurons   . . . . . . . . . . . . .  99
   7.3 Ionic Conductances _ The Dance of the Ions  . . . . . . . . . . . . 101
       7.3.1 Action Potential Related Conductances . . . . . . . . . . . . 102
       7.3.2 Control of Bursting Properties  . . . . . . . . . . . . . . . 106
   7.4 A Model Molluscan Neuron  . . . . . . . . . . . . . . . . . . . . . 112
       7.4.1 Adrift in Parameter Space . . . . . . . . . . . . . . . . . . 112
       7.4.2 Implementation of the Model . . . . . . . . . . . . . . . . . 114
       7.4.3 Modeling the Channels   . . . . . . . . . . . . . . . . . . . 115
   7.5 The Molluscan Neuron Simulation . . . . . . . . . . . . . . . . . . 118
       7.5.1 Using Neurokit  . . . . . . . . . . . . . . . . . . . . . . . 118
       7.5.2 Understanding the Results   . . . . . . . . . . . . . . . . . 119
   7.6 The Traub Model CA3 Pyramidal Cell  . . . . . . . . . . . . . . . . 121
       7.6.1 Experiments with the Traub Model  . . . . . . . . . . . . . . 122
       7.6.2 Firing Patterns . . . . . . . . . . . . . . . . . . . . . . . 126
   7.7 Exercises   . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

8  Central Pattern Generators                                              131
   8.1 Introduction .  . . . . . . . . . . . . . . . . . . . . . . . . . . 131
   8.2 Two-Neuron Oscillators  . . . . . . . . . . . . . . . . . . . . . . 134
       8.2.1 Phase Equation Model of Coupled Oscillators . . . . . . . . . 134
       8.2.2 Simulation Parameters . . . . . . . . . . . . . . . . . . . . 136
       8.2.3  Initial Conditions . . . . . . . . . . . . . . . . . . . . . 137
       8.2.4  Synaptic Coupling  . . . . . . . . . . . . . . . . . . . . . 138
       8.2.5  Non-phase Equation Models  . . . . . . . . . . . . . . . . . 139
   8.3 Four-Neuron Oscillators . . . . . . . . . . . . . . . . . . . . . . 140
       8.3.1  Chains of Coupled Oscillators  . . . . . . . . . . . . . . . 140
       8.3.2  Simulation Parameters  . . . . . . . . . . . . . . . . . . . 142
       8.3.3  Modeling Gaits . . . . . . . . . . . . . . . . . . . . . . . 144
   8.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
   8.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

9  Dynamics of Cerebral Cortical Networks                                  149
   9.1 Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
   9.2 Piriform Cortex . . . . . . . . . . . . . . . . . . . . . . . . . . 150
   9.3 Structure of the Model  . . . . . . . . . . . . . . . . . . . . . . 150
       9.3.1  Cellular Complexity  . . . . . . . . . . . . . . . . . . . . 151
       9.3.2  Network Circuitry  . . . . . . . . . . . . . . . . . . . . . 152
   9.4 Electroencephalography  . . . . . . . . . . . . . . . . . . . . . . 154
   9.5 Using the Tutorial  . . . . . . . . . . . . . . . . . . . . . . . . 158
       9.5.1  Getting Started  . . . . . . . . . . . . . . . . . . . . . . 158
       9.5.2  Generating Simulated Data  . . . . . . . . . . . . . . . . . 159
       9.5.3  Initial Look at Simulated Activity . . . . . . . . . . . . . 160
       9.5.4  Observing Network Behavior . . . . . . . . . . . . . . . . . 162
       9.5.5  Varying Network Parameters . . . . . . . . . . . . . . . . . 162
   9.6 Detailed Examination of Network Behavior  . . . . . . . . . . . . . 164
   9.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
   9.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

10 The Network Within: Signaling Pathways                                  169
   10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
       10.1.1 Nomenclature . . . . . . . . . . . . . . . . . . . . . . . . 170
       10.1.2 A Short Short Course in Biochemistry . . . . . . . . . . . . 171
       10.1.3 Common Signaling Pathways  . . . . . . . . . . . . . . . . . 172
   10.2 Modeling Signaling Pathways  . . . . . . . . . . . . . . . . . . . 175
       10.2.1 Theory   . . . . . . . . . . . . . . . . . . . . . . . . . . 175
       10.2.2 Sources of Data  . . . . . . . . . . . . . . . . . . . . . . 176
       10.2.3 Figuring Out the Mechanisms  . . . . . . . . . . . . . . . . 176
       10.2.4 Reaction Rate Constants  . . . . . . . . . . . . . . . . . . 178
       10.2.5 Enzyme Rate Constants  . . . . . . . . . . . . . . . . . . . 178
       10.2.6 Initial Concentrations . . . . . . . . . . . . . . . . . . . 179
       10.2.7 Refining the Model . . . . . . . . . . . . . . . . . . . . . 180
   10.3 Building Kinetics Models with GENESIS and Kinetikit  . . . . . . . 180
       10.3.1 The kinetics Library . . . . . . . . . . . . . . . . . . . . 180
       10.3.2 Kinetikit  . . . . . . . . . . . . . . . . . . . . . . . . . 181
       10.3.3 A Feedback Model . . . . . . . . . . . . . . . . . . . . . . 184
       10.3.4 Beyond Kinetikit . . . . . . . . . . . . . . . . . . . . . . 187
       10.3.5 Connecting Kinetic Models to the Rest of GENESIS . . . . . . 188
   10.4 Summary: Molecular Computation . . . . . . . . . . . . . . . . . . 189
   10.5 Exercises  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

Part II   Creating Simulations with GENESIS                                193

11 Constructing New Models                                                 195
   11.1 Structurally Realistic Modeling  . . . . . . . . . . . . . . . . . 196
   11.2 The Modeling Process . . . . . . . . . . . . . . . . . . . . . . . 198
       11.2.1 Single Neurons or Networks . . . . . . . . . . . . . . . . . 199
       11.2.2 Modeling Steps . . . . . . . . . . . . . . . . . . . . . . . 200

12 Introduction to GENESIS Programming                                     203
   12.1 Simulating a Simple Compartment  . . . . . . . . . . . . . . . . . 203
   12.2 Getting Started with GENESIS . . . . . . . . . . . . . . . . . . . 203
   12.3 GENESIS Objects and Elements . . . . . . . . . . . . . . . . . . . 205
       12.3.1 Creating and Deleting Elements   . . . . . . . . . . . . . . 206
       12.3.2 Examining and Modifying Elements . . . . . . . . . . . . . . 206
   12.4 Running a GENESIS Simulation . . . . . . . . . . . . . . . . . . . 208
       12.4.1 Adding Graphics  . . . . . . . . . . . . . . . . . . . . . . 208
       12.4.2 Linking Elements with Messages . . . . . . . . . . . . . . . 209
       12.4.3 Adding Buttons to a Form   . . . . . . . . . . . . . . . . . 210
   12.5 How GENESIS Performs a Simulation  . . . . . . . . . . . . . . . . 211
   12.6 Exercises  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

13 Simulating a Neuron Soma                                                215
   13.1 Some GENESIS Script Language Conventions . . . . . . . . . . . . . 215
       13.1.1 Defining Functions in GENESIS  . . . . . . . . . . . . . . . 215
   13.2 Making a More Realistic Soma Compartment . . . . . . . . . . . . . 218
       13.2.1 Some Remarks on Units  . . . . . . . . . . . . . . . . . . . 218
       13.2.2 Building a "Squid-Like" Soma   . . . . . . . . . . . . . . . 219
       13.2.3 GIGO (Garbage In, Garbage Out) . . . . . . . . . . . . . . . 221
   13.3 Debugging GENESIS Scripts  . . . . . . . . . . . . . . . . . . . . 223
   13.4 Exercises  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

14 Adding Voltage-Activated Channels                                       225
   14.1 Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
   14.2 More Fun With XODUS  . . . . . . . . . . . . . . . . . . . . . . . 226
   14.3 Voltage-Activated Channel Objects  . . . . . . . . . . . . . . . . 229
       14.3.1 The hh_channel Object  . . . . . . . . . . . . . . . . . . . 230
       14.3.2 Adding Hodgkin-Huxley Na and K Channels to the Soma  . . . . 231
   14.4 Final Additions and Improvements . . . . . . . . . . . . . . . . . 233
       14.4.1 Use of the Compartment initVm Field  . . . . . . . . . . . . 234
       14.4.2 Overlaying GENESIS Plots . . . . . . . . . . . . . . . . . . 235
   14.5 Extended Objects . . . . . . . . . . . . . . . . . . . . . . . . . 236
   14.6 Exercises  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
15 Adding Dendrites and Synapses                                           243
   15.1 Adding a Dendrite Compartment  . . . . . . . . . . . . . . . . . . 243
   15.2 Providing Synaptic Input . . . . . . . . . . . . . . . . . . . . . 246
   15.3 Connections Between Neurons  . . . . . . . . . . . . . . . . . . . 248
   15.4 Learning and Synaptic Plasticity . . . . . . . . . . . . . . . . . 251
       15.4.1 Continous Modification of the Synaptic Weight  . . . . . . . 251
       15.4.2 Use of the MOD Message . . . . . . . . . . . . . . . . . . . 251
       15.4.3 Hebbian Learning with the hebbsynchan  . . . . . . . . . . . 251
       15.4.4 Customizing the synchan or hebbsynchan . . . . . . . . . . . 252
   15.5 Where Do We Go from Here?  . . . . . . . . . . . . . . . . . . . . 252
   15.6 Exercises  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

16 Automating Cell Construction with the Cell Reader                       255
   16.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
   16.2 Creating a Library of Prototype Elements . . . . . . . . . . . . . 256
       16.2.1 Future Changes in the Cell Reader  . . . . . . . . . . . . . 256
       16.2.2 The protodefs.g Script . . . . . . . . . . . . . . . . . . . 257
   16.3 The Format of the Cell Descriptor File . . . . . . . . . . . . . . 259
   16.4 Modifying the Main Script to Use the Cell Reader . . . . . . . . . 262
   16.5 The Neurokit Simulation  . . . . . . . . . . . . . . . . . . . . . 262
   16.6 Exercises  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

17 Building a Cell With Neurokit                                           265
   17.1 Introduction and Review  . . . . . . . . . . . . . . . . . . . . . 265
   17.2 Customizing the userprefs File   . . . . . . . . . . . . . . . . . 266
       17.2.1 Step 1   . . . . . . . . . . . . . . . . . . . . . . . . . . 267
       17.2.2 Step 2   . . . . . . . . . . . . . . . . . . . . . . . . . . 267
       17.2.3 Step 3   . . . . . . . . . . . . . . . . . . . . . . . . . . 270
   17.3 The Cell Descriptor File   . . . . . . . . . . . . . . . . . . . . 273
   17.4 Some Experiments Using Neurokit  . . . . . . . . . . . . . . . . . 273
   17.5 Exercises and Projects   . . . . . . . . . . . . . . . . . . . . . 276

18 Constructing Neural Circuits and Networks                               279
   18.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
   18.2 The Orient_tut Simulation   . . . . . . . . . . . . . . . . . . .  280
   18.3 Running the Simulation  . . . . . . . . . . . . . . . . . . . . .  280
   18.4 Creating a Network Simulation  . . . . . . . . . . . . . . . . . . 282
   18.5 Defining Prototypes   . . . . . . . . . . . . . . . . . . . . . .  282
   18.6 Creating Arrays of Cells  . . . . . . . . . . . . . . . . . . . .  284
   18.7 Making Synaptic Connections  . . . . . . . . . . . . . . . . . . . 286
       18.7.1 Specifying Individual Synaptic Connections  . . . . . . . .  287
       18.7.2 Commands Involving Groups of Synapses  . . . . . . . . . . . 288
       18.7.3 Utility Functions for Synapses   . . . . . . . . . . . . . . 297
   18.8 Setting Up the Inputs  . . . . . . . . . . . . . . . . . . . . . . 299
   18.9 Summary  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

19 Implementing Other Types of Channels                                    301
   19.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
   19.2 Using Experimental Data to Make a tabchannel . . . . . . . . . . . 302
       19.2.1 Setting the tabchannel Internal Fields  . . . . . . . . . .  304
       19.2.2 Testing and Editing the Channel  . . . . . . . . . . . . . . 307
   19.3 Using Equations for the Rate Constants  . . . . . . . . . . . . .  311
   19.4 Implementing Calcium-Dependent Conductances  . . . . . . . . . . . 314
       19.4.1 Calculating the Calcium Concentration   . . . . . . . . . .  314
       19.4.2 The AHP Current  . . . . . . . . . . . . . . . . . . . . . . 317
       19.4.3 The C-Current  . . . . . . . . . . . . . . . . . . . . . . . 318
       19.4.4 Other Uses of the table Object  . . . . . . . . . . . . . .  320
       19.4.5 The vdep_gate Object  . . . . . . . . . . . . . . . . . . .  321
       19.4.6 Using the tab2Dchannel Object  . . . . . . . . . . . . . . . 321
   19.5 NMDA Channels  . . . . . . . . . . . . . . . . . . . . . . . . . . 324
   19.6 Gap Junctions  . . . . . . . . . . . . . . . . . . . . . . . . . . 325
   19.7 Dendrodendritic Synapses  . . . . . . . . . . . . . . . . . . . .  326
   19.8 Exercises   . . . . . . . . . . . . . . . . . . . . . . . . . . .  327

20 Speeding Up GENESIS Simulations                                         329
   20.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
   20.2 Some General Hints   . . . . . . . . . . . . . . . . . . . . . . . 329
   20.3 Numerical Methods Used in GENESIS  . . . . . . . . . . . . . . . . 332
       20.3.1 The Differential Equations Used in GENESIS  . . . . . . . .  332
       20.3.2 Explicit Methods  . . . . . . . . . . . . . . . . . . . . .  333
       20.3.3 Implicit Methods  . . . . . . . . . . . . . . . . . . . . .  334
       20.3.4 Instability and Stiffness  . . . . . . . . . . . . . . . . . 335
       20.3.5 Implementation of the Implicit Methods  . . . . . . . . . .  337
   20.4 The setmethod Command  . . . . . . . . . . . . . . . . . . . . . . 337
   20.5 Using the hsolve Object  . . . . . . . . . . . . . . . . . . . . . 338
       20.5.1 Modes of Operation  . . . . . . . . . . . . . . . . . . . .  339
       20.5.2 Rules for Table Dimensions  . . . . . . . . . . . . . . . .  343
   20.6 Setting up hsolve  . . . . . . . . . . . . . . . . . . . . . . . . 343
       20.6.1 The findsolvefield Function  . . . . . . . . . . . . . . . . 345
       20.6.2 The DUPLICATE Action  . . . . . . . . . . . . . . . . . . .  346
   20.7 Experiments with the hsolve Object  . . . . . . . . . . . . . . .  346
   20.8 Exercises   . . . . . . . . . . . . . . . . . . . . . . . . . . .  347

21 Large-Scale Simulation Using Parallel GENESIS                           349
   21.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
   21.2 Classes of Parallel Platforms . . . . . . . . . . . . . . . . . .  351
   21.3 Parallel Script Development  . . . . . . . . . . . . . . . . . . . 352
   21.4 Script Language Programming Model   . . . . . . . . . . . . . . .  353
       21.4.1 Parallel Virtual Machine . . . . . . . . . . . . . . . . . . 353
       21.4.2 Namespace  . . . . . . . . . . . . . . . . . . . . . . . . . 353
       21.4.3 Execution (Threads and Synchronization)  . . . . . . . . . . 354
       21.4.4 Simulation and Scheduling   . . . . . . . . . . . . . . . .  355
       21.4.5 Node-Specific Script Processing  . . . . . . . . . . . . . . 355
       21.4.6 Asynchronous Simulation  . . . . . . . . . . . . . . . . . . 356
       21.4.7 Zones and Node Identifiers   . . . . . . . . . . . . . . . . 356
       21.4.8 Remote Function Call  . . . . . . . . . . . . . . . . . . .  357
       21.4.9 Asynchronous Remote Function Call  . . . . . . . . . . . . . 358
       21.4.10 Message Creation . . . . . . . . . . . . . . . . . . . . .  360
   21.5 Running PGENESIS  . . . . . . . . . . . . . . . . . . . . . . . .  360
       21.5.1 The pgenesis Startup Script  . . . . . . . . . . . . . . . . 361
       21.5.2 Debug Modes  . . . . . . . . . . . . . . . . . . . . . . . . 362
   21.6 Network Model Example . . . . . . . . . . . . . . . . . . . . . .  363
       21.6.1 Setup  . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
       21.6.2 Simulation Control  . . . . . . . . . . . . . . . . . . . .  366
       21.6.3 Lookahead   . . . . . . . . . . . . . . . . . . . . . . . .  367
   21.7 Parameter Search Examples  . . . . . . . . . . . . . . . . . . . . 368
   21.8 I/O Issues  . . . . . . . . . . . . . . . . . . . . . . . . . . .  374
   21.9 Summary of Script Language Extensions  . . . . . . . . . . . . . . 375
       21.9.1 Startup/Shutdown  . . . . . . . . . . . . . . . . . . . . .  375
       21.9.2 Adding Messages  . . . . . . . . . . . . . . . . . . . . . . 376
       21.9.3 Synaptic Connections   . . . . . . . . . . . . . . . . . . . 376
       21.9.4 Remote Command Execution and Synchronization  . . . . . . .  376
       21.9.5 PGENESIS Objects  . . . . . . . . . . . . . . . . . . . . .  376
       21.9.6 Modifiable PGENESIS Parameters  . . . . . . . . . . . . . .  377
       21.9.7 Unsupported and Dangerous Operations   . . . . . . . . . . . 377

22 Advanced XODUS Techniques: Simulation Visualization                     381
   22.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
   22.2 What Can Your User Interface Do for You?  . . . . . . . . . . . .  382
   22.3 Draw/Pix Philosophy   . . . . . . . . . . . . . . . . . . . . . .  382
   22.4 Meet the Cast . . . . . . . . . . . . . . . . . . . . . . . . . .  384
       22.4.1 The Draw Widget Family  . . . . . . . . . . . . . . . . . .  384
       22.4.2 The Pix Family  . . . . . . . . . . . . . . . . . . . . . .  387
   22.5 XODUS Events  . . . . . . . . . . . . . . . . . . . . . . . . . .  394
       22.5.1 Returning Arguments to Script Functions  . . . . . . . . . . 395
   22.6 Using Advanced Widgets: A Network Builder  . . . . . . . . . . . . 396
       22.6.1 The Library Window . . . . . . . . . . . . . . . . . . . . . 396
       22.6.2 Making Prototype Cells  . . . . . . . . . . . . . . . . . .  397
       22.6.3 The Work Window  . . . . . . . . . . . . . . . . . . . . . . 398
       22.6.4 Editing Cells  . . . . . . . . . . . . . . . . . . . . . . . 399
       22.6.5 Connecting Cells  . . . . . . . . . . . . . . . . . . . . .  400
       22.6.6 Plotting Cell Activity  . . . . . . . . . . . . . . . . . .  401
       22.6.7 Running Netkit  . . . . . . . . . . . . . . . . . . . . . .  402
       22.6.8 Extending Netkit  . . . . . . . . . . . . . . . . . . . . .  403
   22.7 Interface vs. Simulation  . . . . . . . . . . . . . . . . . . . .  404
   22.8 Summary  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

A  Acquiring and Installing GENESIS                                        407
   A.1 System Requirements   . . . . . . . . . . . . . . . . . . . . . . . 407
   A.2 Using the CD-ROM   . . . . . . . . . . . . . . . . . . . . . . . .  407
   A.3 Obtaining GENESIS over the Internet . . . . . . . . . . . . . . . . 408
   A.4 Installation and Documentation . . . . . . . . . . . . . . . . . .  408
   A.5 Copyright Notice  . . . . . . . . . . . . . . . . . . . . . . . . . 409

B  GENESIS Script Listings                                                 411
   B.1 tutorial2.g  . . . . . . . . . . . . . . . . . . . . . . . . . . .  411
   B.2 tutorial3.g  . . . . . . . . . . . . . . . . . . . . . . . . . . .  413
   B.3 tutorial4.g  . . . . . . . . . . . . . . . . . . . . . . . . . . .  415
   B.4 tutorial5.g  . . . . . . . . . . . . . . . . . . . . . . . . . . .  420
   B.5 hhchan.g . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  422
   B.6 hhchan_ K.g  . . . . . . . . . . . . . . . . . . . . . . . . . . .  425
   B.7 userprefs.g . .. . . . . . . . . . . . . . . . . . . . . . . . . .  426
   B.8 cellproto.g  . . . . . . . . . . . . . . . . . . . . . . . . . . .  428

   Bibliography                                                            431
   Index of GENESIS Commands                                               449
   Index of GENESIS Objects                                                451
   Index                                                                   453