E. coli transcriptional regulatory network and the Linux call graph

In the article

Comparing genomes to computer operating systems in terms of the topology and evolution of their regulatory control networks,

Koon-Kiu Yan, Gang Fang, Nitin Bhardwaj, Roger P. Alexander, and Mark Gerstein

PNAS May 18, 2010 107 (20) 9186-9191; https://doi.org/10.1073/pnas.0914771107

are compared the E. coli transcriptional regulatory network and the Linux call graph.

Any model of molecular based life should be able to predict these differences.

Likewise, any model of decentralized computing which is based on the same hypotheses as a model of life should be different in the same qualitative ways from the Linux call graph as this E. coli transcriptional regulatory network is.

Here are two figures from the article which I consider highly relevant.

The first one [link to source] is:

and the decription is:

“The hierarchical layout of the E. coli transcriptional regulatory network and the Linux call graph. (Left) The transcriptional regulatory network of E. coli. (Right) The call graph of the Linux Kernel. Nodes are classified into three categories on the basis of their location in the hierarchy: master regulators (nodes with zero in-degree, Yellow), workhorses (nodes with zero out-degree, Green), and middle managers (nodes with nonzero in- and out-degree, Purple). Persistent genes and persistent functions (as defined in the main text) are shown in a larger size. The majority of persistent genes are located at the workhorse level, but persistent functions are underrepresented in the workhorse level. For easy visualization of the Linux call graph, we sampled 10% of the nodes for display. Under the sampling, the relative portion of nodes in the three levels and the ratio between persistent and nonpersistent nodes are preserved compared to the original network. The entire E. coli transcriptional regulatory network is displayed.”

What are “persistent functions” and “persistent genes”:

“In the Linux kernel […] {persistent functions are] defined as those that exist in every version of software development. Persistent functions in software systems are analogous to persistent genes in biological systems, which are genes that are consistently present in a large number of genomes.”

The article says that most of the persistent genes are down in the hierarchy, at the “workhorse” level, their aparently analogous persistent functions are spread in the Linux kernel at all levels, but mostly towards the top.

The second figure is about the modularity. [link to source]

In the graphs, they look for the average overlap between the nodes which are on the downside of two master nodes, and also they look for the average node reuse.

The problem as I understand it is not why the Linux graph is as it is, because it is obvious: it is written by programmers, who value semantics, modularity and reuse.

The problem is why the other graph is so different. A quantitative answer is needed for any computational model of biological life. Evolutionary explanations are alike a proof by contradiction. Here contradiction would mean “not observed now”. For persistent genes the evolutionary explanation would be that (from the article):

“The idea of persistence is closely related to the rate of evolution. In biological systems, the fundamental components of life exist in every genome independently of environmental conditions. These persistent genes, say, ribosomal proteins and dnaA, are under high selective pressure and evolve very slowly.”

which seems to say that persistent genes are observable now because they evolve very slowly, due to high selective pressure. (i.e. if the persistent genes are not very important for life then random evolution would wash them out). This is a proof by contradiction, it is not constructive. Costructive proofs in well defined models of life would be very valuable, in my opinion.

Summer numerics: permutations cube

Puresee nodes are in correspondence with the 6 permutations of 3 elements. With the two extra nodes (which should not exist btw), i.e. a literary fanin and fanout, that makes 8 nodes, which can be coded in a cube. Not surprising, but fun. Summer fun.

If we look at the cube with vertices coordinates 0 or 1, there are two vertices

000

111

which we reserve for later and there remain 6 other vertices, with the property that they contain both 0 and 1. Three of them contain two 0s and one 1:

001

010

100

and the other three contain two 1s and one 0:

011

101

110

Here is the correspondence with permutations of 3 elements. Denote by e, a, b the 3 elements, as I do in puresee. Among the 6 permutations, there are 3 which have positive sign and 3 with negative sign. The 3 with positive sign correspond to nodes with the port 3 which is out (the other two ports are in) and the 3 with negative sign correspond to nodes with the port 1 which is in (the other two ports are out).

Therefore we may see the sign of the permutation encoded by the presence of two 0s (for positive permutation) or the presence of two 1s for negative permutations).

Also, in each of the 6 strings 001, 010, 100, 011, 101, 110, there is always exactly one letter which is not like the others. We take the position of this letter to encode which of the 3 elements is in port 3 (for positive permutations) or in port 1 (for negative permutations).

These two rules make the correspondence to work. Indeed, once we know the sign of the permutation and the position of one element, then there is an unique way to build the permutation of the 3 elements.

The result is therefore: positive permutations give the nodes

001 – D e a b – (123)

010 – A b e a – (312)

100 – FI a b e – (231)

and negative permutations give the nodes

011 – FOX b a e – (321)

101 – FOE e b a – (132)

110 – L a e b – (213)

In the picture positive permutation vertices are green and negative permutation pictures are red.

Phil Agre’s orbiculus

With great joy I discovered the writings of Phil Agre (via a HN post). Rather quickly I zoomed on his Writing and Representation and from there I learned about the “orbiculus”.

(Of course, just at the beginning he urges the reader: “Please do not quote from this version, which probably differs in small ways from the version that appears in print.” Just like in his story about photocopier supplies, I ignored this.)

Please read his writings!

What is an “orbiculus”? (boldfaced by me)

In the old days, philosophers accused one another of believing in someone called a homunculus — from Latin, roughly “little person”. For example, one philosopher’s account of perception might involve the mental construction of an entity that “resembled” the thing-perceived. Another philosopher would object that this entity did nothing to explain perception since it required a mental person, the homunculus, to look at it. Computational ideas appeal to these philosophers because they can imagine “discharging” the homunculus by, for example, decomposing it into a hierarchy of ever-dumber subsystems (Dennett 1978: 124).

But the argument about homunculi distracts from a deeper issue. If the homunculus repeats in miniature certain acts of its host, where does it conduct these acts? The little person lives in a little world — the host’s surroundings reconstructed in his or her head. This little world deserves a Latin word of its own. Let us call it the orbiculus. […]

AI is full of orbiculi. A “world model” is precisely an orbiculus; it’s a model of the world inside your head. Or consider the slogan of vision as “inverse optics”: visual processing takes a retinal image and reconstructs the world that produced it (Hurlbert and Poggio 1988). You’ll also find an orbiculus almost anywhere you see an AI person talk about “reasoning about X”. This X might be solid objects, time-extended processes, problem-solving situations, communicative interactions, or any of a hundred other things. “Reasoning about” X suggests a purely internal cognitive process, as opposed to more active phrases like “using” or “participating in” X. AI research on “reasoning about X” requires representations of X. These representations need to encode all the salient details of X so that computational processes can efficiently recover and manipulate them. In practice, the algorithms performing these abstract manipulations tend to require a choice between restrictive assumptions and computational intractability (see Brachman and Levesque 1984, Hopcroft and Krafft 1987).

Agre’s orbiculus is the same as the scenic space in a cartesian theater!

Here’s another relevant section:

Within the technologically informed human sciences, cognition is almost universally understood to involve the mental manipulation of assemblages of symbols called representations. These representations represent the individual’s world — they are the orbiculus. The vast majority of this research assumes symbolic representations to have certain properties. They are:

object-like (neither events nor processes),

passive (not possessing any sort of agency themselves),

static (not apt to undergo any reconfiguration, decay, or effacement, except through an outside process or a destructive act of some agent),

structured (composed of discrete, indivisible elements whose arrangement is significant in some fashion),

visible (can be inspected without thereby being modified), and

portable (capable of being transported to anyone or anything that might use them without thereby being altered or degraded).

Although the cognitivist understands symbolic representations as abstract mental entities, all of these properties are shared by written texts (Latour 1986). Words like “structured”, “inspected”, “modified”, “transported”, and “altered” are metaphors that liken abstractions inside of computers to physical materials such as paper. Observe also that most of these properties are deficient or absent for spoken utterances, which evaporate as quickly as they are issued (Derrida 1976: 20) and are only decomposed into discrete elements through complex effort. Thus we can speak of a writing metaphor for representation.

Shortly said, it took me years to arrive much later at the understanding that it’s a consequence of the Wittgenstein joke. See more in Wittgenstein and the Rhino.

What more is hidden and useful in the writings of Phil Agre? Looking forward to discover!