More people believe hat homeopathy is BS? If you tell them one is the drug and one is homeopathic and they understand what that means, I could see the potential to skew the results.
Two reasons I can think of; biochemical reaction pathways can be tremendously complex with subtle feedback mechanisms that are non obvious, secondly, DNA encodes mRNA that encodes proteins; determining protein folding from the sequence of DNA is exceeding difficult, so, just because you can 'write DNA programs' doesn't mean you can actually do anything with the result. Both of these factors taken together mean, that with current technology, it's really hard problem to modify DNA, to influence existing biochemical processes, or create new biochemical processes. I studied molecular biology in the 90's so I'm a bit out of date, but I believe this is still the state of affairs.
Engineering new circuits isn't the same kind of problem as understanding natural ones, just as designing a protein to fold predictably came many years ahead of predicting the folding of natural proteins. (The former started in the 80s, and the latter is afaik still very hard, as you say.) http://www.dna.caltech.edu/courses/cs191/index.html gets into some of the recent progress (under "Nucleic acid circuits").
That said, it's not my field and I get the impression they're talking more about in vitro work on the page I linked. Even if your circuits work all the time in the lab, in a cell I'd expect all kinds of things to mess with them.
'Nucleic acid circuits'/'DNA circuits' are conceptually entirely different to 'genetic circuits'.
In the former, you design sequences of DNA such that complementary base pairing means they can displace each other in cleaver ways. This lets you create some interesting things, like oscillators [1], amongst others [2]. These do not need any of the apparatus of the cell to function, so work in solution; indeed, if they were inside cells they would get digested by nucleases. The thermodynamics of DNA/RNA folding is fairly well understood, and the range of structures in much more limited than that of proteins. A major drawback of these circuits is that they function very slowly.
By 'genetic circuits', people usually mean a genetic regulatory network [3] - essentially you combine existing genes in new ways, by chaing the regulatory sequences before each gene. For example, you can construct an oscillator from three genes by having the first repress the second, which represses the third, which represses the first [4]. Here you aren't designing new proteins (which is extremely hard), but rather modifying existing ones. Since these circuits require producing new proteins from DNA, they require RNA polymerase, the proteosome, ATP, the necessary monomers etc. so can only function inside a cell (or cell-free expression system containing these components).
It just automates what was previously something done manually. But it only works 75% of the time. It's a nice tool to have if this is your domain but it's not like you get any guarantees about success. Biology is still stubbornly complex.
Given that you can run the same program on a billion bacteria should quite improve the odds of getting the job done.
Surely, also one has to account for possible other "jobs" that get done due to interference.
However, if your goal is to automate processes rather than develop cures to "run" in the human body then this is a very interesting alternative to using silicon, the parallel pipeline potential is enormous.
EDIT: Would it be possible to develop a biological CPU this way? I.e. having "instruction sensors" and a touring-machine-like DNA-robot that can execute externally supplied instructions? Putting that into a bacteria that can clone itself would surely cut down on costs of computing.
>Would it be possible to develop a biological CPU this way? I.e. having "instruction sensors" and a touring-machine-like DNA-robot that can execute externally supplied instructions?
No, it is not possible (not this way). Tl;Dr how do you plan on storing information on the Turing machine tape? If you're happy doing computation with a relatively high stochastic failure rate things look better, but I wouldn't count on it.
75% success rate for systems with this complexity (>10 elements) is probably just as good if not better than what would be expected by designing “by hand,” and the latter approach does not scale past the current order of magnitude (to 100+ component designs). I think that’s their main argument.
A major problem with further scale-up is the availability of parts. In an electrical circuit the signals voltages that are constrained to wires; in a a genetic circuit the signals are concentrations of proteins/compounds that are diffusing around the cell. This gives a problem: to have independent logic gates you need transcription factors that will bind to distinct promoter sequences, without crosstalk. If you're doing this in a cell rather than cell-free system you also need to avoid crosstalk with the host cell.
The problem isn't so much in designing the circuit abstractly as finding specific parts with which to construct it. One approach is to partition the circuit across multiple cells [0, 1].
Eukaryotic cells solve the "crosstalk problem" by building the control regions that regulate gene expression out of modular, hierarchically-organized binding sites for multiple transcription factors (TFs).
In prokaryotic systems there is (in a very approximate, generic sense) a one-to-one correspondence between the concentration of a particular transcription factor and the expression (or repression) of the genes downstream of the binding site for that transcription factor.
The control regions in eukaryotic genomes have binding sites for multiple transcription factors, combinations of which may become binding sites for other transcription factors (larger TFs which bind to certain combinations of smaller TFs), etc.
In this way, the specific sequence of TF binding domains in the regulatory region of a eukaryotic gene provides a particular and potentially unique "address" in "Transcription Factor State Space" by which the gene can be controlled.
For more information on this amazing topic, check out "The Regulatory Genome" by Eric H. Davidson. Here is an excerpt from the first page of chapter 4:
"Whatever their extent, however, development gene regulatory networks have an internal structure, in that they are composed of diverse kinds of modular parts and connections among these parts. Here 'modular' takes on a simple functional meaning: it is used to denote small subsets of genes within the overall network that together execute given 'jobs,' e.g., to operate a certain differentiation gene battery, or to transduce an extracellular signal into a certain regulatory state.
In what follows, sets of regulatory genes that execute modular functions are usually referred to as constituting 'subcircuits' of the network, because as we shall shortly see they are 'wired together' within the subcircuit by their gene regulatory interactions. Just as the target site inputs of an individual cis-regulatory [note: cis- prefix in this context indicates gene regulation via non-expressed sequences of DNA proximal to a gene in the genome] module are integrated to generate novel outputs according to its genomic design, so the outputs of these subcircuits are integrated to generate logic outputs which depend on their organization, that is, their wiring architecture."
How is that not interesting? This discovery can speed up engineering new bacteria that helps us cure allergies, produce energy, etc., We still need to go through usual trial and errors but this makes them significantly easier and faster.
Indeed. For example, I am deeply amazed at how in Flux and many of its derivatives Actions are not executable behaviours, but messages describing an action to be performed, while ActionCreators are the actual, well.. "actions".
As someone with FRP experience, what do you think is the minumum viable set of functional transformers (like map, filter etc.) that should be implemented for a library like this?
But seriously, Fastflux just continues further in the logical direction established by Redux (and arguably React itself) -- a more reactive approach to software development.
Fastflux does this by using an implementation of the Observable FRP primitive as a superclass for stores and actions.