220 likes | 305 Views
USC Brain Project: Lab Resources and Modeling Tools. James Bonaiuto. Lab Resources. Wiki – Serves as our lab web page, provides lab member pages, collaboration and project pages, and links to our other resources
E N D
USC Brain Project: Lab Resources and Modeling Tools James Bonaiuto
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
Wiki – http://neuroinformatics.usc.edu All lab members can add and edit pages Wiki syntax cheat sheet: http://meta.wikimedia.org/wiki/Cheatsheet
Wiki - Members Please create your user page and link to it here
Wiki Member Page Format After logging in, click here to access your member page Then click here to edit Click Upload File to upload your (tasteful) image
Wiki – Internal Resources Only lab members can access these pages
Lab Calendar Accessed via the wiki: Or via Google calendar (tell me if you want me to share the calendar with you this way): USCBP Calendar USCBP Events Only lab members can access the calendar
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?
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.
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
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.
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
Neural Simulation Language (NSL)Multi-level Simulation • Recursive Definition in a Module • A Leaf Level Module is equipped with the ability to: • initialize neurons • calculate membrane potentials and firing rates for neurons • A Recursively Defined Module is equipped with the ability to: • create neurons, layers, regions, or systems • connect neurons, layers, regions, or systems • initialize neurons, layers, regions, or systems • Hierarchical Models • Neurons can form layers • Layers can form regions • Regions can form systems • Systems can form models
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
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
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!!
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 Basal Ganglia GP/SNr
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.
Future Goals • Integrating NSL/SCS model development with BODB model documentation and evaluation. This requires • Methods for capturing simulation results and uploading them to BODB • Example: Synthetic brain imaging • Formal 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.