12 ms·
DNA seen through the eyes of a coder
- ck45 5y agoThe author gave a talk at SHA2017 about DNA: https://media.ccc.de/v/SHA2017-31-dna_the_code_of_life https://media.ccc.de/v/SHA2017-31-dna_the_code_of_life
- throw8932894 5y ago> DNA is not like C source but more like byte-compiled code for a virtual machine called ‘the nucleus’. This "virtual machine" gives feedback in 40 years, perhaps 1000 years. I am all in for fast innovation. But we should not give a pass to jocks who just want to spread their seed around!
- usrbinbash 5y ago>DNA is not like C source but more like byte-compiled code for a virtual machine called ‘the nucleus’. I think a comparison to source code would also have merit. The DNA gets transcribed into mRNA in the nucleus, these are transported into the cytoplasm, where the Ribosomes then translate that information into Polypeptide chains, which are then folded by Chaperones and the Machinery of the Endoplasmic Reticulum. The end result are Proteins, the biochemical "actors" and building blocks. These steps are comparable to compiling source code into opcode. Also, the DNA itself is just half the story. Which parts of the DNA can be transcribed, and how often, is encoded in the histone modifications (the histones are "packaging molecules" in the nucleus around which the DNA is partially "wound up") and the Methylation modifications to it. This is known as the epigenetic code, and its just as vital for the biochemical machinery to function as the DNA itself; eg. It would be very very bad if, say, muscle cells suddenly started behaving like liver cells. Since both have the same DNA (in one organism), it's the epigenetic code that controls which parts of the DNA they "express", and thus what functional identity the cells have.
- choeger 5y ago> It would be very very bad if, say, muscle cells suddenly started behaving like liver cells. There are people that would like to sacrifice a few muscle cells for some liver cells (or any other organ). Recreating such specialized cells would be a big step towards organ regrowth, would it not?
- _Wintermute 5y agoThis is the idea behind stem cell therapy. You can reset specialized cells back to their "possibilities are endless" stem cell state and then attempt to coerce them to form the type of cells you want. Search for "induced pluripotent stem cells" if this sort of thing interests you.
- usrbinbash 5y agoThis is actually an area of research, "releasing" the locks of the epigenetic code and getting differentiated somatic cells to behave like pluripotent stem cells again, in order to use them to recreate damaged tissue. However, while that would be fine in a test.tube, it would be very bad if it happened inside the bodys existing differentiated tissue.
- jenny91 5y agoMachine code also gets decoded and is "reprocessed" by microcode in a modern CPU which then decides how to translate the code into what actually runs in the CPU.
- Sosh101 5y agoAnother interesting article of his (that you may have already seen): https://berthub.eu/articles/posts/reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/ https://berthub.eu/articles/posts/reverse-engineering-source...
- deleted 5y ago[deleted]
- HPsquared 5y agoLife is just test-driven development, taken to an extreme.
- andrewclunn 5y agoPsh, biology tests in production. If it works well, others will fork it.
- remram 5y agoWhat are the tests?
- i000 5y agoCan it survive long enough to produce offspring.
- koonsolo 5y agoBad test ;). The offspring needs to be fertile.
- hutzlibu 5y agoYou are, for example.
- jasode 5y ago>What are the tests? Tests == adaptation to the environment E.g. short 2 minute video showing how bacteria evolves with random mutations to produce resistance to antibiotics: https://www.youtube.com/watch?v=plVk4NVIUh8 https://www.youtube.com/watch?v=plVk4NVIUh8 Likewise at a macro scale, if Earth's atmosphere becomes inhospitable because of global nuclear war or a big asteroid collision, then the new "test for life" is adapting to the radioactive dust cloud. Keep mutating across generations until survivors can thrive.
- remram 5y agoIf you consider the intended purpose if the software to be "tests" then all development is test-driven development. But that is not the usual meaning.
- deleted 5y ago[deleted]
- egberts1 5y agoNow it is a matter of time to implement Reed-Solomon on a daily basis … within Quantum Computing.
- fabian2k 5y agoI find the coding analogy for DNA or cell biology in general to be rather problematic. It's fine as a very rough and oversimplified analogy, but if you try to apply it to the details I think it hurts more than it helps. And important aspect of biology is that it is really much more analog than digital in many areas. Many interactions are not entirely on/off, and they are influenced by a lot of other factors in the environment of the cell. This is a part that really doesn't match well to how people understand coding. The digital aspects are also inherently coupled to their physical representations. That are not just four letters A, C, T, G in the DNA, each of them also has different chemical and physical properties. Some analogies to coding concepts work quite well, but you really have to be aware of the limitations. And I often see computer scientists trying to use these analogies to understand certain parts of biology, but inevitably they will move out of the bounds of where the anlogy works unless they actually know the underlying biology.
- hasmanean 5y agoYes DNA is more like a lego assembly language.
- AllegedAlec 5y agoTotally agree. If I had a dime for each time I saw people make bad oversimplifications based on "DNA as blueprint" or "DNA as code" I'd not be rich, but I would be able to buy myself a nice dinner, at the very least.
- jakobnissen 5y agoAs a professional molecular biologist who now does programming for a living, I wonder if the metaphor could be turned on its head: Imagine that every one of people who designed computers, from the chip makers, to the ones making the instruction set, to the firmware coders etc. had no concept of "abstraction", adherence to standards or even a logical, coherent design. Would computers be more like cells then? I could imagine a CPU which does not have a clock to keep everything syncronized - where the die is not separated into logical areas of decoders ALUs etc but just a jumped mess of wires and logic gates that somehow works to do computation. There is no "assembly language" for this CPU, but give it the right binary inputs at the right time and it will probably do what you ask it to (depending on its complicated internal state).
- spywaregorilla 5y agoI would say DNA is more like a neural net than a neural net is like an actual brain. The complex interdependencies, redundancies, nth order optimizations accrued over a long time, conditional relevance of different inputs, etc. Code implies a possibility to understand the logic and write it out. The reality is we're going to be something much closer to trying to unpack a blackbox ML model with SHAP.
- jacquesm 5y agoThe word 'Ribosome' does not occur anywhere in the article, which I definitely would expect to be there if you're going to make a coding analogy. https://en.wikipedia.org/wiki/Ribosome https://en.wikipedia.org/wiki/Ribosome For a computing analogy: a Ribosome serves as a molecular assembler (a processor) that depending on the instructions (the program) encoded in DNA (or rather RNA by the time the ribosome is working with it) pulls this or that molecule from the soup present in a cell to attach it to its working copy of a polypeptide chain (the output). Once complete (as signalled by a 'stop' codon, think of it as 'ETX') the thing detaches the product. The Ribosome consists of a main engine and a 'cap' that can attach over the top of an RNA string so that it can start transcription at other points ('STX') than just the ends.
- yodelshady 5y agohttps://en.wikipedia.org/wiki/Ribosomal_frameshift https://en.wikipedia.org/wiki/Ribosomal_frameshift if you really want to bend your brain a little.
- jacquesm 5y agoYes, that reminds me of some of the assembly tricks we used to pull when space was really tight. Use this entry point and you have one set of instructions, use another and you get a completely different set. I've never managed to do this with more than a few instructions. But that gives quite a kick to get it to work and to know that there isn't a disassembler on the planet that will make sense of it :)
- thomasmg 5y agoThere is an analogy with data compression: if you remove a byte, in for example a zip file, and then try to expand it, it might work and give you a different result (it likely doesn't due to a checksum error). I think something similar was used in the SHA-1 collision attack (shattered.io) to generate different jpeg images that have the same checksum.
- photochemsyn 5y agoThere's a very interesting hypothesis about the origin of life that puts a primitive ribosomal assembly of amino and nucleic acids at the center. The idea is that these amino chains and nucleic acid chains (protein and RNA) kept self-assembling until a version was created cabable of self-replication. This posits abiological generation of nucleic and amino acids and linked chains as well. Once these primitive ribosomes were capable of reproducing themselves (presumably with a very high initial mutation rate), biological evolution began. Such ribosomes would have two jobs: reproduction of nucleic acid chains, and translation of some fraction of those nucleic acid chains into protein chains. Not all the amino acids would have been used at this early stage. This is perhaps a more manageable analogy to coding than looking at something as complex as the human genome, which I think is a real error in the article (though of course humans are more interested in their own genome). It'd make more sense if the author had used one of the smaller independent bacterial genomes as the model.
- deleted 5y ago[deleted]
- Metacelsus 5y agoIf you think spaghetti code is bad . . . DNA is basically spaghetti code, written in actual spaghetti. (I'm a biologist; the more you study this, the more confusing it gets.)
- stanfordkid 5y agoI think looking at DNA as "source code" that either gets "compiled" into proteins or "commented out" really betrays the way DNA actually works... making it a poor analogy. DNA inside of cells has a 3 dimensional shape within the cell nucleus... The so called "Junk DNA" mentioned in the article can greatly modify the 3D geometry of the DNA and thus insertions or deletions of junk DNA can have large biological consequences (by influencing, for instance, the distance between an enhancer and promoter). This video provides a nice visual representation of what DNA actually looks like: https://www.youtube.com/watch?v=Pl44JjA--2k https://www.youtube.com/watch?v=Pl44JjA--2k
- phonon 5y agoThe article covers that extensively.
- jryb 5y agoIt...doesn't? Sure, it gets into junk DNA, but there's only a brief mention that the genome has structure, and it's not examined in any depth. Notably, they never discuss enhancers or insulators, which I feel would really improve the article, even though I can't think of a good analogue (which might be even more interesting for the intended audience).
- phonon 5y agoThis whole section relates to that...maybe you can suggest an addition to the author? There are lots of possible explanations for the massive amount of non-coding DNA - one of the most appealing (to a coder) has to do with ‘folding propensity’. DNA needs to be stored in a highly coiled form, but not all DNA codes lend themselves well to this. This may remind you of RLL or MFM coding. On a hard disk, a bit is encoded by a polarity transition or the lack thereof. A naive encoding would encode a 0 as ‘no transition’ and 1 as ‘a transition’. Encoding 000000 is easy - just keep the magnetic phase unchanged for a few micrometers. However, when decoding, uncertainty creeps in - how many micrometers did we read? Does this correspond to 6 zeroes or 5? To prevent this problem, data is treated such that these long stretches of no transitions do not occur. If we see ‘no transition,no transition,transition,transition’ on disk, we can be sure that this corresponds to ‘0011’ - it is exceedingly unlikely that our reading process is so imprecise that this might correspond to ‘00011’ or ‘00111’. So we need to insert spacers so as to prevent too little transitions. This is called ‘Run Length Limiting’ on magnetic media. The thing to note is that sometimes, transitions need to be inserted to make sure that the data can be stored reliably. Introns may do much the same thing by making sure that the resulting code can be coiled properly. However, this area of molecular biology is a minefield! Huge diatribes rage about variants with exciting names like ‘introns early’ or ‘introns late’, and massive words like ‘folding propensity’ and ‘stem-loop potential’. I think it best to let this discussion rage on a bit. 2013 Update: ten years on, the debate still hasn’t settled! It is very clear that ‘Junk DNA’ is a misnomer, but as to its immediate function, there is no consensus. Check out Fighting about ENCODE and junk for a discussion of where we stand. 2021 Update: eighteen years on, the debate is nowhere close to being settled. It is now somewhat consensual that ‘Junk DNA’ has important and diverse functions, but new discoveries are being made on a daily basis. https://www.advancedsciencenews.com/that-junk-dna-is-full-of-information/ https://www.advancedsciencenews.com/that-junk-dna-is-full-of...
- Borrible 5y agoLittle constructors (ribosome) that translate arbitrary character strings (DNA) into three dimensional structures (proteins) of base material, that, if happen to bump into each other at the right time, the right place and the right order in the right environment, tend to repeat the game? Well, reviewing some code bases, I understand where the analogy comes from. Surely both phenomena often do not imply an intelligent design...
- hirenj 5y agoI find it’s a lot less interesting to consider the mapping of DNA to code or blueprints, instead considering the process of evolution as a way of dealing with a legacy code base. This code is functional (just barely) but it’s fragile. Lots of cross-dependencies, much misuse of functions (with side-effects!), and no real way to do static analysis on the code base to figure out how it works. The problem is, there’s always new requirements coming in! So how would you design this software so that it is robust to changes and doesn’t require a complete rewrite to add new functionality. The superpower of this codebase is in composability of code, with loosely defined interfaces. In this way, all parts of the system can be incrementally improved without breaking existing functionality.
- Gravityloss 5y agoMore of these articles. They don't spend time describing somebody's clothing, appearance or manners. Yet it's "long form" writing at its finest.
- jakear 5y ago> Perhaps it is as impossible to predict if a program will ever finish as it is to create a functional genome that cannot get cancer? Quite interesting. Though the hard part about the Halting problem is its infinite time scope. With a life form’s genes you only need to compute ~100 years max. > It appears as if H3 and H4 were authored very carefully as they do have a lot of ‘synonymous changes’, which through the clever techniques described above do not lead to changes in the output. Or they’ve just been around long enough to have experienced every change imaginable, and only those ones that had no effect produced viable life?
- 0xTJ 5y agoTo me, DNA is more like an esolang than any normal programming language.
- steve76 5y ago
- jjtheblunt 5y agohttps://en.wikipedia.org/wiki/Geometric_group_theory https://en.wikipedia.org/wiki/Geometric_group_theory and https://en.wikipedia.org/wiki/Word_problem_for_groups https://en.wikipedia.org/wiki/Word_problem_for_groups I'd claim are involved but outside the scope of the straight DNA is protein machine language analogy.
- jvanderbot 5y agoCorrect me if I'm wrong, but the assumption that there are big, "commented-out" sections of DNA has recently been challenged? I read somewhere (likely here) that those sections were somehow involved in folding proteins or DNA strands.
- unemphysbro 5y agoThe really cool thing about DNA is it encodes information and does compute. DNA structures can be designed to solve problems like the traveling salesman problem. So it's a self-computing stochastic machine. How cool is that! :) Can't pull up sources atm but google "DNA computing" & was a biophysicist :)
- jcims 5y agoSome amazing animations that show some of the primary operations related to DNA: Transcription (copying sections of DNA into RNA) - https://www.youtube.com/watch?v=SMtWvDbfHLo https://www.youtube.com/watch?v=SMtWvDbfHLo Translation (turning messenger RNA into proteins) - https://www.youtube.com/watch?v=TfYf_rPWUdY https://www.youtube.com/watch?v=TfYf_rPWUdY RNA Splicing (removing non-coding sections of mRNA) - https://www.youtube.com/watch?v=aVgwr0QpYNE https://www.youtube.com/watch?v=aVgwr0QpYNE DNA Wrapping & Replication(two part video) - https://www.youtube.com/watch?v=OjPcT1uUZiE https://www.youtube.com/watch?v=OjPcT1uUZiE One thing I would encourage folks to do as you listen to the narration of these is to consider any time words are used that imply agency and remember that these are basically blobs of magnets in a jostling goo. You'll find the names Drew Berry and WEHI referenced in most of these. There are many more stunning and IMHO profoundly informative examples of biological machinery from them on youtube.
- DantesKite 5y agoI’ve always loved this description of how DNA and programming differ: “ Do genes behave like lines of computer code? Our April puzzle discussed ways in which genes hold true to this analogy: They have control structures commonplace in computer programs, such as “if-then” logic, “do loops,” timing routines and cascading “subroutine calls.” We also listed some ways that DNA programs differ from ordinary computer programs: Genes program three-dimensional structures from scratch in a water-based medium, using massive parallelism and swarm programming while making use of, and being constrained by, the laws of physics and chemistry.” https://www.quantamagazine.org/the-dna-computer-program-puzzle-solution-20180427/ https://www.quantamagazine.org/the-dna-computer-program-puzz...
- kanzure 5y ago"... there is no source, the bytecode has multiple reentrent abstractions, is unstable and has a very low signal to noise ratio, the runtime is unbootstrappable, the execution is nondeterministic, it tries to randomly integrate and execute code from other computers... multiple reentrant and self-modifying abstractions. absolutely everything has subtle side effects."
- civilized 5y agoBiological computers may be messy but they've got a First Mover Advantage of 5 billion years.
- chromanoid 5y agoThis made me stop reading: > In such a way, the competing interests of the father (‘large strong children’) and the mother (‘survive pregnancy’) are balanced. Citation needed. This seems unnecessary antagonizing. I don't think there is an evolutionary interest of the father that the mother does not survive pregnancy. Without nursing babies had probably very low chances in the past and are still at high risk in many countries. When thinking about this across multiple generations this makes even less sense. Since all those guys who pass large strong genes to their children will have no children at all because the mothers die during pregnancy or birth. Which is a high risk scenario for the unborn children. Additionally the mother also has an interest in large strong children. They are her offspring too. There is more a balance between the fetus taking everything and the mother trying not to decay too fast because of that. This is completely different to this.
- fastaguy88 5y agoI do not like to be negative, but perhaps this book could be titled -- DNA seen through the eyes of a coder who does not know any biology. The genome is not a computer program with lots of #ifdef's. It is a data store, much of which seems to be evolutionary left-overs, and a tiny fraction of which encodes the molecular machines that allow it to function. Depending on how you define decoding, perhaps less than 10% of the enzymes encoded by the genome (which are encoded by less than 0.2% of the genome) are involved in processing the genome data (DNA polymerase, RNA polymerase, ribosomal proteins, topoisomerase, etc). A larger fraction of enzymes are used to provide the energy and raw materials to keep the cell going, with an additional set of enzymes used for cell signaling. And much of the rest of the proteins in the cell (again, remembering that less than 2% of the human genome is protein coding) are used for structural purposes. The genome has a large amount of potential information. In higher organisms and higher plants, a very small fraction (2-5%) of that data is evolutionarily conserved to the extent that we think we know what it does (many of us think the rest is literally evolutionary junk). The parts we understand encode molecular machines, but it takes a very broad definition of "code" to imagine that data is a program.
- PaulDavisThe1st 5y ago> It is a data store problem is, it's so, so so much more than a data store. There's no reason at this point, as we slowly come to understand more and more about DNA packing, structure, transcription control etc., to conclude that the non-coding parts are "junk".
- pablok2 5y agoThis. In addition to this, the complexity that each new biological system that's discovered adds to the entropy of the entire system. The classic mantra has been to explain away complexity with "evolution of the gaps" but this article is showing how this isn't even close to sufficient anymore.
- amelius 5y agoThis reminds me of: "Can a biologist fix a radio?" https://www.cell.com/action/showPdf?pii=S1535-6108%2802%2900133-2 https://www.cell.com/action/showPdf?pii=S1535-6108%2802%2900... https://news.ycombinator.com/item?id=624695 https://news.ycombinator.com/item?id=624695
- dunefox 5y agoThere's also "can a neuroscientist understand a microprocessor?"
- AJayWalker 5y agoOnly tangentially related, but I’ve been reading and enjoying Immune by Philipp Dettmer (founder of the YouTube channel Kurzgesagt). Would recommend it to anyone that likes to read about the fascinatingly complex processes the human body uses to keep itself ticking.
- Kalanos 5y agoGenes are functions. Read this book, it's factually deeper than it appears https://www.amazon.com/gp/product/0190234768/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1 https://www.amazon.com/gp/product/0190234768/ref=ppx_yo_dt_b...
- pablok2 5y agoDNA is a lot more than the analogy of computer code. A cell is also a 3D printer that runs on DNA, its a factory that manages it's inventory with DNA instructions, and much more. Sweeping complex bio systems under the rug as evolution is unfair and quite frankly ideological. The sheer amount of complexity that's unaccounted for and the fact that it's constantly increasing is truly phenomenal.
- 1vuio0pswjnm7 5y agoHave seen the reverse: coders as seen through the eyes of an RNA scientist. It was not very flattering but unquestionably accurate.