Robert Montenegro, big think, Scientists Crack the Code to Protein Self-Assembly, here.
If news stories pertaining to pharmaceutical drugs have got you down, here’s something to perk you up: Duke University scientists have successfully hacked the genetic code controlling how and when proteins self-assemble and disassemble. It’s a huge step forward for designer proteins, synthetic biology, and a whole host of other future-minded pieces of medical research. Perhaps most importantly, these findings may result in new and effective ways to deliver drugs to vital areas within the body.
It’s now possible for medical researchers to emulate computer programmers in construction, manipulation, and execution of code — except in this case, we’re talking genetic coding rather than digital.
The researchers’ study, which appears in this month’s Nature, details the many possible environmental stimuli that result in protein assembly and disassembly, and then demonstrates that the researchers have learned to replicate them in a lab. For example, the researchers have pinned down the complex relationship between protein structures and heat.
Quiroz and Chilkoti, Nature, Sequence heuristics to encode phase behavior in intrinsically disordered protein polymers, here. There are a bunch of folks working on cracking the DNA encoding leading to certain features of cell synthesis. A generic model might be along the lines of – you are given a massive multiplicity of programs and computers with 3D printers, you do not have any apriori knowledge of the computer language ( but you do know the alphabet used in to write the code) or the computer instructions but you can examine some of the stuff that comes out of the 3D printer ( you can show it people and they will tell you what they think it is good for). One interesting question is can you develop a debugger that will work on all these programs and all these computers with reasonably full control (some notion of completeness)? I guess up to now the debugger has been mutations, transcription errors, sexual reproduction, and natural selection. You boot the cell up and see what you get. Maybe you can do better? You are not going to be writing main() in this world. You want to steal structure from Theory of Computation Church & Turing, Mead & Conway, Kernighan & Ritchie but I don’t think that computation here is interesting part. It is secondary. This is more of a process theory – think Fredrick Winslow Taylor walks into a bar and chats up Peter Honeyman, Alonzo Church, and Chuck Seitz about cell division.
The Theory question that seems most interesting is can you construct the debugger efficiently? Do you have to read all of the programs in all of the machines ( all the DNA in all of the cells) to validate your Universal debugger? Maybe a large fraction of the code is like Java and does’t really care what machine runs it. Maybe there is the moral equivalent of a bunch of Cray 2 assembly code out there.
How much of the output do you have to examine and understand to get the debugger to work?
How much code do you need to examine to get the debugger to work?
How much more valuable is it to see examples of the code running versus just examining the static code to obtain a complete debugger?
How much memory does the code require to run?
Is the code taking additional inputs while it executes?
Does the code execution flip coins, is it stochastic?
Is there dead code that has no function?
Is there any way to simulate the machines so the debugger can step through the code execution “line by line” ? Looking for SPICE equivalent for the transcription computers. Is there a clock? can you show there is no clock?