1 / 31

Software Development for Systems Biology

Software Development for Systems Biology. Herbert M Sauro Frank Bergmann University of Washington Bioengineering Seattle. SBW is a lightweight framework that allows different applications written in different languages and on different platforms to communicate.

lecea
Download Presentation

Software Development for Systems Biology

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Development for Systems Biology Herbert M Sauro Frank Bergmann University of Washington Bioengineering Seattle

  2. SBW is a lightweight framework that allows different applications written in different languages and on different platforms to communicate. BioSPICE/SBW – Systems Biology Workbench Basic Simulation Capability Model Editors Broker SBML Support ?

  3. Application Application SBW Broker SBW Interface SBW Interface SBW Interface Application Message Passing Architecture

  4. SBW Broker • Small application programming interface (API) • Minimize the amount of work necessary to implement • - Libraries implement inter-program communications • - A registry of services for applications to query • - XML-based model representation (SBML) Programmer’s Perspective - Modular, distributed, broker-based architecture Uses a simple lightweight binary TCP/IP communication protocal

  5. SBW Broker Programmer’s Perspective Language Independent C/C++, Java, Delphi, .NET (C# etc.), Matlab, Perl, Python. Broker is Platform Independent Windows, Linux and Mac OSX

  6. Message Structure - Messages are passed as binary streams via TCP/IP - Blocking and non-blocking calls - Exception handling built-in Supported types in the payload: Byte, Boolean, int, double, string, complex, arrays, lists Language Independent: C/C++, Java, Delphi, .NET (C# etc.), Matlab, Perl, Python.

  7. mathModule Module Level Resource Structure …… log trig … Service Level log10 sin … ln cos … Method Level exp tan … Demo Inspector

  8. public class sbwInterface { [Help("Returns the Sine of a value")] public double Sin(double value) { return Math.Sin (value); } } Exposing methods

  9. Using Other Modules Module Lib File

  10. Building Matlab Services Example - Matlab function y = myAdd (a, b) %SBW module SBWMath %SBW service myService %SBW method myAdd service myService sig=“double myAdd(double,double)” y = a + b Calling SBW from Matlab CLI sbwconnect; getSBML = sbwGetMethod (‘JDesigner’, ‘model’, ‘string getSBML()’); sbwStr = sbwCall (getSBML);

  11. A Web Application is provided that allows every SBW Module to be wrapped up in a Web Service: Web Services from SBW/BioSPICE Web Service Generator web page available at http://134.173.97.95/sbwwebservicecreatorinterface/webform1.aspx

  12. Web Interface Example http://134.173.97.95/simulation/webform1.aspx

  13. Dynamically locate services in a given category Categories • Categories permit SBW applications to recognize standard interfaces • in other SBW applications. We currently have three defined categories: • Translation • Analysis • Simulation

  14. Translation SBW applications that define the translation category are capable of translating SBML into some other format (eg Matlab, XPP) and returning the translation to the caller. Categories Analysis SBW applications that define the analysis category are capable of accepting an SBML model and by implication are capable of doing ‘something’ with the model. Simulation SBW applications that define the simulation category mean they support the simulation API.

  15. Categories permit users to ‘move’ seamlessly from one application to another taking with them the model under study User Experience

  16. JDesigner cellDesigner http://www.sys-bio.org/ http://celldesigner.org/ Examples – Model Editors

  17. Examples – SBML libSBML http://www.sbml.org

  18. Oscill8 Klaus Meier Examples – Simulators C++ (Linux,Win,Mac), ODEs, Events, Emery Conrad/ Java (Linux,Win.Mac), Good Gillespie,Langevin, ODE Stuttgart Gillespie.NET Jarnac c# (Linux, Win, Mac), Delphi (Win), ODE, Well tested www.sys-bio.org www.sys-bio.org Dizzy roadRunner C# (Linux,Win.Mac), designed for SBML compliance (local and global) www,sys-bio.org Java (Linux, Win, Mac), stochastic www.isb.org/

  19. Implements the analysis category. The tool is used to discover whether a particular model has the potential to display oscillatory or bistability. Specialist Modules: Bifurcation Analysis Tool

  20. Specialist Modules:Emery Conrad’s Oscill8 Interface Bifurcation tool begin developed here at VT can interface to SBW. Implements the Analysis category so that models can be accessed from SBW.

  21. Specialist Modules: Structural Analysis Tool Implements the analysis category.

  22. Specialist Modules: Frequency Analysis Tool Implements the Analysis category and permits the frequency response of a model to be determined.

  23. Specialist Modules: Stochastic Simulators Implements the Analysis category and permits models to be simulated using a stochastic solver. Support additional analysis such as PDF generation, Power Spectra, autocorrelation, population metrics

  24. Generic Simulation Interface Any simulator that implements the Sim API (even level 1) will automatically be able to use the interface via this generic simulation interface. Those API methods that are not supported are disabled in the interface.

  25. Non-GUI Modules • LAPACK • CVODE • NLEQ • Structural Analysis Algorithms • Metabolic Control Analysis including Frequency Analysis • libSBML • Translators • Autolayout • Basic Optimizers of time series data to models

  26. We use this tool to take raw SBML and generate SBML containing the layout standard that is being developed by the SBML community. Uses a spring and mass model to determine layout. Has specific rules for determining Bezier orientation and Includes a gravity field to main cohesion of disconnected sub-graphs. Anastasia Deckard Auto layout of SBML models Download fromhttp://public.kgi.edu/~fbergman

  27. 3D Visualization of Simulation Runs Based on OpenGL, currently an installer is available for Windows but the source is portable to the Mac and Linux. Requires a decent graphics card for maximum gratification! ( http://public.kgi.edu/~fbergman )

  28. 3D Visualization of Simulation Runs Based on OpenGL, currently an installer is available for Windows but the source is portable to the Mac and Linux. Requires a decent graphics card for maximum gratification! (http://public.kgi.edu/~fbergman )

  29. Frank Bergmann (SBW) Ravi Rao (Structural Analysis) Vijay Chickarmane (Bif Discovery Tool) Sri Paladugu (libSBML intregration) Mike Hucka and Ben Bornstein (libSBML) Alan Hindmarsh (CVODE) Nowak and Weimann (NLEQ) LAPACK (NSF/DOE) Availability: Acknowledgments www.sys-bio.org http://public.kgi.edu/~fbergman GTL

  30. Layout Tool

  31. // create a new service sbwInterface oService = new sbwInterface(); // create SBW module ModuleImplementation oModule = new ModuleImplementation( "edu.kgi.trig", “Trig Module", LowLevel.ModuleManagementType.UniqueModule, "Provides Trig Functions"); // add the service to it oModule.addService( “trig", “Trig Module", "plugin/math/trig", “Provides Trig Functions", ref oService); oModule.run(args); Exposing methods

More Related