Endy:Notebook/BioBrick Open Language Specification/Doug Approach: Difference between revisions
From OpenWetWare
Jump to navigationJump to search
No edit summary |
|||
Line 75: | Line 75: | ||
//Examples of part | //Examples of part | ||
Part Promoter(BioBrickID, Nickname, OnOff, OperatorSiteName, OperatorSiteLocation, | Part Promoter(BioBrickID, Nickname, OnOff, OperatorSiteName, OperatorSiteLocation, Negative10Negative35); | ||
Part RBS(BioBrickID, Nickname); | Part RBS(BioBrickID, Nickname); | ||
Part CodingDNA(BioBrickID, Nickname, Protein); | Part CodingDNA(BioBrickID, Nickname, Protein); | ||
Line 84: | Line 84: | ||
*/ | */ | ||
Promoter p("BBa_R0040", "ptet", true, [" | Promoter p("BBa_R0040", "ptet", true, ["TetR1", "TetR2"] , [, , ,], [23,33], [1]); //reflects Emma's comments | ||
RBS r("BBa_R0040", "rbs"); | RBS r("BBa_R0040", "rbs"); | ||
CodingDNA c("BBa_R0040", "CDS", "lasR"); | CodingDNA c("BBa_R0040", "CDS", "lasR"); |
Revision as of 17:03, 10 August 2009
Response to Emma's Requirements
//Sample "Eugene" (BOL) file which illustrates the requests from SynBioSS Group //Doug Densmore //Date - 7/10/09 /* Components/Devices * BioBrick ID: To allow for the design of custom BioBricks, I think this property should be defined by default but not mandatory. * BioBrick nickname: Mandatory. For naming custom bricks, and convenience; "pTet" is more descriptive than "BBa_R0040". * BioBrick type: Promoter, RBS, Coding DNA, Terminator, etc. SynBioSS only cares about these four types, but obviously BOL should support every type in the Parts Registry. * BioBrick order: For devices and whatnot. */ Property BioBrickID(txt); Property Nickname(txt); //Type and order will not be properties ; order can be determined by other things /* Type-Specific Characteristics Promoters * Constitutively ON/OFF: That is, whether a promoter is "ON" or "OFF" when no protein is bound to it. * Operator Site Name(s): Such as tetO, lacO, etc.... * Operator Site Location(s): A start/end is all we need. * Location of -10/-35 sites: Start/end. We are interested in this because the leakiness of a system is affected by the location of any operator site(s) relative to these sites. */ Property OnOff(boolean); //we added a boolean type, "true" or "false" are possible values (without quotes) Property OperatorSiteName(txt[]); //changed to reflex Emma's comments Property OperatorSiteLocation(num[]); //changed to reflex Emma's comments Property Negative10Negative35(num[]); //changed to reflex Emma's comments /* Coding DNA * Corresponding protein: For example, BBa_E0040 codes for GFP. */ Property Protein(txt); /* Regulatory/System Information I do not know if the scope of BOL will eventually include entire systems, instead of just BioBrick devices. If so, the following information would be helpful to us: Protein Properties * Constitutive or Non-Constitutive: Self-explanatory. * Protein "type": The general behavior of the protein. Currently, SynBioSS can handle activators, repressors, and reporters. * Binding Sites: A list of operator sites that the protein can bind do. * Complex: This is just an integer representing the number of protein monomers that are in an active complex. For example, TetR and LacI bind DNA as dimers(2) and tetramers(4), respectively. */ Property Constitutive(num); //Again 0 and 1 can be used Property ProteinType(txt); Property BindingSites(txt[]); Property Complex(num); /* Effector Properties Such as aTc, IPTG, etc.... * Binding behavior: Protein(s) that the effector binds to. * Act in Concert: For every protein/effector pair, this is a yes-no question. Some proteins (e.g. LuxR) will not bind to DNA until a small molecule (e.g. HSL) first binds to them. */ Property BindingBehavior(txt); Property ActInConcert(num); /* All properties about can be kept in a header file called SynBioSSProperties.h */ //Examples of part Part Promoter(BioBrickID, Nickname, OnOff, OperatorSiteName, OperatorSiteLocation, Negative10Negative35); Part RBS(BioBrickID, Nickname); Part CodingDNA(BioBrickID, Nickname, Protein); Part Terminator(BioBrickID, Nickname); /* All components definintions can be in a headerfile called SynBioSSComponents.h */ Promoter p("BBa_R0040", "ptet", true, ["TetR1", "TetR2"] , [, , ,], [23,33], [1]); //reflects Emma's comments RBS r("BBa_R0040", "rbs"); CodingDNA c("BBa_R0040", "CDS", "lasR"); Terminator t("BBa_B0010", "term"); /* All instantiations can be in a headerfile called <x>instantiations.h This will be created by parsing information from a database, xml file, etc */ //Now once all this has been captured in header files, devices can be defined Device d(p, r, c, t); Device d2(p, d); //sample print statements print(d2.Nickname print(d[0].OperatorSiteName);