Team:UC Berkeley Tools
From 2008.igem.org
With >700 available parts and >2000 defined parts in the [http://partsregistry.org/Main_Page MIT Registry of Standard Biological Parts], and doubtless more parts local to the lab, synthetic biologists are now faced with the challenge of organizing, sorting, and editing these parts from an ever-growing collection of DNA. Computational tools are becoming increasingly needed to assist biologists to do the job, and it is no secret that many tools are indeed wheeling out into the community to help serve these needs.
Clotho is a toolset designed in a platform-based-design paradigm to consolidate all these tools into one working, integrated toolbox. Clotho is based on a core-and-hub system which manages multiple connections, each connection performing tasks in some self-sufficient manner while connected to all other connections via the core. Examples of connections include sequence viewers/editors, parts database managers, sequence alignment GUIs, and much more. Computer-savvy biologists can create new connections which will then be integrated into Clotho. In this tool-consolidation and customization it is hoped that, in the future, biologists need not look further for a program that provides the answer to their needs.
Clotho Overview
Among other possible top-level explanations of Clotho, one of the simplest is the "Clotho Data Structure"-centric view. In this view, biological part data is passed back and forth between Clotho components and to files and databases outside Clotho. The possible flows of data are represented by the slew of arrows from the diagram above.
Local and standard databases vary from one lab to another, and the way to grab biological part data from one database may require a completely different route than another. The Clotho Data Structure, in essence, can be viewed as the Rosetta's stone of Clotho's environment. In a nutshell, it allows any developer to grab relevant information about a part from any given database. When a user wants to grab the sequence belonging to a particular Biobrick, for example, the Clotho Data Structure, once "bound" to a particular database, will be able to grab the sequence from the database and give it to Clotho. Want to know who owned the vector from jca1021 in database A and send that information to database B? Easy. Bind the data structure with both databases, grab the data from database A, and tell Clotho where in database B to place the data.
Each category above merits its own explanation, as each is vitally important to the project. Perhaps a good place to start are the views/functions. Here users are able to see and manipulate data, such as part information or the nucleotide sequence. Examples include the sequence view or the plate manager.
Not all views/functions are self-sufficient, and so another set of components, called interfaces, are involved in assisting these views/functions for functionality. Take for example the sequence view (a view many ApE lovers would recognize). How would the sequence view know how to highlight features or enzymes if Clotho didn't know what features or enzymes to look for? That's where the features library and enzyme library come in. In this particular example, the two interfaces store and manage information that the sequence view will have to frequent in order to perform vital operations. Other interfaces include a parts manager and database manager.
But what if you want to do more with your data you've manipulated? What if, after gathering all your parts, you want to calculate the optimal assembly scheme for a particular goal composite part? This is where the algorithm environment kicks in. The algorithm environment allows developers to make systems that take in quick one-liner inputs and spit out one-liner outputs. Let's say you wanted to program a partial matching utility into Clotho, where two sequences are given as inputs and a streamlined one-line primer match were spit back out. Algorithm manager provides you all the basic facilities to code such a utility.
Given all these features, there still need to be components that allow Clotho to connect to the outside world. Clotho connectors, so aptly named, perform this exact purpose. These components allow users to connect to databases through internet connections, or import and export data from existing files (think .gb, .ape, .str, etc).
But last, and certainly, certainly, not least, is the Clotho plug-in environment. This powerful environment allows developers both associated and not associated with the Clotho Project to create new and customized tools to integrate with their versions of Clotho. Clotho was designed to be as fluid and flexible as possible! While the project is indeed open source, and users can always make new components by making new connections (see Project Technical), developers can now program personalized tools without knowing anything about the Clotho architecture, save the plug-in environment! Plug-ins are a bit of an intermediate between an algorithm and a component. It allows for relative customization, but also makes the programmer's life easier.
<--The Clotho design environment is centered around the Clotho Data Structure. This object unifies information about a design in a standard way. This links various pieces of data related in a design to a powerful operational semantic. This semantic allows for design information to be related to databases containing part information, infer information about parts in a design, perform part look-ups in real time, and apply algorithms to designs. By taking potentially generic external information and bringing it into the Clotho Data Structure, non-standard designs can become standardized and then disseminated to a wider design community.
Shown in the figure are the major components in the Clotho design environment. In the center of the diagram is the Clotho Data structure...yada yada.-->
Clotho Database Interaction
As the synthetic biology community moves toward the standardization of parts and their repositories it is important that a design environment be agnostic when possible to the data it can begin a design with. Clotho allows for the import of both standard and non-standard data. Once the data is brought into the system it can be manipulated, analyzed, modified, and viewed. It then can either be saved back in a non-standard way as it was brought into the system initially or converted to a standardized form and distributed more widely. The figure to the right illustrates such a process.
Contact Us
For general information or to contribute: clothodevelopment AT googlegroups DOT com
For emails regarding any bugs: clothobugs AT googlegroups DOT com
For emails regarding any desired features: clothofeatures AT googlegroups DOT com