Summary of my Research
in Computer Science and Medical Informatics
Self-reproduction is among the definitional features of life. Surprisingly, it can be obtained in software devices allowing very simple programs to make a copy of themselves. This is the main characterization of computer viruses and more generally malwares.
Self-reproduction as a complex process is something else, indeed, due to scaling and structural richness involved. John von Neumann, as one of the luminaries in the 20th century mathematics, proposed in 1952 the architecture of an abstract self-reproducing automaton: this very complex proposal stayed as a blueprint of a proof for a long time. In 1988, I devised the first computer implementation of the von Neumann’s proof (260 pages) [1,2]. I built a successful simulator of the now-famous 29-state transition rule, and I have been able to contract 260 pages of formal mathematics into a 1800-line program, itself written in the most common standard programming language.
So, my research has been a fountainhead for various specialized realizations with respect to von Neumann’s proposal in automated self-reproduction.
2.2 Classification of mutations
The concept of inheritance is central in darwinian gradualism. In 1999, I have proposed  to use the various aspects of the object-oriented inheritance to the classification of genetic mutations, allowing the encoding of their random character within a carefully limited domain.
For example, in the well-known prothrombin-thrombin coagulation cascade, the molecular evolution of this process requires simultaneously a strong stability of the triggering structure and a large variability of allowed mutations: those mutations modify the DNA sites where expression aims to inactive precursors as well as to activated enzymes. The object-oriented embedded classes and relationships enable together the necessary stable frame into which mutations can “experiment” the variability of new organisms.
2.3 Beyond the euclidean plane: cellular automata embedded into complex topological spaces
What is a cellular automaton? I will say that it is a small collection of labels called states. Some elements of the collection are scattered geometrically upon a plane surface called cellular space which is, itself, a regularly layout of cells that communicate with their close neighbors. At once, we recognize the biological metaphor underlying this abstraction introduced by John von Neumann and the great polish mathematician Stanislas Ulam.
This metaphor says that the cell wall is quite close to a cellular membrane (a real cell, this time): such a membrane can isolate cells from each other, but can also permit a communication, be it chemical or mathematical, between close neighbors. And the states pretend to be a snapshot of the current metabolism of the living cell. Then, why do they have to live upon a plane surface? For mainly mathematical reasons: to keep thing simple, at the beginning.
A cellular automaton can also display changes: every cell can change its own state by looking upon its neighbors and then by applying a precise and explicit rule called the transition function of the automaton. Time flies, states follow states and we can draw a map of the sequence of changing states, like a trajectory: it gets pretty interesting when a mathematical computation is so much like an evolving ultra-simplified multi-cellular living organism. It is likely that this thought was what John von Neumann had in mind, his untimely death did not permit him to go further.
In 1997, I was not so sure about the planar surfaces on which cells are displaying their behaviour. I considered the possibility of generalizing the cellular plane to complex topological surfaces and was confronted to a new perspective on cellular automata and cellular dynamics. Through the phenomena of foldings and self-intersections (immersions) of the cellular surface, distant cells become neighbors.
Due to these deformations of space and connections, new configurations emerge belonging to the inside, outside or underneath of the surface. As a consequence, heterogeneous universes of states, neighbourhoods and updates can be considered and implemented. I chose to display a cellular automaton upon the amazing Boy’s Surface (named after David Hilbert’s student: Werner Boy) . The Boy’s cellular automaton is a discretized space of three lobes, directed by edge (cell walls) transition rules as well as state transition rules. Folding edges are determined by a pulser similar to the ones described by J. von Neumann in his manuscript, identifying triple and double points and folding paths, inside and outside layers.
The object-oriented modelization is a specification method for concrete situations involving communication between agents, human agents as well as non-humans.
Let me give an example: personal and social interactions within a group could be described using this object-oriented approach. Each member of a group as well as each step in the group formation is characterizd by an object. The object is then defined by a set of attributes or properties and operations which modify its own behaviour as well as the behaviour of linked objects. In addition, an object can emit or receive messages from/to other objects to which it shares relations of collaboration, exchange, cooperation or heritage.
This way to build models is now the major paradigm in software design used for analyzing, improving (refactoring) and implementing the most complex computer information systems. It has become a recognized craft as well as a technical methodology. The time has come to consider that object-oriented design has all the power needed to specify complex domains beyond program design. For that purpose, I have made the choice of using the most widely used and standardized specification tool: the Unified Modelling Language (UML) for specifying complex biochemical and biomedical processes. UML is based on the main concepts of object-oriented programming such as modularity, embedded classes, dynamic behaviour of objects and hierarchies as well as primitives for concurrent processes, synchronization and cooperation.
Valuable attempts to design ad-hoc specifications tools for biological processes have been proposed. Obviously, the designers have spent more time and resources to describe their languages along with formal properties than to use them to specify biological situations and pathologies, and this is as it should be. Biochemical and biomedical processes are not formal objects, and we are at the very beginning of trying to build approximate computational models. What we need is a deeper understanding of what biological components need to be adequately described; proof methods, at this stage, would not be even mildly interesting. However, it is very possible that unexpected or unknown bio-processes could be exposed, as a side-effect of modelling. The last word, obviously, will come from biological validation.
1. The mechanism of blood clotting
When blood vessels are cut or damaged, the loss of blood must be stopped before possible death occurs. This is accomplished by one of the major pathophysiological mechanisms called blood clotting. The current accepted model of blood coagulation involves a cascade of clotting factor activation reactions that follows one of the two pathways termed intrinsic and extrinsic that merge into a final common pathway. The intrinsic pathway is activated when blood comes in contact with sub-endothelial connective tissues or with negative charges surfaces that are exposed by the tissue damage. The extrinsic pathway is initiated at the site of injury in response to the release of tissue factor that is not a component of circulating blood. The ultimate goal of the cascading pathways is to produce thrombin which will convert soluble fibrinogen into fibrin to entrap the initial plug. This blood clotting process associated with the subsequent dissolution of the clot following repair of the damaged tissues is called hemostasis.
The Unified Modelling Language (UML), based on the main concepts of object-oriented programming such as encapsulation, class sharing and embedding, static properties and dynamic process inheritance, gives a computational model of the blood clotting cascade. Class diagrams exhibit the static structure of procoagulant factors of proenzyme-enzyme conversions. Each protein is an object belonging to a class with whom it shares the regulator or inhibitor procoagulant specificity. Four classes characterize the model: (1) the class of plasma coagulation factors VIII, IX, X, XI and XII, prekallikrein and high-molecular weight kininogen. Circulating in the blood in inactive form, they undergo conversion to their active enzymatic or cofactor forms after vessel damage; (2) the class of tissue factor and cofactors forming a complex with factor VIIa that plays a key role in the initiation of coagulation; (3) the class of factors leading to the activation of thrombin and fibrin for clot formation; (4) finally, the class of the four thrombin inhibitor (antithrombin III, a2-macroglobulin, heparin cofactor II, a1-antitrypsin) and plasmin that controls excessive fibrin deposition.
The tools provided by UML and its Real-Time extension give a structured analysis that fits this information system where objects are entities strongly interconnected [5,6]. The proteolytic cascade is actually mapped on a state diagram which behaves as a cellular automaton where the states are plasma and tissue factors. Activity and sequence diagrams provide timing tools as synchronization bars, branch, contact or merge points enabling to sketch the clotting transition rules by message passing and method triggering.
Commercial versions of UML or its freeware substitutes can generate Java code corresponding exactly to the UML diagrams. They provide the capacity of automatically generating Java simulators for the process described. Of course, this is not exactly the case: what generators are able to do is to give a Java version of the class descriptions, the inheritance networks, the local state variables, as well as the headings for the methods: parameters and types. Obviously, the algorithmic parts of the methods (their body) must be provided by a moderately expert programmer. Fortunately, most of the algorithmic structures involved in this case study are of the type one-shot or continuous triggering, signal handling or simple rewriting rules involving single parameters.
2. The mechanism of liver fibrogenesis and apoptosis
Hepatic fibrosis is a dynamic process resulting in deposition of connective tissue components (type I and III collagen) following chronic hepatocyte injury from any aetiology: viral hepatitis, alcohol abuse, drugs, metabolic diseases due to overload of iron and copper, auto-immune attack of hepatocytes or genetic liver disease. Apoptosis is a spontaneous process that leads to cell deletion: cells shrink and disintegrate into many membrane-coated vesicles that are absorbed by phagocytic cells. It results in the restitution of near normal liver architecture and function following tissue repair.
The fibrogenic cascade involves the cooperation of parenchymal and nonparenchymal cells, growth factors, cytokines (proteins secreted by cells of the immune system), chemokines (traffic regulators of the immune system) and intercellular communication via the release of inflammatory mediators and chemical signals acting on target cells.
I give a detailed specification of the fibrogenic process with classes, phase, collaboration and sequence diagrams . Using experimental data accumulated in the specialized literature through morphometric and biochemical investigations with hepatocytes in cell culture (in vitro) and live animal models (in vivo), we define classes and their procedural parts i.e. methods and specific relationships such as generalization, aggregation and composition to determine the cascading steps of liver fibrosis and apoptosis: (1) activation and proliferation of the hepatic stellate cells due to inflammatory mediators, (2) migration into regions of injury, (3) synthesis and deposition of extracellular matrix components, (4) remodelling of scar tissue, (5) wound contraction, (6) matrix degradation and apoptosis of hepatic stellate cells.
3. Hypertension and kidney failures
The functional integrity of the kidney plays a key role in the regulation of blood pressure. Pathological abnormalities due to the kidney may lead to an elevation of blood pressure also called hypertension or silent killer. Conversely, hypertension due to non-renal causes (activity, stress, body temperature, diet, emotional state, posture, medications) can damage the kidney. The resulting loss of renal functionality leads to further elevations in blood pressure and to serious diseases which can be divided into three categories: (1) prerenal acute renal failure characterized by diminished renal blood flow, (2) intrinsic acute renal failure caused by constriction or obstruction of blood vessels, (3) postrenal acute renal failure caused by urinary tract obstruction.
The logical architecture of connected components in the nephron (Bowman capsule, glomerulus, vascular supply, collecting duct) is explored through the deployment diagram. It shows both the strong connection between parts of the system and the functional specification of the collecting flows among them . With activity diagrams for prerenal and intrinsic renal failures, we specify composites in the disease evolution: (1) predisposition to hypovolemia (shortage of blood volume) evolving to proteinuria (excess protein in the urine), (2) hematuria (blood in the urine) and alteration of vascular permeability leading to glomerulonephritis (leakage and/or occlusion of filtration vessels) and tubular necrosis. Finally, we provide a detailed interaction model for one single object: angiotensin II which plays a central role in the aetiology of hypertension. In response to various stimuli (due to lower blood pressure), the activation of angiotensin II leads to increase blood volume and systemic vascular resistance. Hovewer, angiotensin II overactivity contributes to the progression of hypertension and cardiovascular complications. A collaboration diagram describes the effective action of angiotensin II inhibitors on key hormonal reactions disrupting vasoconstriction and fibrogenesis activation.
1. J. Signorini, Complex Computing with Cellular Automata, in Cellular Automata and Modeling of Complex Physical Systems (Les Houches 1989 Winter Meeting), P. Manneville and G. Vichniac (eds.), Springer-Verlag, 1989
2. J. Signorini, How a SIMD Machine Can Implement a
Complex Cellular Automaton? A Case
Study: von Neumann’s 29-state Cellular Automaton, ACM and IEEE
Proceedings of the Supercomputing’89 International Conference,
3. J. Signorini & P. Greussay, Folded and
Immersed Cellular Automata, International Colloquium MCU’98,
4. J. Signorini &
P. Greussay, State
and Rules Inheritance in Cellular Automata, International Conference in
Chaos Theory and Life Sciences,
5. J. Signorini & P. Greussay, A Case Study of Object-Oriented Bio-Chemistry: A Unified Specification of the Coagulation Cascade, Genome Informatics, Vol.14:1, 2003
6. J. Signorini & P. Greussay, Object-Oriented Specification of Complex Bio-Computing Processes: Blood Clotting as a Case Study, LNCS Vol. 3141, 2004
7. J. Signorini & P. Greussay, Object-oriented Wound Healing in the Liver: a Class-Structured View of Fibrogenesis and a Glimpse of its Evolution, ACM SIGAPP Symposium on Applied Computing, Santa Fe (USA), 2005
Signorini & P. Greussay, Silent Killing: an Object-Oriented View of Hypertension and Kidney Failures,
IEEE 7th Symposium on Bioinformatics,