2005-03-15 Remixing DNA http://conferences.oreillynet.com/cs/et2005/view/e_sess/7025 going to persuade us to do 2 things: - take biological systems and redesign them so there're not so bad to interact with - think of entirely new sorts of biological systems, unconstrained by history graph of dna sequencing and synthesis technology is increasing at an exponential rate (in terms of base pairs per 8 hour workday) since 1970. synthesis is an order of magnitude or two behind. * problems with virus dna list of 56 genes from a virus. we don't know anything about 40% of them. genes encode chemical things that happen. then look at the genetic material itself. there are two functions encoded in the dna: two functions overlap. why? historical artifact? is their functioning somehow coupled? means you can't edit one function without the other. "the code is 3.6 billion years old, and maybe, looking at the code as an engineer, it's time for a rewrite. [although, it might be wrong to be thinking that genes are abstracted and have a surface. perhaps they're maximally efficient, and fuzzy-edged, like phonosthesia.] you can run a decompression algorithm over this code. figure out what the functions are, then write them again in a longer strand of dna with no overlap. run the wild-type and refactored dna. 600 changes to the dna. it's a little different. now using the y-chromosome as an example. there's a string of dna, of several genes, and there's a point where that exact same sequence is repeated in reverse. maybe it's a backup copy? there are also "retrotransposons." they can make copies of themselves and replicate their genetic material. these look like memory leaks. so we could refactor and rationalise this? why? so that we can see what happens when it runs, and it's easier to understand. * gear switch some people wanted to program bacteria to hang around, then every so often one of them sends out a signal that gathers all the others close to it, then another signal builds up to return it to the usual state. [would you do this by having bacteria listening to a signal and moving them towards it, or bacteria that send out code that forces other bacteria to move? and is there a difference?] we're not able to systematically to this. we want to be at a design -> parts & fabrication -> systems -> applications model. [turning the world not just into a standing resource, but a production line.] so how do you work towards this? put in place an abstraction hierarchy for biological engineering. insulate parts from overwhelming complexity. * bringing us up to speed device: a boolean not-gate made out of dna When LacI is present, CI is not produced, and vice-versa. black-box it and call it an invertor. hook 3 together into a ring and make a ring oscillator. "what are the performance characteristics of the substrate?" * interfaces between systems, devices and parts put in place abstraction barriers. if you're interested in devices, you don't even need to know that dna is made out of 4 bases. - eg, devices/parts abstraction barrier ["bacteriaphage", good word.] you need things which bind to specific sites on the dna, and not to any others. - eg, systems/devices how to make a ring oscillator out of invertors? work with "PoPS" (polymerase per second), the rate of gene expression, rather than just LacI or CI. instead of actual proteins, we have a common fungible carrier between devices. [I love the way the slides show to abstraction layers, and the words he uses "barriers" to talk about the hierarchy. great illustration of how his mind maps.] * going back to the bacteria engineering the device-level diagram has a trigger, and a bunch of receivers. based on these things, attract or moves are done. then you make this out of parts, compile to dna, and you have what you wanted. then you evolve and tune the characteristics to best match what you want. * bunch of students making bacteria to take a photo. spread some bacteria out, hit them with light and they record it write down the devices (PoPS->color and vice versa) then go to http://parts.mit.edu type in the part numbers, put it into bacteria, spread them out. great photo of "hello world" on a 10cm square bacteria. 1 billion bacteria per square inch. [INCREDIBLE.] potential: program individual bacteria with light, and use that to tell the bacteria to kick out proteins etc onto a substrate. there's a great manufacturing process there. example people: person came into the lab as a computing engineer, no experience. within a year had reprogrammed the original bacteria we talked about and built it himself. talk -> http://mit.edu/endy/www/talks/ then two last things: a dna synthesiser, a good one, for $35,000 on ebay. then pubmed (genome) or ncbi sequence viewer, and download the genome to smallbox or variola. it's illegal, very illegal, now, but still possible. synthesing dna costs about $1.40 per base pair. http://wwww.blueheronbio.com lets you paste base pairs into a form field, and they'll compile it for you. he showed how you can paste smallbox into the box, but the company screen the sequence to make sure smallpox isn't produced. [but you can't run it to check, obviously. the halting problem? heh.] it's still up to you to come up with the data to paste into the box. [incredible. there are parts, there are places to compile the dna.] apparently it's really easy. just know it's possible, you can use the standard parts, and send the dna off to be made. [i wonder how easy it is to get into bacteria?] "killer application is probably a bad phrase to use in this industry." dna printer that prints however many base pairs on your desk. that's where it's going. 1000 base pairs per two weeks lag time currently. "genetic information and genetic material are interchangable" with sequencers and synthesisers. patents don't deal with this terribly well.