[HN Gopher] DNA seen through the eyes of a coder
___________________________________________________________________
DNA seen through the eyes of a coder
Author : dunefox
Score : 252 points
Date : 2021-12-22 10:54 UTC (12 hours ago)
(HTM) web link (berthub.eu)
(TXT) w3m dump (berthub.eu)
| fabian2k wrote:
| 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 wrote:
| Yes DNA is more like a lego assembly language.
| jakobnissen wrote:
| As 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).
| nfkrk8j wrote:
| hiptobecubic wrote:
| If we get to the point where design is done by algorithm and
| no one needs to understand why it works in detail, them I
| would fully expect that to happen. We're not there and I
| think that has been good. We have "evolved" computer hardware
| much faster than I would expect otherwise and have seen
| several very evolutionarily-challenging discontinuous jumps
| in design.
| nyanpasu64 wrote:
| This horrifies me... This is why I'm not a biologist.
| morninglight wrote:
| > This is why I'm not a biologist.
|
| I don't mean to distress you, but you are a biological
| computer.
|
| Just rejoice that you needn't read the release notes.
| Nevermark wrote:
| Except we need the release notes! And there aren't any.
| croddin wrote:
| Not that most apps even give good release notes. If we
| did have them you could expect:
|
| "Thanks for being human. This update changes your DNA and
| may contain bug fixes and performance improvements. Keep
| on humaning!"
| kelseyfrog wrote:
| The good news is that humans are self-documenting.
| TremendousJudge wrote:
| The documentation for the human body is much better than
| anything Google ever published, that's for sure
| birdman3131 wrote:
| Genesis 1 is about as detailed as many of the release
| notes I see. And about as accurate.
| jean_valje4n wrote:
| There 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.
| moring wrote:
| The big difference between computers and living organisms is
| that computers are designed by humans and meant to be
| understood by humans. Those that design computers must
| understand them, and so do those that write code for them,
| those that write compilers, those that write operating
| systems, and so on. None of this applies to a living being or
| any of its parts.
|
| I think your thought experiment makes the mistake that such
| an abstraction-less computer would still be designed and
| built by humans. That won't work, because no human can
| understand the whole of it all at once, hence the need for
| abstractions. A computer "designed" by an incredibly complex
| computer program could push that barrier but probably not
| break it. If you really want an analogy to actual life, such
| a computer would have to be the outcome of some evolution-
| like process. And no, not what people like to call
| "evolutionary process" or something like that today, but
| actual evolution that mirrors biology -- and quickly becomes
| too complex to understand by humans.
| goldforever wrote:
| Ericson2314 wrote:
| > 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?
|
| Honestly that sounds like basically what we got. The "design
| coherence" on the scale of the entire industry has been
| pretty low for decades.
| edge17 wrote:
| Not sure what you mean here. What would high "design
| coherence" on the scale of the entire industry look like?
|
| I am sure things could be more optimal somehow, but the
| industry generally operates on a principle of interfaces -
| and it's true, the higher level you go (all the way up to
| the people using the technology) the messier it gets, but
| it certainly doesn't feel like an organism with no concept
| of "abstraction" as the parent describes.
| Ericson2314 wrote:
| > Not sure what you mean here. What would high "design
| coherence" on the scale of the entire industry look like?
|
| Like everyone uses NixOS/Nixpkgs and also it's more
| ergonomic.
|
| > But the industry generally operates on a principle of
| interfaces
|
| Aha! Actually I would say it does _not_ , and there in is
| the problem. Most interfaces only have a few
| implementations, and as much as I love FOSS it has made
| that problem worse (in the context of the economy we've
| got). The interfaces we do have tend to become
| monotonically more complex over time as there is no
| systematic culling, and the result is we increasingly
| drown in accidental complexity.
|
| Basically, accumulated implementations are viewed as big
| scary problems were maintaince to simplify is a cost no
| one wants to bare.
|
| A lot of this is the same critique as
| http://langsec.org/, generalized to areas other than
| security.
| tw600040 wrote:
| // had no concept of "abstraction", adherence to standards or
| even a logical, coherent design.
|
| I see your point. But I would like to make a counterargument.
|
| If you consider the time scale with which biological systems
| have to work, you probably won't call their design illogical
| or incoherent. Computer programs have been around for not
| even a century. Billion years is a whole different ballgame.
| Can anyone even imagine writing a computer program with any
| guarantee that it would be readable by someone 1000 years
| from now? We have a tough time figuring out what our our own
| code does a few months after writing them.
|
| And wrt fault tolerance, resilience, I don't know, the design
| language of nature definitely seems far more evolved..
| TremendousJudge wrote:
| There are a lot of classical examples of the incoherence of
| biological systems -- a very common one is some nerves on
| the neck of giraffes[0]. On this analogy, the most
| important part is that you're never, ever, in the millions
| of generations of DNA, allowed to do a rewrite. Only small,
| incremental changes, each one of them giving the organism
| more fitness than before. No abstraction can survive this
| constraint -- a legacy codebase several decades old that's
| never seen a rewrite is already an unintelligible mess. I
| think the code analogy holds here.
|
| [0] https://bioone.org/journals/acta-palaeontologica-
| polonica/vo...
| javajosh wrote:
| _> a [jumbled] mess of wires and logic gates that somehow
| works to do computation_
|
| You could create this situation explicitly using FPGAs.
|
| _> no concept of "abstraction", adherence to standards or
| even a logical, coherent design_
|
| There's no concept of abstraction, but there is remarkable
| consistency in the genetic code for all that. The fact that
| these tiny machines are understandable at all is remarkable.
| Our biosphere is effectively a single process with an uptime
| of ~4 billion years, including the ability to recover from
| meteor strikes that killed off 99% of species, multiple times
| (albeit with different species!)
| jacquesm wrote:
| Genetic algorithms tend to design circuits that have some
| elements in common with what you describe.
| jcims wrote:
| It's my annual opportunity to trot out one of my favorite
| articles ever:
|
| https://www.damninteresting.com/on-the-origin-of-circuits/
| jacquesm wrote:
| Thank 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.
| lou1306 wrote:
| Indeed asynchronous digital systems, such as asynchonous CPUs
| or "wavefront arrays" [1], have been experimented with in the
| past. Looks like they never picked up steam, though.
|
| [0] https://en.wikipedia.org/wiki/Asynchronous_circuit#Asynch
| ron...
|
| [1] https://en.wikipedia.org/wiki/Systolic_array
| AllegedAlec wrote:
| Totally 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.
| jasode wrote:
| _> 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
|
| 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)
|
| - 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)
| moring wrote:
| > 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.
| Kim_Bruning wrote:
| So as you might intuit, having everything work totally
| differently doesn't scale so well. So a lot of the
| chemistry inside cells is strongly standardized. Ok, so the
| nice thing about standards is that there's a bunch to
| choose from, and sure there's a lot of times when cells
| cheat just a smidge (or two, or three).
|
| But... end of day, if you squint just a little, most
| everything is done with a standard set of amino acids that
| chain together in standard ways. In some AA's The Amino and
| Acid groups used to daisy-chain them together dwarf the
| actual active part! And data is stored using a standard set
| of 4 ( ok 5, ok... exceptions exist) bases.
|
| (Just to be sure, eg. Hemoglobin does suddenly have an Iron
| atom in there, but it's still _mostly_ made of standard
| "lego blocks" == amino acids)
| [deleted]
| Kim_Bruning wrote:
| I 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.
| dTal wrote:
| I 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.
| searine wrote:
| bobthechef wrote:
| usrusr wrote:
| Plenty 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 wrote:
| There are plenty of critical pieces of software that rely on
| the fact that they produce different behavior when
| interpreted as a different language.
| xwolfi wrote:
| I 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.
| podgaj wrote:
| I 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 wrote:
| So how much can I find out with my 700k rows of SNPs? Any
| resources you recommend?
| podgaj wrote:
| If you have your genome from 23andme;
| 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.uniprot.org/
|
| https://www.ncbi.nlm.nih.gov/snp/
|
| https://smpdb.ca/view/SMP0000017
|
| http://slc.bioparadigms.org/
| GordonS wrote:
| > 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
|
| Wow, I've never heard that before - do you have any good
| papers you can link to so I can read some more?
| podgaj wrote:
| I have linked some papers in a response to another comment,
| but here is a youtube video:
|
| https://www.youtube.com/watch?v=0RIskTMLV40
|
| I feel the research is lacking on this because there is a
| large genetic component. I do not feel LF-EMFs are a danger
| to everyone, but certain people, like me, with gene changes
| in CACNA1C, might be more affected by LF-EMFs. It is no
| coincidence that CACNA1C is also linked to pretty much all
| the mood disorders.
|
| And I am in no way saying that LF-EMFs are the cause of all
| mood disorders.
| freshpots wrote:
| I am interested as well. They appear to be spouting off
| pseudoscience that sounds much better than the average
| person but I am open to seeing evidence otherwise.
| podgaj wrote:
| Martin Pali is at the forefront of this but, you know,
| this is scary to a lot of people for some reason.
|
| The most studied ion channels are the Voltage Gated
| Calcium Ion Channels
|
| https://onlinelibrary.wiley.com/doi/full/10.1111/jcmm.120
| 88
|
| https://www.spandidos-publications.com/ijo/59/5/92
|
| https://www.sciencedirect.com/science/article/abs/pii/S01
| 434...
|
| https://emmind.net/openpapers_repos/Applied_Fields-
| Hazads/Va...
| corey_moncure wrote:
| What practical steps did you take to go about investigating
| your own genome like this?
| freshpots wrote:
| It sure sounds like they spent a lot of time here:
| https://www.naturalnews.com/
| podgaj wrote:
| No, actually not. I hate that website with all my being,
| and I hate all the naturopaths that spout nonsense about
| nutigenomics.
|
| I sat in on classes at UNC Chapel Hill and I only use
| peer reviews studies. If you want to challenge my
| knowledge please do so. I have spent 20 years doing this.
|
| I have a livelong disability and it runs in my family. NO
| one knows the cause but I am pretty sure it is
| mitochondrial and is largely affecting oxidative stress.
|
| https://pubmed.ncbi.nlm.nih.gov/20833242/
| podgaj wrote:
| It is hard and it takes a long time. And I would not
| recommend it if you are not suffering from any chronic
| illnesses. Most people's disorders are due to
| diet/environment.
|
| A good place to start is uploading any data you have into
| https://promethease.com/. I would ignore most of the "good"
| and "bad" results, I only used it to find rare SNPs that
| might be linked to my disorder.
|
| The best thing you can do is get your whole genome run. You
| can do it now for about $200.
| agumonkey wrote:
| We may see the code but we have no interpreter.
|
| Also it seems part of the bootstrapping lies in the female womb
| hosting the foetus.
| kanzure wrote:
| "... 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."
| ck45 wrote:
| The author gave a talk at SHA2017 about DNA:
| https://media.ccc.de/v/SHA2017-31-dna_the_code_of_life
| unemphysbro wrote:
| The 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 :)
| stanfordkid wrote:
| I 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
| phonon wrote:
| The article covers that extensively.
| jryb wrote:
| It...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 wrote:
| This 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...
| Borrible wrote:
| Little 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...
| chromanoid wrote:
| This 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.
| Sosh101 wrote:
| Another interesting article of his (that you may have already
| seen): https://berthub.eu/articles/posts/reverse-engineering-
| source...
| [deleted]
| 0xTJ wrote:
| To me, DNA is more like an esolang than any normal programming
| language.
| [deleted]
| fastaguy88 wrote:
| I 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.
| jcims wrote:
| Some 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
|
| Translation (turning messenger RNA into proteins) -
| https://www.youtube.com/watch?v=TfYf_rPWUdY
|
| RNA Splicing (removing non-coding sections of mRNA) -
| https://www.youtube.com/watch?v=aVgwr0QpYNE
|
| DNA Wrapping & Replication(two part video) -
| 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.
| civilized wrote:
| Biological computers may be messy but they've got a First Mover
| Advantage of 5 billion years.
| spywaregorilla wrote:
| I 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.
| Metacelsus wrote:
| If 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.)
| jakear wrote:
| > 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?
| hirenj wrote:
| I 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.
| [deleted]
| egberts1 wrote:
| Now it is a matter of time to implement Reed-Solomon on a daily
| basis ... within Quantum Computing.
| HPsquared wrote:
| Life is just test-driven development, taken to an extreme.
| andrewclunn wrote:
| remram wrote:
| What are the tests?
| podgaj wrote:
| The question you just asked is it testing.
| jasode wrote:
| _> 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
|
| 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 wrote:
| If 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.
| StrangeClone wrote:
| This question for example or someone getting covid. All who
| fortunately have error (mutation) may pass them.
| i000 wrote:
| Can it survive long enough to produce offspring.
| koonsolo wrote:
| Bad test ;). The offspring needs to be fertile.
| hutzlibu wrote:
| You are, for example.
| fe11x wrote:
| steve76 wrote:
| jjtheblunt wrote:
| https://en.wikipedia.org/wiki/Geometric_group_theory
|
| and
|
| 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 wrote:
| Correct 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.
| Gravityloss wrote:
| More of these articles. They don't spend time describing
| somebody's clothing, appearance or manners.
|
| Yet it's "long form" writing at its finest.
| jacquesm wrote:
| The 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
|
| 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 wrote:
| https://en.wikipedia.org/wiki/Ribosomal_frameshift if you
| really want to bend your brain a little.
| jacquesm wrote:
| Yes, 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 wrote:
| There 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 wrote:
| There'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.
| jacquesm wrote:
| Agreed, if you want to explain something you should do so
| from the simplest example, not from one of the most complex
| examples.
| usrbinbash wrote:
| >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 wrote:
| > 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?
| usrbinbash wrote:
| This 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.
| _Wintermute wrote:
| This 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.
| jenny91 wrote:
| Machine 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.
| throw8932894 wrote:
| > 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!
| DantesKite wrote:
| I'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-puzz...
___________________________________________________________________
(page generated 2021-12-22 23:00 UTC)