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.
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
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.
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.
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.
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.
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.
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.
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.
>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.
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.
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!
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.
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.
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.
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?
> 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.
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.
> 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 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.
IF 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.
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"
For 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."
IF : 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."
Maybe 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.
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.
The 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.
One 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.
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.
>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.
After 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?
I had to check Kary Mullis's wikipedia page to figure out that PCR stood for polymerase chain reaction. While there, I got the distinct impression someone who disliked him was responsible for editing quite a lot of his article.
nope, 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.
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
I 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?
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.
Global 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.
> 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.
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).
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.
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.
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.
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.
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 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.
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.
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.).
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."
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"
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.
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
Something 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.
Yep -- there was a thread a while about whether a biologist could reverse-engineer a radio, and I made the comment that electronics are designed to keep the various functions nicely decoupled, while biological systems aren't/don't, because they optimize for something else, leading them to bleed state across the entire system:
As a biologist who moved into software engineering I love working with actual machines.
You can think of a design, build it and have it work as you expect. You can’t do that in biology.
The reason is that we “understand” how computers work. Our understanding of biology is nowhere near that level. A high percentage of established knowledge is wrong or so incomplete that it’s not useful for designing new systems. This is hard for engineers or even scientists from physics and chemistry to accept.
I think another reason is that biological systems are _fantastically_ complicated - for example, we're finding that the spatial distribution of molecules within the cell affect enzymatic processes in ways that may have implications for alzheimer's and dementia. For another, there's various bacterial communities where, if you want to trace the enzymatic pathway for a particular product, you're jumping between species in the community, and not just once - that particular product is the result of multiple distinct enzymatic pathways in multiple different organisms (and whatever else exists in the environment outside the cell).
I've been a software engineer for 20 years now, I don't underestimate the complexity of computer systems or software - I think the number of people in the world who could really accurately describe every part of every system involved in showing you this note to you is maybe ten - but we've got nothing on biological systems.
I agree that biology is fantastically complicated.
When I say we “understand” everything that matters about a computer; I don’t mean one person understands. I mean each important part is understood by at least one person. Together humanity understands everything important about a computer.
Wondering if there would be an "easier" way to express something in biology/evolution, then the evolution would (already) compressed it like that.
Maybe by definition: current existing things in evolution are not "more compressable" (for us) without losing meaning? (Their meaning could be estimated though through -leaky- abstractions?)
Biology being my first love I think what really leads non-biology based scientists, engineers, designers, artists, and people generallyastray is that they can’t liberate their mind from their top down all seeing perspective.
Teleological matter are the machines you get when the vast majority of the form cannot be designed.
Years ago, someone here on HN compared evolution of the DNA to the evolution of large-scale code bases. This really stuck with me. One example that was brought up was: There is no single region in the DNA that's responsible for the human eye. More generally: The mapping between phenotype and genotype tends to be fuzzy and the individual role and impact of genes is often unclear. Now in a somewhat similar way, in large code bases the mapping between features and code can also become fuzzy, and the role of a single line of code can be surprising. There can be side effects and a ton of implicit/hidden dependencies across the code base, maybe even spooky action at a distance. As a result, product features will no longer be confined to individual code files or modules. Rather, their exact logic will spread out all across the code base, and a single line of code can affect many features at once.
The assumption that biological systems can be easily programmed or engineered has led to a lot of wasted Silicon Valley capital, misguided movements like "biohacking" and outright fraud, ranging from bogus supplements to devices promising better physical or mental health (search for "quwave defender" on Amazon or Google for one particularly noxious example).
I would argue that it is only messy because we are looking at the wrong level of abstraction with an incorrect computational model. At the end of the day, if it has inputs and produces outputs, it is a computing device (i.e. a computer).
Seems like an overly broad definition. A pizza oven has inputs and outputs but you would probably struggle to find someone willing to call it a computer.
Does it? A button is not equivalent to an input anymore than pulling down a level that initiates a process that culminates in the lighting of a candle.
Sure, 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.
The 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.)
>Code is read and maintained by humans, so it is under selection pressure to be comprehensible by human minds.
I think the opposite is actually true for code that lives in long-running projects that change hands relatively often. It seems like the safest state for code to be in is actually to be incomprehensible, so it's too "scary" for any developer to refactor. All the comprehensible code can meanwhile be safely moved around until it's eventually incomprehensible as well.
Speaking from complete naivete about biology, I wonder if there's a similar game going on with viruses and cell machinery. If the cell's processes are too "legible", then presumably they're easier for a virus to evolve to hijack.
The evolutionary pressure is a root here, but the problem isn't readability, it's the lack of abstraction.
The central dogma is DNA -> RNA -> protein, except that:
1. RNA can fold into a functional molecule
2. RNA can be spliced differently to make several different proteins
3. RNA can bind with proteins to create other functional units
4. The availability of amino acids and TRNA units within the cell affects the speed at which a protein is translated from RNA, which can affect its structure, which affects its function
5. The codon language is not guaranteed identical between organisms, which means the same RNA sequence can encode for different amino acid sequences in different organisms
And that's just in the transcription/translation machinery. That's what I mean when I say there's no abstraction: biology is a physical system, which means molecular & atomic interactions influence every level of every process.
I always find this kind of phrasing problematic due to its implicit anthrophomorphic metaphors.
Whether spaguetti code or not, I think that people often just assume that we have the capacity to understand it give the period of time between now and when humans disappear (because of evolution, a meteorite, climate change or human intervention). I am highly skeptical. Maybe, whatever species emerges after us, might have a better chance but to them we might be no different than a homo erectus is to us homo sapients.
In some way, neural networks and newer ML models seem to be going in this direction. We are starting to get faster/better results with black boxes than with if-else style code
> Brains that understand the natural world do seem to often be generally more likely to produce offspring
I would argue that the evolutionary pressure only applies to a limited level of understanding of the physical world. Think how many kids people like Stephen Hawkings have and how many poorly educated people have.
On the other hand I would argue that evolutionary pressure works differently for modern humans in the 20th century and beyond than it did for the majority of human evolution.
Sure uneducated people now often have more kids due to less contraception options/knowledge and as old age insurance.
But then again rich people have more kids than middle class because of well more money and everything that comes with it.
In any case all of this is anecdotal and emotion based because there is not much good data on this. Or maybe there is?
Do they? I am pretty sure that the vast majority of the human population is poor and not just "I can't afford an iPhone poor" but "I have no food on the table" poverty. The rich are but a tiny minority. In terms of reproduction, poor people win easily. Last time I check, rich people are more likely to be highly educated compare to anyone else and education is a predictor of reproduction rate (more education and less reproduction and less education and more reproduction).
One 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.
Yes, 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 is the general process, 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.
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.
In 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. :-)
DNA 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.
I'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.
I 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).
I'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.
No 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.
> 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