Team:Berkeley/Clotho

From 2010.igem.org

Revision as of 05:10, 27 October 2010 by Sixpi (Talk | contribs)

Clotho



The UC Berkeley iGEM Team of 2008 started the Clotho software project to provide a suite of software tools for synthetic biology. Since then, Clotho has evolved into a platform on which new software tools can be developed. Clotho as a platform factors out the common functionality that many software tools would provide, thus allowing new tools to be developed more quickly and making it easy to integrate new tools with existing tools.

This summer, the 2010 Berkeley iGEM Team is proud to release Clotho 2.0, featuring the robust Netbeans plugin platform, a reworked framework for automating workflows, as well as a shift from dynamic data models to a static Clotho data model. Read more about these new features here on our wiki, or visit our new public website for more information and to download our wonderful tool!

Plugin Framework

Clotho provides a plugin framework for the development of new tools. As illustrated by the picture below, Clotho plugins are built on top of the Clotho API, and are able to use functionality provided by this API. Clotho in turn uses functionality from other libraries below it. The plugin framework is built on the Netbeans Platform ([http://netbeans.org netbeans.org]), which manages the plugin environment. This includes checking that all the dependencies of a plugin are satisfied before it is launched, managing all the files that may be necessary for a plugin to function correctly, as well as actually loading the executable code for each plugin into Clotho at runtime. The Hibernate library provides a structured interface to external databases and is discussed in more detail on the Data Model page.

High level schematic of the Clotho architecture. The Clotho API servers as a bridge between the more general frameworks and the plugins. This allows Clotho to provide an interface with domain specific functionality that tools made for synthetic biology can leverage.

Clotho classifies plugins into eight distinct categories: ClothoAlgorithm, ClothoConnection, ClothoFormat, ClothoGrammar, ClothoPlugin, ClothoTool, ClothoViewer, and ClothoWidget. These categories are based on the different types of functionality a plugin can provide. For example, a ClothoConnection provides connections to a database, while a ClothoTool is a tool built on the Clotho platform. Plugins are discovered and loaded dynamically when Clotho starts. For more information about how to write a plugin, what functionality the Clotho API provides, and to download plugins for your own use, visit the [http://clothocad.org clothocad.org].


Automated Workflows

Automating synthetic biology workflows has always been a goal of the Clotho project. As devices become increasingly complex and utilize greater numbers of parts, it makes more and more sense to automate many of the steps in the construction of these devices.