22
1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

Embed Size (px)

Citation preview

Page 1: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

1

USC Brain Project: Lab Resources and Modeling Tools

James Bonaiuto

Page 2: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

2

Lab Resources

Wiki – Serves as our lab web page, provides lab member pages, collaboration and project pages, and links to our other resources

Calendar – Online calendar that all lab members can use to view, add, and edit lab events

Mailing Lists – Automatic emails for bugs and SVN repository commits

SVN Repository – Change tracking and centralized storage for all model, simulator, and web application code

Bugzilla – Documentation and administration of model, simulator, and web application bugs

Page 3: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

3

Wiki – http://neuroinformatics.usc.edu

All lab members can add and edit pages

Wiki syntax cheat sheet: http://meta.wikimedia.org/wiki/Cheatsheet

Page 4: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

4

Wiki – Projects

Page 5: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

5

Wiki - Members

Please create your user page and link to it here

Page 6: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

6

Wiki Member Page Format

After logging in, click here to access your member page

Then click here toedit

Click Upload File to upload your (tasteful) image

Page 7: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

7

Wiki – Internal Resources

Only lab members can access these pages

Page 8: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

8

Lab Calendar

Accessed via the wiki:Or via Google calendar (tell me if you want me to share the calendar with you this way):

Only lab members can access the calendar

USCBP Calendar USCBP Events

Page 9: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

9

Mailing Lists

There are two mailing lists:uscbp-vcs-l

Emails are automatically sent whenever code is committed to the SVN repository

uscbp-bugs-l Emails are automatically sent whenever a bug is added to Bugzilla or the status of an existing bug has been changed (i.e. FIXED)

Tell me if you would like to be subscribed to either list.

There was a third list, uscbp-l, for general emails to the entire group. No one ever uses it. Should we revive it?

Page 10: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

10

SVN Repository – svn://neuroinformatics.usc.edu

Subversion (SVN) provides a code repository that can be used to track changes and maintain a central copy of code that multiple people can work on.

Instructions for accessing and using SVN and our repository are on the wiki:

http://neuroinformatics.usc.edu/mediawiki/index.php/SVN_Instructions

The repository currently contains the code for NSL, SCS, BODB (old and new versions), and several models including ACQ, MNS/MNS2, ILGM, TAM-WG, etc.

Page 11: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

11

Bugzilla – http://neuroinformatics.usc.edu/Bugzilla

(currently down!)

Provides utilities to document, assign, and track the status of bugs

See the wiki Internal Resources page for bug writing guidelines

Page 12: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

12

Use the Wiki!!!

Page 13: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

13

Modeling Tools

Neural Simulation Language (NSL) – provides programming language and simulation environment for neural modeling

Goal: Provide necessary framework so the modeler can focus on modeling

Schematic Capture System (SCS) – provides a graphical environment for model development using NSL

Goal: Make modeling easier for non-programmers

Brain Operation Database (BODB) – provides environment for model documentation and comparison

Goal: Increase the number of acronyms used by our lab(Primary) Goal: Facilitate model comparison and evaluation

NSL and SCS are documented on the wiki. There is a short paragraph and link to BODB, but we should put the BODB manual on the wiki as well.

Page 14: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

14

Neural Simulation Language NSL:Object-Oriented with Modules and Ports

A module in NSL includes a set of input and output (data) ports.

The module, the basic component in NSL, is somewhat analogous to the object in object-oriented applications.

A module encapsulates the internal complexity of its implementation by separating the internal details from the external interface. The external portion of the module is the part of the module seen by other modules.

Crucial features of NSL: Explicit input and output ports for each module Explicit construct for interconnecting module instances via ports with matching

data types to form new modules

Page 15: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

15

Neural Simulation Language (NSL)Multi-level Simulation

Recursive Definition in a ModuleA Leaf Level Module is equipped with the ability to:initialize neuronscalculate membrane potentials and firing rates for neurons

A Recursively Defined Module is equipped with the ability to:create neurons, layers, regions, or systemsconnect neurons, layers, regions, or systemsinitialize neurons, layers, regions, or systems

Hierarchical ModelsNeurons can form layersLayers can form regionsRegions can form systemsSystems can form models

Page 16: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

16

NSL Canvases

Various canvases are available to visualize module variables. In most canvases the canvas type and attributes (i.e. x and y limits) can be changed on the fly during simulation. Canvases can also be added during simulation. Canvas data can be saved in Matlab or Gnuplot format.

Examples: Grayscale, Thermal, Spatial, Area, Temporal, Raster, Histogram, Input

Page 17: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

17

NSL Integration with MATLAB

NSL Modules can be of two types: NslJavaModule or NslMatlabModule

To create a NslMatlabModule, create the module and add the variables, input ports, and output ports and then save the module.

Empty Matlab functions will be created for the initRun, simRun, etc. methods. You can fill these in with Matlab code.

The module can be used and linked to in SCS just like any other module.

During simulation NSL will open Matlab, pass the values of the module input ports to the Matlab code, and retrieve the values of the output ports

Data from any type of module can be saved in Matlab format

Page 18: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

18

NSL 3D Simulation

NSL is now linked to the physics simulator ODE (Open Dynamics Engine)

This is a general rigid-body simulator that lets you specify the parameters of bodies and it will calculate their motion and contact forces and do collision detection and application of frictive force.

This system is coupled with Java3D to visualize these bodies in a 3D world – each body is associate with a 3D appearance. The simulator can be run with or without the physics turned on.

“Viewports” can be attached to the simulated world to generate third- or first-person views and provide visual input to the model from a realistic perspective.

Development is still ongoing, but all this functionality is in the Nsl3dCanvas class

It works in Windows too!!

Page 19: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

19

Schematic Capture System (SCS)

SCS allows users to define modules in terms of input and output ports, submodules, and connections between them For leaf-level modules

the NSL code can be specified

The hierarchical structure of a model can be browsed, moving up and down in the module hierarchy

From SCS, the user can then compile the project, and launch the NSL simulator in either run or debug mode

Top-Level

BasalGanglia

GP/SNr

Page 20: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

20

SCS Installer

SCS has a sweet GUI installer that works with Windows and Linux (and reportedly Mac) on 32- and 64-bit architectures.

The installer will detect your OS and architecture and automatically install the appropriate libraries.

Page 21: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

21

Future Goals

Integrating NSL/SCS model development with BODB model documentation and evaluation. This requiresMethods for capturing simulation results and uploading them to BODB

Example: Synthetic brain imagingFormal specification and mapping between experimental and simulation protocols

Extended module documentation functionality in SCS with the ability to upload model diagrams and descriptions to BODB and create diagrams in BODB

NSL currently contains raster and histogram canvases, but I’d like to bring in some functionality from NeuroBench for visualization and analysis of spike trains from experimental data and simulation

SCS currently saves all module information in a binary sif file and exports the NSL mod file. There are a lot of problems with this – we should use something like an XML file to save module information.

Page 22: 1 USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto

22

Use the Wiki!!!!