[BBF Standards] Questions about functional composition, functional definition, data exchange
Ralph Santos
rasantos at lbl.gov
Mon Feb 11 16:29:40 EST 2008
I have several questions about an earlier discussion thread, and I
suppose it centers around this definition from Raik Gruenberg's email of
4 February ["Biobrick data exchange format"]. He writes:
------- 8< -- cut here -- 8< --------
For data exchange purposes
we adopt the following draft:
* BioBrick™ are standard DNA parts that encode basic biological function.
* A BioBrick has a unique DNA sequence.
* Basic parts are defined by this DNA sequence.
* Composite parts are defined as "sequence" of Basic BioBricks, along with
intervening "scar" sequences.
------- 8< -- cut here -- 8< --------
the discussion about data exchange that has followed since (at least as
far as I have followed it from digests and archives) seems heavily
focused on describing the specifics of biobricks and paying less
attention to providing a workable abstraction of biobricks. To
illustrate what I mean, consider the difference between two part
descriptions: JC Anderson's library of tuned promoters (BBa_J23100)
versus the signaling part Drew Endy cited earlier today in a discussion
of input/output (BBa_F2620).
Notice how BBa_J23100 describes (elegantly, if I might add) the
relationships among the parts in the family, there is little explicit
mention of its behavior which is separable from the actual composition
of the parts beyond the mention that the part is a promoter in the part
title. On the other hand, BBa_F2620's part description is mostly about
its external behavior. F2620's page lays out a simple abstraction on
several levels quite elegantly using the set of figures at the top: on
the left a simple citation of input and output, at center a black box
graphical representation relating input and output leaving the part
itself completely abstract, and at right a graphical overview of the
part's internal composition.
While it is critical to effectively describe the internal composition of
parts, it seems equally critical to provide an abstraction allowing
users to completely abstract a part away and focus on its behavior in
terms of some external job to be done. Both have their place in an
engineering community. By way of analogy, consider the two attached
diagrams both describing NAND gates taken from the ON Semiconductor TTL
data book (shamelessly acquired from the following URL):
http://ece-www.colorado.edu/~mcclurel/ON_Semiconductor_LSTTL_Data_DL121-D.pdf
"74LS00_circuitdiagram.png" is a perfectly reasonable description of a
NAND gate describing its behavior in terms of discrete components, for
those who need to pay careful attention to the analog behavior of a
circuit using one of these gates. On the other hand,
"74LS00_chipdiagram.png" is a completely abstract description where the
"NAND" gate symbol (familiar to those who have studied digital design)
would be more of use to an engineer actually trying to use one of these
chips (or, more generally, any digital designer trying to put together a
system needing some combinatorial logic). The "NAND" symbol says nothing
about the internals but is in fact intimately related to the other
diagram, at least for those components built by ON semiconductor.
Anyhow, back to the questions. It seems that to address the data
exchange issue one must not only be able to describe parts in a
machine-processable fashion, but one must also be able to describe the
parts one has in a way more similar to BBa_F2620, and furthermore do it
in a way that is machine-processable so that users could mechanistically
query for parts functionally compatible to a part of interest or for
particular dynamic behaviors. I don't wish to detract from current
efforts, but I just wanted to make sure this matter stayed in the
discussion.
Come to think of it, the whole matter of data exchange sort of begs the
question of who is exchanging data and what those people are attempting
to accomplish. Beyond the definition of a biobrick, could the BBF data
exchange standards articulate the tasks and scenarios it is trying to
cover with its data exchange standards and how it's trying to realize
them? It would be useful not only to define what the standards want to
accomplish, but help people understand not only the thinking that goes
into the standard but help describe a line of attack for how the
standard may be put together and help focus thinking on the matter and
allow others to pitch in. That way as the scenarios become clarified it
becomes clearer what the requirements are to get the job done and as the
standard evolves it can be easier to check the standard against those
requirements and see how things are developing.
---ralf
More information about the Standards
mailing list