Team:Berkeley Software/AdamNotebook

From 2009.igem.org

(Difference between revisions)
(Adam z liu 00:36, 3 July 2009 (UTC))
(Adam z liu 21:18, 11 July 2009 (UTC))
Line 121: Line 121:
=[[User:Adam z liu|Adam z liu]] 21:18, 11 July 2009 (UTC)=
=[[User:Adam z liu|Adam z liu]] 21:18, 11 July 2009 (UTC)=
-
Lesia finished the pass on rules, and I wrote a Eugene exporter than converts the data model back to Eugene code. I also wrote a syntax highlighting file for Notepad++ to include with the release. We had a meeting with Cesar and Akshay on Friday, and we agreed that the details about properties and components should be hidden from the user in the form of header files. Next week, we are going to comment and clean the grammar file, and create a Eugene editor for Spectacles. I will also create a thorough test case to find more bugs. The next release will be for Cesar's labmates at Stanford.
+
Lesia finished the pass on rules, and I wrote a Eugene exporter than converts the data model back to Eugene code. I also wrote a syntax highlighting file for Notepad++ to include with the next release. We had a meeting with Cesar and Akshay on Friday, and we agreed that the details about properties and components should be hidden from the user in the form of header files. Next week, we are going to comment and clean the grammar file, and create a Eugene editor for Spectacles. I will also create a thorough test case to find more bugs. The next release will be for Cesar's labmates at Stanford.
<br clear="all">
<br clear="all">
[[Team:Berkeley_Software/Notebook|Back to notebook index]]
[[Team:Berkeley_Software/Notebook|Back to notebook index]]

Revision as of 21:21, 11 July 2009

Adam's iGEM 2009 Notebook

Back to notebook index

Contents


ANTLR Tutorials

http://w3.msi.vxu.se/users/tgumsi/antlr/ (http://www.antlr.org/pipermail/antlr-interest/2009-February/032930.html)

http://java.ociweb.com/mark/programming/ANTLR3.html

http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/antlr/antlr.html

http://www.alittlemadness.com/2006/06/05/antlr-by-example-part-1-the-language/


Adam z liu 06:26, 4 June 2009 (UTC)

Adam in Shanghai, China

Introduction:

My name is Adam Liu, and I am going to be a 4th year EECS student in the fall. This summer I will be working as a member of Berkeley's computational team. With the success of Clotho last iGEM, we have a great foundation to build off of this year. Although there are still a few bugs to fix, we plan to pursue many new exciting projects to move Clotho forward. The team is much bigger than last year, so hopefully we will not be too overwhelmed. My main focus this summer will be language development.


Short-term project:

I will be making a plug-in that will take a textual description of biological parts in an input file, tentatively named Adam's Language For Synthetic (ALFS), and generate an image with [http://openwetware.org/wiki/Endy:Notebook/BioBrick_Open_Graphical_Language BOGL] symbols.


Long-term project:

  • Familiarize myself with [http://groups.csail.mit.edu/stpg/proto.html Proto], [http://www.sys-bio.org/sbwWiki/antimony Antimony], and [http://sbml.org/Main_Page SBML].
  • Get an existing language to work with Clotho.
  • Design and implement our own language (structural netlist first).


Adam z liu 00:25, 11 June 2009 (UTC)

I finished a simple plugin called Pictoparts. The user inputs a *.p file describing BOGL parts, and my plugin parses the file, stitches together images, and outputs and displays an image of the composite part. I also met my partner Lesia, and we had our first project meeting with Doug. We came up with the following outline of tasks to complete this week:

  1. Think of a name for our language
  2. Give Lesia the [http://web.mit.edu/jakebeal/www/Publications/biocompile.pdf Proto paper]
  3. Look for other languages
  4. Write up a draft language for the [http://bbf.openwetware.org/RFC.html#BBF_RFC_16:_BioBrick_Open_Graphical_Language_.28BOGL.29 BOGL RFC]
    • List of primitive datatypes
    • List of properties for primitives
    • Rule syntax

Once we have a first draft for syntax, we will test the expressive power of our language on a set of diagrams by a member of the Stanford BOGL effort. We will then submit everything to the BOGL/BOL community for critique. Next week, we plan on giving our language to the wetlab to test, as well. After we settle on acceptable syntax, we will specify the grammar to [http://www.gnu.org/software/bison/ GNU Bison] to parse our language.


Adam z liu 19:22, 19 June 2009 (UTC)

Doug, Lesia, and I got feedback from various different sources about the sample syntax:

  • Cesar Rodriguez - contributor to the Stanford BOGL project
    • Rename Part to Component and Composite to Device
    • Make the language object-oriented with everything inheriting from Sequence
  • Paul Hilfinger - compilers professor at Berkeley
    • Need a way to define modules
    • Use a parser generator
    • CS community not really interested in domain-specific languages unless new processing is being done
  • J. Chris Anderson - Berkeley iGEM wetlab instructor
    • The language cannot be just a tweaked version of others already out there
    • Be able to elaborate on the ultimate purpose of the language

Lesia and I are developing a grammar for [http://www.antlr.org/ ANTLR]. We also gave a PowerPoint presentation about our project to the group.


Adam z liu 22:17, 24 June 2009 (UTC)

Data model for Eugene back-end
/*
The following example syntax demonstrates how our parser populates our 
back-end data model, as specified in DataModel.png. Example1.png show 
each global HashMap in more depth.
*/
Property Sequence(txt);
Property Orientation(txt);
Property ID(txt);
Component Promoter(Sequence, Orientation, ID);
Component RBS(Sequence, Orientation, ID);
Component ORF(Sequence, Orientation, ID);
Image (Promoter, "C:/My Images/Promoter.jpg");
Image (RBS, "C:/My Images/RibosomeBindingSite.jpg");
Promoter p1("ATCG", "Forward", "BBa_K123456");
Promoter p2("GCTA", "Reverse", "BBa_K654321");
RBS rbs1(.Sequence("CGAT"), .Orientation("Reverse"));
num ten = 10;
num one = ten - 9;
Rule r1(p2 BEFORE p1);
Rule r2(rbs WITH p2);
Rule r3(p1 NEXTTO rbs1);
Assert(r1 OR r2);
Assert(NOT r3);
Note(NOT(r1 AND r3));
Device c1 = {p1, rbs1};
Device c2 = {p2, c1};
Back-end value population for example syntax


Adam z liu 00:36, 3 July 2009 (UTC)

Lesia and I worked on fixing as many bugs as possible for our initial release. I packaged our compiler into an executable that can run from the command line or from a GUI. It comes with an extensive README with instructions on how to code and compile with Eugene. Lesia is moving on to work on rules, and I will now be working on integrating with Spectacles, Richard and Joanna's visual piece.

Sourceforge wiki: http://eugene.wiki.sourceforge.net/About+Eugene

Sourceforge download: http://sourceforge.net/projects/eugene/files/eugene/eugene.tar.gz/download


Adam z liu 21:18, 11 July 2009 (UTC)

Lesia finished the pass on rules, and I wrote a Eugene exporter than converts the data model back to Eugene code. I also wrote a syntax highlighting file for Notepad++ to include with the next release. We had a meeting with Cesar and Akshay on Friday, and we agreed that the details about properties and components should be hidden from the user in the form of header files. Next week, we are going to comment and clean the grammar file, and create a Eugene editor for Spectacles. I will also create a thorough test case to find more bugs. The next release will be for Cesar's labmates at Stanford.


Back to notebook index