Synthetic Biology:Abstraction hierarchy: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
m (BioBricks abstraction hierarchy moved to Synthetic Biology:Abstraction hierarchy)
No edit summary
 
Line 1: Line 1:
==Background==
{{Synthetic biology top}}
After [[Endy:Lab Meeting 9/14/2005 | lab meeting]], a few of us were having a discussion on what the schema for the [http://parts.mit.edu Registry] should look like.  (Some notes from that discussion are posted [[Synthetic Biology:Semantic web ontology | here]]).  During the discussion, we started talking about the abstraction hierarchy that is on the [http://parts2.mit.edu/r/parts/htdocs/AbstractionHierarchy/index.cgi Registry page] and originally from one of [[Drew Endy | Drew's]] slides.


[[Image:AbstractionHierarchy.jpg]]
<div style="padding: 10px; width: 730px; color: #000000; background-color: #ccccff">


==Motivation==
==Motivation==
Abstraction hierarchies are useful in general because they enable an engineer to cope with very complex systems by ignoring unnecessary detail.  Thinking about what an abstraction hierarchy in synthetic biology should look like might help us think about the "right" way to engineer biological systems.


==Parts, devices and systems==
Abstraction hierarchies are a '''human''' invention designed to assist people in engineering very complex systems by ignoring unnecessary details.  If the process to design a biological system was to write down the string of nucleotides, it would immediately become untenable even for experts to design anything but very simple systems.  Most people just aren't capable of processing that kind of detail all at once.  If instead, an abstraction hierarchy is specified, it allows the designer of a biological system to ignore some of the implementation details and focus only on the high-level design issues.
===Ad hoc definitions===
 
The question that arose is, what is the distinction between a device and system? Generally, to date we haven't had a crisp distinction between parts, devices and systemsThe working definitions to date are something like
Engineers in all disciplines take advantage of abstraction hierarchies to design and build complicated systems. For instance, software engineers write in high level programming languages like C++ or Java which are designed to be easy for humans to read and writeThese programs are then translated into lower level sets of instructions that are more easily translatable to bit strings that are machine interpretable and implementable. Thus, the people who write C++ programs do not need to know how to translate their programs to machine code and the people who work on instruction sets do not need to envision all possible programs that the software engineer might write.
*'''DNA''' = low level DNA sequence ... a string of A,T,G,C's
 
*'''Part''' = RBS, CDS, promoter, terminator; a piece of DNA in BioBricks format that has a specific function.
To enable the engineering of very complex biological systems, it will be necessary to develop abstraction hierarchies for biological engineering.  At this point, it is not necessarily clear which hierarchies are most useful and in fact it may be slightly premature to try and develop them.  Nevertheless, thinking about what an abstraction hierarchy in synthetic biology should look like might help us think about the "right" way to engineer biological systems and to design biological parts.
*'''Device''' = inverter; something else with a higher level function; composed of multiple parts
 
*'''System''' = ring oscillator; composed of many devices
Below several abstraction hierachies are listed that might be appropriate for biological engineering.  Anyone should feel free to revise them, add new candidate hierarchies or add comments as this is very much a work in progress.  An attempt has been made to give credit to the originators of each of the candidate abstraction hierarchies; however, this should in no way be a deterrent to those interested in offering revisions.  The abstraction hierarchies have been listed in chronological order of inception.
 
==Candidate abstraction hierarchies==
 
===DNA, parts, devices and systems model===
 
[[Image:AbstractionHierarchy.jpg]]
 


===Composition-based definitions===
{| style="background:#ccccff"
! align="left" | Layer name
! align="left" | Definition
! align="left" | Example
|--
| DNA
| sequence of nucleotides
| ATGGATCATGATG
|--
| Part
| a finite sequence of nucleotides with a specific function
| RBS, CDS, promoter, terminator
|--
| Device
| multiple parts with a higher level function
| inverter
|--
| System
| multiple devices hooked together
| ring oscillator
|}


''Just brainstorming ... edit excessively.''
The original abstraction hierarchy is posted on the [http://parts2.mit.edu/r/parts/htdocs/AbstractionHierarchy/index.cgi Registry page] and is originally from one of [[Drew Endy | Drew's]] slides.


One appealing aspect of this composition-based distinction between parts, devices and systems is that it makes it easier to think about classes of standards that might be useful.  There are assembly standards which apply to parts and performance standards (for instance, definitions of high and low signal thresholds) that apply to devices.  These standards facilitate interoperability of parts with other parts and devices with other devices.  Systems, on the other hand, are unlikely (?) to be subject to standards.  Instead, systems are designed to meet a set of specifications.  For example, I want to design a system in which cells that detect a chemical X glow green.  At this point the line between parts, devices and systems might be somewhat artificial but these distinctions might serve to stimulate discussion on how to systematically engineer biological systems.
by [[Drew Endy]].


====Attempt 1====
----
Obviously, the distinctions are somewhat vague.  The idea that dawned on [[Reshma Shetty | me]] during the course of the discussion with [[Jason Kelly | Jason]] and [[User:Ilya | Ilya]] is to use the following (slightly more crisp?) distinctions
*'''DNA''' = low level DNA sequence ... a string of A,T,G,C's
*'''Part''' = a piece of DNA in BioBricks format which usually has a specific function. 
**a terminator stop transcription
**a promoter initiates transcription
*'''Device''' = a basic or composite part whose input OR output has units of PoPS (or whatever units the general information signal in the devices have). <br> Another way of thinking of this definition is that a device is any part for which a transfer curve can be drawn in which one of the axes is in PoPS. <br> The key thing to note in this description is that certain BioBricks in the database might be considered a part in one context and a device in another context.<br> I think this definition could be rephrased to say - ''A device is any basic or composite part that can be combined with at least one other device using the PoPS framework.''  I think this might make the reason for defining a device as you have done more clear (at least to me). --[[User:Bcanton|BC]] 09:30, 15 Sep 2005 (EDT) <br>  [[Jason Kelly | Jason]] has been using an operational distinction between devices and systems saying that a device is something whose behavior you can screen for whereas a system's behavior cannot be screened.  Thus, what is a system today might be a device tomorrow if a clever screen is devised.  We should think about whether that definition is more useful than this one or if the two could be merged.
**an inverter is a device. Its input and output are PoPS
**an RBS.GFP.Term is a device.  Its input is PoPS and its output is fluorescence.
**a constitutive promoter is a device.  It has no input and its output is PoPS.  (Note: a promoter is a part in other contexts).
**UT-Austin's photons to PoPS converter is a device.
*'''System''' = Any device which has neither an input nor an output in PoPS.  <br>Some systems can easily be transformed to devices.
**a promoter.GFP.Term is a system.  It has no input and its output is fluorescence.
**The UT-Austin's project is a system.  Its input is photons and its output is blue/white color.
**the repressilator is a system.  It has no input (or its input could be IPTG/aTc) and its output is fluorescence.  The repressilator could easily become a device however.  If a duplicate copy of one of the promoters is present.  Then that promoter has an output of PoPS which could be hooked up to some device.  Thus in this case, the repressilator becomes a device.  <br>
When you add the promoter, I think the repressilator is still a system but it is part of a device.  I'm not sure you can add another promoter and still say that it is the repressilator since you have added a new output.  You cant connect I7101 or the repressilator to another device via the PoPS framework hence they are exlusively systems.--[[User:Bcanton|BC]] 09:30, 15 Sep 2005 (EDT)


Following on from what I wrote above - ''A system is a collection of parts that does not have a PoPS input or output to allow composition with other parts or devices via the PoPS framework''.  So a device has at least one input or output that can be connected to other devices and so can form part of a larger system whereas a system is a complete and "closed" collection of parts.  I don't think I'm changing the definitions too much, just wording them in a way that makes more sense to me.  Worded this way I think they emphasize the composability property of the element which seems like the most clear, since interpreting the function of the elements is subjective as we all agree.--[[User:Bcanton|BC]] 09:30, 15 Sep 2005 (EDT)
===Screenability model===


Thus, the exact classification of a particular BioBrick is not fixed.  In some situations, you might think of promoter as a part because you are referring to a promoter than can be regulated by a certain repressor.  In another situation, you think of a promoter as a device because you need a constant PoPS source in your device/system.  In other words, parts, devices and systems are not disjoint.
{| style="background:#ccccff"
! align="left" | Layer name
! align="left" | Definition
! align="left" | Example
|--
| DNA
| sequence of nucleotides
| ATGGATCATGATG
|--
| Part
| a finite sequence of nucleotides with a specific function
| RBS, CDS, promoter, terminator
|--
| Device
| one or more parts which can be screened for functionality
| promoter, terminator, inverter
|--
| System
| multiple devices which cannot be screened for functionality
| ring oscillator
|}


So if I get this right, everything that is on the one piece of DNA is always a part.  However, I think that systems and devices are disjoint sets.  The caveat being that you can easily convert one to the other by adding or removing a PoPS i/o. --[[User:Bcanton|BC]] 09:30, 15 Sep 2005 (EDT)
by [[Jason Kelly]].


====Attempt 2====
----
Actually this might mean -  
*'''Part''' = a piece of DNA that can be combined with other parts via BioBricks standard assembly.
*'''Device''' = a part or composite part that can be combined with other parts via PoPS-based composition.
*'''System''' =  a part or composite part that cannot be combined with other parts via PoPS-based composition.


====Attempt 3====
===Composition model===
I like these definitions ... they capture the same ideas in a much more concise way.  Some minor revisions.
*'''Part''' = a piece of DNA with specific function that can be combined with other parts via an assembly standard.
*'''Device''' = a part or composite part that can be combined with other devices via composition based on a univeral signal (i.e. PoPS, RiPS, PhPS).
*'''System''' =  a part or composite part that cannot be combined with other parts via composition.


Changes:
{| style="background:#ccccff"
#Added a caveat to the part definition: i.e. "a piece of DNA with specific function."  Thus, not just any sequence of DNA in BioBricks format can be a part ... it must have a specified function associated with it.  Note that a random piece of DNA could be a part, if its purpose was to be random (like the spacer part).
! align="left" | Layer name
#Tried to describe parts, devices and systems more generally.  For example, a part can be combined with other parts via ''an assembly standard'' rather than ''BioBricks standard assembly.''  And instead of ''PoPS-based composition'', just ''composition.''
! align="left" | Definition
! align="left" | Example
|--
| DNA
| sequence of nucleotides
| ATGGATCATGATG
|--
| Part
| a sequence of DNA with a specific function that can be physically combined with other parts via an assembly standard
| RBS, CDS, promoter, terminator
|--
| Device
| a set of parts that can be functionally combined with other devices via a common, standard signal carrier (i.e. PoPS, RiPS, PhPS)
| inverter
|--
| System
| a set of devices that cannot be functionally combined with other devices via a common, standard signal
| ring oscillator
|}


Note that I am not satisfied with the wording I use above.  So if you have a better idea, feel free to revise.  --[[User:Rshetty|Reshma]] 11:02, 27 Sep 2005 (EDT)
See [[Synthetic Biology:Abstraction hierarchy/Composition model]] for notes on the abstraction hierarchy developed based on composability. 


====Attempt 4====
by [[Reshma Shetty]] and [[Barry Canton]].
*'''Part''' = a sequence of DNA that can be physically combined with other parts via an assembly standard.
*'''Device''' = a part or composite part that can be functionally combined with other devices via a common, standard signal(i.e. PoPS, RiPS, PhPS).
*'''System''' =  a part or composite part that cannot be functionally combined with other parts via a common, standard signal.
Changes:
#Suggested the removal of the specific function clause (see discussion below).
#Tried to make clear that parts can be physically combined, whereas the important composition at the device level is a functional composition.


I like the more generalized definitions of Attempt 3.  However, I'm not sure if we need to define a part as having a specific function.  I feel that as long as it is composable it must be a part, even if not necessarily a useful part.  I don't think we lose or gain a lot by including the specific function clause other than forcing people to define a function for their part which might be a good idea.  Parts also may or may not have only one specific function. 
----


We should discuss this idea of specific function further at the device and system level.  Is a non-functioning device a device?  Probably.  Is a system that doesn't do anything a system? Maybe.  Again, I feel that a well-formed device/system (i.e one that conforms to the composition standard) can't not have a function and hence we don't necessarily need the specific function clause at these levels either.
===Network layer model===


:The reason why I am inclined to include the clause that a part must have a specific function is that thus far we've tried to draw the lines between parts at places that "made sense."  We could have defined a part as half a promoter with half an RBS but delineating a part in this way seems foolish because it ignores the fact that a promoter and RBS are (somewhat) separate functional units.  And since it is quite reasonable for engineers to want to combine a promoter with several different RBS's or vice versa, it makes sense to keep the promoter and RBS as separate parts.  The definition of a part should reflect this philosophy of modularity that we try to keep.  --[[User:Rshetty|Reshma]]
This model derives inspiration from the [[Wikipedia:OSI model]] for computer network protocols.


One hair-splitting problem I see with the definitions we are using here is that they imply that a system (and a device) must be a part.  This might not need to be true even though the current assembly standard forces any combination of parts to also be a part.  We might need to replace part or composite part with just "sequence of DNA" in the device and system definition.  Or we can just make a more limited definition of these that does require them to also be parts as defined here.  Furthermore, systems don't need to be on the one sequence of DNA.  We could say that a system must be a collection of devices.
====Version 1====


====Attempt 5====
{| style="background:#ccccff"
*'''Part''' = a sequence of DNA that can be physically combined with other parts via an assembly standard.
! align="left" | Layer Number
*'''Device''' = a set of parts that can be functionally combined with other devices via a common, standard signal(i.e. PoPS, RiPS, PhPS).
! align="left" | Layer Name
*'''System''' =  a set of devices that cannot be functionally combined with other devices via a common, standard signal.
! align="left" | Example Standard
Changes:
! align="left" | Role of User
#Devices and systems need not be one linear sequence of DNA and so should be defined in terms of their functional components rather than the physical components.
! align="left" | Category
#For brevity, a set of parts/devices may contain one or more parts/devices.
|----
|Layer 7
|Application
|chemical detector
|Brainstorm need
|System
|----
|Layer 6
|Packaging
|pSB plasmids
|Physical handling of system
|System
|----
|Layer 5
|Environment
|wavelengths of light
|Provide input or observe output
|System
|----
|Layer 4
|Cell
|cell-cell signaling
|none
|Cell
|----
|Layer 3
|Protein
|dimerization interface
|none
|Part
|----
|Layer 2
|RNA
|PoPS
|none
|Part
|----
|Layer 1
|DNA
|BioBricks assembly
|none
|Part
|----
|Layer 0
|Chassis
|nucleotides/amino acids
|none
|Chassis
|} 


These definitions are starting to emphasize the fact that the idea of a part is solely related to physically joining biological components (the part may or not be able to do anything by itself) whereas the idea of a device is concerned with design of function and signal processing. -[[User:Bcanton|BC]]
by [[Austin Che]].


I agree.  Devices and systems should not need to reside on a single piece of DNA.  Oftentimes they can't ... for instance, a two input NAND gate.  Another thing that we may want to take into account in phrasing these definitions is that not all devices will be used in information processing.  In some cases, a device might consist of an enzyme that catalyzes a metabolic reaction.  So the signal is perhaps catalysis events per unit time?  Do we want our definitions to be sufficiently generalizable to apply to these other branches of devices?  Quite possibly yes.  --[[User:Rshetty|Reshma]]
====Version 2====


Agreed on the specific function clause.  With regard to the generality issue, I feel that information processing is maybe the most general description of a device.  The catalysis reaction and a metabolic pathway can certainly be described as information processing even if that is not the explicit purpose. Just as a digital circuit is doing information processing even if the explicit function is to display the time.  Furthermore, we draw the boundaries between devices deliberately in such a way that they are composable via a common signal carrier.  For example, "catalysis events per unit time" may or may not be capable of being a common signal carrier and so may have to live within a device.-[[User:Bcanton|BC]]
This version attempts to reconcile the network layer model with the composition model.


====Attempt 6====
{| style="background:#ccccff"
*'''Part''' = a sequence of DNA with a specific function that can be physically combined with other parts via an assembly standard.
! align="left" | Layer Number
*'''Device''' = a set of parts that can be functionally combined with other devices via a common, standard signal(i.e. PoPS, RiPS, PhPS).
! align="left" | Layer Name
*'''System''' =  a set of devices that cannot be functionally combined with other devices via a common, standard signal.
! align="left" | Example Standard
Changes:
! align="left" | Role of User
#Specific function back.
|----
|6
|User
|Detector of Chemical X
|
|----
|5
|Environment
|Batch/continuous, Temp., Media
|Provide input or observe output
|----
|4
|Population
|cell-cell signaling
|Design interactions between different cells
|----
|3
|System
|Signaling molecules, fluorescence
|Design system to process external inputs into detectable outputs
|----
|2
|Device
|PoPS, RiPS
|Use parts to design device with particular transfer curve
|----
|1
|Part
|BioBricks assembly
|Plan and assemble
|----
|0
|Materials
|nucleotides/amino acids
|Choose the materials
|}


==Network layer model==
by [[Barry Canton]].


I propose a more general/different model based on the OSI network model:
See [[Synthetic Biology:Abstraction hierarchy/Network layer model]] for more detailed and extensive notes on the network layer model.
[[Network Layer Model]] --[[User:Austin|Austin]] 16:40, 21 Sep 2005 (EDT)


I like Austin's idea so I think it would be worth trying to amalgamate the two approaches.  The drawback of the current definitions of parts, devices, and systems is that they are limited, they ignore the functional aspect of the different concepts.  For example, a system is defined in a very negative way, i.e a system is anything that is not a device.  We are all clear though that a system should have some higher level function and probably as Austin suggests should have inputs and outputs that a user can interact with via addition of inducer or fluorescent measurements for example.  So I think adding some of the extra layers proposed by Austin would be useful. 
</div>
-[[User:Bcanton|BC]]
{{Synthetic biology bottom}}

Latest revision as of 15:33, 22 December 2005

Home        About        Conferences        Labs        Courses        Resources        FAQ       

Motivation

Abstraction hierarchies are a human invention designed to assist people in engineering very complex systems by ignoring unnecessary details. If the process to design a biological system was to write down the string of nucleotides, it would immediately become untenable even for experts to design anything but very simple systems. Most people just aren't capable of processing that kind of detail all at once. If instead, an abstraction hierarchy is specified, it allows the designer of a biological system to ignore some of the implementation details and focus only on the high-level design issues.

Engineers in all disciplines take advantage of abstraction hierarchies to design and build complicated systems. For instance, software engineers write in high level programming languages like C++ or Java which are designed to be easy for humans to read and write. These programs are then translated into lower level sets of instructions that are more easily translatable to bit strings that are machine interpretable and implementable. Thus, the people who write C++ programs do not need to know how to translate their programs to machine code and the people who work on instruction sets do not need to envision all possible programs that the software engineer might write.

To enable the engineering of very complex biological systems, it will be necessary to develop abstraction hierarchies for biological engineering. At this point, it is not necessarily clear which hierarchies are most useful and in fact it may be slightly premature to try and develop them. Nevertheless, thinking about what an abstraction hierarchy in synthetic biology should look like might help us think about the "right" way to engineer biological systems and to design biological parts.

Below several abstraction hierachies are listed that might be appropriate for biological engineering. Anyone should feel free to revise them, add new candidate hierarchies or add comments as this is very much a work in progress. An attempt has been made to give credit to the originators of each of the candidate abstraction hierarchies; however, this should in no way be a deterrent to those interested in offering revisions. The abstraction hierarchies have been listed in chronological order of inception.

Candidate abstraction hierarchies

DNA, parts, devices and systems model


Layer name Definition Example
DNA sequence of nucleotides ATGGATCATGATG
Part a finite sequence of nucleotides with a specific function RBS, CDS, promoter, terminator
Device multiple parts with a higher level function inverter
System multiple devices hooked together ring oscillator

The original abstraction hierarchy is posted on the Registry page and is originally from one of Drew's slides.

by Drew Endy.


Screenability model

Layer name Definition Example
DNA sequence of nucleotides ATGGATCATGATG
Part a finite sequence of nucleotides with a specific function RBS, CDS, promoter, terminator
Device one or more parts which can be screened for functionality promoter, terminator, inverter
System multiple devices which cannot be screened for functionality ring oscillator

by Jason Kelly.


Composition model

Layer name Definition Example
DNA sequence of nucleotides ATGGATCATGATG
Part a sequence of DNA with a specific function that can be physically combined with other parts via an assembly standard RBS, CDS, promoter, terminator
Device a set of parts that can be functionally combined with other devices via a common, standard signal carrier (i.e. PoPS, RiPS, PhPS) inverter
System a set of devices that cannot be functionally combined with other devices via a common, standard signal ring oscillator

See Synthetic Biology:Abstraction hierarchy/Composition model for notes on the abstraction hierarchy developed based on composability.

by Reshma Shetty and Barry Canton.


Network layer model

This model derives inspiration from the Wikipedia:OSI model for computer network protocols.

Version 1

Layer Number Layer Name Example Standard Role of User Category
Layer 7 Application chemical detector Brainstorm need System
Layer 6 Packaging pSB plasmids Physical handling of system System
Layer 5 Environment wavelengths of light Provide input or observe output System
Layer 4 Cell cell-cell signaling none Cell
Layer 3 Protein dimerization interface none Part
Layer 2 RNA PoPS none Part
Layer 1 DNA BioBricks assembly none Part
Layer 0 Chassis nucleotides/amino acids none Chassis

by Austin Che.

Version 2

This version attempts to reconcile the network layer model with the composition model.

Layer Number Layer Name Example Standard Role of User
6 User Detector of Chemical X
5 Environment Batch/continuous, Temp., Media Provide input or observe output
4 Population cell-cell signaling Design interactions between different cells
3 System Signaling molecules, fluorescence Design system to process external inputs into detectable outputs
2 Device PoPS, RiPS Use parts to design device with particular transfer curve
1 Part BioBricks assembly Plan and assemble
0 Materials nucleotides/amino acids Choose the materials

by Barry Canton.

See Synthetic Biology:Abstraction hierarchy/Network layer model for more detailed and extensive notes on the network layer model.

This site is hosted on OpenWetWare and can be edited by all members of the Synthetic Biology community.
Making life better, one part at a time.