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