My 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."
tl;dr: selenocysteine doesn't have a normal coding as a base triple, but as re-interpretation of a stop codon due to the information stored _after_ that stop codon that makes an RNA stick to itself during translation.
Is that specific to mtDNA? From what I remember it isn't that uncommon. There are a lot of bits of DNA that work in both directions for different genes.Been a a couple of decades since I studied that though.
I 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.
For the CS people who don’t understand what this means, a rough analogy is that HIV does something like steganography to encode two proteins in one gene.
overlapping genes show up all over the place and I think they contribute to lots of errors in papers. During my postdoc I analyzed the results from a yeast gene survey where the authors ignored genes overlapping and misannotated genes, imputing their function when really it was the overlapping gene. This is where I started to learn that "if it's in Nature, it's probably wrong"
An 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?
I just mean that cells in an organism experience much higher noise rates than a CPU, but we still consider them as capable of sophisticated computations. It's hard to peg a number at exactly how much more, but at least for reference many bacteria have a gene transcriptional error rate of like 10^-4. Apparently fiber optic engineers target 10^-12 error rate, and I assume the error rate of transferring data between CPU registers is even lower. So it's probably a decent estimate to think that biological "computations" occur under at least a million times more noise than a computer.
That isn't how evolution works (or at least it is a gross generalization that is borderline wrong).
You own cells mutate over your lifetime and the mutations may trigger genetic features across your entire body. Sometimes, these mutations cause errors that we call cancer, but not always.
Evolution is when a certain genetic feature provides better fitness (which doesn't necessarily have to come from a mutation), and then gets selected through mating. For example, if suddenly people with brown hair were a better mate, it would be much more likely for the next generation to have brown hair, until non-brown hair were "evolved" out of the gene pool completely and it would be impossible to not have brown hair.
This is how we got orange carrots, which are distinct from the previous non-orange carrots, for example.
So evolution is copying the state of a running executable (one that’s poorly memory managed and dependent on external variables) instead of the file itself, and evolution favors favors the copies that survive and maybe even run faster or are otherwise better.
Not exactly, evolution doesn’t happen instantly. A digital comparison to an organism would be something like this:
An organism is a collection a billions of threads all running the same code but starting at seemingly random entry points. Before dying, each thread forks one or more threads (depending on external factors like available memory).
In order to reproduce, the “father” code sends a copy of its current code, but only the bottom word of every byte. The “mother” program combines this with the top word of every byte and then executes it in a chroot jail to make sure it will actually run. Once it is confident it will run, it “births” it onto its own machine.
Every thread in this process is running on non-ECC memory, with cosmic rays bit-flipping things, though there are threads running around making fixes to broken threads (actually, just killing them before they can fork).
The implementation of the threads isn’t relevant here (such as modeling proteins, atp pumps, and such).
In this, evolution fitness would be less cancer (fork bombs), doing usable work, successfully mating, etc. This evolution pressure might look like preventing mating until the program is a certain age or performed certain milestones and a “score” of how well it has done its work (both partners want a good “life score” but not too high — liars could exist! — to proceed with mating).
Evolution would occur naturally over many generations. From one generation to the next, they look nearly identical, but from hundreds of generations they might look identical, or not. The “not” part is evolution.
> probabilistic programming language whose operations are under the same amount of noise as a cell
The reason for the probabilistic nature is that biological "computations" are eletrochemical reactions and feedback loops, which do not map very well to the concept of "executing code" as in programming languages. I think a closer analogy could be a hardware description language that sythesizes analog circuits for computations (cf. analog computers) which are then subject to noise from electromagnetic radiations in the environment.
So in a certain sense, this has already been done in a very rudimentary way during the pre-digital age of computing.
> 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.
There 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.
My 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.
I 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.
A 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.
I'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.
Logical thought is the lines of thought that consistently lets us predict nature. Without nature there would be no such thing as fact, and without fact, there can be no logic, since a proposition can't be true or false.
>Is not the atomic indivisible of computing no more that a simple switch? A binary?
It is for the dominant computing paradigm currently in use, but that isn't a universal truth. As I understand it, we use binary logic primarily because it's more tractable for humans to think about and work with, not because it's the only option or even the best option in all cases. For instance there are plenty of analog computers in history, which are in some ways more closely related to biological "computers".
To my understanding, the main advantage of digital over analog logic in computing was (and probably still is) its resistance to small errors. Nonlinear components like transistors and vacuum tubes aren't exactly the most consistent parts, and factors like ambient temperature can make even otherwise linear parts a little wonky. The "on/off" paradigm gives you a lot of tolerance of deviations from the ideal. Storage is also a big factor: it's really hard to store analog values, whereas on/off is approximately trivial.
One idea that is important (IIRC from this book) is that many examples are really inspiration, and not direct copying of design. Biology works very differently to human machines, with very different constraints, so when engineers and designers try to stick too closely to the biological original, it may not work out very well!
> 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.
What 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.
There 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.
How 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.
This isn't proof.
Its wishful thinking.
We don't yet understand the data structure of DNA fully, we don't know how a chemical storage system that is inherantly inert and relies on nanomachines (that it itself is responsible for providing the code for creating) to be useful even exists, let alone how it was made.
How many happy accidents would it take to create cloudflare? This is overwhelmingly more complex than cloudflare and yet it works, and not only works robustly, but with exquisite UX.
Looks like we understand it enough to say it's all a big ball of mud[1], at least based on that SO comment. Or are you saying that the comment is wrong? And yes, the effect is more complex than cloudflare. Then again, it is a ~6Gb (~0.85GB) executable blob[2]; this doesn't include the training sets and it took a bit to get there. Who knows, if cloudflare spent 4.5 billion years and a whole planet of resources on their next version, the result might have exquisite UX too (plus an ability to write tangental HN comments, and many more).
Related 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.
Here, 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)
Thanks 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.
I 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.
The 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.
Well, 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.
This is more likely a result of neural networks being very general: General in the sense that they are able to approximate/model a lot of dynamic systems that allow operadic composition.
It's still an interesting fact that evolution seems to have figured out that neural networks are good at approximating arbitrary continuous functions. We could ask whether intelligent alien species are likely to use neural nets. In other words, are neural nets universal in some sense, or are they contingent to how life evolved on Earth?
Yes it was nature that figured out ai neural nets are efficient not humans implementing algorithms that found out that nature makes efficient use of neural nets. Aliens will first have to make contant and dully learn how to use neural nets to develop intelligence. A catch 22.
What I mean by aliens using neural nets is that we don't know what percent of evolved intelligent species would have neural nets as an integral part of their cognition like we do. And we don't know what alternative paths there are to the evolution of intelligence.
I think the way life is built on earth is the rule throughout the universe. For any type of organic “computation” there needs to be something similar to a neural net. Perhaps a different “implementation” but it should be largely the same.
Yeah, the amazing thing though is how such a simple concept can emerge into a very complex behaviour and intelligence.
And the fact that we know that and now have proof in terms of intelligence of ChatGPT, is to me pretty clear that achieving AGI is possible if you crack the way to structure your neural network.
Corporations tried selling us intelligent fridges for decades. It doesnt mean it was true. Nor does it mean a procedural text generator is intelligent. It performs well at emulating intelligence but it’s about as intelligent as a rock - it can be used intelligently but on its own it does nothing.
From what I understand, Gene Regulatory Network [1] works very differently from Biological Neural Circuits [2]. Finally, Perceptron used in computers [3] is based on arithmetic operations and is again different from any of those two biological mechanisms. However, perceptron appears to be a good tool to model functions that depends on a large number of parameters.
What we may infer from that is that after a lot of time of evolution, functions depending on a lot of parameters appear. Yet Biological Neural Circuits seem quite bad at approximating simple continuous functions such as the multiplication between two numbers.
Gene Neural Network and Biological Neural Circuit are quite impressive structures considering their size, materials, and energy constraints. However if you allow bigger size, more energy, and faster conducting materials, it should be possible to do have faster modeling tools.
Moreover, to better take into account non-linear functions, my two cents is that Perceptrons could be further enhanced using piecewise polynomial functions instead of piecewise linear functions [4,5].
To me it seems like the fundamental idea is still the same. You have nodes that are connected to each other with strengths that can change according to feedback and complicated logic emerges from that.
That seems like almost fundamental emergent idea that is behind all the intelligence in the World.
It seems to allow for intelligence to occur, without this type of concept everything would just be random and chaotic.
The point is, how amazing it is that complicated behaviour can arise from this simple idea.
At this point it seems, that neural networks should really be taught at schools as soon as possible.
> That seems like almost fundamental emergent idea that is behind all the intelligence in the World.
That is indeed quite nice, yet intelligence seems much more diverse in biological organisms and not always reduced to nodes and edge strengths. The nodes and edges are a way to store data and to modify it that seems particularly well adapted mechanisms based on electricity.
On the other hand, there exists other very different (and slower) biological intelligent mechanisms that are not based on electricity. For example, a tree is perfectly adapted to its environment, capable of taking energy from the sun, materials from the ground, transform it, and so on. Yet the intelligent mechanism that created trees is not based on neural networks as far as I understand it. In this mechanism, the data is stored in DNA, and DNA can be rewriten at each new generation. It is a completely different (and slower) approach.
Finally I agree that the emergence of fast intelligence through neural network is incredible, although for me the first impressive advance is the use of the electricity to speed up the information exchange. The arrangements in nodes and edges could follow naturally from the fact that the transmission of electric signals works better through 1D circuits. The second impressive advance is the way the networks are layered. This is critical and very difficult to have an arrangement of edges and nodes that can both be trained and inferred efficiently. Without the proper arrangement, a biological neural network or a computer circuit is much less intelligent.
Finally in the future we could imagine intelligent mechanisms based on quantum mechanics for example. In this case, it would probably be vastly different from nodes and edges, due to the underlying physical constraints that are different in electricity and in quantum mechanics.
tldr: yes nodes and edges seem fundamental in fast intelligence based on electricity, but other very different intelligent mechanism exist in biological organisms, and other very different intelligent mechanisms could still be invented in the future.
Just a sidebar here, I think the urge to jump to esoteric conclusions is very strong because we are (rightly) trained to not expect that nature at large uses the same tools that we have developed. So its very validating (and also kind of unnerving) when we do find the suggestion that we're "right" at a more fundamental level.
Consider that the uncertainty relations in physics fall neatly out of Fourier Analysis, which could suggest that the universe also does Fourier Analysis to figure out where things are and how fast they're going. But really, its that classical interaction is a sort of mechanical Fourier transform.
I think that moment where it feels like we brush against the real clockwork of the universe has an eldritch, cosmic-horror quality to it, which is both addictive and maddening.
Sure, nothing profound about trillion-strong fleets of self replicating nanobots controlled by chemical computers processing high dimension data about their environments with complex entanglements giving rise to specialized clusters of information processing neural masses, capable of then communicating with other similar entities, building knowledge about data processing and storage over millennia, starting with clay tablets and ending up with advanced machinery that can be used to create elaborate patterns of data flows that can help us peer through the universe, inside our bodies, understand in intricate detail everything that happens across billions of light years and over billions of years.
Nothing profound at all about any of that. Just very general structures.
Yes 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.
Synthetic 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].
Any tips or "get your foot in the door" advice on how someone currently in a CS career, but interested in biology could make this career transition? As a simple CS-minded person, I don't see any LeetCode for synthetic biology sites :)
Reading life science textbooks and substacks is a great way to get started (see [1], [2]).
Also, there is a major deficit of software engineering talent in biology research (probably because pro SWEs are too expensive for academic labs, and those labs are where much of the foundational research is done). If you have the bandwidth, part time / volunteer work with an academic lab in your area could be a great way in the door.
I'm imagining a biological variant of eg. Verilog or VHDL, as this seems like the kind of domain where tools that allow for formal verification would be highly desirable.
This has actually been done for genetic circuits in E coli (bacteria) by Chris Voight's lab at MIT. Their platform is called Cello [1], and it enables interoperation between Verilog/HDL and genetic code. This kind of thing has not yet reached practical utility in human cell engineering, but companies like Asimov [2] are pushing hard in that direction
In systems biology textbooks, these networks are typically described more as alike logic gates than as neural networks, although some similarities are there for sure.
The GRNs are a bit more dynamic than strictly on/off, but the fact they have multiple types of interaction, such as enhancers and inhibitors, means they can model logical gates better than I understand a typical neural network can.
All 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.).
IF-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?"
What 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.
In 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.
Fascinating. 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.
Carroll 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.
I 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.
I’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.
I bet there is way more quantum phenomena reasons involved in why that system was selected for being less fragile and having better stability/survaibability for a wider range of cases.
Thinking in classical compute terms there is like asking for robots that inevitably break without the slightest chance of self repair, much less do it at minimal effort.
Yeah I think there's a paper about how brains most likely represent some things with quantum states which may explain why we don't understand them yet.
There are many such papers. However they need to be understood as extremely speculative, if not outright woo-woo, as there is currently no reason to believe that the brain is capable of maintaining any sort of even modestly-large-scale entanglement properties.
These papers, and people commenting on them, also often appear to believe that just finding that entanglement is happening would itself mean something; it's not hard to read them as basically saying "and we found the 'Here There Be Magic' in the brain!" They don't even seem to speculate as to what the entanglement and "quantum" would be doing. What visible difference would it make versus a non-"quantum" brain? How could we determine that the brain is using "quantum" to do something that could not otherwise be explained or is somehow irreducible to some otherwise-classical phenomenon? Not only do I not see answers, not only do I not even really see theories, I don't even see much recognition that the question exists.
We have quantum computers right now. They are small, but they are fully quantum. They don't do anything by virtue of their quantumness. They aren't sitting there being ambiently quantum. They have to be set up, then executed, then answers read out, and the way in which they deviate from non-quantum computers is actually perfectly mathematically characterizable. And it is not clear to me exactly how those differences are supposed to be useful to describing how a brain works even if functioning quantum computers can be found. Basically, the problem of how a brain works is so vast that the question of whether or not it has some sort of quantum computer in it sinks without a trace, and certainly without providing any sort of explanation at the present time.
People are desperate for "quantum" to be involved in the brain because it's the only possible way to resolve "Physical processes are mostly deterministic" -> "The brain is a physical process" -> "A deterministic brain means truly no free will, which has serious philosophical and ethical implications".
> 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.
It doesn't matter what Turing-complete model you have; they are all equivalent, even if exponentially slower than another. And no, binary logic is not the most abstracted version possible. Clearly lambda calculus is....ok, just kidding. You can build a universal computer out of just two stacks, out of subtract-and-jump-if-zero, and a lot of other things. (https://gwern.net/turing-complete)
I don't think computer scientists really think that binary logic is the only computation paradigm that makes sense, it just happens to be one that we can make extremely fast and extremely reliable realizations of using electronic circuits. It's been phenomenally successful.
Is it not true that some of the confusion stems from the mistaken idea that DNA is computing/computable? One might make logic gates out of plumbing, but the plumbing at my house isn't some 0.1Hz computing device, it's indoor water so I can boil pasta, brush my teeth, and flush away smelly waste.
DNA's primary (though maybe not only) function is to act as a blueprint for constructing proteins. What little logic exists in it naturally has to do with conditionally expressing those only when it is advantageous to the organism. That's not necessarily the same thing as a logical if.
I don't think GP implied that you cannot simulate cell chemistry on a Turing complete machine to a reasonable accuracy given enough resources. I think the point was that you can't think of genes as logic gates.
> I think a lot of computer scientists assume that their model of the world (binary logic) is the most abstracted version possible
This is a giant problem with software engineers, which makes us quite obnoxious.
We have mental models that work for understanding computers, and then go misapply that those models to everything else in the universe. Frequently that turns into arrogance, by insisting the right way to think anything is in computer-terms, and every other way of thinking is inferior and wrong. Then you get stuff like Engineer's Disease, where you get some software guy lecturing actual experts in other fields about how they're doing it all wrong, or declaring alien fields to be nonsense because they're different.
Alternative splicing is another way of including IF statements. Depending on many conditions some parts of the RNA might be added/removed before the translation
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
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
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"
203 comments
[ 4.7 ms ] story [ 239 ms ] threadI'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."
tl;dr: selenocysteine doesn't have a normal coding as a base triple, but as re-interpretation of a stop codon due to the information stored _after_ that stop codon that makes an RNA stick to itself during translation.
Kind of like "de Bruijn sequences" which can be used to reduce the total length of brute force attacks on pins.
The beginning is the end is the beginning.
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
[2] https://en.wikipedia.org/wiki/HIV_ribosomal_frameshift_signa...
For the CS people who don’t understand what this means, a rough analogy is that HIV does something like steganography to encode two proteins in one gene.
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?
Can you share what you mean by this?
Evolution is about mutations when the executable file is copied.
You own cells mutate over your lifetime and the mutations may trigger genetic features across your entire body. Sometimes, these mutations cause errors that we call cancer, but not always.
Evolution is when a certain genetic feature provides better fitness (which doesn't necessarily have to come from a mutation), and then gets selected through mating. For example, if suddenly people with brown hair were a better mate, it would be much more likely for the next generation to have brown hair, until non-brown hair were "evolved" out of the gene pool completely and it would be impossible to not have brown hair.
This is how we got orange carrots, which are distinct from the previous non-orange carrots, for example.
My comment referred to OP's association of evolution with errors in genetic encoding and expression, hence my quote.
An organism is a collection a billions of threads all running the same code but starting at seemingly random entry points. Before dying, each thread forks one or more threads (depending on external factors like available memory).
In order to reproduce, the “father” code sends a copy of its current code, but only the bottom word of every byte. The “mother” program combines this with the top word of every byte and then executes it in a chroot jail to make sure it will actually run. Once it is confident it will run, it “births” it onto its own machine.
Every thread in this process is running on non-ECC memory, with cosmic rays bit-flipping things, though there are threads running around making fixes to broken threads (actually, just killing them before they can fork).
The implementation of the threads isn’t relevant here (such as modeling proteins, atp pumps, and such).
In this, evolution fitness would be less cancer (fork bombs), doing usable work, successfully mating, etc. This evolution pressure might look like preventing mating until the program is a certain age or performed certain milestones and a “score” of how well it has done its work (both partners want a good “life score” but not too high — liars could exist! — to proceed with mating).
Evolution would occur naturally over many generations. From one generation to the next, they look nearly identical, but from hundreds of generations they might look identical, or not. The “not” part is evolution.
The reason for the probabilistic nature is that biological "computations" are eletrochemical reactions and feedback loops, which do not map very well to the concept of "executing code" as in programming languages. I think a closer analogy could be a hardware description language that sythesizes analog circuits for computations (cf. analog computers) which are then subject to noise from electromagnetic radiations in the environment.
So in a certain sense, this has already been done in a very rudimentary way during the pre-digital age of computing.
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.
https://www.ibm.com/topics/neural-networks#:~:text=Their%20n...
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.
It is for the dominant computing paradigm currently in use, but that isn't a universal truth. As I understand it, we use binary logic primarily because it's more tractable for humans to think about and work with, not because it's the only option or even the best option in all cases. For instance there are plenty of analog computers in history, which are in some ways more closely related to biological "computers".
https://en.wikipedia.org/wiki/Analog_computer
One idea that is important (IIRC from this book) is that many examples are really inspiration, and not direct copying of design. Biology works very differently to human machines, with very different constraints, so when engineers and designers try to stick too closely to the biological original, it may not work out very well!
https://arxiv.org/pdf/1307.4186.pdf
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.
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.
[1]: https://en.wikipedia.org/wiki/Anti-pattern#Big_ball_of_mud
[2]: "In humans, the total female diploid nuclear genome per cell extends for 6.37 Gigabase pairs (Gbp)", https://en.wikipedia.org/wiki/DNA#Amount
[1]: https://www.youtube.com/watch?v=ObvxPSQNMGc
[2]: https://pubs.acs.org/doi/10.1021/acs.chemrev.5b00146
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"
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)
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
[2] https://en.wikipedia.org/wiki/Kabuki_syndrome
[3] https://www.youtube.com/watch?v=EcGM_cNzQmE
> 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
This is more likely a result of neural networks being very general: General in the sense that they are able to approximate/model a lot of dynamic systems that allow operadic composition.
And the fact that we know that and now have proof in terms of intelligence of ChatGPT, is to me pretty clear that achieving AGI is possible if you crack the way to structure your neural network.
What.
It's definitely not human intelligence if that's what you are wondering.
What we may infer from that is that after a lot of time of evolution, functions depending on a lot of parameters appear. Yet Biological Neural Circuits seem quite bad at approximating simple continuous functions such as the multiplication between two numbers.
Gene Neural Network and Biological Neural Circuit are quite impressive structures considering their size, materials, and energy constraints. However if you allow bigger size, more energy, and faster conducting materials, it should be possible to do have faster modeling tools.
Moreover, to better take into account non-linear functions, my two cents is that Perceptrons could be further enhanced using piecewise polynomial functions instead of piecewise linear functions [4,5].
[1]: https://en.wikipedia.org/wiki/Gene_regulatory_network
[2]: https://en.wikipedia.org/wiki/Neural_circuit
[3]: https://en.wikipedia.org/wiki/Perceptron
[4]: https://doi.org/10.1109/TPAMI.2021.3058891
[5]: https://doi.org/10.1109/TPAMI.2022.3231971
That seems like almost fundamental emergent idea that is behind all the intelligence in the World.
It seems to allow for intelligence to occur, without this type of concept everything would just be random and chaotic.
The point is, how amazing it is that complicated behaviour can arise from this simple idea.
At this point it seems, that neural networks should really be taught at schools as soon as possible.
That is indeed quite nice, yet intelligence seems much more diverse in biological organisms and not always reduced to nodes and edge strengths. The nodes and edges are a way to store data and to modify it that seems particularly well adapted mechanisms based on electricity.
On the other hand, there exists other very different (and slower) biological intelligent mechanisms that are not based on electricity. For example, a tree is perfectly adapted to its environment, capable of taking energy from the sun, materials from the ground, transform it, and so on. Yet the intelligent mechanism that created trees is not based on neural networks as far as I understand it. In this mechanism, the data is stored in DNA, and DNA can be rewriten at each new generation. It is a completely different (and slower) approach.
Finally I agree that the emergence of fast intelligence through neural network is incredible, although for me the first impressive advance is the use of the electricity to speed up the information exchange. The arrangements in nodes and edges could follow naturally from the fact that the transmission of electric signals works better through 1D circuits. The second impressive advance is the way the networks are layered. This is critical and very difficult to have an arrangement of edges and nodes that can both be trained and inferred efficiently. Without the proper arrangement, a biological neural network or a computer circuit is much less intelligent.
Finally in the future we could imagine intelligent mechanisms based on quantum mechanics for example. In this case, it would probably be vastly different from nodes and edges, due to the underlying physical constraints that are different in electricity and in quantum mechanics.
tldr: yes nodes and edges seem fundamental in fast intelligence based on electricity, but other very different intelligent mechanism exist in biological organisms, and other very different intelligent mechanisms could still be invented in the future.
Consider that the uncertainty relations in physics fall neatly out of Fourier Analysis, which could suggest that the universe also does Fourier Analysis to figure out where things are and how fast they're going. But really, its that classical interaction is a sort of mechanical Fourier transform.
I think that moment where it feels like we brush against the real clockwork of the universe has an eldritch, cosmic-horror quality to it, which is both addictive and maddening.
Nothing profound at all about any of that. Just very general structures.
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.
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/ [2]: https://arsenalbio.com/2023/05/16/arsenalbio-announces-prese...
Also, there is a major deficit of software engineering talent in biology research (probably because pro SWEs are too expensive for academic labs, and those labs are where much of the foundational research is done). If you have the bandwidth, part time / volunteer work with an academic lab in your area could be a great way in the door.
[1] https://centuryofbio.com/
[2] https://substack.com/profile/11154869-niko-mccarty
I'm imagining a biological variant of eg. Verilog or VHDL, as this seems like the kind of domain where tools that allow for formal verification would be highly desirable.
[1] https://www.cidarlab.org/cello
[2] https://www.asimov.com/
The GRNs are a bit more dynamic than strictly on/off, but the fact they have multiple types of interaction, such as enhancers and inhibitors, means they can model logical gates better than I understand a typical neural network can.
Reading...
https://en.wikipedia.org/wiki/Cre-Lox_recombination?wprov=sf...
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/PMC4772104/
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?"
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
[2] Probabilistic switching circuits: https://www.pnas.org/doi/full/10.1073/pnas.1715926115
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.
Thinking in classical compute terms there is like asking for robots that inevitably break without the slightest chance of self repair, much less do it at minimal effort.
These papers, and people commenting on them, also often appear to believe that just finding that entanglement is happening would itself mean something; it's not hard to read them as basically saying "and we found the 'Here There Be Magic' in the brain!" They don't even seem to speculate as to what the entanglement and "quantum" would be doing. What visible difference would it make versus a non-"quantum" brain? How could we determine that the brain is using "quantum" to do something that could not otherwise be explained or is somehow irreducible to some otherwise-classical phenomenon? Not only do I not see answers, not only do I not even really see theories, I don't even see much recognition that the question exists.
We have quantum computers right now. They are small, but they are fully quantum. They don't do anything by virtue of their quantumness. They aren't sitting there being ambiently quantum. They have to be set up, then executed, then answers read out, and the way in which they deviate from non-quantum computers is actually perfectly mathematically characterizable. And it is not clear to me exactly how those differences are supposed to be useful to describing how a brain works even if functioning quantum computers can be found. Basically, the problem of how a brain works is so vast that the question of whether or not it has some sort of quantum computer in it sinks without a trace, and certainly without providing any sort of explanation at the present time.
Dr. Stuart Hameroff comes to mind [1]
His hypothesis is the "less incorrect" I've heard of.
[1] https://www.youtube.com/watch?v=YpUVot-4GPM&list=PLOfMRzYBxE...
It doesn't matter what Turing-complete model you have; they are all equivalent, even if exponentially slower than another. And no, binary logic is not the most abstracted version possible. Clearly lambda calculus is....ok, just kidding. You can build a universal computer out of just two stacks, out of subtract-and-jump-if-zero, and a lot of other things. (https://gwern.net/turing-complete)
I don't think computer scientists really think that binary logic is the only computation paradigm that makes sense, it just happens to be one that we can make extremely fast and extremely reliable realizations of using electronic circuits. It's been phenomenally successful.
DNA's primary (though maybe not only) function is to act as a blueprint for constructing proteins. What little logic exists in it naturally has to do with conditionally expressing those only when it is advantageous to the organism. That's not necessarily the same thing as a logical if.
Biology is analog, which is a whole different ballgame compared Turing completeness. And extremely hard to replicate with digital paradigms
This is a giant problem with software engineers, which makes us quite obnoxious.
We have mental models that work for understanding computers, and then go misapply that those models to everything else in the universe. Frequently that turns into arrogance, by insisting the right way to think anything is in computer-terms, and every other way of thinking is inferior and wrong. Then you get stuff like Engineer's Disease, where you get some software guy lecturing actual experts in other fields about how they're doing it all wrong, or declaring alien fields to be nonsense because they're different.
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
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
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"