Team:Berkeley Software/DougNotebook

Douglas Densmore's iGEM 2009 Notebook

Back to notebook page

= Densmore 16:00, 2 June 2009 (UTC) =



Yesterday was the first official day for Berkeley's 2009 iGEM computational team. In the morning we had an introductory meeting and the students filled out forms so that they had key access to Cory Hall, the DOP Center, and their office space. It was great that we were able to get this taken care of so quickly!

After the short time together in the morning, they went to safety training from 10-noon. This was followed by a meeting of both teams over pizza lunch in Stanley Hall. This was a good chance to meet everyone and get some logistics out of the way (stipends, photo release forms, etc).

In the afternoon we did the following:
 * Watched a short video on EDA
 * I gave an overview of the two web pages related to Clotho
 * http://biocad-server.eecs.berkeley.edu/wiki
 * http://2008.igem.org/Team:UC_Berkeley_Tools
 * Everyone signed up for Bugzilla and got a quick little overview
 * http://biocad-server.eecs.berkeley.edu/bugzilla
 * I gave an overview of the 6 different project areas available for this summer
 * Visualization tools
 * Language development
 * Plug-in and community development
 * Workflow development (Kepler)
 * Data Model revamp
 * Robot/Automation
 * Everyone configured Netbeans and set up CVS so that they could download Clotho

At the end of the meeting the students were given tasks for the week. The first tasks for the team are as follows:


 * 1) Think about which project(s) you would like to be involved in.
 * 2) Add an entry to your notebook with the following:
 * 3) *Introductory paragraph
 * 4) *Picture
 * 5) *Short description of their first short project
 * 6) *Short description of their first long project (with a bulleted list of tasks they are going to need to take)
 * 7) Play with Clotho
 * 8) *Take notes on all the bugs they find
 * 9) **Prize for the most/best bugs found
 * 10) Give feedback on the help files
 * 11) Meet with Doug before the week is out to talk about their role on the team

Today we:
 * 1) Discussed how to edit the wiki
 * 2) Went through a quick Clotho tutorial
 * 3) Talked about the coding standards for the project
 * 4) *http://ptolemy.eecs.berkeley.edu/ptolemyII/ptIIlatest/ptII/doc/coding/style.htm
 * 5) Decided on the owners for the help files. They are:

Richard
 * SequenceView

Nina
 * Main Toolbar
 * Clotho mySQL Connection

Joanna
 * Features Library

Adam
 * Info View
 * Enzyme Library
 * Notepad

Bing
 * Database Manager
 * mySQL Pobol Connection

Thien
 * Parts Navigator

Doug
 * Plate Manager
 * Algorithm Manager

Nade
 * Parts Manager

= Densmore 19:47, 3 June 2009 (UTC) =

Today I met with Nina, Joanna, and Adam (or at least I will by the end of the day) to assign them each to projects and to explain to them more about what they are doing. Here are the project assignments so far:

The projects have both a PI One (Principle Investigator One) and a PI Two (yes I understand that it is strange to have two "principle" investigators). On Thursday each project will be assigned a day of the week for the weekly meeting. These meetings will be between 2-3 hours long each

= Densmore 01:33, 7 June 2009 (UTC) =

Today (Saturday), Bing, Nade, Richard, and I came into the DOP Center. With the exception of Richard, everyone was here to close as many bugs as possible before the next beta build on Monday. Richard was here to work on the plug-in tutorial and materials.

In general it was a pretty successful day. We closed all the "easy" bugs and got to most of the critical other ones. In general I think it is a pretty solid version for the wet lab to start with. The major missing piece right now is a way for someone to delete entries in the database. This is an issue since you need to decide what to do with all parts that refer to the newly deleted item. Should you fill those pointers to "null"? If so, we need to make sure none of the tools will "break" if they read a null value (this should be done anyway). Another option is for a more elaborate delete. For example if I delete a biobrick, perhaps I should delete all samples which refer to it as well?

Anyway, those issues will be taken care of next time:)

Here is the list of bugs we found on Thursday. It is now broken down into those that are "fixed" and those that are "open". While the open list looks large, really most of these are not bugs bug just comments from the group. I kept these around so we would have a record of them.

Open Bugs

 * General Comments:
 * 1) Drag, drop, and squeeze all windows to make sure things size correctly
 * 2) mySQL with strange characters will break mySQL queries (need to escape many characters)


 * About menu:
 * 1) None (that we can think of)


 * Algorithm Manager:
 * 1) 10.11.20.21.30.31.45     100.111.200.222.303.145 - this is a "bad part sequence" (Nina)
 * 2) open algorithm manager, run, try to import, cancel, cannot save it as anything but text (Nina)
 * 3) Input something, hit run, then close, still keeps the inputs (should clear when it closes) (Nina)


 * Database Manager:
 * 1) Drop down menu for people is not sorted (Adam)


 * Enzyme library:
 * 1) Cntrl click behavior (Joanna)


 * Features Library:
 * 1) Check degenerate code for features (Adam)
 * 2) Click edit twice, you get a second edit window, and then the first edit window will not longer function (Joanna)
 * 3) Try to add a random file as a source, it does not add (GOOD) but there is no error message (Bad) (Joanna)


 * Help menu:
 * 1) Highlights stay on when you switch pages (Doug)
 * 2) Hightlighting not working for html (Thien)
 * 3) HTML links do not work in Jpane (Doug)


 * Info View:
 * 1) Poorly used
 * 2) Need to make it pop up when appropriate


 * Main toolbar:
 * 1) Cosmetic issue - make a "please select" option be default (Nina)
 * 2) Can open parts manager multiple times (Adam)
 * 3) Drop down menus get stuck when you drag around the maintoolbar (Adam)


 * mySQLConnection:
 * 1) Storing passwords in config? (Adam)
 * 2) set primary ID to BioBrick longDescription and then part navigator get parts twice (Adam) - ???


 * Notepad:
 * 1) Edit menu is empty (Adam)
 * 2) Go to save and then hit cancel you get an I/O not found exception (Adam)


 * Parts Manager:
 * 1) Column sorting is strange (Adam)
 * 2) No indication that it is loading (Joanna)
 * 3) Tools options does not do anything (Adam)
 * 4) What does right click, "open selected" do (Adam)
 * 5) Can make a part with all " " and nulls (Joanna)
 * 6) Multiple parts selected, right click, hover around, then highlighting gets screwed up (Richard)
 * 7) Right click white space gives you a strange prompt (Adam)
 * 8) Sequence view just opens whatever part is in the parts manager(Nina) - (Adam says it gives exceptions)
 * 9) Select two parts and then send to the sequence view gives you an error(Nina) - ???


 * Parts Navigator:
 * 1) Search button is not really visible (Nina)


 * Plate manager:
 * 1) Got an error message while opening it?? (Strange binding error) (Joanna)


 * poBoLMySQLConnection:
 * 1) message after you successfully connect (Adam)


 * Sequence View:
 * 1) ORF highlight extends (Doug)
 * 2) Highlight data, click on allow degeneracy, then do an operation, it will still only change what was previously highlighed (Nina)
 * 3) Can enter bad characters with drag and drop (probably open too) (Adam)
 * 4) Replace does not replace the first one found (Nina)
 * 5) Export says does not say something when a connection that does not support export is selected (Bing)
 * 6) What is saving is not clear ie. I just dragged this from the plate manager (Nina)

Closed Bugs

 * Database Manager
 * 1) Could not tell the difference for successful and failed commit (has the same message) (Richard)
 * 2) After you have an unsuccessful commit (ie. invalid character), it won't work again later (Richard)


 * Enzyme library
 * 1) When you click highlight with no enzymes selected it has a yes no dialog box (Adam)
 * 2) "Everything" in file and enzyme library opens two windows (Adam)
 * 3) Loading and saving opens two windows if you hit cancel (Adam)


 * Features Library
 * 1) New feature in a new library (Joanna)
 * 2) 	Finish button does not work properly
 * 3) 		Window does not close
 * 4) 		Feature shows up but something is wrong
 * 5) 			Feature does not open when double clicked
 * 6) 			File is not storing feature
 * 7) 		Since window does not close it keeps making broken features
 * 8) 		New library paths are formatted incorrectly
 * 9) Export button does not work properly for new library (Joanna)
 * 10) When remove button is clicked when nothing is selected, exception is created (Joanna)
 * 11) Selected test library, hit remove, the name goes away, but the features pane stays until you click on something else (Joanna)
 * 12) Go to new library, cancel button appears before ok (inverted position) (Adam)


 * Help Menu:
 * 1) Welcome still text file (Joanna)
 * 2) Legal Information still text (Joanna)
 * 3) Version and legal still say alpha (Joanna)


 * mySQLConnection:
 * 1) Not clear where to go for more information when poor password is typed in (Nina)


 * Parts Manager:
 * 1) Choose plug-in hit you hit cancel you get a null point exception (Adam) - Just removed the plugin (Doug)
 * 2) Dialog error messages can be very long (Bing)
 * 3) When you refresh the database it does not warn you that you are going to lose unsaved changes (Joanna)


 * Parts Navigator:
 * 1) Lots of exceptions when you don't have a connection and you try to do anything (Thien)
 * 2) Exceptions if you don't have a primary id set (Adam)


 * Plate manager:
 * 1) Only should highlight the well (Joanna)
 * 2) Try to duplicate the move the sample error where it reappears (Doug)


 * poBoLMySQLConnection:
 * 1) default connection needs to update drop down(Bing)

= Densmore 17:28, 8 June 2009 (UTC) =

Today I put a new build of Clotho for June 8th at http://biocad-server.eecs.berkeley.edu/wiki/index.php/ClothoBetaReleases

This was in preparation for the Clotho tutorial I am going to give to the wet team at 1pm.

In the morning we had a group meeting the main issues I wanted to raise were:


 * The help files are still in bad shape. They need to be cleaned up more. I asked everyone to continue cleaning up their help files. If they think they are done, ask me individually.
 * I talked about the wiki entries. Various levels of detail and quantity of material. In general they are good. Keep up the good work. Wiki entries remain a weekly requirement.
 * In the afternoon we have a dry run of the plug-in tutorial at 5pm. We are going to run through what Richard put together.
 * Please continue to give me feedback on bugs in new version (Thien found a bug during the meeting with images in help).

The other major thing going on today are that I have to pick up Lesia. I asked the team to please make sure to help her with:
 * Learning how to edit and use the wiki
 * Set up netbeans, CVS, and check out and run the code
 * Make sure she knows about the google calendar and email
 * Richard can introduce himself and teach her a little about plugIns
 * Make sure she knows how to get to the key card office and where Jontae sits

The individual presentations are going to take place next week. Here are the assignements:

Monday
 * Data Model
 * Visualization
 * PlugIns

Thursday
 * Languages
 * Robot
 * Workflows

These have been added to the details of the event on the calendar.

Details for the presentations:
 * 10-15 minutes
 * Powerpoint - with visuals!
 * Include a weekly timeline for June - August

Here are the issues you should address (Heilmeyer's Catechism)

* What is the problem, why is it hard? * How is it solved today? * What is the new technical idea; why can we succeed now? * What is the impact if successful? * How will the program be organized? * How will intermediate results be generated? * How will you measure progress? * What will it cost?

Misc
 * As a group need a big picture slide
 * Today at the Clotho tutorial, Patrick and Jenn were having problems getting Java 6/Clotho to work on a Mac. Evan has been put in contact with them. The end result should be an update to the wiki FAQ with updated instructions.

= Densmore 00:30, 11 June 2009 (UTC) =

Today was another busy day filled with meetings. I had a meeting with Bing in the morning about the data model. Here are my misc notes:
 * Need to define the Clotho Keywords (CK) list
 * This is a set of objects. Objects have fields as well
 * We DO NOT define a relationship between objects
 * Add the ability to have a Keywords Extensions (KE) list
 * Require a binding file
 * The binding file assigns database tables to CK objects and fields

The once the binding file has been created, then the new data model will create connections based on what is in the database. This allows for two types of checks by tools:
 * A check if a CK is bound to an element in the database
 * This allows straight retrieval and committing to the database
 * A check if a CK is reachable from another CK
 * This allows relational queries

Reachability from CK to CK can be determined through KE objects as well.

After the data model meeting, I spent the afternoon with 9th graders from Cal Prep. I showed them around campus, our lab, and JCA lab. It was fun. They were great kids and had a lot of energy.

The last meeting I had was with Bing and Nina about the robot. We went over the protocol that Jenn sent us. It appears that there are three basic operations that we can support:
 * Transfer (ONE well to ONE other well)
 * Combine (Move MANY wells to ONE other well)
 * Move (ONE well to MANY wells)

Nina and Bing are going to begin to code these primitive operations. In addition to the operation itself, there are two other axis:
 * The parameters for the operation
 * If it is an operation for the robot or a set of detailed instructions for a human

=Densmore 02:13, 12 June 2009 (UTC)=

Today I met with the visualization team. We quickly realized that we can't talk about much until they get a basic environment set up. Here are the current issues:
 * BioJADE - can't get it to run. Appears that they need to resolve mySQL isses (BioJADE wants a local mySQL install)
 * ProMoT - requires lisp support?
 * Visual Library - available in Netbeans, not outside of Netbeans
 * Java FX - talks to java, java does not talk to java FX? (Richard can comment on this)

I have sent Richard and Joanna my old project which used Visual Library. Hopefully they will be able to salvage something from this. I know JCA really wants us to use Java FX. I personally want something easy to use and something we can build on.

We also have our group meeting. Lesia and Adam showed off their version first version of BOL. They have started a white paper and have example syntax started. Overall a really good start.

The rest of the day I spent revising the SDS algorithm code so that we can calculate the cost of a final assembly independent of the cost metrics used to build the assembly graph (which could be corrupt when we break cycles to perform valid 2ab coloring). I also fixed a bug that Nina found while playing around with Clotho.

=Densmore 22:56, 17 June 2009 (UTC)= Today was a good meeting between myself, Evan, and Bing regarding the new Clotho Core. This is going to be much more robust and will be a much better way of doing things as compared to the first approach. I expect Bing and Evan to have an illustration soon that shows what we are going to do. This is key so that we can all get on the same page.

Also today I met with Nina and Bing about the robot automation. This project is the one project which I have the least grasp of since the details of the protocol are key. Nina believes she will have a first pass done by Friday. That would be a good timeline since the wet team is just getting their oligos back this week. Hopefully we can get this tested out while the wet team is trying to build things (as opposed to having to make up our own test and running them).

Another development has been the release of Clotho Beta build 6/15/09. This is the first build that has a truly working SDS algorithm. I spent TOO MUCH TIME fixing this but I am proud that it now works. Josh has given me some good feedback on ways that it is still lacking (primarily in how it formats output for the users). I can fix most of these issues quickly. My goal is still to get the JBE paper out before the end of the month. We will see. The only thing really holding it up is a concerted effort on the part of myself and the other authors. The code is 95% done.

Finally here are some random thoughts:
 * Think about how/where to add a functional API to Clotho
 * Need a contact that understands GNU bison to help with "Eugene"
 * Joanna and Richard are just going to build a JavaFX stand-alone app to see if they can even do what they think they can do with it before we worry about integrating it into Clotho
 * Thien needs to meet with Chris for sample workflows. He needs to meet with Christopher Brooks to talk about Kepler issues

=Densmore 21:50, 23 June 2009 (UTC)=

Today when I was talking to Thien about Kepler we were talking about a general functional API for Clotho. He is going to need it so that Kepler actors can make use of functions in Clotho. It got me to thinking that I should just post this list. It will continue to grow. However, now everyone can see it. This will be of use for the plug-in team as well.


 * General
 * Get current connection (PoBoLDataStructure)
 * Get login (Clotho local login)


 * Main Toolbar
 * Get/set skin
 * Change the preferences
 * Call a plug-in


 * Parts Manager
 * Add BB/DNA/Sample
 * Open part in sequence view
 * Get X for BB/DNA/Sample
 * Call a plug-in


 * Plate Manager
 * Get a list of plates
 * Get a list of samples for a plate
 * Copy/Move samples
 * Update samples
 * Make a new plate
 * Save a plate
 * Save a sample
 * Change preferences
 * Call a plug-in


 * Algorithm Manager
 * Get results
 * Select/configure/run an algorithm
 * Call a plug-in


 * Sequence View
 * Get current sequence (specify the window you want)
 * Get currently highlighted features
 * Get current enzyme selection
 * Get the output of information windows
 * Open a data file
 * Save a data file
 * Open a new sequence view window
 * Basically all operations in the menu bar
 * Call a plug-in

=Densmore 18:47, 30 June 2009 (UTC)=

Today I met with Adam and Lesia and it quickly became apparent that I need to learn how to use ANTLR and look at their Eugene code. So, I spent about an hour playing around with it. Here are my comments:


 * In both the lexer rules and the parser token lists you are going to need to add: &, |, <,>, <=,>=, etc for the rule enforcement. You might want to go ahead and add other keyboard elements just to "future proof" things a little.
 * There need to be more comments in the code
 * Try to make the code as modular as possible. If you can pull the lexer and parser pieces apart that would be a good first step.
 * Declaring properties takes a string as a type. It might be better from a type safety standpoint to use enums.
 * I would strongly recommend moving all the token definitions in the beginning into the lexer rules. Not only does it seem more natural to me, but it also will help folks find things and make the code more modular.
 * It is confusing how you have defined LETTER. It is really a string of letters. You might want to call what you call a string a QUOTEDSTRING or something else.

=Densmore 08:19, 11 July 2009 (UTC)=

Today (I guess yesterday technically) we meet with Cesar and Akshay to discuss Eugene/BOL. After a brief introduction we did the following:


 * Demo of Spectacles
 * Demo/Explanation of Eugene
 * Update on what is going on at Stanford (BioBrick Studio Mobile, Google base parts cloud, BioBrick Studio mock up and plans).
 * Explanation of how to get Eugene executables from Sourceforge
 * Discussion of ANTLR and Eugene.g code

Here are some issues that came up during our meetings:
 * Currently we have properties, components, and devices. Should we insert "object" between properties and components? An example of this would be "sequence" which both has a text value as well as a size. I personally do not have strong feelings about this since you can workaround this. I don't know what this gains us semantically.
 * We need to make sure to keep a balance between expressiveness (what CS folks want) and encapsulation and ease of use (what biologists want). We should leverage the language (promoter, RBS, etc) that bio folks understand along with the language that CS folks understand (Object, int, instance, etc).

Here are what our current tasks are:
 * Spectacles
 * Agree on a standard for vBOL files. Size, line length, line position, etc
 * Add the ability to put a label below an image
 * Proof of concept of Spectacles->Eugene
 * Eugene
 * Integrate an editor into Spectacles. This does not need syntax highlighting. This could effectively replace the behavior of the eugene executable jar file.
 * Create 3 constructs from Endy lab; create 3 constructs for Anderson lab
 * We need to find a way to add "include files". I am fine with a preprocessing step which inlines eugene code.
 * We need to come up with a set of initial properties and components
 * We need to make sure orientation is a property. It will be up to Spectacles to determine which image to display (i.e. forward or reverse rbs).
 * We need to think about how to integrate an assembly format (e.g. BBA, BBB, etc) into how we do things like sequence determination for devices.

=Densmore 21:21, 14 July 2009 (UTC)=

Here is my preliminary vision of how BOL/BOML/Eugene can work together. This supports Cesar's vision of an XML like description being produced during the backend processing phases.



Back to notebook page