Building 3D Network Models with neuroConstruct

Padraig Gleeson

University College London

p.gleeson@ucl.ac.uk

WAM-BAMM*05

31 March 2005

Overview

Scope of application

Main features

Visualisation, Packing in 3D, validation/editing of morphologies

Simulator interaction

Import and export of GENESIS/NEURON code

Network functionality

Simulation management

Extensibility

Future plans

Issues

Aim is to build biologically realistic 3D models, including complex connectivity seen in many networks

Difficult to build networks in 3D in current simulators

Existing cell models difficult to transfer between simulators

Scope of Application

Compliments existing simulation environments

Code produced is native GENESIS/NEURON

Adds functionality

Graphical interface

Checks on morphologies

Network building capabilities

Storage/replay/analysis of simulations

Built with Java: runs on any platform

Reuses existing base of models/modellers

Visualization

Single Cells can be viewed in 3D

Information on morphology/groups/distribution of channels, etc.

Checks on consistency of cell structure

Segments can be edited

Info on basic electrophysiology

Screenshot: Cell Visualization

Packing in 3D

Cell Groups are packed in 3D Regions

Rectangular Box

Spherical

Various Packing Patterns

Random

Cubic close packed

Hexagonal

Single positioned

Evenly spaced in 1D

Screenshot: Packing in 3D

Simulator Interaction(1)

Morphology files can be imported from

GENESIS (*.p readcell format files)

NEURON (*.nrn like files, limited to create, pt3dadd, connect, etc.)

Cvapp (SWC format files)

MorphML

Imported cells are checked for validity: i.e. errors which may cause problems on some platforms

zero length segments

all except root segment have parents

unique names, etc.

Simulator Interaction(2)

Files can currently be exported to:

NEURON, for simulation

GENESIS, for simulation

MorphML, for publishing/use by other simulators

Cell info held in simulator independent format

Can be mapped to other/future simulators

Screenshot: Imported Morphology

Cell Processes (1)

Generic way of handling:

Passive membrane conductances

Voltage dependent channels

Synaptic mechanisms

etc.

2 options:

Direct use of “native” file (e.g. GENESIS script, NEURON mod file)

Generic model of Cell Process, mapped to native code

Cell Processes (2)

Option 1: Reuse of existing files

Advantages:

Quick and easy solution

Existing files tried and tested

Disadvantages

Only possible to use Cell Process (and so cell/network model) on one simulator

Still opaque to someone not familiar with scripting language

Doesn't break the process down to fundamental model and experimental parameters

Cell Processes (3)

Option 2: Create generic model of Cell Process

Model separated from experimentally measured parameters

Reuse of tried and tested template files

Can be mapped on to any simulator

Automatic handling of units in neuroConstruct

Pre-existing & well tested

Modularity of Cell Processes (1)

Experimentally determined parameter set:

gmax, Tau Rise/Decay, etc.

Published model of

Cell Process

(XML file)

Mapping of templates to existing simulators

XML template of model of Cell Process, e.g. Double Exp Synapse, HH Channel

Modularity of Cell Processes (2)

Published model of

Cell Process

neuroConstruct

Parameters coupled with GENESIS/ NEURON template placed on cells

Parameters with

plotting module

GENESIS/NEURON

source code

Plots of Cell Process internals

Screenshot: Cell Processes

Morphology mapping (1)

neuroConstruct Concepts

Section: unbranched part of axon/dendrite with the same biophysical properties (similar to section concept in NEURON)

Segment: Specifies one 3D point along Section, shaped like conical frustum

Section object specifies start point, Segment objects specify 3D points along the Section

Morphology mapping (2)

Going from GENESIS -> NEURON

Simple mapping: Compartments in GENESIS mapped to Sections (with one Segment) in neuroConstruct

Adv: every point simulated in GENESIS is simulated in NEURON

Disadv: May not be need for so many Compartments

Complex mapping: Optimization of compartments in unbranched parts into multi Segment Sections

Need to keep electrotonic length in mind

Not recording simulation at same point in GENESIS/NEURON

Morphology mapping (3)

Going from NEURON -> GENESIS

Simple mapping: Each Segment to Compartment with equivalent surface area

Many more Compartments than Sections in NEURON

If axial resistance is high can give incorrect results

Complex mapping: Sections with nseg points mapped to ~ 3 x nseg Compartments

Ensures same total membrane area (and so total capacitance, conductance) and same axial resistance to each simulated point

Screenshot: Morphology

Network features

Groups of Axons/dendrites on cells can be specified as Synaptic Connection Locations

Factors to specify for how cells are connected

Source and Target Cell Group

Number of connections (fixed, random, Gaussian distribution)

Weight and delay can be given fixed value/distribution

Max and min lengths

Random connection, closest of n cells, the closest

Generation direction (from source or from target)

Screenshot: Network Connections

Simulation Management

Storage of GENESIS/NEURON sim data in same format

Browsing of stored simulations

Replay of data in neuroConstruct

Visualization/plotting of network activity

Data Sets (stored simulation data or new plots)

All of these can be zipped up and distributed in one file

Screenshot: Simulation Browser

Network behaviour analysis

Functions for displaying firing rates of individual cells/Cell Groups

Average interspike intervals

Cell Group firing histograms

Example:

Maex & DeSchutter model of synchronization in Granule Cell Layer

Screenshot: Network analysis

Design philosophy

Transparency

Information on morphologies/positions/connections easily accessible

Extensibility

Additions can be made to the code for new network scenarios/ simulation formats

Modularity

Ease of unit testing/reuse of network elements

Ease of access and distribution

The more researchers who can test models the better

Simulation generation

Extensibility

neuroConstruct

Core

Network construction

Import formats

NEURON code

generator

??? code

generator

Packing patterns

3D Regions

GENESIS code

generator

SWC

NEURON

GENESIS

Cell Process Mappings

NEURON

GENESIS

Simulation Management

Export formats

Functionality in development

Models of Granule Cell layer/whole cerebellum in 3D

Diffusion in 3D – signalling, oxygen supply, etc.

Command line interface

Simplified way to alter project settings (e.g. for parameter searching)

Keeps the GUI phobic happy

Closer integration with NeuroML/MorphML

Integration with Condor (Uni. Wisconsin)

Distribution of jobs to a pool of workstations (High Throughput Computing)

Completed simulations appear in Simulation Browser

Current status

Version 0.8

Beta testers welcome (Note: not authorized for research until formally released)

Want to help with testing? Contact via:

p.gleeson@ucl.ac.uk

Collaborators & Funding

University College London :

Angus Silver, Volker Steuber

University of Edinburgh:

Fred Howell, Nigel Goddard, David Willshaw

Work is funded by the Medical Research Council

This is the presentation given at the 2005 WAM-BAMM meeting in San Antonio Texas.

It's a general introduction to the functionality of neuroConstruct and should provide a good overview of what kind of modelling the application can be used for.

A brief outline of the talk.

Some current issues

Some of the ways neuroConstruct adds extra functionality to models developed in NEURON and GENESIS.

The key is that the simualation code produced is GENESIS/NEURON script as opposed to a new format. Modellers familiar with these formats can work easily with these generated files.

The extra functionality neuroConstruct adds includes: a better 3D interface, checks on the cell morphology, ability to easily construct networks of cells and simulation management.

One of the most obvious advantages neuroConstruct is the better support for visualisation of the cells. Problems with cell morphology can be isolated quicker, and these issues rectified by editing the cells.

Information on the biophysics of individual segments in the cells can be viewed, and figures for membrane capacitance/resistance, etc. given in the unit system of each of the target simulation environments

A view of a single cell in 3D placed at random in a rectangular box.

Each of the prototype cells in neuroConstruct can be placed in 3D Regions in Cell Groups.

At the moment, Cells can be placed in either a rectangular box (cubloid) or a spherical region. These can overlap.

Cells can be packed in a number of ways, such as random, regularly spaced or at specified locations.

Screenshot of cells packed in 2 Regions

Cells packed in the same region are packed around one another in the order the Cell Groups are listed in the table

The various morphology formats which can be read in to neuroConstruct.

GENESIS has a standard format in which morphologies should be written (that used by readcell), but NEURON doesn't.

The application ntscable outputs NEURON morphologies in a certain format and files in this form have been the basis for the import function. A simple Neuron file with just create, pt3dadd, pt3dclear, connect, nseg = x statements should be fine.

The current MorphML specification is also supported, although there can be multiple ways in which the specification is interpreted, and just one approach is used here.

The current formats which the cells can be exported to.

The generation of GENESIS and NEURON code will be illustrated with one of the included examples

Cell morphology imported from an example included with the standard NEURON distribution

Introduction to the concept of a Cell Process in neuroConstruct.

There are 2 ways to handle these Cell Processes:

- Reuse the existing GENESIS script/NMODL code for the channel/synapese, etc.

- Create a simulator independent model of the process and map the important parameters on to each environment

The approach of reusing the existing files has some advantages and disadvantages.

Creating of a generic model which can be mapped on to the current (and future) simulators is the preferred, but slower approach.

This will be illustrated with some examples in neuroConstruct

The concept of making Cell Processes modular.

An XML template specifies what the important parameters are for a particular process (e.g. a double exponential synapse). There are placeholders for the max conductance, rise/decay time etc. Associated with this XML template are mappings to simulators.

For a particular Cell Process (e.g. MF-PF AMPA synapse) an experimentalist can determine these parameters, and the model as a whole can be published in the form of an XML file.

The XML file containing the model can be imported into an application like neuroConstruct, which fits the parameters in to the GENESIS/NEURON template. Locations on cells can be specified for the Cell Process and the native code can be generated.

Abstraction of the parameters means it is a lot easier to visualize the internal functioning of the Cell Process (plotting function in neuroConstruct)

Note that the XML import function is not implemented in the current version of neuroConstruct, but the rest is. The XML part of this meeting will discuss an updated version of the XML (NeuroML) import format

Screenshot of the interface for specifying the parameters for the Double Exponential Synapse.

A template is provided for each of the target simulation environments, as in a list of the interesting plots associated with the data.

The mapping of the parameter values in to the unit system of each of the simulators is handled automatically.

The central morphological concepts in neuroConstruct are the Section and Segment.

These can created manually, or generated when a GENESIS or NEURON file is imported.

Some of the issues involved when using morphologies from one simulator in another

The key of course is: it shouldn't matter which simulator you use, the results of the model of the neuron should be independent of the platform.

There is a simple way to map a GENESIS simulation on to a NEURON simulation, or a complex way.

In the current version of the code only the simple way is available

Going from NEURON Morphologies to GENESIS ones is more complicated.

The basic approach is to map each Segment on to a compartment in GENESIS.

There are other approaches which will ensure that the same points are recorded in both simulators.

Screenshot of the view of a simple neuron showing the simulation points which will be recorded in NEURON

Introduction to the network creation features features of neuroConstruct.

Synaptic Connection Locations can be associated with groups of Sections of cells. Axons in these can be Presynaptic connection locations, dendrites can be Postsynaptic connection locations.

Various different methods for connecting the Cell Groups can be specified.

Note that the connections are made between points on the Cell Types, and do not space in 3D

Screenshot of network connections between 2 Cell Groups. Cells try to find 3 unique, close by cells. The connection conditions can be altered to allow different connection configurations

Simulation run in NEURON/GENESIS can be recorded and played back in neuroConstruct

They can be browsed based on various parameters

Plots of the simulations can be made, and results from different simulators compared.

The interface for looking at the stored simulations

Much of the work at the moment is concerned with development of tools to analyse the behaviour of networks created with neuroConstruct and run in one of the simulation environments

Screenshot of a 1D network of Golgi Cells, Granule Cells and Mossy Fibers based on:

Maex, de Schutter Synchronization of Golgi and granule cell firing in a detailed network model of the cerebellar granule cell layer, Journal of neurophysiology 1998

Illustrated are graphs showing the firing pattern of a single Golgi cell, a plot of all the firing frequencies of the Mossy fibers, and a spike time histogram for the firing for the granule cells

Some of the key ideas driving the design of neuroConstruct:

Transparent access to as much of the 3D positioning/biophysical info as possible

The possibility of extending the functioning of the application for new cell types/processes/ networks

Keeping the elements used as modular as possible, so reuse is facilitated

Ensuring ease of distribution of developed networks/simulation

An overall view of the structure of the application and some of the ways in which the functionality can be readily extended.

The yellow boxes show the existing modules, extra instances of which can be added for different simulators/formats, new 3D Regions and new Packing Patterns

Some for the work currently being pursued

Contact details for those wishing to help with the testing

Credits...

2005-02-15T08:48:16