UNIVERSAL: An Extensible Physiochemical Model Generation and Analysis Framework for Mac OS X

 UNIVERSAL is an extensible code generation framework which produces easily editable, fully commented physiochemical model code in multiple programming languages from a variety of inputs sources. In addition,  UNIVERSAL also generates (and/or consumes) visualization formats such as the dot-format used by the GraphViz graph visualization package (www.graphviz.org) and GraphML (http://graphml.graphdrawing.org/). UNIVERSAL is a client-server application; the client graphical user interface (GUI) is written in the objective-C programming language and uses the Cocoa application framework (Apple, Cupertino CA). The UNIVERSAL code generation engine (CGE) is written in the Java programming language (Oracle, Redwood Shores CA). The GUI allows users to graphically edit XML specification files (given the extension uxml) which are used by the CGE. The user can start from a set of template specifications by selecting the specification type from the drop-down list above the specification tree. Alternatively, the user can load/save specification documents from the local disk (or remotely mounted drives) by selecting the load/save buttons on the toolbar. The specification tree is presented to the user in the left-panel, where context-sensitive properties for each tree-node are presented in the upper-right panel. Properties fields (both value and property names) are directly editable by the user. In cases where several choices exist, the user can select from an auto-completing pull-down menu. Menu choices choices are not hard-coded, rather, they are generated from the specification tree itself. Thus, when the user adds/deletes nodes from the specification tree structure (which is fully editable), these changes are automatically propagated to the available lists. Additionally, the user can add or delete attributes from the currently selected tree node. In addition to editing UNIVERSAL XML specification files, the GUI can also edit generic XML-based tree structures where data is contained in attributes. For example, the GUI can edit both SBML and GraphML documents. While we have integrated SBML into the list generation engine inside the GUI, generic files may not automatically generate the drop down lists. However, both the tree structure and the attribute nodes for these files will be editable.  The completeness of the specification settings can be checked in the GUI. Once the specification file is complete, the user can save the file to disk and execute the code generation job. Output from the CGE (both standard output and standard error) are captured in the console panel on the lower right side. Text in this panel is selectable and can be cut and pasted into other applications e.g., an email client for debugging.

We use UNIVERSAL in the Varnerlab and in CHEME 5440 Systems Biology in Medicine and Biotechnology to generate model code. Checkout this demo to see how it works (you'll need Quicktime, which you can download from Apple here). How do I install/use UNIVERSAL or get involved with the UNIVERSAL project? Checkout our Google Code page and the video tutorials below

UNIVERSAL Video Tutorials

Video 1: Downloading and installing UNIVERSAL from the Google Code site. Watch tutorial

Video 2: What are the directories and files in the UNIVERSAL archive? Watch tutorial

Video 3: What are the fields of the UNIVERSAL specification tree? Watch tutorial

Video 4: How can I use UNIVERSAL to generate code using built-in code types? Watch tutorial

Video 5: How can I make custom CGE specification trees? Coming Soon!

Video 6: How do I make/use custom plugins in UNIVERSAL? Coming Soon!

Video 7: Advanced UNIVERSAL tips and tricks. Coming Soon!