Team:UC Berkeley Tools/Notebook/Doug's Notebook



This is the notebook of Doug Densmore, the instructor for the team. My primary role is to develop the Clotho infrastructure that will be used to implement the various projects of the actual student team members. Clotho is meant to be a larger design environment which applies various principles of platform-based design from the electronic design automation (EDA) community within Electrical Engineering and Computer Science (EECS) to synthetic biological tools. The main aspects of PBD are its strict adherence to the separation of computation, communication and coordination. In addition, it also allows multiple views of a design (architectural and functional). Clotho is bigger than just the iGEM team and hopefully will be developed heavily into the future.

Anyway, I am going to put my ramblings here for couple months....

June 2nd, 2008
We had our first meeting today. The basic software of Clotho was explained and the tasks that each student had to perform were outlined. The expectations were described and the computing environment requirements were also explained.

The key architecture of Clotho is the:
 * Core
 * Hubs
 * Connections
 * Helpers

This will be explained more in a future update:)

Week of June 8th, 2008
This week several key logistic issues were resolved:


 * 1) Key card access for all students was enabled for the DOP Center
 * 2) Each student received physical keys for Stanley hall
 * 3) A computer account, computer, port activation, and ID card were all obtained for Anne

In addition we have started a bug tracking spreadsheet for Clotho as well as a feature list spreadsheet. Anne joined the team this week.

Week of June 15th, 2008
We met with Prof. Anderson to demo Clotho and begin to talk about advanced features for the project.

We have decided that Clotho will be composed of the following four areas:


 * Connectivity
 * Algorithms/Tools
 * "Lim" support
 * Unique design entry and views

The optimal assembly algorithms were discussed and Anne will be implementing the infrastructure to support them this week. Chris Batten and Will will be working with her to get started and to make sure that Clotho allows for the implementation of multiple algorithms and user input and output.

Here are some screenshots of interest. They display the sequence view in Clotho as well as the ability of the tool to connect to and query mySQL based databases for parts.



The sequence view shows the sequence for the current design. It is based on ApE's interface currently.



These windows show how mySQL database connections can be specified. This stores multiple connections with one currently active connection. The user can select from any previously created connection to be active. Upon connection, the available fields are shown. The user then can select the primary field used for organization.

In the navigator, the parts for the various connections are shown. If a part is double clicked, the part information comes up. These connections can be searched, as well as have parts added, removed, or modified.

Week of June 22th, 2008
Now that I am back from my wedding, I "finished" the mySQL connection pieces. There are a number of new features including:


 * Much more robust part information window. This includes the ability to export selected fields to any connection in the system, an icon associated with each part, and the ability to edit and recognize modified parts. Editing is unified across all parts info screens in that if editing is selected in one, then it toggles across them all. This is more of a safety thing and allows a global variable to control editing.
 * The parts navigator now allows you to delete roots (connections). Basically this "un"populates items.
 * Dialog boxes and option panes now are present at all critical decision points.
 * You can save, load, and set to default mySQL configurations
 * You can remove previously created connections as well as store them
 * Search is implemented. This works on any connection available in the system and dynamically details which fields are available for search.

Here is a snap shot of the new pieces



Also we began this preliminary list of features which are in addition to what APE does (All APE features are a requirement).


 * Optimal Assembly
 * Antibiotics
 * Optimal


 * Database Connection
 * Import Parts
 * Export Parts
 * Open/manage multiple connections
 * Save connections
 * Parts navigation
 * Browse parts
 * Part icon association
 * Feature Hightlighting
 * Multiple source paths for one library
 * More colors
 * Visual color choosing
 * Wizard for highlighting
 * Documentation


 * Sequence view Tools
 * Unified interface
 * Find and replace?

I know that this list is meaningless right now to the outside reader. We are going to elaborate on this more in the wiki in other places when the tool stabilizes. The point is that we are quickly surpassing what APE can do. The long term goal is to phase out APE's usage from Anderson Lab and introduce local parts repositories there which Clotho can help manage.

Week of June 29th, 2008
The last thing I really wanted to work on regarding the basic pieces of the tool before I fade into the background and work more on interchange and part repository issues is to finish aspects of the dynamic indexing of the sequence view. This is heavily influenced by APE. This seemed to be popular so why try and reinvent the wheel. This took a day of work in Java and I think there are some aspects which I can use about how this differs for APE (i.e. the row indices are in a JTextField and not JLabels) that will offer more functionality later. In the current form it is a functional (i.e. good enough) sequence view. Our focus should not be on working much more on this but rather adding new views of the design (functional and architectural).



Week of July 13th, 2008
This week consisted primarily of two testing sessions of Clotho with the UC Berkeley wet team. Both sessions were very successful and we received a lot of good feedback. The most rewarding part is that they did not find many bugs and the ones that they did find are very easy to implement/fix. Naturally there is a lot of work to do but we have a proof of concept feature for the majority of the various Clotho pieces. Our official alpha release is set for July 26th! We will see how things go. This next week will consist of chasing down bugs and cleaning up the code. After the alpha release Matt and Nade are going to continue to work on Clotho full time while I return to working on my primary research 80% of the time and working on Clotho 20% (getting it to work with Pobol).

Clotho has changed a lot since my last post. I imagine these changes will be documented in the other member's notebook pages. The main thing that is going to happen next week (other than the Alpha release) is that we are going to meet with BioJADE (Jonathan Goler) and BioStudio (Sarah Richardson) developers as well as folks from JBEI (Tim Ham) about their parts registry. The goal is that Clotho Beta will interact with other tools and also migrate its internal data representation to something like Pobol for BioBricks.

We are also going to begin to write up the work regarding various assembly algorithms that are in Clotho. This will be targeted toward a synthetic biology journal.

Week of August 3rd, 2008
They keep pulling me in!!

I have been doing work on a number of other projects but it is becoming increasingly obvious that I am going to have to integrate PoBoL support into Clotho in order for it to truly be useful to the community. To that end I have created a system to create "binding files". A binding file describes the relationship between fields in a databases and both objects and fields in the PoBoL specification. This binding file now will allow Clotho to perform operations in a standardized way based on PoBoL based data and use the binding file information to understand how to query and update a database. Here are some screenshots of both how configurations and binding file.



The next step is to integrate PoBoL based data into the Clotho environment. This will include the algorithm manager, parts navigator, and parts packager.