8 ms·
I 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 a
by fabian2k 5y ago
I 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).
- jacquesm 5y agoGenetic algorithms tend to design circuits that have some elements in common with what you describe.
- jcims 5y agoIt's my annual opportunity to trot out one of my favorite articles ever: https://www.damninteresting.com/on-the-origin-of-circuits/ https://www.damninteresting.com/on-the-origin-of-circuits/
- jacquesm 5y agoThank you for reposting this, it is still after so many years one of the most interesting results from computing that I am aware of the way that something that looks entirely alien to my electronics designer eye actually works is pure magic.
- nyanpasu64 5y agoThis horrifies me... This is why I'm not a biologist.
- jean_valje4n 5y agoThere is abstraction though. It's just fuzzy. 3 DNA base pairs abstract to an amino acid which has chemical properties. It's just theres some redundancy which 3 base pairs get converted to an amino acid. And if there's a single mistake somewhere with just one amino acid, the structure of the thousand amino acid long protein probably has some fault tolerance there. Those amino acids are arranged in a way in the DNA code to make bigger motifs, alpha helices, beta sheets, active sites, coordinating complexes with inorganic ions. It's all in the DNA code, though I suspect this train of thoughts is influenced by epigenetics. Parts of the DNA code also responsible for the regulation of how much the protein itself is expressed. That can still abstract to conditional and loop structures. Yes some of the base pairs strongly bind together in the double helice which can influence stability of the DNA strand. The GC pairing has 3 hydrogen bonds, where AT has 2, but I think this influences the distribution of junk DNA, as you still need codons to make proteins which is the central dogma of biology.
- usrusr 5y agoPlenty of "most of the time" on the way from DNA to proteins, and chances are that "code" developed through eons of diceroll trial+error will end up relying on ambiguities more than being harmed by them. But doesn't the software mindset, again, have better mental models for things like that than most other disciplines? Think "relying on undefined behavior", or that old question of bug or feature. Sure, there are many pitfalls and possibilities for wrong conclusions to be drawn, but I'd dare to say that the "coding mind" is better equipped to become aware of them than others and not worse. edit, an example: we can imagine a piece of code that works both when compiled as java and when interpreted as groovy, but has a different outcome depending on what language it is. We might even have written some for entertainment (reminds me of that ambiguous-on-Apple PNG that made the rounds a few days ago). And we could easily imagine a system that would collapse unless it occasionally gets both, the "java" outcome and the "groovy" outcome. We certainly wouldn't deliberately build a system like that, but we could easily do if there was, say, an obfuscated gradle contest. And "deliberate" is out of scope anyways. Enter eons of dicerolls, enter a system that mostly controls itself via balancing (as we know full well from high level pharmaceutical science). Yeah, it's unpredictably complex, and the coding mind should be the last to jump from "GATC is essentially digital" to underestimating that complexity and unpredictability. edit2: I think the core of what I wanted to say (but never even tried) is that someone not used to code will likely try to wrap their head around the "ifs" and "comments" and be so occupied by that that task that the result will be a mental model of predictability that won't map well to observed reality, whereas the coder, with years of "the daily wtf", won't for a moment see any contradiction between observed reality and "lots of kind of code-like things"
- hiptobecubic 5y agoThere are plenty of critical pieces of software that rely on the fact that they produce different behavior when interpreted as a different language.
- podgaj 5y agoI used to be a network engineer but since becoming disabled with a familial genetic disorder 20 years ago (Autism, Bipolar Disorder, Hyperlipidemia) I decided to get my genetics and study its implication in my disorder. I think the coding analogy is more quantum computing than anything we currently know, which is why the binary analogy seems to fail. It is computing but on a whole 'notha level. Quibit instead of Binary, or maybe something we are yet to understand. The chief complaint I have about that article is that it does not even get into the fact that we actually have two genomes that are symbiotic; Our Nuclear Genome and out Mitochondrial Genome. Glad he did touch on the epigenetics however. I do know that understanding your genetics at the level that I have can help you manage any unknown chronic condition. It turns out my mitochondrial genetics were much more important for me (I am pretty sure I have a Complex I deficiency, thought really a trait) and that a sort of mismatch with my Nuclear Genome (mostly Calcium, Potassium, and Sodium signalling) makes me very sensitive to my environment through oxidative stress signalling. If you can see this complex dance you will appreciate just how wonderful and complex of a machine we are that we will never fully understand. In the end my cure is more art than science. More feeling than data. Some examples that might bother you: - Long Chain Omega 3 PUFAs are crucial to my health and I cannot eat short chain PUFAs for any extended period. This is due o my FADS1 and FADS2 genetics - I am Electro-Hypersensitive. Exposure to household low frequency EMFs from wiring increases oxidative stress ion my body and causes me pain, insomnia, and mood disturbance. This is mainly from how EMFs trigger the Volatage Gated Ion Channels. - Exposure to chemicals, which includes many medicines, triggers an immune reaction (drug induced Lupus) from the oxidative stress which is created through their metabolism by CYP450 enzymes. I am able to remediate these issues by diet and environment changes and mostly through the supplements; Asocrbic Acid, Manganese, Zinc/Copper and P5P.
- Raaasmus 5y agoSo how much can I find out with my 700k rows of SNPs? Any resources you recommend?
- podgaj 5y agoIf you have your genome from 23andme; https://promethease.com/ https://promethease.com/ That is just a start, it is useful but incomplete. I usually end up searching for SNPs in my text file based on research I read. I made a bash program which I can use to run a bunch of SNPS of a specific gene. Oh, also: https://www.snp-nexus.org/v4/ https://www.snp-nexus.org/v4/ https://www.uniprot.org/ https://www.uniprot.org/ https://www.ncbi.nlm.nih.gov/snp/ https://www.ncbi.nlm.nih.gov/snp/ https://smpdb.ca/view/SMP0000017 https://smpdb.ca/view/SMP0000017 http://slc.bioparadigms.org/ http://slc.bioparadigms.org/
- dTal 5y agoI think you go too far. I think it's easy for you to see where the similarities between human computing and biology fail because you're so steeped in the world of coding. But imagine if you had no concept of information theory - imagine if the best mental model you had was that life was a very complicated physical process. The fact that we can literally email viruses would be very surprising! T, A, G, and C are different molecules, but they're representations. And the mechanism of viruses would also be a total mystery - how can such a simple physical object make copies of itself? Life is, at its core, an informational phenomenon. It's not a coincidence, or a "rough and oversimplified analogy", that we have computer viruses to mirror biological viruses - they are both consequences of the same underlying principles.
- bobthechef 5y ago
- jasode 5y ago>I 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. [...] , but inevitably they will move out of the bounds of where the anlogy works unless they actually know the underlying biology. I think the author's "digital" explanation for DNA is more helpful than problematic because we can just understand where that knowledge can be appropriately applied. Focusing on the higher abstraction of DNA as "information" or "data" is important in bioinformatics: https://en.wikipedia.org/wiki/Bioinformatics https://en.wikipedia.org/wiki/Bioinformatics And analyzing DNA as "information" and not just analog chemistry is also important in CRISPR gene editing. Yes, the engineers creating machines used CRISPR editing need to know more "analog" aspects of biology but other scientists can focus on the "digital data" perspective. I think a similar digital-vs-analog split happens in computers. Consider the following different physical (analog) realizations of computation devices: - wood gates (https://www.youtube.com/watch?v=GcDshWmhF4A https://www.youtube.com/watch?v=GcDshWmhF4A) - vacuum tubes - silicon wafers of transistors - optical gates using light Can we extract a useful "information data" perspective that transcends all of those vastly different devices? Yes, we call it "computer science". We're discovering that many "computer software" ideas also apply to DNA. Scientists can look at the human genome as 750 megabytes of code and try to "reverse engineer" it. It's like forensic hackers using IDAPro/Ghidra to reverse engineer a malware binary to understand how it works. But that doesn't mean the "analog" can be ignored. Compsci telling us about an algorithm being O(1) vs O(log n) doesn't reveal that vacuum tubes give off more heat and fail more often than silicon transistors. Or the thinness of a wire trace on a circuit board means that deploying a computer in space orbit makes it susceptible to cosmic rays flipping a random bit causing weird errors. All those analog difficulties in the real world doesn't mean that looking at computers via lens of Computer Science is problematic. It's just a different perspective that lets us make progress in that specific area. Every knowledge specialization has inherent limitations. (I notice that my comment supplements dTal's comment: https://news.ycombinator.com/item?id=29649339 https://news.ycombinator.com/item?id=29649339)
- moring 5y ago> I think a similar digital-vs-analog split happens in computers. Does it? In computers, digital computation is the ideal that we try to mimic via analog circuits (or vacuum tubes, relays, or whatever). We are actually glad that we can chain two CMOS inverters and the result is that anything close to Vcc becomes Vcc, and anything close to GND becomes GND. As far as I understand, in biology "improving signal quality" like that actually disturbs the system because you are removing an "error" that actually has a useful function somewhere else. Or for a software analogy: Consider a program that breaks memory safety, but you can't fix it because some other part relies on that "bug". Now consider a program that doesn't just contain lots of weird quirks like that, but has grown around them and makes them an integral part. At least that is how I imagine chemistry inside a cell as a layman.
- xwolfi 5y agoI think you're right that it doesnt fit perfectly but damn still, it's a self reproducing structure interpreted by a complex hardware to transform inputs into outputs. If we cant use programming metaphors to understand how to patch it, at least maybe to explain exactly what we are fundamentally this is interesting no? We are software running on a hardware (the environment, the interpretation precursors in the womb on startup, the rest of the machinery ALSO created by the software), are we not ? I feel it's cool we can encode some useful messages as RNA for vaccines with headers, commands, checksums even if ofc it's not exactly like electronics.
- agumonkey 5y agoWe may see the code but we have no interpreter. Also it seems part of the bootstrapping lies in the female womb hosting the foetus.
- deleted 5y ago[deleted]
- searine 5y ago
- Kim_Bruning 5y agoI don't think "coding" is an analogy. It's pretty clear that DNA is a kind of code. It's also fairly obviously Turing complete. It's rather more than Turing complete in fact. It encodes for life, after all! I think it does make sense to deal with DNA from an information science perspective. It might not be sufficient, there might be higher levels of emergence to be taken into account. But I think that without having a bit of an understanding of information science, it's really really hard to understand anything about how DNA works at all. That said, the article actually seems to be pretty good starting point for programmers who want to get an initial intro to molecular genetics, and the author doesn't take themself TOO seriously.
- userbinator 5y agoThe 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. Weak sectors on optical media and the classic https://en.wikipedia.org/wiki/Lace_card https://en.wikipedia.org/wiki/Lace_card are similar analogies in computing.
- jauer 5y ago> 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. Eh, I think you are correct re: being a rough and oversimplified analogy, but those same assumptions of how digital tech works break down when doing digital tech at large scale as well (FAANG). A well-known example + cases I've seen repeat over the past few years include: IO Latency variations because of noise (someone yelling at a disk array), bit flips on the network just right to evade TCP error checking, ICMP packets bit flipped just right so they crash network control plane software. ASICs with die defects such that the brick if you try to load a specific set of subnets into TCAM n times, CPUs that wear out such that specific instructions return erroneous results after n years of use, and so on. Basically, with warehouse-scale computing you encounter the consequences of very unlikely events every day, and many unlikely events happen at the interface of digital to analog (which is defined by... different chemical and physical properties). At some point you accept that the details will always be fuzzy, but if the model works well enough most of the time, it's good enough for most practitioners. You just need to socialize that there are exceptions and make sure people know where to turn when something doesn't behave as expected.
- jostmey 5y agoThe biggest issue I have with these analogies is that cells and organisms proliferate. It would be like a computer copying both its hardware and software to create new computers. This behavior is central to understating biology and absent in computer science