DOC PREVIEW
Columbia COMS W4115 - BioSyn - A High Level Language For Molecular Synthesis

This preview shows page 1-2 out of 6 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

BioSyn - A High Level Language For Molecular SynthesisIntroduction:While genetic engineering primarily involves the design, modification and synthesis of individual genes, synthetic biology is an emerging discipline, centered on constructing entire systems of genes and gene products. It involves designing and building new biological systems by assembling molecular and genetic parts, with the purpose of adding to or modifying the biological functions of existing organisms or creating new organisms with specific properties. In a manner similar to the way electrical engineers assemble complex integrated circuits from transistors, synthetic biology envisions assembly of complex biological devices and networks by assembling individual biological parts. And in a manner similar to how electrical engineers use high level languages such as Verilog and VHDL, the development of a high level language BioSyn is proposed, for the purpose of designing biological and genetic assemblies. Standard biology parts have been catalogued by various parts registries, notable among them being the MIT parts registry (see references below). Assembly standards have been documented by the BioBricks Foundation and made available as RFCs. All parts that are part of an assembly need to comply with one of the assembly standards. Parts compliance data is available in the parts registries. The genetic sequence associated with a part is also published by the parts registries. It is proposed that the biological assembly is put together using high level programming constructs. Language Constructs:The language constructs needed to construct an assembly from biological parts are informally described below, together with example usage of the same. In addition to the ability to build assemblies from standard parts, it is proposed that the language includes built in functions to print the genetic sequence, print schematic diagrams, as well as generate XML markup for use with external simulation software.Primitive types: int, float, char, boolean and string as in C, with the exception that character strings are included as built-in types. Arrays: arrays of the primitive types as in C Operators :arithmetic : +, -, *, /string : + // string concatenation as in Javaboolean : &&, || and !Comparison : >, <, ==, >=, <=, !=assignment : = // assignment to variables representing primitives, objects and object propertiesComplex types: These include types representing biological parts, attributes of parts eg. part sequence, as well as composites derived from parts (assemblies ). Prototypes for each of these are defined prior to instantiation as illustrated in the examples below.Attribute Sequence string; // The sequence property is declared as a string attribute Attribute Name string; // The BioBricks name propertyAttribute Compatibility string; // Represents BioBricks RFC compatibilityAttribute Strength float;// define the prototype for promotersPart Promoter(Name, Sequence, Compatibility, Strength);// define the prototype for an RBSPart RBS(Name, Sequence, Compatibility);// instantiate the BioBricks promoter BBa_I14018Promoter Bba_I14018(“BBa_I14018”, “tgtaagtttatacataggcgagtactctgttatgg”, “RFC11”, 0.5);// instantiate the BioBricks RBS Bba_J63003RBS Bba_J63003(“BBa_J63003”, “cccgccgccaccatggag”, “RFC21”);// create an assembly represented by a composite; composites may contain other compositesComposite Assembly1( Bba_I14018, Bba_J63003);Conditional statements: if-else as in CLoops: for and while, as in C, can be used for iterating through arraysConstraints: Composites can be parsed and validated against constraints// examples of constraintsStart → <PlasmidBackbone><Prefix><Cassette><Suffix>Cassette → <Promoter><Cistron><Terminator>Cistron → <RBS><Gene>User defined functions: Global functions as in CLibrary functions: Functions to validate assemblies, print gene sequences, print diagrams and generate markup// examples of function usageif (Assembly1.validate()) {Assembly1.printSequence();Assembly1.printDiagram();Assembly1.generateMarkup(“/usr/local/home/user1/assembly1markup.xml”);}Sample program:// declare all attributes that can be properties of standard parts Attribute Sequence string; // The sequence property is declared as a string attribute Attribute Name string; // The BioBricks name propertyAttribute Compatibility string; // Represents BioBricks RFC compatibilityAttribute Strength float;// part prototypes are declared prior to instantiation, each part uses one or more attributes// technical definitions for the parts can be found in the glossary// define the prototype for promotersPart Promoter(Name, Sequence, Compatibility, Strength);// define the prototype for an RBSPart RBS(Name, Sequence, Compatibility);// define the prototype for a terminator Part Terminator(Name, Sequence, Compatibility);// define the prototype for a cistronPart Cistron(Name, Sequence, Strength);// define the prototype for a cassettePart Cassette(Name, Sequence, Compatibility);// define the prototype for a genePart Gene(Name, Sequence);// define the prototype for a prefixPart Prefix(Name);// define the prototype for a suffixPart Suffix(Name);// instantiate the BioBricks promoter BBa_I14018Promoter Bba_I14018(“BBa_I14018”, “tgtaagtttatacataggcgagtactctgttatgg”, “RFC21”, 0.5);// instantiate the BioBricks RBS Bba_J63003RBS Bba_J63003(“BBa_J63003”, “cccgccgccaccatggag”, “RFC21”);// instantiate the BioBricks terminator BBa_B1002Terminator Bba_B1002(“BBa_B1002”, “cgcaaaaaaccccgcttcggcggggttttttcgc”, “RFC21”);// declare the constraints against which the assembly is parsed and validatedStart → <PlasmidBackbone><Prefix><Cassette><Suffix>;Cassette → <Promoter><Cistron><Terminator>;Cistron → <RBS><Gene>;Cistron → <Cistron><Cistron>;Terminator → <Terminator><Terminator>;Gene → <Gene><Gene>;// create an assembly, represented by a composite; composites may contain other compositesComposite Assembly1( Bba_I14018, Bba_J63003, Bba_B1002);// validate the assembly against the declared constraints and then print sequence, print diagram and // generate markupif (Assembly1.validate()) {Assembly1.printSequence();Assembly1.printDiagram();Assembly1.generateMarkup(“/usr/local/home/user1/assembly1markup.xml”);}Glossary:(adapted from definitions at the MIT Biological Parts Registry and the medical dictionary at freedictionary.com as well as


View Full Document

Columbia COMS W4115 - BioSyn - A High Level Language For Molecular Synthesis

Documents in this Course
YOLT

YOLT

13 pages

Lattakia

Lattakia

15 pages

EasyQL

EasyQL

14 pages

Photogram

Photogram

163 pages

Espresso

Espresso

27 pages

NumLang

NumLang

6 pages

EMPATH

EMPATH

14 pages

La Mesa

La Mesa

9 pages

JTemplate

JTemplate

238 pages

MATVEC

MATVEC

4 pages

TONEDEF

TONEDEF

14 pages

SASSi

SASSi

16 pages

JTemplate

JTemplate

39 pages

BATS

BATS

10 pages

Synapse

Synapse

11 pages

c.def

c.def

116 pages

TweaXML

TweaXML

108 pages

Load more
Download BioSyn - A High Level Language For Molecular Synthesis
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view BioSyn - A High Level Language For Molecular Synthesis and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view BioSyn - A High Level Language For Molecular Synthesis 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?