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