text: user4806: Question moved here from the biology stack exchange.
  It looks like the genome is a kind of LISP language.
  Operon structure of genome:
  - https://github.com/philschatz/microbiology-book/blob/master/resources/OSC_Microbio_11_07_Operon.jpg
  LISP function structure:
  - http://support.ircam.fr/docs/om/om6-manual/res/listprefix.png
  Nested genes:
  - https://player.slideplayer.com/31/9782148/data/images/img11.jpg
  Nested LISP cons cells:
  - https://www.tutorialspoint.com/lisp/images/treestructure.jpg
  The basic similarity I am seeing is of general structure: (func var0 var1 ... varn) and nested cons cells.
  The correspondence with genome structure is the operon portion, which has:
  
  operator = function
  structural genes = variables
  structural genes can be nested like cons cells
  
  Is this a global structure for the genome, then a specific prediction is we can do something simple like counting open and close markers in the nested genes and they will be equal.
  So, why would such a correspondence matter, if true?  The basic idea is that if the LISP structure is consistent, then we could maybe look for other programming constructs built on the structure, such as recursion/looping, maybe templating or even object oriented programming. Or just identify simple properties like balanced opening closing markers. The mere fact it has a LISP structure would be fascinating if true.  And since LISP is essentially an abstract syntax tree (AST), which all programming languages have, perhaps this structure I see in the genome is actually an AST, which implies an even more fundamental correspondence between the genome and programming languages.
  More generally, we have a wealth of knowledge reverse engineering human programming languages.  If the genome is also a programming language similar in some respects to human programming languages, such as being a LISP variant, then we could apply this same reverse engineering knowledge base to better understand the genome.
  So, first of all, is my high level observation correct?  Does the genome, at least for bacteria, have a global LISP like structure?  If yes, then if the genome is a kind of programming language, i.e. LISP, can we analyze it like software to understand its functionality?  Has anyone done this before?  Simple searching on Google Scholar turns up lots of software for analyzing genomes, but nothing about analyzing the genome as software.  It would be interesting to know whether anyone has seriously examined the question before, and either made some useful discoveries, or found out there is only a very loose analogy with programming languages, and thus knowledge regarding programming languages is not of use regarding the genome.
  Hopefully this question is clear enough now, if not please ask me for further clarification.  I would like to get some sort of decent answer.
  UPDATE: Someone who has put thought into "DNA is code" idea.  At a more general level than whether specific genome structures match specific programming structures.
  UPDATE #2: The late Scott Federhen of NCBI wrote an article comparing genomic replication with the lambda operator.
  UPDATE #3: It might be the case that LISP was inspired by the genome.
  
  user48: You mention this as the base similarity you find:
  
  operator = function
         structural genes = variables
         structural genes can be nested like cons cells
  
  As other has pointed, this just considers the genome as a sequence of where only the linear order is important. It doesn't take into account other things that happen on the genome that are know to affect the cells like the chromatin structure, the duplication of certain regions, the transversion, the effect of moving elements, methylation, or simply that a single gene can have multiple functions (pleiotropism, moonlighting) while a programming function does not. 
  Even if we considered it as code, certainly by using tools like HMM we could also learn more about the structure of the genes we have. While certainly, we need more tools than just the sequence to discover what does each gene do. 
  There are a lot more differences than similarities on this comparison, it can be helpful for certain aspects but it fails for other aspects of cells (without even going into the virus discussion or the mitochondrial). 
  
  user298: 
  So, first of all, is my high level observation correct? Does the genome, at least for bacteria, have a global LISP like structure? 
  
  No. I'm afraid this is what it boils down to. I don't see any real similarity to LISP or other programming languages at all. Perhaps it would be clearer if you could explain in detail why you think they're similar, but as it stands, no, there is no such structure apart from a very simplistic similarity which is sort of the same as saying that the genome is like a car because it carries genes and could therefore be studied by a car mechanic.
  
  user4818: I see what the metaphor has been inspired by, where I think it got turned around, and might have a better one.
  I'd like to back up a bit and establish some common ground.  It isn't wrong to expect that some aspects of genetic code and software code are similar, and while biology is usually very specific, some aspects can be seen productively from the light of computer science ideas.  For example, mass-action molecular dynamics, which are often a good model for protein interactions, are Turing-complete.  Here's a fun example where people have written a programming language out of molecular dynamics:  https://arxiv.org/abs/1809.07430
  It's also true that proteins have particular substructures leading to certain functions, such as using alpha-helices to react less with the outside world.  Learning about larger substructures, called protein domains, help identify the functions of families of proteins.  
  The problem is that the parts of the genome which appear nested like LISP cells actually aren't included in the protein.  The regulatory regions, promoters, inhibitors, introns, and so forth never become part of the key "computational" machinery.  This nesting isn't actively part of the computational activity proteins do perform.  The main quality of LISP is that the structure and function are perfectly self-similar throughout an expression, but the structure of the regulatory regions are neither replicated down into the protein nor are necessarily recapitulated on a larger scale.
  Unfortunately, we don't expect the computational structure of proteins to be the same from one protein to another.  This is because "binds only with X" and "binds only with Y" must be implemented differently to successfully be distinct operations, and it is these binding constraints by which molecular dynamics implement "computational" operations, such as "not X" and "not Y", and so those are distinct as well.  
  I think a better way to think about the regular structures of the regulatory apparatus is more like a network protocol.  Along an otherwise undifferentiated binary channel, one has to identify when and where the data is delivered to an application.  Similarly, along a strand of bases, the machinery of translation has to have an indication of where the "application" of the protein starts and ends, and when that protein should be delivered to the cell.  We might compare some of the images of genetic structure that provided in the original question with layouts of network headers: http://slideplayer.com/slide/4798836/15/images/16/TCP/IP+Packet+Structures.jpg  We might compare bacterial versus multi-cellular regulation as having different delivery mechanisms and data structures for delivering the application information, for different functional consequences, in the same way TCP and UDP have different structures for different trade-offs.
  This is all complicated somewhat by the fact that proteins do then interact with the regulation of genes, leading to interesting "computational" dynamics such as feed-forward regulation.  However, I'm not aware of any particular structure of the regulatory apparatus that necessarily correlates with these larger functional patterns.  The opposite is frequently biologically useful: the same structure of a protein helping to activate one gene might simultaneously inhibit another.
  One book I've found very accessible and useful in understanding where computation is useful biologically is Dennis Bray's "Wetware: a computer in every living cell".  It gave me a clearer picture of how computation occurs in cells.  That should open up some introductions to systems biology which explains the biological-role of larger molecular "computational" patterns.
  
original_text: 4806: <p>Question moved here from the <a href="https://biology.stackexchange.com/questions/85289/is-the-genome-a-programming-language-e-g-like-lisp-can-we-analyze-it-as-soft/">biology stack exchange</a>.</p>
  
  <p>It looks like the genome is a kind of LISP language.</p>
  
  <p>Operon structure of genome:
  - <a href="https://github.com/philschatz/microbiology-book/blob/master/resources/OSC_Microbio_11_07_Operon.jpg" rel="nofollow noreferrer">https://github.com/philschatz/microbiology-book/blob/master/resources/OSC_Microbio_11_07_Operon.jpg</a></p>
  
  <p>LISP function structure:
  - <a href="http://support.ircam.fr/docs/om/om6-manual/res/listprefix.png" rel="nofollow noreferrer">http://support.ircam.fr/docs/om/om6-manual/res/listprefix.png</a></p>
  
  <p>Nested genes:
  - <a href="https://player.slideplayer.com/31/9782148/data/images/img11.jpg" rel="nofollow noreferrer">https://player.slideplayer.com/31/9782148/data/images/img11.jpg</a></p>
  
  <p>Nested LISP cons cells:
  - <a href="https://www.tutorialspoint.com/lisp/images/treestructure.jpg" rel="nofollow noreferrer">https://www.tutorialspoint.com/lisp/images/treestructure.jpg</a></p>
  
  <p>The basic similarity I am seeing is of general structure: (func var0 var1 ... varn) and nested cons cells.</p>
  
  <p>The correspondence with genome structure is the operon portion, which has:</p>
  
  <ul>
  <li><p>operator = function</p></li>
  <li><p>structural genes = variables</p></li>
  <li><p>structural genes can be nested like cons cells</p></li>
  </ul>
  
  <p>Is this a global structure for the genome, then a specific prediction is we can do something simple like counting open and close markers in the nested genes and they will be equal.</p>
  
  <p>So, why would such a correspondence matter, if true?  The basic idea is that if the LISP structure is consistent, then we could maybe look for other programming constructs built on the structure, such as recursion/looping, maybe templating or even object oriented programming. Or just identify simple properties like balanced opening closing markers. The mere fact it has a LISP structure would be fascinating if true.  And since LISP is essentially an abstract syntax tree (AST), which all programming languages have, perhaps this structure I see in the genome is actually an AST, which implies an even more fundamental correspondence between the genome and programming languages.</p>
  
  <p>More generally, we have a wealth of knowledge reverse engineering human programming languages.  If the genome is also a programming language similar in some respects to human programming languages, such as being a LISP variant, then we could apply this same reverse engineering knowledge base to better understand the genome.</p>
  
  <p>So, first of all, is my high level observation correct?  Does the genome, at least for bacteria, have a global LISP like structure?  If yes, then if the genome is a kind of programming language, i.e. LISP, can we analyze it like software to understand its functionality?  Has anyone done this before?  Simple searching on Google Scholar turns up lots of software for analyzing genomes, but nothing about analyzing the genome as software.  It would be interesting to know whether anyone has seriously examined the question before, and either made some useful discoveries, or found out there is only a very loose analogy with programming languages, and thus knowledge regarding programming languages is not of use regarding the genome.</p>
  
  <p>Hopefully this question is clear enough now, if not please ask me for further clarification.  I would like to get some sort of decent answer.</p>
  
  <p>UPDATE: <a href="https://ds9a.nl/amazing-dna/" rel="nofollow noreferrer">Someone</a> who has put thought into "DNA is code" idea.  At a more general level than whether specific genome structures match specific programming structures.</p>
  
  <p>UPDATE #2: The late Scott Federhen of NCBI wrote an article <a href="https://www.biorxiv.org/content/biorxiv/early/2015/05/01/018804.full.pdf" rel="nofollow noreferrer">comparing genomic replication with the lambda operator</a>.</p>
  
  <p>UPDATE #3: It might be the case that <a href="https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/robust-systems.pdf" rel="nofollow noreferrer">LISP was inspired by the genome</a>.</p>
   48: <p>You mention this as the base similarity you find:</p>
  
  <blockquote>
    <p>operator = function<br>
         structural genes = variables<br>
         structural genes can be nested like cons cells</p>
  </blockquote>
  
  <p>As other has pointed, this just considers the genome as a sequence of where only the linear order is important. It doesn't take into account other things that happen on the genome that are know to affect the cells like the chromatin structure, the duplication of certain regions, the transversion, the effect of moving elements, methylation, or simply that a single gene can have multiple functions (pleiotropism, moonlighting) while a programming function does not. </p>
  
  <p>Even if we considered it as code, certainly by using tools like HMM we could also learn more about the structure of the genes we have. While certainly, we need more tools than just the sequence to discover what does each gene do. </p>
  
  <p>There are a lot more differences than similarities on this comparison, it can be helpful for certain aspects but it fails for other aspects of cells (without even going into the virus discussion or the mitochondrial). </p>
   298: <blockquote>
    <p>So, first of all, is my high level observation correct? Does the genome, at least for bacteria, have a global LISP like structure? </p>
  </blockquote>
  
  <p>No. I'm afraid this is what it boils down to. I don't see any real similarity to LISP or other programming languages at all. Perhaps it would be clearer if you could explain <em>in detail</em> why you think they're similar, but as it stands, no, there is no such structure apart from a very simplistic similarity which is sort of the same as saying that the genome is like a car because it carries genes and could therefore be studied by a car mechanic.</p>
   4818: <p>I see what the metaphor has been inspired by, where I think it got turned around, and might have a better one.</p>
  
  <p>I'd like to back up a bit and establish some common ground.  It isn't wrong to expect that some aspects of genetic code and software code are similar, and while biology is usually very specific, some aspects can be seen productively from the light of computer science ideas.  For example, mass-action molecular dynamics, which are often a good model for protein interactions, are Turing-complete.  Here's a fun example where people have written a programming language out of molecular dynamics:  <a href="https://arxiv.org/abs/1809.07430" rel="noreferrer">https://arxiv.org/abs/1809.07430</a></p>
  
  <p>It's also true that proteins have particular substructures leading to certain functions, such as using alpha-helices to react less with the outside world.  Learning about larger substructures, called protein domains, help identify the functions of families of proteins.  </p>
  
  <p>The problem is that the parts of the genome which appear nested like LISP cells actually aren't included in the protein.  The regulatory regions, promoters, inhibitors, introns, and so forth never become part of the key "computational" machinery.  This nesting isn't actively part of the computational activity proteins do perform.  The main quality of LISP is that the structure and function are perfectly self-similar throughout an expression, but the structure of the regulatory regions are neither replicated down into the protein nor are necessarily recapitulated on a larger scale.</p>
  
  <p>Unfortunately, we don't expect the computational structure of proteins to be the same from one protein to another.  This is because "binds only with X" and "binds only with Y" must be implemented differently to successfully be distinct operations, and it is these binding constraints by which molecular dynamics implement "computational" operations, such as "not X" and "not Y", and so those are distinct as well.  </p>
  
  <p>I think a better way to think about the regular structures of the regulatory apparatus is more like a network protocol.  Along an otherwise undifferentiated binary channel, one has to identify when and where the data is delivered to an application.  Similarly, along a strand of bases, the machinery of translation has to have an indication of where the "application" of the protein starts and ends, and when that protein should be delivered to the cell.  We might compare some of the images of genetic structure that provided in the original question with layouts of network headers: <a href="http://slideplayer.com/slide/4798836/15/images/16/TCP/IP+Packet+Structures.jpg" rel="noreferrer">http://slideplayer.com/slide/4798836/15/images/16/TCP/IP+Packet+Structures.jpg</a>  We might compare bacterial versus multi-cellular regulation as having different delivery mechanisms and data structures for delivering the application information, for different functional consequences, in the same way TCP and UDP have different structures for different trade-offs.</p>
  
  <p>This is all complicated somewhat by the fact that proteins do then interact with the regulation of genes, leading to interesting "computational" dynamics such as feed-forward regulation.  However, I'm not aware of any particular structure of the regulatory apparatus that necessarily correlates with these larger functional patterns.  The opposite is frequently biologically useful: the same structure of a protein helping to activate one gene might simultaneously inhibit another.</p>
  
  <p>One book I've found very accessible and useful in understanding where computation is useful biologically is Dennis Bray's "Wetware: a computer in every living cell".  It gave me a clearer picture of how computation occurs in cells.  That should open up some introductions to systems biology which explains the biological-role of larger molecular "computational" patterns.</p>
  