The problem with DNA 'source code' is not that it's hard to read, it's that we don't fully know how to read it. Yes, we know what protein sequence comes out but the chemical consequences are not particularly well known. With google's source code, you could, in theory, look at it long enough and have a working understanding down to the level of electrons moving around specific spots in the chips in the Google datacenter.
As a professional (wet) biochemist and also a coder, my personal feeling is that biology is much, much shallower. However, the knowledge required is broader but incomplete. If you're trying to, say optimize an enzyme, beyond molecular biology, you'd do well to incorporate knowledge from biochemistry (is this an active site amino acid? Maybe I shouldn't touch it. What sort of yield changes can I expect if this enzyme catalyzes the rate-determining step vs. not), cell biology (will adding this amino acid sequence send it to the wrong compartment?), biophysics (will changing this residue mess up the protein fold?), electrochemistry (is the electrical potential of this iron-sulfur cluster consistent with the process I want?) etc etc.
A lot of 'biohackers' are script kiddies that just ctrl-c/ctrl-v gene sequences and hope that it works. That's why you see a lot of gene synthesis companies claim a offer of "codon optimizing" a gene. It's something that sounds hard, sounds critical, and gets something done. The rest of it is much, much harder, and requires actual thought.
I'm not sure I understand what you mean when you say that "biology is much, much shallower". Shallower than what, and in what way? What might it look like if it were deeper?
When we use a computer programming language, we are directing an abstract machine to interpret and manipulate data to get a result that we want. We have all the knowledge we need about the machine because we conceived and designed it ourselves.
DNA is like a programming language for a biological computer, a living cell. However, we don't know nearly everything there is to know about a living cell. We can't predict its mechanisms. There is no debugger. The compiler didn't come with an instruction manual. The code bootstraps itself into its own machine and runs in an environment we can't predict. And the syntax has been obfuscated and optimized by a genetic algorithm that's been running in parallel on quintillions of cores for a billion years.
Because the code executes on an unknown machine in an unpredictable physical environment, many features we might expect to see in a programming language are missing. This might be what he meant by "shallow".
>DNA is like a programming language for a biological computer, a living cell. However, we don't know nearly everything there is to know about a living cell. We can't predict its mechanisms. There is no debugger. The compiler didn't come with an instruction manual. The code bootstraps itself into its own machine and runs in an environment we can't predict. And the syntax has been obfuscated and optimized by a genetic algorithm that's been running in parallel on quintillions of cores for a billion years.
And, just to finish off, the machine is stochastically nondeterministic.
> Because the code executes on an unknown machine in an unpredictable physical environment, many features we might expect to see in a programming language are missing. This might be what he meant by "shallow".
Without knowing how much more there is to know about biology, how can we expect to see certain features or not? What about tasks that are supremely efficient in biology but resource intensive "in silico"? I'm having a hard time fathoming biology as shallow in any way. The fact that it's bootstrapped and live, that you don't get to restart the computer or cut the flow of information makes it all the less shallow to me, unless I'm misunderstanding how that word was used.
I mostly meant that there is tons of encapsulation in computer programming. Like one could be a full-stack engineer that could go from soldering a transistor (or designing an IC from scratch, to writing a web app that uses web sockets that sit on top of HTTP which is on top of TCP/IP sockets, which is served ruby sitting on top of linux which is virtualized by Amazon AWS which is managed by a hypervisor sitting on top of a cluster of computers, all talking to each other via TCP/IP..... etc.), and there are so many layers 'deep' to that cake.
And this is a personal feeling, but there is less encapsulation, in biology. There are less 'categories' of things that build on top of each other that you have to learn, but those categories are immense and the knowledge in each of those is incomplete. I suppose you could say the knowledge in some of programming is 'incomplete' by virtue of closed-source encapsulation (trust us, this hardware works like you think it does), but that is somewhat artificial.
Thanks for that explanation. Do you really think the stack is smaller in biology? Biology has been optimized over three billion years - if we've already invented more layers than there are in biology then are we not overthinking it?
This is what I came up with in a hurry for biology:
Genome is easy to read, proteonome is hard to understand.
We have a good grasp on protein folding, but we're not to the point where we can fully synthesize proteins from raw genetic sequences. It would be great if we could get there in our lifetime.
Nobody said it was hard to read. The comic you're replying to certainly didn't say that.
I disagree that you could look at Google's source code and know much about the data center. You would have to have a lot more knowledge about infrastructure which is completely hidden from you. And that's about where we are with proteins. We can figure out the protein, and then try to simulate what it would do, but it's not easy or straight forward.
So your analogy with Google source code would be like, you could simulate what a data center might be like, but you're just guessing and could be way off.
I think the point of the comic is that if you look at Google source code, it's NOT straight forward to understand. You can read it, sure. Anyone can read an operating system worth of assembly, too. But knowing what it does, that's a hard problem (without running it). And that Google's code is only a few years of optimization by people trying to keep the code comprehensible instead of billions of years of optimization with no care for readability or organization.
Evolution as optimization process has a lot of problems though. Most importantly, it's optimizing for fitness. As Richerson & Boyd memorably put it, "All animals are under stringent selection pressure to be as stupid as they can get away with." Fitness is not necessarily something we're interested in.
Second, evolution is susceptible to getting caught in local maxima/minima. Though it's hard to argue that we could engineer ourselves to a higher peak, because we can't really see any other peaks at the moment.
There are some obvious things to "fix" in humans if we knew how. The laryngeal nerve, the mechanics of birth, the growth rate of cartilage. Certainly it's possible to be hubristic here, but there's also just as clearly some things that need fixing.
We're not really in a peak or valley of any kind at the moment. If evolution pushed us to a zero-point in the derivative of any kind of imaginary fitness function, it was probably a saddle point in which some mutations fall right off and others could rise high but would require more environmental resources.
But otherwise we should assume that zeroes in the derivative are uncommon, and thus we're probably not at one.
My point is not that we're at the exact top, but that we might be near the top of a hill when there's a mountain next to it. Evolution isn't going to go down the hill to climb up the mountain, but an engineer might eventually be able to do it.
What I would like to know, and haven't heard talked about in any of these articles yet, is if it's possible to substantially alter the genome of an already living creature.
This article touches on it briefly at the beginning, but doesn't elaborate on the idea:
> This means it’s possible to create genetically modified plants or animals of practically any species, as well as to modify the cells of adult organisms, including humans.
But so far, I've seen every article go to great lengths to avoid a very obvious question. Aside from medical cures, is it possible to use this technology for cosmetic purposes? Will I be able to change my eye color permanently? Cure baldness in adult humans? Alter metabolism?
If you want to alter the genome of an already living creature I guess that you have to change every cells. I'm not sure if it's possible.
However, a virus seems to be the perfect tool (it modify your genome to copy itself and infect other cells).
DNA doesn't vary by cell, and the method of introduction is chemical, I imagine this creates a chained effect, otherwise how would cells pass on activated chains through the body when your DNA naturally changes.
The DNA of a body does not naturally change (in any organized way). Cells pass on changed DNA only to their progeny. Only genetic changes to gametes will be passed on genetically to children.
However, the regulation of DNA can be transmitted. One can turn genes on and off throughout the body by exposing the cells to particular signals such as hormones. But those don't change the DNA, they just change the interpretation and usage of the DNA that's already present.
Radiation. Mutagenic chemicals. Transcription errors. Even viruses.
Not anything natural to the human body e.g. it does not change without external influences.
This is already being done. See the CEO of BioViva doing this to herself. Apparently it only gets introduced into 5-60% of cells at this point, but that's a great start.
Had to look up what you referenced, hadn't heard about this before.
Side note: I find it amusing that two main people in this article are the CEO (Parrish) and a researcher (Church), and a man named Fossell is an anti-aging researcher.
These methods absolutely can alter genes in adult cells, if they can get in to them. The difficulty would be in designing the vector. How do you get the edit commands in to the right cells and only the right cells? When we do this in animals we use purpose built viruses to deliver the payload. But it involves a lot of trial and error and it doesn't always take. That's fine for animals, less so for humans.
>if it's possible to substantially alter the genome of an already living creature.
Yes, but it's tricky right now. The delivery mechanisms are still rough. But for certain applications, in certain tissues, for certain kinds of diseases it is being done today (see Sangamo getting cleared for a gene therapy for hemophilia last week)[1].
Currently we have two ways to direct a genetic payload - one is localized (cellular) control of the actual delivery mechanism, the other is (biologically-relevant) temporal control of when the payload gets 'fired' or used.
Practically, we can strip some kinds of mammalian viruses of their own payload (and their ability to replicate), and utilize their own DNA insertion machinery (which is very nicely evolved to match our physiology) to insert a desired payload into the genome of a live organism. Some tissues are better at receiving specific payloads than others. (If you find a tissue and corresponding virus that delivers a tissue-specific viral infection, we can likely deliver a tissue-specific viral gene therapy to that tissue.)
Once the genetic payload is loaded into the genome we have other ways to control when the payload is actually turned on. We can make the payload sensitive to tissue-kind, or biological timing events, or sensitive to other kinds of biologically relevant environmental cues.
Both of these methods alone, however, are generally leaky. If the changes you are making are critical either for effect, or for preventing off-target effects, then these two methods alone are likely insufficient for a general population therapy to not be a dangerous gamble. The consequences of injecting the wrong code (or the right code to the wrong place) can be fairly catastrophic (induced, and immediate cancer). And that is precisely why a good 'text editor' is valuable.
One intervening point is that most viruses inject their payload into your genome randomly. And if they happen to overwrite some required genetic code of yours they cause cancer. Some viruses actually intentionally overwrite the code for your viral defense mechanisms (see HPV overwriting the P53 gene). In general, random injection of genetic payload into a live organism's genome (source code) is a bad idea.
The ability to have a good 'text editor' means we can now ensure that if the payload gets to the desired cells, then we can insert that payload into the genome in a desired location that is unlikely to cause problems. And since we can further regulate when the payload is fired, we now have 3 levels of control ( 1: localized cellular delivery, 2: localized genetic insertion, 3: biologically controlled activation). And those three levels together can significantly reduce the chance of mis-editing a live organism's genome.
Once these three regulatory mechanisms are made safe enough to not just be used in situations where risk/reward ratio is skewed by the lethality a disease, there is no reason they cannot also be used for an arbitrary biological effect.
I made a bet to myself about 30 years ago that the mechanism for gene expression would be found to be describable as a non-linear system. It doesn't sound as if this is a solved problem yet.
We understand very well how gene expression works. It's the editing, with precision, in trillions of living cells, without harm, on an entire population, that's tricky. What do you mean by non-linear?
I mean in the mathematical sense [1], if modifying a piece of DNA can still produce unpredictable results then I wouldn't really feel we should claim that we understand how the whole process works.
>Wouldn't really feel we should claim that we understand how the whole process works."
It's more like classical vs quantum mechanics [1]. Both are correct in their limit. And yet we also know that neither is actually True. With respect to genetic regulation we understand the largest terms in the non-linear system, and many of the smaller terms. Does that mean we 'understand' it completely? No, but like physics, we understand it 'completely enough' for many engineering purposes. The fun of it is that there are still exceptions and edge-cases to play with and learn from.
What toufka said plus now we have tools to make small edits in specific areas of interest (search CRISPR/Cas9 if you are interested to learn more) in mammalian cells.
If we deliver it as a payload with targeting sequences and the "corrections" template which are needed to introduce the changes would be amazing, as we would be able to make corrections in specific cells in specific areas of the DNA. Unfortunately the efficiency of this technology is not high enough yet for prime time.
Altering the genome of an already developed organism, that is as opposed to an egg-cell or an embryo, is, I suppose, much more difficult. It may be possible though, and if so, it does represent tremendous therapeutic possibilities, but in the grand scheme of things, I believe it's less important than the possibility of editing organisms "from scratch", that is immediately after fecundation (or even before, as I recall an article about using gene editing on sperm cells [1]). Therapeutic prospects matter to us from a selfish, subjective point of view but from an objective, anthropological point of view, the idea that we could create organisms with an arbitrary genome is much more significant.
>is it possible to substantially alter the genome of an already living creature?
Roy: I want more life, fucker (father).
Tyrell: The facts of life: To make an alteration in the evolvement of an organic life system is fatal. A coding sequence cannot be revised once it's been established.
Roy: Why not?
Tyrell: Because by the second day of incubation, any cells that have undergone reversion mutations give rise to revertant colonies like rats leaving a sinking ship; then the ship sinks.
Roy: What about EMS recombination?
Tyrell: We've already tried it. Ethyl methane sulfonate is an alkylating agent and a potent mutagen. It created a virus so lethal the subject was dead before he left the table.
Roy: Then a repressor protein that blocks the operating cells.
Tyrell: Wouldn't obstruct replication, but it does give rise to an error in replication so that the newly formed DNA strand carries a mutation and you've got a virus again. But this - all of this is academic. You were made as well as we could make you.
Agreed. It's very strange that the article doesn't mention any of the very real recent scientific advancements in this space. I expect better on HN :).
Trying to use current computer science to work with biology is like using a hammer to reliably modify the behavior of an ant colony. It may work but only in some special cases.
Even with the Von Neumann model, we already have ecosystems where many things are interdependent. And the difference is that the actors in the ecosystem are all designed by people who coordinate and communicate in other channels. They have common standards etc. Now imagine having some monolithic open source code with all the libraries mixed into it that has been forked many times and trying to have a process that will change some of the source code to achieve a desired effect, reliably in even THREE random forks. How would you know the side effects of all your changes? All you can do is make some very simple change and gather statistics on how often your change leads to more instability and crashes.
You can't just edit an organic system with tons of interdependencies. As humans building software we specifically limit the scope of the dependencies, we make protocols and conventions etc. So we can reason about the impact of a change and make the source code we produce more maintainable. How would this apply with DNA?
...but to far less in the biological sciences than some computer scientists care to admit. If I have to hear one more talk about how e.g. "natural selection is a highly efficient algorithm", I'm going to shoot myself.
44 comments
[ 210 ms ] story [ 701 ms ] threadhttp://xkcd.com/1605/
As a professional (wet) biochemist and also a coder, my personal feeling is that biology is much, much shallower. However, the knowledge required is broader but incomplete. If you're trying to, say optimize an enzyme, beyond molecular biology, you'd do well to incorporate knowledge from biochemistry (is this an active site amino acid? Maybe I shouldn't touch it. What sort of yield changes can I expect if this enzyme catalyzes the rate-determining step vs. not), cell biology (will adding this amino acid sequence send it to the wrong compartment?), biophysics (will changing this residue mess up the protein fold?), electrochemistry (is the electrical potential of this iron-sulfur cluster consistent with the process I want?) etc etc.
A lot of 'biohackers' are script kiddies that just ctrl-c/ctrl-v gene sequences and hope that it works. That's why you see a lot of gene synthesis companies claim a offer of "codon optimizing" a gene. It's something that sounds hard, sounds critical, and gets something done. The rest of it is much, much harder, and requires actual thought.
DNA is like a programming language for a biological computer, a living cell. However, we don't know nearly everything there is to know about a living cell. We can't predict its mechanisms. There is no debugger. The compiler didn't come with an instruction manual. The code bootstraps itself into its own machine and runs in an environment we can't predict. And the syntax has been obfuscated and optimized by a genetic algorithm that's been running in parallel on quintillions of cores for a billion years.
Because the code executes on an unknown machine in an unpredictable physical environment, many features we might expect to see in a programming language are missing. This might be what he meant by "shallow".
And, just to finish off, the machine is stochastically nondeterministic.
Without knowing how much more there is to know about biology, how can we expect to see certain features or not? What about tasks that are supremely efficient in biology but resource intensive "in silico"? I'm having a hard time fathoming biology as shallow in any way. The fact that it's bootstrapped and live, that you don't get to restart the computer or cut the flow of information makes it all the less shallow to me, unless I'm misunderstanding how that word was used.
And this is a personal feeling, but there is less encapsulation, in biology. There are less 'categories' of things that build on top of each other that you have to learn, but those categories are immense and the knowledge in each of those is incomplete. I suppose you could say the knowledge in some of programming is 'incomplete' by virtue of closed-source encapsulation (trust us, this hardware works like you think it does), but that is somewhat artificial.
This is what I came up with in a hurry for biology:
Care to fill in or improve the list?We have a good grasp on protein folding, but we're not to the point where we can fully synthesize proteins from raw genetic sequences. It would be great if we could get there in our lifetime.
I disagree that you could look at Google's source code and know much about the data center. You would have to have a lot more knowledge about infrastructure which is completely hidden from you. And that's about where we are with proteins. We can figure out the protein, and then try to simulate what it would do, but it's not easy or straight forward.
So your analogy with Google source code would be like, you could simulate what a data center might be like, but you're just guessing and could be way off.
I think the point of the comic is that if you look at Google source code, it's NOT straight forward to understand. You can read it, sure. Anyone can read an operating system worth of assembly, too. But knowing what it does, that's a hard problem (without running it). And that Google's code is only a few years of optimization by people trying to keep the code comprehensible instead of billions of years of optimization with no care for readability or organization.
Second, evolution is susceptible to getting caught in local maxima/minima. Though it's hard to argue that we could engineer ourselves to a higher peak, because we can't really see any other peaks at the moment.
But otherwise we should assume that zeroes in the derivative are uncommon, and thus we're probably not at one.
Tutorial/Cookbook: https://www.addgene.org/CRISPR/guide/
This article touches on it briefly at the beginning, but doesn't elaborate on the idea:
> This means it’s possible to create genetically modified plants or animals of practically any species, as well as to modify the cells of adult organisms, including humans.
But so far, I've seen every article go to great lengths to avoid a very obvious question. Aside from medical cures, is it possible to use this technology for cosmetic purposes? Will I be able to change my eye color permanently? Cure baldness in adult humans? Alter metabolism?
However, the regulation of DNA can be transmitted. One can turn genes on and off throughout the body by exposing the cells to particular signals such as hormones. But those don't change the DNA, they just change the interpretation and usage of the DNA that's already present.
Had to look up what you referenced, hadn't heard about this before.
Side note: I find it amusing that two main people in this article are the CEO (Parrish) and a researcher (Church), and a man named Fossell is an anti-aging researcher.
Yes, but it's tricky right now. The delivery mechanisms are still rough. But for certain applications, in certain tissues, for certain kinds of diseases it is being done today (see Sangamo getting cleared for a gene therapy for hemophilia last week)[1].
Currently we have two ways to direct a genetic payload - one is localized (cellular) control of the actual delivery mechanism, the other is (biologically-relevant) temporal control of when the payload gets 'fired' or used.
Practically, we can strip some kinds of mammalian viruses of their own payload (and their ability to replicate), and utilize their own DNA insertion machinery (which is very nicely evolved to match our physiology) to insert a desired payload into the genome of a live organism. Some tissues are better at receiving specific payloads than others. (If you find a tissue and corresponding virus that delivers a tissue-specific viral infection, we can likely deliver a tissue-specific viral gene therapy to that tissue.)
Once the genetic payload is loaded into the genome we have other ways to control when the payload is actually turned on. We can make the payload sensitive to tissue-kind, or biological timing events, or sensitive to other kinds of biologically relevant environmental cues.
Both of these methods alone, however, are generally leaky. If the changes you are making are critical either for effect, or for preventing off-target effects, then these two methods alone are likely insufficient for a general population therapy to not be a dangerous gamble. The consequences of injecting the wrong code (or the right code to the wrong place) can be fairly catastrophic (induced, and immediate cancer). And that is precisely why a good 'text editor' is valuable.
One intervening point is that most viruses inject their payload into your genome randomly. And if they happen to overwrite some required genetic code of yours they cause cancer. Some viruses actually intentionally overwrite the code for your viral defense mechanisms (see HPV overwriting the P53 gene). In general, random injection of genetic payload into a live organism's genome (source code) is a bad idea.
The ability to have a good 'text editor' means we can now ensure that if the payload gets to the desired cells, then we can insert that payload into the genome in a desired location that is unlikely to cause problems. And since we can further regulate when the payload is fired, we now have 3 levels of control ( 1: localized cellular delivery, 2: localized genetic insertion, 3: biologically controlled activation). And those three levels together can significantly reduce the chance of mis-editing a live organism's genome.
Once these three regulatory mechanisms are made safe enough to not just be used in situations where risk/reward ratio is skewed by the lethality a disease, there is no reason they cannot also be used for an arbitrary biological effect.
[1] http://investor.sangamo.com/releasedetail.cfm?releaseid=9448...
I mean in the mathematical sense [1], if modifying a piece of DNA can still produce unpredictable results then I wouldn't really feel we should claim that we understand how the whole process works.
[1] https://en.wikipedia.org/wiki/Nonlinear_system
It's more like classical vs quantum mechanics [1]. Both are correct in their limit. And yet we also know that neither is actually True. With respect to genetic regulation we understand the largest terms in the non-linear system, and many of the smaller terms. Does that mean we 'understand' it completely? No, but like physics, we understand it 'completely enough' for many engineering purposes. The fun of it is that there are still exceptions and edge-cases to play with and learn from.
[1] https://en.wikipedia.org/wiki/Correspondence_principle
If we deliver it as a payload with targeting sequences and the "corrections" template which are needed to introduce the changes would be amazing, as we would be able to make corrections in specific cells in specific areas of the DNA. Unfortunately the efficiency of this technology is not high enough yet for prime time.
1. http://www.technologyreview.com/news/543541/how-to-really-en...
Roy: I want more life, fucker (father).
Tyrell: The facts of life: To make an alteration in the evolvement of an organic life system is fatal. A coding sequence cannot be revised once it's been established.
Roy: Why not?
Tyrell: Because by the second day of incubation, any cells that have undergone reversion mutations give rise to revertant colonies like rats leaving a sinking ship; then the ship sinks.
Roy: What about EMS recombination?
Tyrell: We've already tried it. Ethyl methane sulfonate is an alkylating agent and a potent mutagen. It created a virus so lethal the subject was dead before he left the table.
Roy: Then a repressor protein that blocks the operating cells.
Tyrell: Wouldn't obstruct replication, but it does give rise to an error in replication so that the newly formed DNA strand carries a mutation and you've got a virus again. But this - all of this is academic. You were made as well as we could make you.
Even with the Von Neumann model, we already have ecosystems where many things are interdependent. And the difference is that the actors in the ecosystem are all designed by people who coordinate and communicate in other channels. They have common standards etc. Now imagine having some monolithic open source code with all the libraries mixed into it that has been forked many times and trying to have a process that will change some of the source code to achieve a desired effect, reliably in even THREE random forks. How would you know the side effects of all your changes? All you can do is make some very simple change and gather statistics on how often your change leads to more instability and crashes.
You can't just edit an organic system with tons of interdependencies. As humans building software we specifically limit the scope of the dependencies, we make protocols and conventions etc. So we can reason about the impact of a change and make the source code we produce more maintainable. How would this apply with DNA?
Backwards compatibility may be a problem. Pfizer people may not be able to mate with Genentech people.