13 ms·
Does DNA have the equivalent of IF-statements, WHILE loops, or function calls?
- Alpha3031 3y agoCarroll is probably one of the better known researchers focusing on the evolution of cis-regulatory elements, non-coding sequences which regulate the expression of nearby genes. I would consider his 2005 book Endless Forms Most Beautiful to be a reasonable introduction. For something more less pop-sci I understand Davidson and Peter's (2015) Genomic Control Process has been fairly well received, as well. Though both are on the older side of things now, and admittedly I'm not too familiar with the current literature, they would probably be my recommendations. There are also non-gene regulatory elements of course.
- ulwtekwcuhwj 3y ago[dead]
- robviren 3y agoI always think of DNA a lot like programming over the course of millions of years. A strung together series of hackish, barely functioning, uncommented code with no documentation whatsoever. Any reason for why a snippet of code ended up being the way it is has been completely lost to time. All we know is that changing it is bad, certain chunks of code lead to certain behavior, and that the more we look at the code the code spaghetti like it appears.
- InSteady 3y agoThe ultimate spaghetti codebase.
- Rezhe 3y agoRather than programming languages it sounds like a nature language.
- koeng 3y agoI’ve worked in a lab of one of the original folks working on genetic logic gates, and honestly, no they don’t really work very well at all. I think a lot of computer scientists assume that their model of the world (binary logic) is the most abstracted version possible, and you can drill down other information carrying systems to that level, and then use that knowledge to build reliable systems. Biology does not work that way. Its fundamental abstraction is different (mostly one of massive interconnectedness). Engineering logic gates and the like, mostly, doesn’t actually allow you to build better genetic circuits.
- throwaway914 3y agoI'm equating this to condition-less coding, where you're trying to eliminate branching logic with bitwise operators or other math.
- chaorace 3y agoYeah, except you can only change one line at a time and you lose all of your changes if it doesn't compile at any point.
- koeng 3y agoSex changes many lines at a time. But you do die if it doesn’t compile.
- mrguyorama 3y agoMy friend who has a defective genome including a specific enzyme that doesn't "compile" and he is plenty alive
- Bjartr 3y agoI'd imagine genetically driven behavior would be probabilistic and involve many overlapping duration/threshold "checks"
- sebastianconcpt 3y ago
- sojuz151 3y agoAlternative splicing is another way of including IF statements. Depending on many conditions some parts of the RNA might be added/removed before the translation
- i000 3y agoTo give a concrete examples 1. The HOXD gene cluster adopts a mutually exclusive conformation. IF it "folds" to the left if results in the formation of digit bones ELIF it folds to the right of arm bones ELSE no bones etc. (very very roughly speaking): https://www.science.org/doi/10.1126/science.1234167 https://www.science.org/doi/10.1126/science.1234167 2. Another example are olefactory receptors, each olefactory sensory neuron (the cell that "smells") chooses to activate one out of a long array of possible receptors each specific to some smells. So somehow, somewhere a XOR logical operation is "computed" to "pick" https://europepmc.org/article/pmc/4882762 https://europepmc.org/article/pmc/4882762
- martythemaniak 3y agoI got into synthetic bio for a little while and ended up reading this intro textbook: https://www.amazon.ca/Introduction-Systems-Biology-Principles-Biological/dp/1584886420 https://www.amazon.ca/Introduction-Systems-Biology-Principle... If you've taken "Systems Engineering" or "Control Systems" type classes where you learn about oscillators and other high-level control systems work across a variety of engineering disciplines, this is a great into to how these systems are "implemented" and work inside of cells. It's not "IF" and "WHILE" loops, but more like "How are logical circuits such as e.coli path finding algorithms implemented in RNA"
- cariaso 3y agohttps://berthub.eu/articles/posts/amazing-dna/ https://berthub.eu/articles/posts/amazing-dna/
- JoBrad 3y agoSo in Biology everything is a global variable and side effects are the standard. Got it.
- pama 3y agoGlobal variables are true for viruses or single cell organisms. There is locality between different cells and partial locality within cell compartments. So not everything is a global variable.
- johnnyb_61820 3y agoDNA is a lot more like an FPGA than a traditional programming language. Basically, everything is wrapped in a while(true) that has conditionals as to whether or not it engages. Promoter sequences are the condition statements, and transcription factors are very similar to variable states, where the concentration of the transcription factor is essentially its value.
- platz 3y agoIF : Transcriptional activator; when present a gene will be transcribed. WHILE : Transcriptional repressor; gene will be transcribed until repressor is not present. as stated, IF and WHILE are equivalent (the WHILE is some variation of a contrapositive of an IF) secondly, it doesn't make sense that a "repressor" would cause transcription unless it is absent, since " A transcriptional repressor is a protein that regulates gene expression by inhibiting the initiation of transcription". It is a repressor's PRESENCE that inhibits expression, not it's ABSENCE. Hence it would make more sense to say "Transcriptional repressor; gene will be transcribed until repressor is PRESENT."
- holmium 3y agoMaybe there were thinking about it in terms of disinhibition? A --| B --| C Where `A` inhibits `B` which inhibits `C`. So, while the repressor `A` is present, `C` will be transcribed. I'd imagine that simple repression is probably more common than disinhibition in gene networks, but idk.
- kovacs_x 3y agonope, chemistry/physics involved & dna processint doesn't work that way. (Msc Comp.sci&Bioinformatics / sw engineer here) it's very much about physical environment and chemical reactions happening (all in parallel) and molecules with different sizes/shapes interacting in specific conditions not instructions for specific computer architecture being executed. ps. i'm not saying its not possible, it's that it doesnt happen that way in living cells.
- kul_ 3y agoI misread this for some reason and I am now interested to know if DNS can be made to work dynamically this way instead of being just preconfigured static records?
- photochemsyn 3y agoIF lactose is present in the extracellular environment && IF glucose is NOT present in the extracellular environment: Activate the lac operon and transcribe the genes for lactose uptake and metabolism, entering a while loop: WHILE lactose is present: Keep transcribing those genes. However, this is not the DNA acting alone, it's just a component in the cellular system. The cell (E. coli in this case) is always generating a minimal amount of lactose and other sugar transporters, which act as sensors in the cell membrane that trigger feedback loops (otherwise, how would the cell ever know lactose was present?). If glucose is present, E. coli uses it preferentially and downregulates other sugar uptake and metabolism genes. This is all fairly analog rather than digital, i.e. genes that are 'turned off' may still be transcribed at a very low level. DNA is probably more comparable to RAM, and the CPU perhaps comparable to the transcriptome (DNA -> mRNA) and the ribosome (mRNA -> protein), and overall the cell is running something comparable to a parallel multi-process fetch-decode-execute cycle.
- corethree 3y agoIt's more like a 3d printer. But that 3d printer can print a computer which in turn has while loops, function calls and if statements.
- drones 3y agoWith our archaic use of Von-Neumann architecture, bacteriophages must think so little of us.
- dekhn 3y agoYes, DNA has rough equivalents to condition logic and loops, although not in a way that is as engineerable as a digital computer with a stack. The op-amp (which is a transistor that uses feedback, typically to amplify) is the one element that has a close analogy (hah) in biology (feedback systems based on transcription-controlling regulatory proteins). The other really cool example taht came up early in my education is the yeast mating switch. Yeast (s. cerevisiae) can be one of two "genders" and can only mate with the opposite gender. Yeast can change their gender: they keep two copies (alternates) of a single gene, and "cut/paste" one of the alternates into a different "currently active gender" location (https://en.wikipedia.org/wiki/Gene_conversion https://en.wikipedia.org/wiki/Gene_conversion is the general process, https://en.wikipedia.org/wiki/Mating_of_yeast#Mechanics_of_the_mating_type_switch https://en.wikipedia.org/wiki/Mating_of_yeast#Mechanics_of_t... is the mechanical process in yeast). It has some similarity to a flip flop. So I think the right level to think at is not the abstraction of computer programming languages, but circuit elements. Which is what makes these brilliant articles so much fun: https://www.cell.com/cancer-cell/pdf/S1535-6108(02)00133-2.pdf https://www.cell.com/cancer-cell/pdf/S1535-6108(02)00133-2.p... and https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005268 https://journals.plos.org/ploscompbiol/article?id=10.1371/jo... To cut to the chase, engineering biology is a major pain due to the long evolutionary history of biological mechanisms, which makes them somewhat esoteric and abstruse. there is so much that can be said, but over tme, I've found that expounding on this is not very helpful.
- arethuza 3y agoIsn't this the ultimate case of "Software archeology in a mature programming environment" (as Vernor Vinge might put it)?
- marvinborner 3y ago(Slightly) related: Chemlambda[1], simulating combinatory logic and lambda calculus with molecules. [1] https://chemlambda.github.io/index.html https://chemlambda.github.io/index.html
- bilsbie 3y agoI feel like the only possible answer is “we don’t know”
- scrozier 3y agoIn middle age, I (a computer science grad and working programmer) went to graduate school for molecular biology. In the early days of studying biological systems, I was struck by how much they were like computer code, or at least logic constructs. I remember to this day the moment I realized that my orderly world of 0s and 1s was being saturated and methylated and energized in ways that were utterly unpredictable by (the current state of) simple logic constructs. And that's the day I learned why we still have "wet" labs, to actually test things empirically, rather than vainly try to predict them computationally. :-)
- herval 3y agoStephen Wolfram's theory is that everything is a massively parallel computation. Pretty fascinating stuff https://writings.stephenwolfram.com/2020/04/finally-we-may-have-a-path-to-the-fundamental-theory-of-physics-and-its-beautiful/ https://writings.stephenwolfram.com/2020/04/finally-we-may-h...
- zelphirkalt 3y agoDoes he define computation? I am asking because just about everything could be seen as some form of computation, given no definition, duh.
- gameman144 3y agoOne really cool mechanism I didn't see listed there (at least directly) was riboswitches. Essentially, a segment of mRNA with a binding site for a molecule. Ribosomes that are transcribing the RNA will then branch into two separate flows depending on whether the molecule is bound or not. https://en.m.wikipedia.org/wiki/Riboswitch https://en.m.wikipedia.org/wiki/Riboswitch
- pelagicAustral 3y agoPolymorphism?
- actionfromafar 3y agoOr spaghetti assembler code
- AlbertCory 3y agoPCR was partially inspired by loops in programming languages, according to Kary Mullis, who got the Nobel for its invention. (I heard him say it at Google, but I just checked YouTube and I don't think that particular visit is there. Maybe it's in other places?)
- 6177c40f 3y agoOne thing I've learned studying biology is that, while there are many decent anologies to computers, biology is really operating on a very different paradigm to the sort of programming most of us are used to. Biology is based on "primitives" like feedback loops. For example, there are many cases where a protein that gets produced at the end of a signaling chain then goes on to stop or otherwise downregulate its own production (a negative feedback loop, positive feedback loops also exist). Another fact that biology relies on is that increasing concentration of some molecule is essentially equivalent to increasing probability of some reaction occuring. In a negative feedback loop, for example, as the concentration of the end product increases, the probability of the reaction that that product takes part in that inhibits its own production increases. Systems then evolve such that the maximum amount of inhibition is most likely to occur when the end product is at just the right concentration. I've often thought about making a programming language that simulates this paradigm to some extent; a probabilistic programming language where logic was implemented as feedback loops.
- zubairq 3y agoI’ve always wondered about DNA from a programming language point of view and always thought it was more like a data structure than a language
- bmartin13 3y agoI'm pretty sure something this complex came from a higher order being. That whole order from chaos argument is not holding water for me with this degree of complexity.
- thechao 3y agoI see the opposite: the DNA/RNA/protein mechanism is just a gigantic pile of self-interacting hacks — core "design constraints" being that the cell: (1) shouldn't die too quickly; and, (2) should be reasonably energy efficient (due to competition).
- IanKerr 3y agoAnd that complex higher order being came from where?
- bmartin13 3y agoNo idea, but the math says there have to be way more dimensions than we can interact with, so I'm thinking it's a higher dimensional being that we can't interact with. It/they would have to enter our dimension to communicate with us.
- andreyvit 3y agoI'm afraid your intuition about complexity misleads you here. If you'd like to learn more, spend some time with say evolutionary algorithms. It's not a big time commitment; playing around for a couple days will likely be enough. You'll find how the crap an evolution-style search comes up with is really similar to how nature works: a few beautiful core finds + a big pile of hacks of varying craziness, some of them totally bonkers, and quite a bit of insane reuse of things one would never consider reusing.
- mensetmanusman 3y agoThe operating system of nature is just as complex.
- bibelo 3y ago
- nyxtom 3y agoWe are never going to move beyond this analogy are we? We seem to be stuck here :/
- hnthrowaway0328 3y agoJudging from: >It is also to be noted that DNA is just a set of instructions and not really a fully functional entity (it is functional to some extent). However, even being just a code it is comparable to a HLL code that has to be compiled to execute its functions. See this post too. Maybe microcode?
- spaceribs 3y agoAfter reading the reason why code isn't a good analogy, the mechanical/analog logic of old pinball machines might be a better example of how DNA processes instructions? Ref: https://www.youtube.com/watch?v=E3p_Cv32tEo https://www.youtube.com/watch?v=E3p_Cv32tEo
- rsingla 3y agoFor an individual interested in computational biology, or George church's course is excellent. From the description: "This course will assess the relationships among sequence, structure, and function in complex biological networks as well as progress in realistic modeling of quantitative, comprehensive, functional genomics analyses. Exercises will include algorithmic, statistical, database, and simulation approaches and practical applications to medicine, biotechnology, drug discovery, and genetic engineering." https://ocw.mit.edu/courses/hst-508-genomics-and-computational-biology-fall-2002/ https://ocw.mit.edu/courses/hst-508-genomics-and-computation...
- markzporter 3y agoThis set of slides provides a good rundown of some of the work done in DNA computing: https://cs.uwaterloo.ca/~lila/pdfs/Computing%20with%20DNA.pdf https://cs.uwaterloo.ca/~lila/pdfs/Computing%20with%20DNA.pd... Notably solving TSP using the mechanics of DNA. Very interesting!
- roughly 3y agoSomething to be aware of as a computer person coming into biology: Biology only _looks_ like it has logical constructs, abstraction layers, and general computational frameworks. When you start working with it, you'll find everything is messier than you expected and everything interacts with everything at every level. There are no abstractions, there are no actual boundaries, and your outputs are subject to evolutionary pressures even when sitting in a flask. Many an engineer has washed aground on the rocky shores of biological indeterminism - it's not a machine, no matter how much it kind of looks like one when you squint at it.
- dullcrisp 3y agoSo just like my codebase then
- alexchamberlain 3y agoComputers only look like they have windows, digital signals and logic gates. It's all just pixels, noisy voltages and imperfect silicon.
- jakeinspace 3y agoSure, but because of the transistor’s nonlinearity (cutoff and saturation regions, for mosfet at least), we get digital logic. Digital logic means that errors don’t accumulate, and that prevents complexity from infecting everything in the computer. We can put neat little abstraction boxes around parts of the SoC, and then do the same with our software. Digital computers are only noisy compared to the simplest processes, like a low rate transmission line. Compared to biological or chemical processes, a digital computer is just ludicrously low-noise, because noise doesn’t propagate unless there is a major fault.
- mgfist 3y agoSounds like many a codebases I've worked on haha
- munificent 3y agoThe I think about it is like this: Code is read and maintained by humans, so it is under selection pressure to be comprehensible by human minds. Reality has no such constraint. If the biological processes of some animal lead to inscrutable irreducibly complex "spaghetti code" but the animal is slightly more likely to produce offspring... the complexity wins. The natural world doesn't care whether or not we can understand it. (There is, of course, a natural selection pressure going the other direction. Brains that understand the natural world do seem to often be generally more likely to produce offspring, so there's evolutionary pressure for minds to understand the world, but not for the world to be understood by minds.)
- __loam 3y agoIt does not.
- gwern 3y agohttps://www.lesswrong.com/posts/bNXdnRTpSXk9p4zmi/book-review-design-principles-of-biological-circuits https://www.lesswrong.com/posts/bNXdnRTpSXk9p4zmi/book-revie...
- wcoenen 3y agoTo get a glimpse of how cell "logic" works, I think clocks are a nice starting point. https://www.youtube.com/watch?v=nq7v1Z2SmdQ https://www.youtube.com/watch?v=nq7v1Z2SmdQ
- sargstuff 3y agoProgramming languages typically operate in middle of one higher/ one lower order level of logic. DNA describes hyperbolic multi-level of logic. The lowest level programming language (assembly) is designed to map/correspond/translate directly to hardware electronic bits. Where, cpu emulates version of turing machine on assembly instructions. And cpu/hardware is under control of OS ( post-pc boot strap ). --- The mapping between hardware & assembler may static (compiled) or interpreted in real-time into a sequence of boolean AND's and OR's. At the assembly programming language level, the programming language 'TERMINAL' construct is 1:1 with hardware. Such abstractions typically conveyed using BNF and/or various calculi such epsilon and lambda. As one progresses through higher level programming lanugages, have to work one's way through more and more non-ternmal instructions (aka grammar) to get to just the TERMINAL value to access that 1:1 mapping to 'run'. --- Given constraints on article length, going to reduce the bodies hyperbolic geometry descriptions down to a simplified analytic geometric analogy via bodies largest organ -- the skin. Can look at the skin as mobious strip where, gi tract is internal side compliment of external skin. Organs can be views as klein bottle chained together & interact/influence each other (per flow through klein bottle opening and/or perfusion of klein bottle surface. Scaling down the cline bottle to cell & simplfied 2d spread sheet -- side a, side b and how progress between a & b. The external/internal enzymes, dna, vitimins/minerals etc influence what happens on the spreadsheet via dna bnf / 4 symbol autonoma system and/or L-system. internal function calls equivalent to specific inter-cel functions per triggered by cell resources. Obviously, organs/cells need 'external function calls/libraries' to work, which are not covered here. While loops / if loops defined by enzyme/protines/etc created by dna interpretations. aka while enough protine a exist -> create enzyme b. IF enzyme asdf exists -> create protine 1234 --- So, dna can be viewed as a type of turing machine aka has if / while / etc.. forms of expression. the rest of the body is just a lambda calculi / epsion calculi / process calclui interpreter/executor. DNA as the ultimate hyperbolic turing paper tape version of the Zark king[0] The unbounded creaping feature creature take to the extreme over a few millenea. --- [0] : https://manybutfinite.com/post/the-thing-king/ https://manybutfinite.com/post/the-thing-king/
- lo_zamoyski 3y agoThe question is misleading because computation is not an objective phenomenon in nature (save in the minds of observers). You can interpret natural phenomena computationally, sure, and there may well be a way to do this with DNA (in fact, some have done that). But there's no computation "out there". Even the computer in front of you isn't objectively computing. It behaves in a way that corresponds with a computational interpretation, but nothing going on inside of it is a computation operation per se.
- kirykl 3y agoMaybe it does but in a higher dimensionality that we cannot see
- quiet_cool 3y ago[dead]
- newphonecartel 3y ago[dead]
- pockmockchock 3y agoisn't mRNA, crisper, prime-editing doing exactly that?
- akira2501 3y agoMy favorite thing about mtDNA is that two separate genes overlap using separate reading frames. The end of one gene is the same as the start of another, and they are laid out in the circular mitochondrial genome to take advantage of this fact. I've also read that DNA chromosomes can under go conformal changes in response to the environment it's in, making certain reading frames more or less likely to be transcribed, which makes DNA something like an environmentally sensitive memory subsystem for RNA. Which I've always wondered if this mechanism is involved in how the homeobox genes work to alter genetic express across the "floor plan" of the body. Anyways, I guess all this means, to whatever extent you might be able to identify programming "constructs" within the system, the overall effects are going to be dominated by noise and emergent behaviors, and the overall mode of the system is one of "feedback control loops."
- pyinstallwoes 3y agoThat reminds me of how the Vedas Sanskrit flows and also forms error-correction from verse to verse. The beginning is the end is the beginning.
- 6177c40f 3y agoI think you'll find some of the tricks that (mostly) viruses use to be interesting. Take a look at ribosomal frameshifting [1], where the viral RNA has a special structure such that at a certain point during translation in the ribosome it will skip back 1 nucleotide (a -1 frameshift; -2 and +1 frameshifts have been observed as well, more rarely), thus changing the whole reading frame. Viruses use this to encode multiple protein products in a single strand of RNA, a sort of compression. But that's not all. Say that the amount of "0-frame" protein to "-1-frame" protein needs to be at a ratio of 20:1; then if the frameshift occurs with a probability of about 5% (i.e. 5% of the time that the viral RNA is translated), these protein products will then be produced in just the right ratio (this isn't a made up example either, see [2]). So not only does this trick allow for the RNA to be compressed, it also regulates protein expression. All with just one strand of RNA. [1] https://en.wikipedia.org/wiki/Ribosomal_frameshift https://en.wikipedia.org/wiki/Ribosomal_frameshift [2] https://en.wikipedia.org/wiki/HIV_ribosomal_frameshift_signal https://en.wikipedia.org/wiki/HIV_ribosomal_frameshift_signa...
- dawnofdusk 3y agoAn interesting question because all of this genetic encoding and expression is probabilistic at its very core (it has to be, otherwise there wouldn't be evolution), whereas it would be very bad if basic operations in a CPU had similar level of error rates. Interesting to me how the top comment has talked about constructing logic gates out of biological circuits. I wonder if anyone has done the opposite, i.e., write a probabilistic programming language whose operations are under the same amount of noise as a cell?
- yieldcrv 3y agoLLMs add just enough entropy
- Karellen 3y ago> it would be very bad if basic operations in a CPU had similar level of error rates. Given how slow evolution is, and how many times DNA is copied and/or transcribed in any one individual, my intuition is that the error rates for genetic processes are actually incredibly low.
- Ancapistani 3y agoMy intuition says that error rates are extremely low, but that errors are common - due to the incredible number of iterations that occur in a very short time period.
- mrguyorama 3y agoThere are numerous correction mechanisms, and other mechanisms that destroy malformed proteins and mRNA chains. Wikipedia claims one out of every 1000 to 100000 amino acids added to a forming protein is wrong. Each ribosome is proceeding to add amino acids to a chain at about 10 per second, and millions (or way more) proteins are being produced all the time.
- Karellen 3y agoChip fabs have QA departments that check for bad batches and make sure they never get used too, though. ;-)
- Daub 3y agoI teach a creativity and innovation course at my uni. There are many examples I share with my students of inventions which started life as observations of nature (e.g. Velcro came about from observing how burrs stick to the fur of the inventor's dog). My bones tell me that there are discoveries about computing waiting to be made from observing how things are done in nature, particularly in the human mind. I imagine the result to be fundamental: changing the very nature of how computing is conceived of.
- optimalsolver 3y agoThere's the entire field of nature-inspired optimization: https://arxiv.org/pdf/1307.4186.pdf https://arxiv.org/pdf/1307.4186.pdf
- Medianmax 3y agoConvolutional neural networks come to mind.
- ImHereToVote 3y agoSpecifically inspired by the human brain. https://www.ibm.com/topics/neural-networks#:~:text=Their%20name%20and%20structure%20are,layers%2C%20and%20an%20output%20layer https://www.ibm.com/topics/neural-networks#:~:text=Their%20n...
- marginalia_nu 3y agoA lot of how we conceive of computation today is based on observation of nature. It's the a logical conclusion to the study of logic, which is a line of inquiry that dates back to antiquity when sophistry was becoming a real institution and there was yet no real systematic way of determining if something was true other than whether it sounded true.
- Daub 3y agoI'm not sure that nature and logic are related in the way you imply. A different question: Is not the atomic indivisible of computing no more that a simple switch? A binary? Is there an equivalent for this in the human mind/brain? I suspect not but would like to hear from someone who knows more.
- arketyp 3y agoIt's curious how DNA and enzymes are quite literally like a Turing machine tape and head.
- cantachau 3y agoThe only question is : Is DNA a Turing-Complete machine ?
- dazhbog 3y agoGhidra plugin for DNA blobs, anyone?
- thih9 3y ago> There are no equivalents of function calls. All events happen is the same space and there is always a likelihood of interference. Proof that code with all functions inlined, with only global variables, with bugs and happy accidents all over the place, eventually gains sentience and becomes self aware.
- echelon 3y agoSignal transduction is async amplification. And those pathways can branch. Close enough.
- visarga 3y agoEvolution is a wonderful algorithm - open ended, and yet in a single run it created all life, including human culture and technology.
- Daub 3y agoWhat I find fascinating about evolution is that it is entirely un-intentional. There is no-one/nothing directing it yet its outcome presents (and can be discussed as) a design.
- bmartin13 3y agoHow would you know if a higher dimensional being was directing it? We can't easily detect something outside our current physical dimensions. We know that for our math to work there have to be a number of higher dimensions. I think it's more logical to believe this came from something instead of from nothing.
- visarga 3y agoThere is an imperative force internal to evolution - self replication. Information must propagate (replicate) from the past into the future. But this leads to competition for resources, and hence drives evolution.
- quickthrower2 3y ago
- nihzm 3y agoRelated to the first answer: Tim Blais on youtube has made a catchy "edutainment" song [1] on molecular machines based on A. Leigh's research (eg [2]) with some cool animations that show how electrochemical "switches" can encode a binary state, which one could (in principle) use to build logic gates. [1]: https://www.youtube.com/watch?v=ObvxPSQNMGc https://www.youtube.com/watch?v=ObvxPSQNMGc [2]: https://pubs.acs.org/doi/10.1021/acs.chemrev.5b00146 https://pubs.acs.org/doi/10.1021/acs.chemrev.5b00146
- yread 3y agoThere is this 2021 paper where they constructed a logic OR gate protein: https://www.nature.com/articles/s41467-021-26937-x https://www.nature.com/articles/s41467-021-26937-x Some companies are planning to use them when designing drugs: "only activate this if both antibodies bind"
- Sparkyte 3y agoThat is an interesting thought. I take this with a grain of salt, one gram of DNA is supposedly 455 exabytes of data.
- dekhn 3y agoHere, let's do some math. let's treat a base pair as 2 bits of data (4 bases, 2 bits to encode a base). The average molecular weight of a DNA base pair is twice this, approximately 660 daltons (or 660 grams/mole). So a gram of DNA is 1/660 moles, or 6.023 * 10 * 23 / 660, which means a gram of DNA is 9 * 10 * 20 base pairs, making 1.8 * 10 * 21 bits, which is around 900 exabytes which is very close to a factor of two from your estimate. (also, in case it comes in handy: pure water is 55Molar)
- pama 3y agoThanks for the neat estimate. It would be hard to dehydrate DNA to a significant degree, so adding some water and counterions would probably reduce your estimate by a bit. (Error correction would also reduce things by a bit.) Overall the estimate of ~500 exabytes per gram seems reasonable to me.
- dekhn 3y agoI think there are worse ideas than cloning your data into a population of tardigrades using an error-correcting code, and then dehydrating them into the tun state. Not nearly the density of raw dry DNA (which itself can be stabilized using trehalose or PVA) but tardigrade tuns can resist harsh environments for ~millenia.
- pama 3y agoAgreed. I hope there will be commercial scale inexpensive solutions of this type in the next ten years.
- fjfaase 3y agoThe KMT2D gene [1] is one example of a gene that I know of that regulates the express of other genes. Defects to this gene often result in the people having the Kabuki Syndrome [2]. If I remember correctly, Bert Hubert in his talk 'DNA: The Code of Life (SHA2017)' [3] gives an example of an IF-behaviour. [1] https://en.wikipedia.org/wiki/KMT2D https://en.wikipedia.org/wiki/KMT2D [2] https://en.wikipedia.org/wiki/Kabuki_syndrome https://en.wikipedia.org/wiki/Kabuki_syndrome [3] https://www.youtube.com/watch?v=EcGM_cNzQmE https://www.youtube.com/watch?v=EcGM_cNzQmE
- feverzsj 3y agoIt's like reverse engineering alien technology.
- visarga 3y agoWell, DNA might not have programming structures, but it acts like a neural network. See "Gene regulatory network" > Some proteins though serve only to activate other genes, and these are the transcription factors that are the main players in regulatory networks or cascades. By binding to the promoter region at the start of other genes they turn them on, initiating the production of another protein, and so on. Some transcription factors are inhibitory. [1] These networks are similar to neural networks in that they process information through a series of interconnected nodes (genes and proteins, in the case of GRNs) that influence each other's activity. The activation or inhibition of one gene by a transcription factor can trigger a cascade of events, much like the way neurons activate each other in a neural networks. [1] https://en.m.wikipedia.org/wiki/Gene_regulatory_network https://en.m.wikipedia.org/wiki/Gene_regulatory_network
- forceIsStr0ng 3y agoYes this because DNA is a data structure not a physical force. If DNA of some sequence, then interaction with electromagnetic fields, gravity, strong/weak nuclear force of xyz properties will probably result in mutation along path abc, a theory the speaker must provide replicable statistical analysis to back up or it goes in the bin. IT obsession with data models has pushed IT workers into pseudoscience that ignores entropy, Lindy effects; structure is mutable. Physical forces are not. Data structures are not physical forces. They’re leaky mental models our biology garbage collects due to entropy and Lindy effects. Anyway just the take of an EE who finds the obsession with software development bizarre, full of statistical mirages, hallucinated accomplishments.
- stultissimus 3y agoSynthetic biologist here. This is a good answer, but looking at man-made genetic programs can give us a simplified perspective. We've made significant progress engineering programs that enable human T cells to kill target (cancer) cells _conditionally_ based on their surface marker expression [1]. This is in contrast to conventional CAR-T cells which are already on the market (see Kymriah, etc.). A simple AND gate T cell circuit is currently being tested in humans [2]. Numerous strategies now exist to write cellular decision making programs using synthetic circuits. We are entering an era where we can write DNA programs and put them into people; I wonder how we can interest more CS-minded people in this kind of "synthetic biology as programming", especially as we move from proof of concept studies in bacteria to real trials in humans [2]. [1]: https://pubmed.ncbi.nlm.nih.gov/33243890/ https://pubmed.ncbi.nlm.nih.gov/33243890/ [2]: https://arsenalbio.com/2023/05/16/arsenalbio-announces-presentations-highlighting-preclinical-data-on-ab-1015-and-ab-2100-at-asgct-annual-meeting/ https://arsenalbio.com/2023/05/16/arsenalbio-announces-prese...
- subroutine 3y agoAll the various logic gates have been observed in (DNA) gene expression studies - both naturally occurring and bioengineered tools. In particular there are tons of bioengineered tools for inducible gene expression that have all manner of gating mechanisms for precise temporal control of expression (triggered by behavior, environment, drug, elapsed time, etc.). Reading... https://en.wikipedia.org/wiki/Cre-Lox_recombination?wprov=sfti1 https://en.wikipedia.org/wiki/Cre-Lox_recombination?wprov=sf... https://en.wikipedia.org/wiki/Receptor_activated_solely_by_a_synthetic_ligand?wprov=sfti1 https://en.wikipedia.org/wiki/Receptor_activated_solely_by_a... https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2802553/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2802553/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4772104/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4772104/
- DoreenMichele 3y agoIF-statements: An IF statement executes the code in a subsequent code block if some specific condition is met. Cell chemistry can impact production of the protein strings DNA codes for and can impact if they are even functional. Not a programmer, so maybe that's not a good analogy. But it's what came to mind as an amateur student of "Exactly how do my defective genes make my life a living hell?"
- shpx 3y agoWhat about length prefixed strings? There's obviously "byte" terminated strings (start and stop codons) but there's probably situations where it makes sense for biological systems to store the length (or likely reading different lengths produces different molecules, as a form of compression) at the beginning and count it out.
- psyklic 3y agoIn grad school, I (briefly) researched synthetic DNA logic gates. Using these, you can build neural networks in DNA [1] and probabilistic switching circuits (my co-authored paper) [2]. To do this, you design DNA strands that bind to each other in designated regions when mixed. To make a logic gate, you just make some bindings conditional on other bindings. To detect that the gate is closed, you make the final binding uncover a fluorophore, which is detectable by a machine. (This is all called a *displacement cascade*.) Using our techniques, the DNA bindings could not be undone. However, I imagine that a source of new DNA strands to replenish the old would effectively implement re-callable functions. [1] Neural nets in DNA: http://qianlab.caltech.edu/nature10262.pdf http://qianlab.caltech.edu/nature10262.pdf [2] Probabilistic switching circuits: https://www.pnas.org/doi/full/10.1073/pnas.1715926115 https://www.pnas.org/doi/full/10.1073/pnas.1715926115
- samplatt 3y agoFascinating. Have you read the story story, The Moral Virologist? I've always been curious as to how close to realistic it was, and you seem a person that could answer that.
- Aardwolf 3y agoI remember seeing a video by Steve Mould about exactly this (playing tic tac toe against DNA): https://www.youtube.com/watch?v=GgPdRKqcRTE https://www.youtube.com/watch?v=GgPdRKqcRTE