0

While modeling biochemical networks in the cell using Racket, I recognized that I use a certain model for this task. This model resembles a directed graph, with edges pointed not only to vertices but sometimes to other edges.

I wonder is there any distinct name for this kind of model?

Here is an s-expression and a corresponding picture.

(example-object
  (vertices v1 v2 v3 v4)
  (v1 e1 v2)
  (v2 e2 v3)
  (v4 e3 e1)
  (e2 e4 e3))

enter image description here

  • 4
    This would probably be more appropriate for [math.se] or [cs.se]. – Barmar Jun 24 '19 at 23:53
  • 1
    How is the e4 edge *semantically* different from one going from v2 to v2? Maybe it shares some properties with e2. Suppose this is used for representing a state transition diagram. Then perhaps e2 transitions on a certain input. Then it becomes nondeterministic, going to v3 or back to v2. But that same thing can be modeled without edge-referencing edges. Multiple edges can exist for the same input symbol: an edge going from v2 to v2 and another going to v3. – Kaz Jun 25 '19 at 00:36
  • 2
    Another angle: isn't that black dot where e4 emanates just an anonymous vertex? – Kaz Jun 25 '19 at 00:40
  • Thank you @Barmar, maybe I really should place my question on math.stackexchange as it more about mathematics than programming or algorithms – denis.shirshov Jun 25 '19 at 12:15
  • @Kaz, that's a correct reason in the case the model would represent a state transition diagram. But actually it represents regulated biochemical reactions. So e3 can be considered as a catalysis or inhibition of reaction e1 that transforms metabolite v1 to metabolite v2. Where v4 is some enzyme. The sense of e4 is harder to illustrate but this kind of relation also can be found for example in SBGN ER diagrams (https://github.com/sbgn/entity-relationships/blob/master/sbgn_ER-level1.pdf) – denis.shirshov Jun 25 '19 at 12:23
  • A dot where e4 starts could be a vertex, and then we should divide e2 in the two parts. But I don't like this kind of transformation as I would keep vertices only with a physical meaning, like molecules or genes (parts of DNA). For the model's clarity. Actually I think it is better to directly state, that one relation/interaction has influence over another, when it is a case. This seems natural. – denis.shirshov Jun 25 '19 at 12:30
  • My intuition is that this is a shorthand convention which, if formally understood, could be mapped to and from an equivalent directed graph using standard notation. As a first pass, change all of your "edges" to vertices, and connect your "vertices" to these new vertices (formerly edges). Now, you have a standard digraph that probably encodes the same information as yours but is in perfectly standard notation. Now, whether there is a name for this shorthand notation, I do not know. – Patrick87 Jun 25 '19 at 12:36
  • (if you want some vertices to have special meanings compared to others, the way this is often handled is to define the otherness of subsets of vertices externally and to define a larger structure which includes both the graph and this other information. For instance, a finite automaton has accepting and initial states, and these are specified separately from the vertices and edges, but included in the ordered 5-tuple which defines the machine) – Patrick87 Jun 25 '19 at 12:42
  • I'm voting to close this question as off-topic because this is more appropriate for [Mathematics](https://math.stackexchange.com) or [Computer Science](https://cs.stackexchange.com). – sds Jun 25 '19 at 13:25
  • @Patrick87 We also know that it maps to a directed graph from the fact that it has a Lisp S-expression representation, which is a DAG. :) – Kaz Jun 25 '19 at 17:50
  • @Patrick87 it could be mapped, but imho it is more convenient to have a separate math abstraction with such edges features. Because it looks simple and can be easy written and manipulated in the programming code without ever referencing to the graphs and graph theory. – denis.shirshov Jun 25 '19 at 20:48
  • @Kaz, that's true, it maps to a graph, maybe even in several ways. But what is the reason for such mapping? – denis.shirshov Jun 25 '19 at 20:50
  • @denis.shirshov It's similar to how any context-free language syntax, no matter how baroque, can be mapped to equivalent S-expressions. The graph is a general structure for capturing relations among objects. What you have there with edges going to edges is a new "syntactic sugar" which is representable using nothing but a graph. It conveys semantic information, but that can be preserved with – Kaz Jun 27 '19 at 20:08

1 Answers1

4

The paper linked from comments describes 3 types of components:

  1. Entities (represented by v nodes in your chart)
  2. Statements (e1 & e2)
  3. Influences (e3 & e4)

One way to represent this is to define a graph tower: level one graph $G_1$ is a graph with vertices $V_1$ and edges $E_1$. Level $n$ graph $G_n$ is a graph with vertices $V_n=V_{n-1}\cup E_{n-1}$ and edges $E_n$.

In your case the tower has just two levels:

  1. E/S graph with nodes=entities and edges=statements
  2. ES/I meta graph with nodes=elements of the E/S graph and edges=influences

PS. The reason to define the the graph tower in terms of traditional graphs is that those have been studied for long time, there are many theorems and algorithms about them, and they can be built upon in your study/manipulation of graph tower.

sds
  • 58,617
  • 29
  • 161
  • 278
  • Good notion, but still two different graphs look like complication, comparing to some single describing the model. The same is about adding extra vertices and edges to transform initial to the graph. Why should we always want to produce graph representation(s)? Even when it complicates things? – denis.shirshov Jun 25 '19 at 20:41
  • @denis.shirshov: I added a name for the object and a clarification. Is it better now? – sds Jun 25 '19 at 21:03
  • that's really would be nice. But unfortunately, names like hyper-, super- and total- graph already have their own meaning. Particularly S is a supergraph to G, if G is a subgraph to S. Currently I use the working name "regulated network", but it is also unsuitable, as "network" use to have different meaning too. – denis.shirshov Jun 25 '19 at 21:31
  • Okay, I renamed it to _graph tower_, looks like the name is sufficiently unique. Did you ask your question on Math or CS? Those sites have LaTeX so my answer would be better formatted there. – sds Jun 25 '19 at 21:52