To my family. All of them.

From the joy of asking a question, To the pleasure of finding an answer, Curiosity is the principal ingredient.

I would add the two following version to this sentence full of truth; "Time to panic a little?" and; "Only panic if necessary" These two sentence even if lacking more logic than the original one, might be a better guide to evolve in the universe that Hitchhike in it. As panic seems to allow the individual to surpass itself. The exclusivity of Douglas Adams sentence look to be far from what nature provide, as panic is omnipresent. Bringing an energy to the problem, that in the case of the humans as we can see, remind us more of their animal nature than their civilized one.

Summary

No matter the scale of observation, biological systems ranging from molecules to cells, and multicellular organisms to communities, manifest collective behaviours. Many explanatory ideas have been put forward based on local perception. In each of these cases progress has been possible because the collective-level phenotype is obvious and observable to the naked eye, but also because of the objective function targeted in the understanding of these behaviours. Here I constructed a machine-ecosystem hybrid that involve an observation device, coupled to a light landscape generator in an automated loop that contain a learning process at every step based on data captured from the ecosystem being observed. In order to break the reality gap between modelisation and reality, taking into account the deep complexity of the studied system as the modelisation can then co evolve with the observed matter, that is reactive toward the adaptive landscape that interact with it, and then reach unexplored and not experimentally implementable fields of heuristic. My project involves several stages. 1. Construction of the hybrid. 2. Application and development interaction algorithms. 3. Establishment of simple microbial populations that can be sustained and whose behaviour can be manipulated via the machine. 4. Experiments to demonstrate proof of principle.

Does the information between to system look like A <> B or like A >< B? This research aim to develop a new methode in order to study collective behaviors at microbial scale. We intend to couple living agents with complex perturbations, based on an automated platform allowing interaction between a 2D spatialized ecosystem and a learning machine. Collective behaviors have been extensively studied through computational models and use of non-living systems such as swarm of robots. Natural collective phenomena, such as flocking in starlings, slime molds of Amoeba and especially ants colony have been the focus of a fruitful field. Cohesion of such natural collective system is not yet totally understood, but is know to exist, with occurrences such as critical transition. The dynamical perturbation of these systems seems to be a key stone in order to unravel the oscillations and constraints leading to their collective state. Indicators such as early warning signals are known to correlate to collective phenomenon. However perturbation of such complex systems have shown limitations in their experimental realization. And thus the structure between constraints and perception lack data. Here we present an abstraction of such perturbation in a planar algal ecosystem, where the collective behavior is observed and perturbed by an in silico layer. Able to interact (and learn) with a fast iterative dynamic based on its observation of the ecosystem at various spatial and temporal scales, via the use of a light landscape and the natural reactivity of photosynthetic algae toward this stimulus.

The impact of geometry on collective behaviors has been shown to be critical in order to fulfill their tasks [START_REF] Saravanan | Local, cell-nonautonomous feedback regulation of myosin dynamics patterns transitions in cell behavior: a role for tension and geometry?[END_REF]][Hol et al., 2013]. The proposed methodology aim to lead toward a better understanding of the role of topology on the properties of the collective. But also toward a simple interface between computer sciences, applied Mathematics and Biology [START_REF] Solé | Synthetic collective intelligence[END_REF]. The platform is composed of two interacting system: The in silico machine, that take as input images from a minimal XY scanning microscope, and send as output a tuned light landscape with a control over 7 colors. And the in realis ecosystem, that take as input a light landscape and give as output a geometrical conformations. That will, depending of the method, be interpreted by the in silico machine as indicators or as a 2D input. For the moment, the ecosystem is limited to a mono specific static algal ecosystem. It has been shown that algal species posses a differential response to light and the chemical texture of their environment [START_REF] Chang | Metabolic network reconstruction of chlamydomonas offers insight into light-driven algal metabolism[END_REF]. Algae produce and consume a variety of compounds, that diffuse around the agents. There is several dimension to these compounds, they can be co products of agents activity i.e. metabolites or gases (average diffusion or fast diffusion), communication molecules, or common goods as mucus(local physical properties change). Some of these compound can easily be observed by optical technique such as polarization, dyes or just light flash.The use of in realis agents offer then interesting possibilities in multidimensional tasks as the reality of the system results in a continuous interacting scheme. Transitions in ecosystems are known to be preceded by complex signals, called early warning signals [START_REF] Scheffer | Early-warning signals for critical transitions[END_REF]. Most of the time these transitions occur with a fractal patterns over the ecosystem. There is a lot of tools to observe these signals, mostly based on auto correlation across space and time over the system.

CONTENTS

Opening

The most exciting phrase to hear in science, the one that heralds new discoveries, is not "Eureka!" (I found it!) but rather, "hmm.... that's funny..." -Isaac Asimov. (excitation = 555 nm, emission = 585 nm). Three interesting facts come out of this processed images: it astonishing symmetry to adapt to this constraint environment. The reflection of the algae on it's surrounding from its auto-fluorescence. And this knot made of the two extremities of the filament.

"Don't panic" -Douglas Adams By rendering the complex questions surrounding us into mind opening history. Great mind shape the future of their delicate touch.

Chapter 1

Introduction

Here I will introduce my topic, starting with the broad scientific component. This is a trial of formalization of my works on evolution and space.

" Ecrire seul, cela aboutit à un truc certainement bourré de défauts, mais très signé." -Alexandre Astier During this thesis I did develop a Hybrid machine, that permits the intimate coupling of a living system and a mathematical machine as shown in Figure 1.1. The Hybrid is composed of a planar chamber containing algae that are sensitive to light, a projector system that allows light patterning, and a microscope to observe the system, the whole forming a virtuous loop prone for emergence of complexity through feedback. This experiment will give the possibility to observe the phenomena of interaction and patterns formation, while the projected light dynamically reacts to the algal population structure, depending on an interaction law that can be chosen through geometrical rules. I was inspired to realize this hybrid system after many reflections on complexity and anticipation in biological systems, and especially microbial and metazoan ones, such as the guts. And I will now open some broad questions on the nature of systems in the introduction, showing how complex the situation can become in an ecosystem.

Evolution of systems, we are in space

When speaking about evolution it is hard to think without space. Indeed something cannot be perfectly defined without its context. And something that cannot be represented in space cannot be visualized as pointed Descartes describing a triangle with a sum of angle superior to 360 in a plan (few hundreds years before Riemannian geometry where it is possible). Systems are the product of their interaction with external constraints. Most of the time in order to minimize an energy state they will adjust to their direct environment. Harmonizing their relation with energy potentials such as temperature gradients, chemical potential, stiffness ..etc.. If we set a fixed environment, the dissipative non driven system will converge toward a static equilibrium, maximizing its entropy and minimizing its energy (Figure 1.2), maybe at infinite time, depending of its internal dynamics (Figure 1.3). Here I will consider living compartments, we are not going to explore the rules that did generate these compartments, let's consider them as spatially consistent entities and look at them at ecological times. At ecological times, living system don't converge to a static equilibrium, even in static environmental conditions, it doesn't seem to be a perfect condition where the cells break and merge with their environment, they do explode at the extremum of their resistance. They are open systems, that never get to a static equilibrium before reproducing at least once, which also makes their populations oscillate, as reproduction do occur in a finite space (Figure 1.4) with a dead and life process. A reproduction in a finite space induces a competition (at least for space).

Figure 1.3: Let's take a system with a finite volume in space, for example a bubble. Its geometry is a pure reaction to the product of constraint that are applied to it, composed with its resistance and rigidity. The system A which is on high energy area can optimize its interaction with its environment, either by moving or by adapting.

We can think of a specific case as in Figure 1.4. In this case, the system is mostly in a state of high energy and there is not enough low energy area for the two particles. It seems difficult to find a static equilibrium in such conditions, the slight change in either A,B or in the environment can trigger catastrophic change in the equilibrium. What would be such system equilibrium is hard to predict and will depend of several parameters, such as the stiffness of the particle but also of the constraints applied to it. This type of problem can be brilliantly transferred to biology, such as the Daisy world model of J.Lovelock [START_REF] Watson | Biological homeostasis of the global environment: the parable of daisyworld[END_REF][ [START_REF] Lenton | Daisyworld revisited: quantifying biological effects on planetary self-regulation[END_REF]. In this scenario the world is simplified as a finite domain, in which grow two species of Daisy, one is white and the other black, thus the albedo of the two species is not the same, with an optimal growth temperature and birth and death process, the area will tend to an homeostatic condition were the temperature will remain relatively stable. But this case is simplified, because space is well defined as an independent compartment, and some constants (such as the death rate) are critical for the auto regulation to appear. With a changing environment the equilibrium cannot longer stay static as the internal energy of the system is dependent of external constraint. System in this optimization process usually oscillates.

Figure 1.4: If we keep the same concept than in figure 1.3. But this time we take 2 particles instead and there is not enough zero energy surface for the 2 systems, they will start to pressure the environment. Oscillations or relaxation will appear until the dissipation of the energy.

*The Project touch: The machine I did develop allows to study microbial ecosystem with a spatial perspective and an individual definition, in comparison with most of the studies on these systems that are usually done in a well mixed environment at the population scale.

Life shape space and time

As said by E.Schrödinger in What is life ? (1944) " Living matter evade the decay by equilibrium " and he details the maintenance of this active equilibrium by a constant delay of the final state of the cell, the death, by absorbing negative entropy from its surrounding. Maintaining then a tuned equilibrium, that seems out of the general thermodynamic behavior of materials. This is a very interesting properties of Life, its ability to maintain an equilibrium that perpetrate through space and time, this " flexibility of life ". Therefore the equilibrium of life can be seen as different than the typical system behavior presented before, because its behaviors is inherited from a past state that was dynamic, times before the actual constraint of the system, but the harmony was never reached locally (contrary to a crystal) and thus the system stays dynamic. And thus makes the transition between animated and inanimate continuous. [START_REF] Varela | Autopoiesis: the organization of living systems, its characterization and a model[END_REF] [Atlan, 1979]. The definition of life can take various shapes, one can try to see it at every level in systems and that may lead to many assertions, here I will follow the Biology and when speaking about life I will include the presence of organic material in its definition.

Order and disorder are characterized by entropy. Entropy dictate that a compartment will modify the entropy of its content, as this content is now constrained to a smaller portion of space. The impact of this compartment on its surrounding will also be true, as it will decrease the probability of the inside to be outside. This cool down of the compartment allowing its relative specialization compared to the hot outside. It is intriguing to see that life seems to work by pulling discrete units of negative entropy under the form of molecules; and at the same time seems to work on this diffuse value that is entropy. For me the understanding of the compartment is the key to get better hints in the evolution of living systems, but to do so the structure of space needs to be unraveled.

Living systems are separated from the matter of their environment because they did develop an Autopoïetic behaviour. Autopoïetic meaning the ability of sustaining and reproducing themselves by their own activity, in fact what makes life unique seems to be related to this properties of sustainable auto replication [START_REF] Varela | Autopoiesis: the organization of living systems, its characterization and a model[END_REF] [Luhmann, 1986].

The transition to Autopoïesis for a system is a vast topic, and cannot be more modern in our time of endless economic growth in a finite world. This transition mean the transition from an open system to a sustainable auto generative system, were the production are component of its own growth. An individuality do develop during this process, as the living system discriminate himself from the surrounding material by its activity. This boundary seems critical to the development of an Autopoïetic behaviour. All life form from a Biological perspective do have a boundary, a membrane that separate them from the surrounding media. And this change drastically the evolution of the matter inside of it, as it stays in a closed environment correlation and coupling do appear.

Ecosystems do sustain themselves despite looking as spatially undefined entities, but if we zoom out a little, they are always limited by some boundaries that can be a sea, a mountain or a desert.. What differ from an Eukaryotic cell for example because the boundaries are not shaped by the system itself.

But in both case, the activity will generate gradients of any kinds over space and time, and these gradients are the motors of the system itself.

*Some Facts: Few are the parts of Earth ecosystems that can overpass the geographic boundary that Earth offer. Migration takes an especially important aspect with the notion of Autopoïesis as it represent a flux between entities (Birds may have been a real game changer in this regard, even if such migration are known in the whole Metazoan world).

*The Project touch: In the Hybrid machine I developed, it is possible to tune dynamically the local relation between the ecosystem and its surrounding. Thus testing the ecosystem ability to develop coupling with patterns of constraints applied to it.

Interaction between compartments are non trivial

The 'simple' case of 2 bodies Lets continue with the previous compartment. Take a space, called X, and define 2 distinct sub systems A and B into this space (Figure 1.5). By definition, these are included into X, even if we don't define X more than a limited part of space. Let's assume that A and B cannot overlap or merge as they are distinct. A and B are compartment which, I assume,mean that the information they contain cannot be totally accessed from outside.

Figure 1.5: We define two particles as subsystem of an environment X.

If we assume that they possess an information I A and I B (Figure 1.6) that represent all the information possessed by the individual (internal states..). Let's assume they share a common information I AB such as shown in Figure 1.7, this information represent the fact that they do impact each other, as stated before they cannot overlap at least. Is I AB identical to the two shared information I A→B and I B→A ? Or in other words is there a generation or a dissipation of information while the two individuals interact? We can think that they cannot give all the information on B to A, and reverse, else they would be the same system. There is a creation or a loss of information in the process of interaction between these two particles if we follow this logic. Far from being a complete demonstration, this still underlines the complexity that emerges out of spatial discrete problems.

Interaction between 3 and more compartments

Let's take the same space a previously but this time with 3 particles.

We can see that depending their density the results may change.

Indeed now there is a surface generated between the particles. The properties of this surface impact the behavior of one specific particle of the system by modifying the forces applied by adjacent particles. Now the space between the particles act as a compartment. When going to a 3 or more body problem, it is clear that the solution becomes complex.

A good tool to analyze the interactions inside of a discrete system is graph theory. We can look at the graph as an energy/information function shared between the particles. In our case we will work with 2D graphs. A graph is composed of vertices and edges. Vertices will represent the particles, when edges will represent interactions between them. We will analyze the properties of the particles, then the graph that result of their positions, to finally try to extract some structure indicators of the interaction of the particles. For example, the previous particular system would give the graph visible on figure 1.9. Analysis of this graph gives information about the energy of the system. Operations on graphs are highly non linear, which gives a very nice space for learning.

In my work I do analyze and use graphs in order to perturb the ecosystems, as they offer a powerful framework to interact with the deep complexity of the ecosystem.

Figure 1.9: This graph is the representation of the previous system, were each vertex is the center of one of the previous particles and each edge represents a symbolic link between the two entities.

This graph is non spatial, as the position of A,B and C are related to the link between the particles and not their exact position.

Interaction at the population level

Events such as critical transitions are well known to occur in ecosystems. These phenomena are the result of a sum of complex interactions happening in the population, interactions that took time to stabilize at an ecological scale. Complex diffusive systems were first characterized by Alan M. Turing. Such systems can generate complex spatial patterns out of simple diffusion over time. For example in the case of a 2D biological system such as an ecosystem, the individuals will interact with the diffusion landscape that is itself the product of the activity population of individuals.

For example [START_REF] Scheffer | Early-warning signals for critical transitions[END_REF] show us that there is spatial signal of the critical transition that can be caught at the system level. This synchronization at the level of the population underlines the fact that there is a circulation of information occurring in the population, and furthermore that this information is having an impact on the system behavior. These phenomena show a correlation between the patterns in the local environment of the individual and whole ecosystem.

In a living system, interaction between the agents are numerous. They do interact due to their actions on the environment, each agent is a well and a sink in various molecular dimensions by producing and degrading molecules. Depending of the molecule its diffusion/production/degradation rates will vary, which generate at the end a pretty complex landscape of molecule gradients over the population. These molecules can be related to the metabolism, so the activity of an agents X is impacted by its position in this molecular landscape [START_REF] Flemming | Biofilms: an emergent form of bacterial life[END_REF].

Under a constraint of correlation it has been shown that a multi component system of clocks can synchronize [START_REF] Mansouri | A test theory of special relativity: I. simultaneity and clock synchronization[END_REF]. This has been extended to systems closer to the biology [START_REF] Pecora | Synchronization in chaotic systems[END_REF] [ [START_REF] Barahona | Synchronization in small-world systems[END_REF] *The Project touch: In order to analyze and interact with the ecosystem, the Hybrid works on graphs constructed from the observed population. These graphs are build from the individuals positions and are visible at the population scale. The Hybrid system allows to track the evolution of the microbial ecosystem over time. With an observation resolved at the scale of the individuals. For information, with a size of 10 µm for the microbes and a chamber of 4 cm by 2 cm, we get a ratio of 2000 in the smallest dimension. Thus the chamber is a little bit smaller for the microbes than in comparison Paris city center for an average 2 meter person.

Introduction on collective behaviors in biology

There has been long standing interests in collective phenomena defined as phenomena that manifest above the individual level and that result from interactions among component parts. There are a plethora of examples of collective behaviors observed within natural populations, ranging from school of fish to swarming of bacteria, and multicellularity. Figure 1.11 shows some famous example of collective behaviours. Many years of study of collective mechanisms led to define a collective behavior as a group driven dynamic allowing the actor to overpass their typical/own constraints. Be aware that here, the notion of group means a space related set of individuals.

There are several major challenges in the study of collective behaviours. One of them is to explain how properties at the individual level can generate collective states exhibiting macroscopic properties. A first question is already to determine the interactions occurring at the individual level. Another question is to understand how individual interactions sum up. Or, one can wonder about the role of external/environmental constraint in the emergence of collective properties. A second challenge is to control such collective behaviours. For example, efforts have been made to design robotic systems or living organism [START_REF] Solé | Synthetic collective intelligence[END_REF] to decipher and drive collective behaviours. To do so, research have been led in many directions by using different kind of systems, and I will review a few examples.

PP.Grassé used termite colonies to study the principle of stigmergy. "Stigmergy manifests itself in the termite mound by the fact that the individual labor of each construction worker stimulates and guides the work of its neighbor." [Grassé, 1959]. For example during the building of a nest, the construction of a wall by a group of termite will trigger the construction of another wall by another group nearby. Therefore the emergent nest arising from the collective construction is made by iteration (wall after wall). This stigmergy principle is interesting because it occurs in iterative additions of collective properties (pattern, population dynamics).

At microscopic scale, the Amoeba Dictyostelium show collective state emerging from independent individuals, that in harsh conditions can collaborate into a multicellular slime mold (see figure 1.11, left image), allowing the hyper diffusion of the individuals and ensuring the sexual reproduction of the Amoeba. The transition toward this slime mold has been well explained with pattern of local signaling and pulsation of AMPc. Even if the mechanics of the slime mold is actually pretty well understood in term of pattern and signaling, the evolutionary transition that conducted to this collaborative bottleneck is not yet known [Waddel, 1982]. This mechanism emerge from an environmental constraint and can be triggered by a simple signal. Therefore Dictyostelium is a model organism of pattern formation driven by external signaling. Another interesting organism at this scale is Physarum polycephalum which is particularly interesting due to its spatially structured collective behavior. [START_REF] Alim | Mechanism of signal propagation in physarum polycephalum[END_REF] Figure 1.12: Example of collective process in Physarum polycephalum. [START_REF] Tero | Rules for biologically inspired adaptive network design[END_REF] Another well studied system is the Metazoans embryo (see Figure 1.13,1.14). It is a model of collective programmable system. From one cell we go to an organized million cells in a very reproducible and stable way. This system is not triggered by external factor and the program is therefore autonomous. An important characteristic is that the macroscopic constraints participating in driving the emergence of collective behaviours are generated by the embryo itself ( they are intrinsic ). Therefore by opposition to the previous example of amoeba the system is somehow insensitive to external signal. [START_REF] Saravanan | Local, cell-nonautonomous feedback regulation of myosin dynamics patterns transitions in cell behavior: a role for tension and geometry?[END_REF] R.Nagpal studied the collective behaviour of engineered robots. More precisely they investigated how swarm can arise from a 1000 moving robots (Figure 1.15). This system allow a total control on the individual interactions and individual agents. Therefore it simplify a lot the complexity that happen in living system. [START_REF] Rubenstein | Programmable self-assembly in a thousand-robot swarm[END_REF]] [Werfel et al., 2014] Figure 1.15: The top down engineered system of thousand swarm robots. Allow to study collectives behaviours in a perfectly controlled framework

The current state of the art in the study of swarming is the Ising model and its variations [Ising, 1925]. It is a very strong model based on lattice theory and provides a solid framework. But the numerical implementation of such model is rather complex, and will work for a limited number of interaction if one intend to reproduce experimental results with such model.

*The Project touch: The machine developed allows to gather time and spatially resolved data on collective behaviors at microbial scale. But also allows to interact with the observed matter, therefore offering a nice space of experimentation on this topic.

1.1.1 Collective behavior at longer time scale. Structuring space.

Symbiosis is an example of evolution including a structured interaction. It might be different from most of the previous examples of swarms, as the time scales are far more dilated. But it for sure displays a behavior above the individual. It is interesting to notice that at stricto sensus, symbiosis do implicate the need of this interaction for survival and thus reproduction. Non Euclidian evolution can thus be opened. I use Non Euclidian as a proxy to not use Non Darwinian, as you may know about the question of group theory in Evolution. Here Non Euclidian includes the fact that the individual out of its context cannot evolve. But I am not meaning a group, rather a resonance between something and its surrounding, including some Stigmergy and a structuration of space itself.

A good example of structured interaction occurs inside of some populations of Cyanobacteria. Because of the impossibility to fix nitrogen in presence of oxygen, some cells will specialize for this task, getting their cytosolic oxygen concentration close to zero. While other will normally produce synthons through photosynthesis, irremediably producing oxygen. An exchange of N against C will maintain the two populations.

In this thesis I focus on an algal population. And especially the model organism Chlamydomonas reinhardtii, a green algae. Collective behaviour such as metabolic interaction will occur in Chlamydomonas reinhardtii populations as well as collective motion [Boyd et al., 2018]. The communications mechanisms for micro algae has not been extensively studied but seems to exist [START_REF] Venuleo | Intraspecific chemical communication in microalgae[END_REF]. Collective behaviour remains difficult to study at individual scale because of the complexity of such systems.

*The Project touch: The Hybrid can work with multiple species, and if morphological differences are significant, it can automatically classify the species from their optical observation. Thus it is possible to reconstruct a diagram of the population disposition in 2D.

The examples of multicellularity

In this part I will comment on the notion of multicellularity and morphogenesis.

We will separate multicellularity from the the previous behaviors in the sense that there is a persistent organization and compartmentalization of space that ensure the organism, capable of an homeostasis that maintains the system in its collective state, ensuring its Autopoïetic behaviour and therefore its persistence in time.

There is some fundamental differences between multicellular Lifeforms. One seems to be in their relation with their environment. As if different behaviour were trapped during the evolution of the consortia over time and isolated from the outside in an harmonious wrapping of space.

Here I will speak about multicellular plants and animals. I will just speak about these two and don't speak about other multicellular lifeforms, but it is important to notice that there are many multicellular lifeforms with multiple origins in the tree of life. The transition from an ecosystem to a multicellular organism raises multiple questions on the notion of individual and its evolution.

It is interesting to look at plant and animals from their interaction with space and time, as they are the product of it, they contain a lot of information on its structure and the best way to interact with it. It opens us to think about the mold, the mold of physical and chemical constraints, that gives rise by a growth mechanism to a complex and homeostatic individual, homeostatic meaning the ability of sustaining its conditions over time.

Whereas for Animals time dynamics are short and space is constantly changing as the animal moves, the cells have an elastic membrane and a fast metabolism. For Plants, the variations depend of the wind, the day, the season... And the cells are in a rigid armor.

This difference of dynamics is re transcribed into the response time that these organisms show toward their environment. It is really hard to mistake the hazel tree for the squirrel (not speaking about camouflage, where the Squirel hides in one part of the hazel tree complexity). But it can be confusing to choose what is the animal between a carnivorous plant and a sponge.

Animals have a dynamics that is different of Vegetals, in the sens that motion in plants is the results of specific adaptation, as pumping allows to sustain a sufficient metabolic activity for Photosynthesis. Examples such as the Cuscuta show the possibility of motion as an individual in the plant domain [Yuncker, 1932]. But staticity describe the best the plants at our time scale, at least for multi cellular organisms, as for example some micro algae are capable of motion.

In the animal world, motion is omnipresent with the notion of individual, except for some monoblastic (sponges). Flexibility in the membrane do require a different homeostasis than rigidity. This can be seen in the metabolism of animal cells, they require to feed over external molecules to gather energy. Whereas vegetal cells possess both capability. Animal except by integration of vegetal cells such as in the symbiosis of the corals [START_REF] Muscatine | Reef corals: mutualistic symbioses adapted to nutrient-poor environments[END_REF], are incapable of Photosynthesis. It is interesting to notice this. Because if it is absolute then it can be something strong behind this reality, in term of metabolic incompatibility, or light resistance requirement, but also maybe because of some very deep relation with space, time and light.

For animal organisms, that implicates the conservation of structures needed for motion. An hyper specialization at tissular scale do appear, most of the cells become differentiated and enslaved in a dynamic function, required for the organism to move. Even if there is a capability of cicatrisation, animals cells seem to be locked in a specialized state. Regeneration capability seems to decrease with the organism complexity. Mammalian cells are trapped, from the beginning, and implicated in dynamic functions, getting compressed and stretched all the time, requiring a high degree of coordination. And when they do escape the control, they quickly go toward cancers. For a plant, this type of global invasion doesn't seem to be permitted, simply for cell wall rigidity reasons, but also because of the relation between the cells and the organism function (more posture and less motion). The plants cells stays for themselves mostly Totipotents (Capable of forming a complete individual by themselves). Some dead ends exist, such as for the formation of the Xylem, were cells do follow a cellular death in order to make their cell wall Hydrophyl by lignification. Specialization is less visible, at the cellular scale in the Vegetal world.

It is interesting to notice some differences in the localization of growth during the Morphogenesis and life of plants and animals. Most of the animals have a morphogenetic procedure with a defined growth time. Plants do also have morphogenetic procedure, but with an unlimited embryogenesis. The difference of dynamics between these patterns at tissular scale can be analyzed with various metrics.

At the organism scale, growth is one of the motor of space exploration for plants (out of reproduction). The main exploratory part is focused in the apex. Even if the circulation of sap and the maintenance of the posture that are required for growth are realized at the organism scale.

For animals, the exploration is assured by the whole organism. No need of an exploratory growth, even if in some way the increase in strength due to growth may allow an extended exploration. Monoblastics do offer an exception as animals here, but they are fixed in a moving environment (waterflows..).

If I summarize, the animal cells organisms have what I define as a more toric behaviour, as repercussion on the function of the individual can be stronger and the future of the organism is related to the proper work of every component of it. When vegetal cells seem to have what I defined as a more harmonic behavior, as the individual stay coupled with the environment.

A relation between animal lifeform and motion seems to exist. Indeed the complexity of the motion seems to be linked with the complexity of the embryo. Animal embryos are defined as monoblastic, diblastic and triblastic, depending of the number of tissular layers present in the embryo. For example humans are triblastic when sponge are monoblastic. One observation is that the number of layer in the embryo seems to be related to the number of spatial dimensions the animal will live in and have the control on. Here are some observations which are not absolute. Monoblastic that are contemplating life form (no motion) are mostly submitted to tension, an elegant solution of response to such constraints is a fractal structure. Diblastic are water swimming animals, they don't control their direction locally. Surface forces govern their motion and they have one main axis of symmetry. Triblastic have a control over space (even in low density medium such as air) volumic forces govern their motion, their embryo do align with the gravity field during fecundation, and they have a plan of symmetry. Nature provides many inspiring example of multicellularity, that can be related to a function that did preserve them during evolution. Some of these functions have great potential if reproduced in artificial systems.

A fruitful field of applications

Bio sourced product and green chemistry follow a strong increase in volume and it should continue for many years. [START_REF] Senni | Marine polysaccharides: a source of bioactive molecules for cell therapy and tissue engineering[END_REF]] [Menetrez, 2012] Collective behaviors are key components for the control of biological systems. Whether to trigger the production of complex metabolite during the Idiophase (the state of growth associated with secondary metabolites production). Or designing the structure of a Biofilm to orientate individuals toward specific metabolite production, even toward the production of extra cellular matrix/molecules with a strong metabolic cost and thus a unfavorable fitness for the individual. Controlling these collective behaviors seems a way to overpass various challenge in concrete application of Biotechnology. Three classes are numerically identified, classes were obtained from the classification of the morphological properties of the pixels by a classifier trained to find cluster of individuals (green)

or isolated individuals (red) or the matrix boundaries (light green). Result of a tentative to observe the ability to product a common goods (the matrix) by controlling the population structure (pack vs isolated).

Controlling the ecosystem also means controlling the local environment perceived by the cells, therefore allowing to control their evolution [START_REF] Ryall | Culture history and population heterogeneity as determinants of bacterial adaptation: the adaptomics of a single environmental transition[END_REF]. By allowing to shape the constraints perceived by the individuals in time and space, one posses a powerful tool to orientate the individuals toward a desired regime of operation, thus the machine seems especially adapted to realize directed evolution with an relatively high throughput in order to work on complex spatially defined objective functions.

My approach from a geometrical perspective

The impact of geometry on collective behaviors has been shown to be critical in order to fulfill their tasks [START_REF] Saravanan | Local, cell-nonautonomous feedback regulation of myosin dynamics patterns transitions in cell behavior: a role for tension and geometry?[END_REF]][Hol et al., 2013]. The proposed methodology aims to lead toward a better understanding of the role of topology on the properties of the collective. But also toward a simple interface between computer sciences, applied Mathematics and Biology [START_REF] Solé | Synthetic collective intelligence[END_REF]. My experimental platform is composed of two interacting system: The in silico machine, that take as input images from a minimal XY scanning microscope, and send as output a tuned light landscape with a control over 7 colors. And the in realis ecosystem, that takes as input a light landscape and gives as output a geometrical conformations. That will, depending of the method, be interpreted by the in silico machine as indicators or as a 2D input. For the moment, the ecosystem is limited to a mono specific static algal ecosystem. It has been shown that algal species possess a differential response to light and to the chemical texture of their environment [START_REF] Chang | Metabolic network reconstruction of chlamydomonas offers insight into light-driven algal metabolism[END_REF]. Algae produce and consume a variety of compounds, that diffuse around the agents. There are several dimensions to these compounds, they can be co products of agents activity i.e. metabolites or gases (average diffusion or fast diffusion), communication molecules, or common goods such as mucus(local physical properties change). Some of these compound can easily be observed by optical technique such as polarization, dyes or just light flash. The use of in realis agents offer then interesting possibilities in multidimensional tasks as the reality of the system results in a continuous interacting scheme that can propagate information. Transition in ecosystems are known to be preceded by complex signals, called early warning signals [START_REF] Scheffer | Early-warning signals for critical transitions[END_REF]. Most of the time these transitions occurs with a fractal patterns over the ecosystem. There is a lot of tools to observe these signals, mostly based on auto correlation across space and time over the system.

A gap between theory and experiments

As said before there are many questions unsolved about space time and that render assertion on system evolution distant from reality except their shapes and positions that are observable. But it is possible to say a lot of things on shapes, first that they are the result of space and time. As previously stated simple mathematical algorithms can generate tremendous amounts of information out of geometry.

Information that can be qualified and quantified even if the texture of this complexity in the system is not yet well understood. But its utilization to act on spatialized dynamical systems such as living ecosystems is possible. And thus any success of control would comfort the idea that spatial information is a key constituent of the complex process of life.

This is what my machine tries to do: perturbing a system in its spatial and informative component, in order to look at potential geometrical 'information' that can characterize living systems, and maybe be a fundamental component of its dynamic.

About this manuscript

In this document I will first introduce the concept of my machine and its different constituents in the chapter 1 "Experimental setup", including the biological part. I will then detail the abstraction used in the machine in order to interact with the living systems in the chapter 2 "Hybridation procedure". After to unravel the machine utilization, I will describe some example of coupling procedure that can be applied automatically to the ecosystem in the chapter 3 "Coupling scenario". Finally some preliminary results of coupling are presented in the "Preliminary results" chapter. What is followed by a discussion.

Chapter 2

Experimental setup

This research aims at developing a hybrid of robot and living organism. Our system will be monitoring and controlling a micro algal ecosystem, the computer will provide a feedback based on the algal population structure. Therefore it will use stigmergy principles to build up iteratively on its observations. The signal used to control the formation of the pattern is a light landscape, this light landscape will be automatically generated by the computer. Therefore it must learn what landscape must be used to get the wanted pattern, to do so the machine intend to use machine learning algorithms to learn from the data and extract useful patterns. Both algal colonies and computer will form by coupling a hybrid, autonomous, with its own internal program, and insensitive to the rest of the environment. Such a system is particularly interesting because it looks into the perception of space of microbes, and their ability to evolve with it. But also because it tackle the challenge of driving a complex living system toward a given output. Here I introduce the methods I use in order to realize the feedback loop between the machine and the ecosystem. In order to realize a sequence of operations as complex as the Figure 2.1 shows us, at an ecosystem scale, on a living biological sample, automation of the setup was necessary (Figure 2.2), and this include the hardware (Figure 2.6) and software dimensions of the machine (Figure 2.5) . A biological system was chosen in order to obtain reproducible results, it is Chlamydomonas reinhardtii, I will detail some of its interests in the hybridation, but in principle any photosynthetic or even light sensitive species could do it. With the current state of the machine, the modification of the classification model and the tuning of the intensity parameters are the only prerequisite to change the species under study, or integrate 2 different micro organisms. Development in opto genetics extend this application to many organisms and light integration mechanisms. In this chapter, I will present basics details on the machine, starting with the aspect of the machine itself (folder, repository, ..etc), then I will describe its biological component, hardware component, and software component, to finally explore some low level coupling of the previously described parts. Higher complexity couplings are presented in the next chapter, here I will focus on the one directly related to the machine capability and relevant for some use cases of the basic functionality of the machine.

Figure 2.2: Schematic of the different steps realized by the machine at every time point at every position. The yellow disk represent a gel surface, while the green dots represents the Algae. At every time, the machine observes with the microscope, analyzes with the software and responds by projecting a light landscape until t +1 . This operation is repeated for every arena (here defined by the blue circles).

Accessibility of the design and reproducibility

latifundia perdidere italiam.

-Pliny the elder

The machine intend to be easy and reproducible to construct and operate. The implementation of proper methods in order to do the prototyping was mandatory, especially due to the complexity of the machine. Indeed as the machine is operating on more than two domains (observation, projection, analysis) errors can reverberate between the components, rendering a complex debug impossible. It is why a big chunk of the prototype development was affected to the integration of such prototyping method and not to the design of the machine itself.

Most of the part are accessible from industrial sources and affordable, price was a real constraint in the realization of the setup, as the machine operate on several domains it could not afford to be over engineered in order to fulfill the requirements for the given price.

The parts that were designed along the project are accessible as .stl files and accompanied of a .md documentation on the project repository [Fosseprez, 2016]. The fabrication don't require particular tools nor skills (except for the access to a 3D printer). The .md documentation provide the extra information required to complete the part. The electronics was rationalized at maximum and don't represent risk of electrocution or fire outside of the core of the power supply itself.

The repository in itself [Fosseprez, 2016] is using Gitlab as a remote server, it is accessible via Git [Ram, 2013] or other versioning tools, and can be used as a stand alone to install and run the machine.

The software is coded mostly in Python (some part can be coded in ImageJ programming language, or recorded as a macro [START_REF] Schneider | Nih image to imagej: 25 years of image analysis[END_REF]), it is highly modular and commented, and it offer the possibility for a new user to run experiment cycle with a relative simplicity as well as implementing some new simple functionality while keeping the stability of the machine. The commenting of the code is realized with an Autodoc type syntax, this allow to aspire the code into an automatically generated API doc, with the help of Sphinx [Brandl, 2010][Zheng et al., 2017],

Figure 2.25 to 2.28 show an example of such documentation. The code is organized in packages that are installed on every machine at initialization time [Ziadé, 2008]. This allow via the use of setuptools [Eby, 2010] to install the package on the different machines. Once installed the package are callable from any Python terminal.

Software monitoring is implemented in order to track the activity of the machine, this step has shown to be critical for the realization of reliable experimental data, each error is logged into a file for later analysis by the experimenter [Robinson, 2002]. The monitoring of the machine can be drastically improved, for the moment it offer the minimal functionality in order to track and tract the errors. A graphical interface was not implemented but is a step in the full applicability of the machine with non coding persons (and for easy monitoring). The training of the image classifiers is for itself realized using a graphical interface via Fiji and require few skills except some good practices for the drawing of the training set and test set in order to train the classifiers.

The Biology

Chlamydomonas reinhardtii a model mini factory

I did choose a phototaxic specie, Chlamydomonas reinhardtii. Here I will describe some of the majors characteristics of interest of this specie. Chlamydomonas reinhardtii is a 10 µm flagellated algae (see Figure 2.3). It is an extensively studied model Eukaryotic organism, that belong to the green algae Phylum. It possesses complex behaviors such as the capacity of agglomeration into small multicellular aggregates [Boyd M, 2018], while being both able of cell fission or mating, and is also well studied for its circadian rhythms as it express the complex regulation of Eukaryotic cells with a Planktonic mono cellular life (with a genetic structure far more clement that most of the protists [Keeling and del Campo, 2017]).

Chlamydomonas reinhardtii is a photoautotrophic organism, this mean that it can harvest reductive potential from breaking water molecules via a reactive center in order to fix CO 2 . But it is also able to grow on substrate in absence of light as a chimioprototroph, in this case it can harvest reductive potential from organic molecules.

Chlamydomonas reinhardtii possess a relatively rapid division cycle, as in optimal condition a division time of 12 h can be expected [START_REF] Vítová | Chlamydomonas reinhardtii: duration of its cell cycle and phases at growth rates affected by light intensity[END_REF]. Despite being a complex organism Chlamydomonas reinhardtii can reproduce relatively fast, which is critical for my type of experiments on population dynamics.

The presence of flagella is visible in the cellular structure, there is 2 of them, located in their proximity is the eye spot [START_REF] Holmes | Cellular asymmetry in chlamydomonas reinhardtii[END_REF]], a very interesting structure that allow to detect and react to light gradient. This structure is connected to the cytoskeleton of the cells [START_REF] Ueki | Eyespotdependent determination of the phototactic sign in chlamydomonas reinhardtii[END_REF]][Schmidt et al., 2006][Harz et al., 1992]. Furthermore the Eyespot is related to AMPc transduction of signal, ensuring a link between light sensing and fast cytoplasmic response [START_REF] Boonyareth | Roles of cyclic amp in regulation of phototaxis in chlamydomonas reinhardtii[END_REF].

Chlamydomonas reinhardtii look like the perfect micro robot. Its cellular behavior is impacted by light, and even its motion can be light driven. It is auxotrophic and thus it is possible to sustain a system for a relatively long time without need of refueling (Even if the availability of oxygen to display photo tactic behavior might be limited), this give the possibility to proceed to longer experiment without the molecule diffusion issue encountered with a prototrophic organism.

The metabolism of Chlamydomonas reinhardtii is particularly interesting, indeed algal species are able to produce reductive power out of photosynthesis and to use it to fix atmospheric CO 2 , thus they can produce the whole spectrum of organic molecules from a single molecule. The ability to drive this metabolism is a very interesting challenge as it mean the ability to produce complex organic molecules from few.

With these various characteristics Chlamydomonas reinhardtii was set as a reference.

Figure 2.3: Cell structure of chlamydomonas reinhardtii, showing the central nucleus (N) with the nucleolus (Nu), the two isoform flagella (F), the cup-shaped chloroplast (C) with the Eyespot (E) and the starch containing pyrenoid (P) and the mitochondria (M). In addition, one may distinguish the Golgi vesicle (G), starch grains (S), and vacuoles (V). Source: [Harris et al., 2009a].

Chlorella vulgaris do work well

Part of the work was also conduced on Chlorella vulgaris [START_REF] Safi | Morphology, composition, production, processing and applications of chlorella vulgaris: A review[END_REF]. Chlorella vulgaris is also a green algae, but is immobile, therefore its observation is facilitated and thus the conceptualization of the setup, but Chlorella vulgaris is smaller than Chlamydomonas reinhardtii (around 2 µm compared to 10 µm ) and that render the process of acquisition more difficult.

Sensitivity to light signal

The pigmentation of photosynthetic species has been studied for an extensive amount of time.

Starting by spreading a color over a paper [START_REF] Michel-Wolwertz | On the chlorophylls separated by paper chromatography from chlorella extracts[END_REF], to the wonder of their quantum properties [START_REF] Krishnaveni | A method of analysis of pigments in phytoplankton[END_REF]. It is known that pigment operate in collective structure called antenna, which will allow the transfer and the convergence of energy toward a reaction center. These Antenna are located at the surface of the Thylakoid which is the organelle where the photosynthetic operations of the cell a realized. Depending the wavelength, different antenna types of different composition will have a differential in light absorption. Some of these pigments can be in more free form than being part of complex antenna structure, for example the phytochromes or the cryptochromes are cytoplamic form, and such pigments seems to have evolved in Chlamydomonas reinhardtii, they appear to regulate from the gene expression to the circadian revolution. In order to interact with the biological system, the machine is required to emit light the absorbed wavelength spectrum of the Algae. The two maximum of absorption for the Chlorophyll A and B (that are the two principal pigments of photosynthesis) are similar and around 440 nm and 650 nm, as you can see on the top absorption spectrum on Figure 2.4. In addition to that numerous other pigment will absorb and transmit at other wavelengths as visible on the same absorption spectrum (Figure 2.4). Presence of Rhodopsins have been reported in the literature in Chlamydomonas reinhardtii [START_REF] Hegemann | All-trans retinal constitutes the functional chromophore in chlamydomonas rhodopsin[END_REF], it seems to be mostly located in the Eyespot.

A moving organism

The motion of chlamydomonas reinhardtii at the population scale are far from being trivial [START_REF] Sato | Analysis and modeling of the inverted bioconvection in chlamydomonas reinhardtii: emergence of plumes from the layer of accumulated cells[END_REF]. The speed of this motion make it complex to measure precisely the position of the particles, also this make the tracking at individual scale impossible with a discontinuous approach such as my scanning, therefore some trick will be used in the machine.

The path to multi cellularity

Chlamydomonas reinhardtii is famous for the formation of multicellular aggregates [START_REF] Ratcliff | Experimental evolution of an alternating uni-and multicellular life cycle in chlamydomonas reinhardtii[END_REF].

The formation of aggregates can present various advantages for the individual. Part of the aggregation is active via the flagella that allow interaction and aggregation between individuals. Indeed the flagella are coated of glycoproteins that allow a specific recognition and a transduction of the signal to the cytoplasm for an integrated cellular response. So the interactions between individuals trough the flagella can have a direct impact on the cellular dynamics. The secretion of exopolysaccharides is involved in the formation of such aggregate at longer term. Even if such production have a cost for the individuals, it is considered as a common good because the properties will benefits to all the present individuals when nothing guarantees that everybody invests the same amount of energy in the process. At the same time, exopolysaccharides will reduce the diffusion of molecules and ensure a relatively stable environment. Out of this costs/benefits balance result a lot of interesting theory on the structuration of populations and its interest for the individual cell [START_REF] Drescher | Solutions to the public goods dilemma in bacterial biofilms[END_REF]][Hansen et al., 2007]. Aggregation is stimulated under stress conditions, for example in the case of a nitrogen starvation [Mesland, 1976][Dutcher, 1995]. Interesting work show tendency to evolve multicellularity under predatory conditions [Boyd M, 2018].

Capacity of memorization and anticipation at individual scale

More and more clues goes toward the capacity of living systems to memorize their environment and the cycles of constraints they are submitted to at short term [START_REF] Ryall | Culture history and population heterogeneity as determinants of bacterial adaptation: the adaptomics of a single environmental transition[END_REF]. Learning is a tricky word to use, it is well fitted to describe this process of memorization and anticipation [START_REF] Lyon | The cognitive cell: bacterial behavior reconsidered[END_REF]. But it is also an Anthropized term that implicate an emotional response . Here I will quickly summarize the capacities of memorization and anticipation of Chlamydomonas reinhardtii toward light.

First, lets get focused on mid and longer term memorization, at a day and life cycle scale. Chlamydomonas reinhardtii is extensively studied for its circadian capabilities. The regulation of its circadian rhythms and its synchronization with the external light cycles, is a great example of memorization and anticipation [START_REF] Mittag | The circadian clock in chlamydomonas reinhardtii. what is it for? what is it similar to?[END_REF]. Such cycle have a myriad of repercussions on gene expression [START_REF] Tirumani | Coordination between photorespiration and carbon concentrating mechanism in chlamydomonas reinhardtii: transcript and protein changes during light-dark diurnal cycles and mixotrophy conditions[END_REF]. The production of Exopolysacharides is also a type of memorization for the individual, as it occupy space and modify its texture for futures processes, and their production is related to the metabolic activity. There are also short term mechanisms with a quasi instantaneous response time. With its complex light integration mechanisms Chlamydomonas reinhardtii is known for its quick responsive phototropism. But does this process implies a memorization? At least it do cause a trace of the cellular activity, by interacting with light related proteins in the eyespot [START_REF] Hegemann | All-trans retinal constitutes the functional chromophore in chlamydomonas rhodopsin[END_REF] (and potentially causing AMPc cytosolic cascade). We can see that Chlamydomonas reinhardtii have various mechanisms in order to integrate past event into the anticipation of future ones.

Capacity of memorization and anticipation at the ecosystem level

A population of Chlamydomonas reinhardtii can be represented as a sum of compartments that will interact via various type of interactions. Even if it is possible for living systems to operate in well mixed conditions, a relative boundary seem necessary to structurate an ecosystem. If the population is evolving in a spatialized compartment, oscillation of the population over time tend to appear. There is various dimensions to the interaction of a population of microbes [START_REF] Flemming | Biofilms: an emergent form of bacterial life[END_REF].

The more obvious one are the chemical interactions, for example regarding the availability of CO 2 . This type of interactions is happening via molecular diffusion, were the availability of substances will condition the individual activity of every members of the population. Depending of their position inside of the population, individuals may experience very different relation with a given substance. All individual will produce and consume chemicals resulting in a complex landscape of interaction at the population level.

It will also be mechanical interactions, simply by occupation of space. Or via for example the secretion of structural molecules such as Exopolysaccharides, that will generate mechanical constraints by trapping physically the cells in a viscous mucus, and then entangle the individuals in a network of macro molecules [START_REF] Ratcliff | Experimental evolution of an alternating uni-and multicellular life cycle in chlamydomonas reinhardtii[END_REF], some of these molecules possessing activities. This network of macro molecules will also modify the diffusion of smaller diffusive molecules.

Chemical interactions are also existing. Exchange of communication signals at the population scale are known to occur in microbial ecosystems. There is not so much study on cell to cell communication via molecules in Chlamydomonas reinhardtii but it is expected to posses various mechanisms in order to operate such communication [START_REF] Venuleo | Intraspecific chemical communication in microalgae[END_REF].

The automated machine

Here I will present the general design of the machine, it intend to give an overview of the different components of the experimental setup. Figure 2.6 show a 3D rendered model of the machine and its different modules. All the parts that are not industrially sourced intend to have a 3D printable design as well as an assembly and utilization manual. The Figure 2.5 show us the type of operation the machine will operate on the ecosystem at a local level.

Figure 2.5: This is the type of loop the machine can operate. Starting at the left image, the machine will acquire an image of the ecosystem. It will then find the living organisms onto it. To analyze their organization, and generate a feedback that will be projected for a given time on the biological system.

A ready to go solution could not be found due to the constraints on the setup. Indeed the light landscape need to be static on the sample, when most of the microscope offer a moving stage for the sample with a static light path, meaning that the sample will move compare to the static light path, so the landscape would have move on the sample with the observation. Which was in my case problematic as I wanted to apply a continuous landscape to the ecosystems with a micro-metric definition observation. The utilization of a low magnification objective on a static sample was possible but getting the proper specification regarding the objective for a large field of view in a conventional microscope was costly. I needed a system where I could keep a static light landscape, and either, acquire the full ecosystem in one field of view, or move a mobile module to scan the arena. After many trial and error I did obtain a working prototype (see Figure 2.6) More information can be found in the annexes A on this topic. We finally opted for a scan of the arena as it was the simplest and cheapest solution to implement, but this add a discrete component to the capture of the data and thus the hybridation mechanism, as the capture will not be continuous the interaction with the living system is operated in time step, this cause issues for many of its applications at short term.

Designing a prototype requires implementation of good practice, transforming the time invested in the design to be part of a progress and not a tinkering. Numerous hours in this project were allowed to debugging and various prototyping issues as well as designing the required parts, but this was invested in developing and learning a reproducible prototyping methodology. More than the available designs, there is their corresponding information and use case in structured folders. The machine is realized with an open source approach, most of the structural parts are 3D printed, but the mechanics in itself (rail, bearings..) is based on conventional metal based parts. The electronics is based on open source designs as well.

The hardware is orchestrated and coordinated via a software , composed of independent and modular bricks, running concurrently. This allow to complete complex iterative operations on the planar biological sample. A trade off between price, precision and modularity shaped the design.

More details are available on the project online repository [Fosseprez, 2016], where all the material on the machine is accessible, see the annex A for more information. A tutorial exist, resuming all the needed steps in order for the reader to construct the set up, it document the machine and its construction. Another tutorial detail the preparation and utilization of the machine to realize the experiments, this is visible in the annex D. These details can be useful for a third party that intend to reproduce the set up, but was mandatory to progress in the project due to the total complexity of it, it is mandatory to rely on a reproducible approach .

Figure 2.6: Details of the set up in FreeCAD. Plans are available online on my GitHub. The legend is the following: the XY machine that allow the displacement of the microscope, the microscope that is composed of the camera and the objective, the bifocal plan where the biological sample is located and that is the focus plan of both systems the microscope and the projector, the landscape projector is composed of a projector and a lens in order to focus the light on the biological sample

The XY microscope for observation

A XY moving microscope was developed, in order to have a decent observation window on the ecosystem under the proper magnification. More details about the development of this module in the annex A.

The microscope in itself (Figure A.29) is composed of a 20X objective that is located at its focal distance from a camera sensor [START_REF] Nguyen | Low cost real-time system monitoring using raspberry pi[END_REF]. Another design include a longer tube, where an intermediate lens is condensing the light to the camera sensor where in an usual microscope the eyepiece would be located. The quality do increase, as well it allow to use a plan objective. But it also increase the complexity, as the longer tube is orthogonal to the XY motion, it do experience strong mechanical constraints when and moving, especially concerning vibrations due to a fast motion. As I observe at relatively high magnification this shaking is observable in the resulting images and do pose a limitation to the design as a relaxation time of few seconds is required before acquisition. The objective in itself is already heavy, due to the presence of a metal based structure and various lens, the implementation of a lighter and strongly fixed module seems to be a solution. The reduction of the tube length is also a possibility, but this pass either by changing the lens or the sensor, what are potentially expensive modifications, for the moment no affordable solution meeting the requirements of magnification, size of field of view and price was found.

Figure 2.7: Here is a visualization of the z manual microscope module, in grey is the objective from the commerce, it can be 10x or 20x, in green the adjustment rod to operate a rough focus.

More details in the Annex A corresponding to the machine. As said lot of constraint are applied to this module, but it need to keep the microscope in focus and suppress as much as possible vibrations during an experimental session. The XY moving module did evolve with the microscope and its various design iterations. To increase the quality of images, the weight did increase, and thus the need for a more robust mechanical solution. The inspiration for the module comes from the big development taking place in CNC machines and 3D printers. The XY moving module driver were developed to fit on the Raspberry Pi. It use the GPIO (numeric pin set) of the Raspberry to activate an intermediate A4988 driver card powered via the Raspberry. This is not the smoother solution we tried, but the simplest, I did try to use Arduino with a motor shield, for a smoother motion, but the Arduino framework was found too unstable to continue. These two solutions allow to control most of the stepper motors used in CNC machines. The control of DC motors can also be simply implemented. The microscope allow us, either to obtain positional image, i.e. a given position in a reference plane. Or it can gather a meta image by stitching several microscopic field together. In the machine a combination of the two is operated (shown on Figure 2.9). Stitching require in itself a very complex processing pipeline, combining several advanced alignment methods. I did try to use Fiji integrated stitcher [START_REF] Preibisch | Globally optimal stitching of tiled 3d microscopic image acquisitions[END_REF] and OpenCV ones [START_REF] Bradski | Opencv[END_REF]. Finally the OpenCV was selected to be in the next iteration of the machine, for its ease of integration into Python code especially but is not yet functional.

The meta image obtain out of the stitching have an extensive weight, in my case it was 15Gb per image. The access to such image is problematic as it can be opened in memory if it overpass the amount available on the computer, and 15Gb is such an amount. A .xml protocol was implemented in order to access the image from their .T if f file and their memory location with python [START_REF] Achard | Xml, bioinformatics and data integration[END_REF]][Eliceiri et al., 2012], I use the bioformats librairy [START_REF] Goldberg | The open microscopy environment (ome) data model and xml file: open tools for informatics and quantitative analysis in biological imaging[END_REF] implemented with a javabridge.

Figure 2.9: This is a schematic of the path the microscope will realize in order to obtain the images of the positions of interest. The Microscope will go to a position, and acquire a number of positions around it. The entire process execution time may vary depending of the number of subpositions to acquire. With one image per sub position and one step of motion this process take 3 seconds, and 6 with a relaxation time to avoid vibrations.

Figure 2.10: Here is an example of meta image acquired with the microscope on a projected landscape. Its is composed of the stitching of several microscopic fields that overlap and are fused together. In this case magnification was low, the distance between two horizontal lines is around 4 mm. The stitching was realized via the stitching plugin of Fiji [START_REF] Preibisch | Globally optimal stitching of tiled 3d microscopic image acquisitions[END_REF]. The final image is resolved at several thousand of pixels in X and Y. The projection of landmarks is extensively used in the machine as it allow to compensate the error accumulated by the motors over the steps by giving the referential of the landscape projector, and thus allowing to acquire exact positions.

Figure 2.11: Here is an example of image acquisition over an ecosystem, every 24 h the surface was scanned and the images assembled into a meta image composed of tens of thousands by tens of thousands of pixels. One of the issue of such protocol is the amount of data generated. Each image weight 15 Gb in this case. Storing it is an issue , as well as accessing it as it overpass the average memory capacity of a standard modern computer. The image is stored as .Tiff file, and its access from python code is realized with the help of .xml parsing scheme [START_REF] Achard | Xml, bioinformatics and data integration[END_REF]][Goldberg et al., 2005].

The landscape projector

There was no solution matching my needs to project a static pattern at population scale with an individual definition on microbes such as Chlamydomonas reinhardtii and its 10 µm size. The design of the projector optics, even if using simple optical principles, have numerous possible solutions [START_REF] Packer | Characterization and use of a digital light projector for vision research[END_REF]] [Dan et al., 2013] [Lee et al., 2015]. These are the results of a trade off between projection quality, projection distance and price. Always respecting the constraint of relatively high energy projection systems are submitted to (thousands of lumens amplify some noise usually not perceived in normal utilization of the optical system). In my case my criteria for this device are: the sharpness of the projection, the absence of optical aberrations, a pixel resolution of 10 µm, a manageable projection distance. The goal is to obtain a focused image on the biological plan. It should be sharp enough to avoid too much overlapping of adjacent pixels signal. The idea of the landscape projector is to be able to actuate the ecosystem at near the individual scale. The target size for a projected pixel was set top around 10 µm in order to be able to stimulate precisely the ecosystem. The solution that will be presented here is the one that I currently use (see Figure 2.12). See the related annex for more details on the possibilities for the projection setup. At the beginning of the project the size of the projection set up and its distance of projection made difficult to have a mobile projector, but the shift to a smaller projection system allow to move the projector and the sample together under the static camera. Figure 2.12 and 2.13 show the mechanism used in order to craft light into the desired landscape. ) is combined into one beam via a TIR prism. This beam will hit the color wheel that rotate and will let pass each color a given time. This light will hit the DMD where it will be capture by a biconvex lens and projected.

It allow us to project a focused image onto the desired plan with the desired definition.

Each pixel can take several colors, thanks to the DLP DMD system of the projector and its color wheel. Pixels have 3 superposed states (R,G,B) that make their color. They will alternate depending of the number of colors on the color wheel and its speed of rotation. The projected pattern can be modified at high frequency (> 60Hz), this frequency represent the objective for projector manufacturer as at this frequency the human eye is submitted to a phenomena called retinian remanence. At these frequencies the eyes of most persons does not perceive the blinking but instead a continuous image.

The illumination intensity

The illumination intensity is dependent of the projector used but also depend of the lens set and various filters place in the optical path. Regarding the intensity, trial are conducted once the machine is implemented. The actual amount of light transmitted to the system may vary strongly, depending of the placement of the post field diaphragm for example. But for reference the light flux of a normal day represent around 2000 lumens. I did use various projector with intensity ranging from 100 to 2000 lumens.

In order to observe the sample or the projected landscape with the microscope, the amount of light sent to the camera should be controlled to not saturate it. The addition of a polarizing filter in front of the camera allow to decrease the amount received by the sensor and thus to increase the light conditions during acquisition. If the light input is too strong, the camera sensor will saturate and the image will become impossible to process. In the machine there is a correction parameter that need to be added depending of the projector, it divide the emitted light by a specific factor. The camera configuration can also be modified in order to augment the quality of the image under bright conditions. This configuration of the camera should not include an auto mode of any sort, as this would result in an auto correction of the image depending of its brightness, what would be problematic under the varying light of the light landscape. The apparition of stripes during acquisition under bright conditions with the camera is called flickering, this parameter can be configured. Other important parameters of the camera to improve the acquisition under Bright conditions are the control of the ISO, the gain and the exposure time.

The illumination wavelength

The illumination provided by the landscape generator should be absorbed by the Algae, and be of a consistent interest for these one in order to trigger interesting behaviour other than heating. The wavelength usually cast by a LED projector are 470nm for the blue, 530 for the green and 625nm for the red. These may vary of few nm depending of the origin of the LED. The quality of the filters in the color wheel is also defining the projected wavelength as it operate a band pass filtering over the light emitted by the LED. It is interesting to note that the red and blue wavelengths overlap nicely with the absorption optimum of the Chlorophyll A and B (see figure 2.4). The green no, but still it may interact with some others pigments. Figure 2.16: This is the result of the profile of figure 2.15 after applying a band pass filter to each LED via the color wheel. The filter here possess a 70nm wavelength bandwidth, centered on the emission optimal of the LED it is designed to filter. Despite overlapping in the emission spectrum of the LED, the projector is emitting distinct colors.

The illumination quality

One of the drawback of a DMD is the distribution of the light output, indeed the DMD will output a non uniform light field due to some inherent noise in the optical system [START_REF] Packer | Characterization and use of a digital light projector for vision research[END_REF], such as show in Figure 2.17. This should be taken into account when using the landscape, either by an increase of the pixels depending of their position via a calibration, or simply by avoiding the utilization of the edges. It don't seems to be any perfect solution to flatten the output of the projector.

Figure 2.17: The top image represent the uniformity of the standard light output of a DMD. Down graph represent the profile of this distribution. There is a clear decrease in illumination over the edges of the projection. Usually this decrease is up to 10%, here the profile was sharpened.

The residual noise DMD technology was used because it is an accessible patterning technique that offer a true black compare for example to LCD technology. But it is not a perfect black, there is a background noise of about few % of the maximum signal that is transmitted to the whole landscape due to some noise in the optical setup and due to cross contamination between adjacent micro mirrors [START_REF] Packer | Characterization and use of a digital light projector for vision research[END_REF]. In order to decrease this noise the manufacturer provide specifications that include maximum light conditions in lumens, these should be respected, still a white noise will be present over the total projection. Another noise that superposed to the DMD one is residual to the setup and is composed of optical aberrations in the optical path and cross interactions between these various components. This noise is structured and generate patterns, these will be relatively constant over time and along one experience. The lens set of the projector can be upgraded by addition of lens in order to decrease these noises, but that render the set up far less intuitive in term of optics, and increase drastically the price, the quality of the projection is slightly impacted by such system. These noises will always be present in the system, and even if they can be reduced, it is only in theoretical system that such problem can be ignored. In the machine, I addressed the challenge to deal with these noises.

The Bifocal plan

The landscape generator and the microscope are focus on the plan were the Biological sample is located. We call it the Bifocal plan. This plan is critical to the machine, as a misalignment, either in the landscape projector or in the microscope may led to the apparition of catastrophic noise. The intensive use of signal processing algorithms and machine learning in the machine allow to reduce the perception of such noise in the signal classification during the experiment [START_REF] Jalalian | Computer-aided detection/diagnosis of breast cancer in mammography and ultrasound: a review[END_REF], by utilization of complex correlations over different non linear image filtering, machine learning algorithm are relatively noise tolerant [Suzuki, 2012] [Bottou and[START_REF] Bottou | [END_REF] and allow to obtain the required information on the biological system despite the optical noise. The projector once adjusted, do have a static focus plan that cannot be adjusted automatically, so it need to stay focused along an experiment so the bifocal plan and therefore should not be submitted to any motion.

The chamber

The ecosystem need to be maintained at the Bifocal plan. To do so we use either a microfluidic chamber as shown in Figure 2.18 or simply a Petri dish (see Figure 2.20). The choice of the chamber depend of the duration of the experiment but also on the necessity of strongly controlling the conditions. The chamber is very minimalist, made out of two microscopic slide taped together, it offers a controlled environment suitable for long run due to its enclosed nature. But it is important to note that in the chamber the circulation of gases with the exterior is very limited.

The Petri dish offers a very nice gases circulation, at the price of a consistent evaporation. Note that the Petri Dish can be used in up or bottom-up position, in the second case a liquid interface is located at the boundary between a loose gel (see figure 2.20, ) and the air, what offer a super thin layer of liquid in which the algae can move and grow. Also in this upside down position the evaporation is also minimized as the liquid that condensate will fall in the lid and this excess of water will keep an humid atmosphere.

Culture condition can be modified if one wants to by changing the type of media used for the experiments. I use the conventional BG11 (see annex C for more info). In the Petri dish we use it in addition with Agar at low concentration (0.7%). The ecosystem do grow at the thin interface between a loose gel and the air. The observation is realized through the gel.

Inoculation

The idea is to have an uniform inoculation, that ensure the uniform distribution of the algae over the surface of interest. The chamber is inoculated with a liquid medium, so the optical density of the inoculum can be diluted to a reference optical density. The liquid is inserted in the chamber via one of the two opening (see Figure 2.19)

The inoculation of the Petri dish is realized with glass beads. A defined volume of a defined algal concentration is poured on the gel, then sterile glass beads are used to spread the algae on the gel surface. If the volume of liquid does not exceed the gel absorption capacity, no liquid should be remaining at the surface of the gel and the algae should be spread over the surface without apparent patterns, such as visible in Figure 2.21. In this case the inoculation was described as not heavy as the population of algae is pretty sparse on the gel, in such condition if the sampling area is too small, it is very probable that the population will not be uniformly distributed between the area, it is what is observed in Figure 2.24 as a difference of 20 % in the initial number of algae is observable in this case. Therefore on gel conditions, the initial partition of the algae need to be taken into account while assessing later growth.

Information on the algae distribution for a specific experiment is accessible, indeed the machine realizes an acquisition at t 0 , which represents the initial conditions. Stitching realized with Fiji stitching plugin.

The uniformity of the algae distribution can be assessed in order to validate the method. For example from an image such as the one from Figure 2.21 it is possible to look at the distribution at the algae by counting the number of algae in every square or other area of interest. This type of method can be automatized and integrated in the machine very rapidly, for example using the macro recording functionality of Fiji. Figure 2.24: Result of the area distribution of the particles from 3.21 in each square visible on the image from 2.22. Distribution was plotted using Fiji, this method can be automated either using Fiji macro language or Python. This information is useful as it allow to discriminate problematic area, by excluding area with either a peak present at a too big area, or simply if an object is too big in the field. These distribution also give valuable information on the initial distribution of algae, here we can for example see a difference between 15 and 20 % of the number of counted objects, but this should be put in regards to the area. It is complicated to analyze shape and their distribution with simple parameters.

It is also possible to look more closely to the interaction between individuals. For example looking at the Delaunay triangulation [Chew, 1989] of the cloud of particles can show a more refined information on the local texture of the distribution.

Control of incubation conditions

The regulation of the incubation conditions is critical in order to generate relevant results when working with biological samples.

The thermal regulation of the chamber is not fully implemented but does not present a major challenge in itself, this can be realized with two fans, one in the vicinity of a cold source(thermocouple) and the other next to a hot source(resistance), coupled with a thermometer inside of the machine. Care should be taken to the ambient humidity in the machine, especially when working with gels, and thus to avoid them to dry because of the circulation of air. The machine is heating, mostly due to the motors, but also the projector. This energy need to be dissipated in order to realize relevant experimental results.

Another regulation that is critical when operating with photosynthetic organisms is the level of CO 2 . This is not regulated in the machine and do require a severe upgrade as the setup need to be gas proof. Indeed the amount of available CO 2 dictate the speed at which the organisms can realize its anabolism operation and integrated new matter by photosynthesis. The control on such parameters is thus critical to generate relevant biological results.

Media composition

As detailed before, the main media I use is BG11. In the case of the Petri dish, I supplement it with 0.7 % of agar. The BG11 is the reference media for green algae. The medium is playing an important role in the culture development as it provide the chemical ingredients on which the micro organisms source their needs [Zapomělová et al., 2008][Cohen andVonshak, 1991].

Several media composition were explored. In order to grow bacteria such as P.aeruginosa at the same time than algae. Trial of growth algae were also conduced on M9 minimal salt media [START_REF] Harwood | Molecular biological methods for Bacillus[END_REF] (see annex C for more info). The M9 media is a proper media for bacterial growth as it is dedicated to it and offer all the trace elements require for a lot of the cultivable prototrophic flora. This media do work for Chlorella vulgaris as growth was observed from visual observation on petri dish after 96h of incubation in standard conditions(see annex C). But no growth was observed after 96h for Chlamydomonas reinhardtii when it was on BG11 grown in the same conditions.

The addition of compound of interest to the media was also explored, in order to work on their degradation for example. The addition of hemi cellulose (which is a water soluble molecule compared to cellulose) is interesting, as the assessment of the ecosystem growth on the such media in the machine could then be linked to the degradation of such molecules. Several technological challenge exists today in degrading such natural polymers.

The numerical layer

The software that I developed for the machine is composed of three layers.

• An Hardware related layer, that allow to interact with analogical component such as the steppers motors drivers. And integrated numeric component such as the camera. It can be called drivers.

• A Complexity related layer, that handle the flux of data and process it in a consistent way.

It also contain the toolbox related the experimental design.

• A Development related layer, that give the capability to engineer the machine by testing, integrating and monitoring.

All the code is highly commented and seems pretty easy to handle for confirmed developers. There is no breakthrough in this assembly, but is allow a resilient, and easy to implement framework in order to interact with complexity. The Software is oriented toward an high modularity, that allow to express numerous experimental realization, in a flexible and resilient framework. It integrate complex tools, such as classifiers for image processing, while staying modifiable. The Software also intend to integrate good development practices as for example the implementation of an Autodoc syntax that render possible the assembly of an API with Sphinx. Example of such automatic documentation for an old version of the machine is visible in Figure 2.25, 2.26, 2.27, 2.28. The constraint of performance is respected by the software, as it operate in realistic times compared to the biology. The speed of execution vary depending of the operations realized. The operation of motion plus capture usually take around 3 seconds if there is only one image acquired, but this depend on the distance that the microscope needs to execute, a big time consuming step is the capture of the image itself on the memory by the camera, what take around 1.5 seconds and could be shortened. Reducing this time too much lead to vibration issue, as the machine don't have the time to absorb the vibration of the motion.

The Architecture

Here I will summarize the architecture of the software. Please keep in mind that the development of this step took a big effort to be build. A small part of it will be presented here, but a sum of useful tools were developed and tested along the project. Find more information in the corresponding annex A. Getting to a stable machine, able to sustain long experimental cycle, with flexibility, control and resilience require method and robustness. When developing a software, there is different steps that can be reached depending of the complexity of the tasks you want to realize. Here I went toward a high degree of complexity, due to the variety of tasks operated, but also the decentralized architecture of my Raspberry cluster.

Overview

A lot of technology are present in this field in ebullition. I did test a lot of ways. The one I present here is the one currently implemented in the machine. It is a trade-off between speed and modularity. The whole machine can almost operate in live conditions as the entire loop from capture to stimulation can be reduced to 5 seconds (still including machine learning tools). The Figure 2.29 represent the different component present at run time in order to run the machine. The machine is running over a cluster of several Raspberry Pi, each task (Micro, Proc/Mom, Proj) are operated on a different Raspberry, because of performance issue of a single card, this separation of function was necessary. With the news models of Raspberry Pi coming out and their increase in performance, such separation of function and all the complexity it involve can be avoided. on the computer you use to interact with the machine, this communication is realized via SSH protocol. The RabbitMQ server provide an AMQP service [START_REF] Rostanski | Evaluation of highly available and faulttolerant middleware clustered architectures using rabbitmq[END_REF]. RabbitMQ is a messaging protocol base on a system of queue. The apps communicates via these various queues. The Flasks apps can be monitored at their running IP, specifying the application port on the remote machine (that is set at app start).

An effort was put on the development ecosystem, especially as experimental flexibility and resilience were targeted. The software is developed using a Git repository structure [Ram, 2013], I use Gitlab as a remote server, Figure 2.30 shows an example of one of the repository folders. Notably today the machine can be automatically installed from the repository with a resilient Ansible framework from few command lines, and modified from a simple config.txt file located in the main folder of the online repository. The repository act as a standalone to install and run the machine, everything needed in order to run the software is present there (that is ensured by the fact that the software is fully contained in the repository), third party content is only installed via apt -get commands listed in the Ansible playbooks, this ensure that the software can be installed on any remote machine without need of intervention. This resilience was tested as the machine has been several time installed from scratch using this method. As of today this still requires few minor subtility in order to be installed, which blocks the diffusion of the software as a simple package that can be installed in few command lines by a non coding person. Figure 2.32: This is the menu of the Bash script that allow to control the machine remotely.

Maintenance and operation tasks are possible via a solid toolbox called the circus (see Figure 2.30), and providing all the require tools to maintain the machine running and operate modifications on it, this includes 3 components called: initialize , training and operate . That respectively allow with the use of Ansible and some Bash command lines over SSH to: realize all the operation regarding the LAN and SSH network, install all the requirements and packages on the various machines, run and debug the machine as well as push the experiment and fetch the resulting data.

Run the machine

Figure 2.33 show the operations realized in order to launch the machine. The communication over SSH and via Ansible allow to push the new code (with Git) one the different machines, then it reset their various servers (RabbitMQ) and debug logs (Apache), as well as suppress and re install the different Python packages with setuptools [Eby, 2010]. Once these tasks are completed on every machine, the software will launch every unit synchronously. The debug logs of the different machine is accessible on the local network via an Apache server. All the machine need to be connected to the local network. And in order to allow SSH communication, must have a password or a ssh-key set. Each unit will be executed on the IP that was affected to it. Please do note that different units have different hardware components and thus IP cannot be switched arbitrarily. Each unit will have an update phase during which it will pull the repository to update to the latest version. Uninstall and reinstall the Python package.

Clear the log.txt files. Reset the RabbitMQ server Figure 2.34: This represent the actions triggered when training the machines. Each machine will get the repository. It will then proceed to a basic installation. Including edition of some Raspberry configuration files (no save screen, give permissions..), installation of Raspbian packages with apt -get, installation of Python package with pipinstall, download of software from online sources with get. Once the basic install completed a training will take place. It vary depending of the unit type (microscope, projector or mother). This will configure the Raspberries to allow various functionalities that are unit specific, such as piping the display to the projector..etc

Develop the machine

Several tasks are realized by the software in separate units, it orchestrate the machine via the mother unit, control the observation with the microscope unit, control the light landscape via the projector unit, and process images via the processor unit. The modularity was a way to allow me to develop the complexity required by the project, it is possible to work on the independent units while not breaking the machine. Operating with modules require some good practice in order to deploy and manage them. I opted for a worker based structure, as visible on Figure 2.35. This type of architecture allow to implement service by simply linking a Python script to a RabbitMQ queue, this is done with the help of the pika package [START_REF] Boschi | RabbitMQ cookbook[END_REF]. Here I will describe the major service provided by the software, these services are spread over the local network and communicate via the RabbitMQ server. The Projector is a service (see Figure 2.36), it allow to control the projected landscape by controlling the display of the machine connected to the projector via HDMI. The Python script use the pygame package in order to display various objects at various positions, this can be executed with frequency up to 60Hz. The Microscope is a service (see Figure 2.37), it allow to control the various component required for the acquisition of image. This service contain as much sub services as there is functionality on the microscope. For the moment two service are implemented: the camera sub service that allow to acquire image (while controlling the projector 2.36). And the motion sub service that allow to control the various motors present on the microscope (X,Y) or (X,Y,Z) depending of the hardware configuration.

Figure 2.37: This is the structure of the microscope unit. This worker contain two sub units with which it communicates.

The Processor is a service (see Figure 2.41), it allow to initialize processor pipe and feed them with incoming images (Figure 2.39). It return them after their processing. The heavy operation executed by the service are to put and get the data from the processor pipe. The processor pipe are them self very intensive service and may require most of the available memory on the machine. The content of the OUT folder is automatically sent over the the response AMQP queue.

The Mother is a service (see Figure 2.40), it allow to coordinate the experiment. It will trigger the launch of various routine on the different machines at specific times.

Details on image processing

In order to process the image and extract the algae from the signal, classifiers are implemented in the machine.

Before any classification, the resolution of the images must be adapted to the input of the classifier. Some pre filtering can be operated in order to suppress some heavy noise such as the residual squares due to image stitching. The image need to be converted to the proper type of image (usually 8 bits)

For example the flexible and user friendly Weka trainable segmentation plugin of Fiji with its possibility of using a GUI [START_REF] Arganda-Carreras | Trainable weka segmentation: a machine learning tool for microscopy pixel classification[END_REF] allow to train some simple random tree forest classifier. This segmentation offer the interest of proceeding to morphological segmentation [START_REF] Acton | Scale space classification using area morphology[END_REF], thus the position of the individuals become accessible, as well as all their shape attributes. Depending of the number of morphological features implemented, such technique may take from 3 seconds to 30 seconds.

More complex classification technique can be implemented in the machine, for example via the use of Pytorch [Paszke et al., 2017]. But these black box approach were less explored as the models are very heavy and the memory space on the Raspberry Pi is limited to 32Gb. Even if such techniques offer faster execution time than the morphological segmentation (<2s).

Functional emergence and possibles combinations

Once we got all the previous systems running. It is in fact possible to increase their performances by combining them.

Increase of the resolution

Indeed the combination of patterning technique, precise motion and imaging offer a lot of possible combinations. The machine just reached a degree of maturity allowing the integration of such complexity into the conduct of experimental procedure. For example it is possible to increase the definition of the obtained images by shifting the z position of the sensor by few µm and acquiring several images on a same XY position [START_REF] Zhang | Adaptive pixel-super-resolved lensfree in-line digital holography for wide-field on-chip microscopy[END_REF]. This type of technique is very promising as it allow to sample a big field of view (few mm) with a high resolution and at a low cost, the image is not 'online' as some processes need to be realized in order to reconstruct an image out of several z shifted images. In order to realize this technique a bigger sensor is required, the one that I use is a Raspicam its CMOS sensor have 0.635 cm of diagonal with 2500x1900 pixels. A magnification up to a µm allow a sufficient XY definition in my case allowing to see cells with tenth of pixels.

Depth reconstruction by Ptychography

This can be combined with the projection of specific patterns with the machine. The projection of specific color patterns in order to extract more information out of acquired images is called Ptychography. But in my case the definition of the landscape pixels is of a smaller resolution that the camera pixels, in order to operate powerful Ptychography an higher resolution for the projection would be needed [START_REF] Dan | Dmd-based led-illumination super-resolution and optical sectioning microscopy[END_REF]] [Zheng et al., 2013]. This type of techniques is especially useful if the observation focus on later stage of the culture, as transmission microscopy become limited with the apparition of a z structure in the Biofilm.

Rapid color scanning

One of the interest of a DMD system is that it allow to turn ON and OFF every pixel at high frequency (100 Hz and more) The micro mirrors allow with an high frequency to shift every pixels between their ON/OFF states. The DMD can be combined and synchronized with a color wheel, thus it alternated the projection between a different image for every color component of the color wheel (for example Red,Green,Blue) So if one intend to operate an acquisition over several emission wavelength, the time required to shift colors will take few microseconds, in fact the longer time become the capture of the image. It offer a very interesting potential in microscopy where color filter shift is still operated via a rotating turret that take at least few hundreds milliseconds to rotate between positions, time that can be precious when operating scan with thousands of positions. The CMOS sensor of the camera I use is filtering light over 3 channel in order to reconstruct an R,G,B image [El Gamal and Eltoukhy, 2005]. Thus when taking one picture with the camera, in fact the image is acquired over three separate channel with their independent filtering. So it is possible to couple projection over 3 channels with observation over 3 channels, what offer a big space of possible coupling and the possibility to extract relevant indicators on the ecosystem and cell state.

Indicator generation

The generation of indicator that are offering robust and relevant information on the cells state is needed in the machine. These indicators can be the result of a coupling between hardware filtering of the light beamed on and from the sample, as well as the result of some numerical analysis on and between then acquired data. I did explore several possibility, here I will present some of them. I will not present the use of spatial indicators here but in the next chapter.

By filtering the light

As said previously, it is possible to add filters in the optical path, and thus generate some valuable information on the biological sample. For example the use of polarizing filters offer a cheap and powerful tools in order to study the production of extra cellular matrix by the algae.

By looking at some auto fluorescence

It is possible by modifying the camera to obtain images called Infra blue images. These image allow to capture the auto fluorescence of chlorophyll present in photosynthetic organisms. Thus this technique offer a way to remotely measure the photosynthetic activity. The implementation of such technique was tried without success due to the too poor quality of the filter used for microscopy applications.

By processing the coupling between emission and reception wavelength

As detailled in 2.4.2, the machine emit on several wavelength and capture on 3 separated colors channel. Therefore it is possible to operate multispectral analysis of the sample in order to extract valuable information out of the acquired images. For example by capturing an image of the same position for every color present on the color wheel, it is possible to capture image of various texture. Chapter 3

Hybridation procedure "The light works," he said, indicating the window, "the gravity works," he said, dropping a pencil on the floor. "Anything else we have to take our chances with." -Douglas Adams, Dirk Gently's Holistic Detective Agency

Here I am looking to construct an iterative interaction between the numeric and the biologic part of the hybrid. In this chapter I will detail the methods I use to this purpose.

A well known scheme of hybridation consist in constructing a common space between the different actors. Such as did the talking head experiment, were a common expression space allows agents to generate a complex semantic [Steels, 2015].

Here I will use the Bifocal plan as common space. What the numeric observe, the biology did, and what the numeric respond the biology feels it.

The space we got here is limited by the feedback resolution i.e. the space that the landscape projector can project. It is a planar space, a tensor of dimension (x, y, z). Where every pixels at a given position can take (z) different values. Usually working in the R,G,B space, z = 3.

Definition of subsets

On the image plan previously detailed I defined arena to work with. A Python module was developed in order to generate the desired arena arrangement. We use a working resolution of height x = 800 pixels and y = 400 pixels of width for the projected landscape generation. The projected image from the projector may have a bigger resolution than the constructed image, the constructed image is centered on the screen, so if there is extra pixels available, they will be at the border of the working area, and will be set black. The Figure 3.1 show an example of arenas distribution. It is a mask image, where each continuous white pixels cluster is an independent arena.

For i ∈ [1, a] where a is the number of arenas, each arena A i is represented by a vector of size n:

A i = (p 1 , p 2 , ..., p n )
In my work I use n such that n = 128 pixels. Each pixel p i is a triplet (p i,1 , p i,2 , p i,3 ) which are respectively the R,G,B intensities.

Equivalently A i can be defined as 3 dimensional tensor of size xyz as previously defined.

It is very important to notice that between frameworks (image,matrix..) this convention may change, what is very confusing, in my case lets fix the {0, 0} coordinate at the bottom left corner, as usual for Cartesian westerners.

Another zone is defined on the projected landscape, the separator that is a dark area of define size between two Arenas. And will be projected as background signal.

Figure 3.1: Here is an example of mask for the arena. We define 4 arena of 32 pixels of radius each. An arena is defined on the mask image as a continuous area of white pixels

The Figure 3.2 show another mask, this time there is more smaller arena, and these are grouped into 3 family. This can allow to operate replication over conditions. For example by applying the pattern in Figure 3.3 to every family. Figure 3.4: As visible in this quarter of arena mask, the border of the white shape is a granular surface, as it is represented by a discrete set of pixels. This need to be taken into account when defining the various patterns that one want to project. Their is a maximum shape definition that can be projected regarding the landscape projector definition.

Figure 3.5: Here is the surface plot of this area. We can easily see the granularity of the shape on it

Here we decided to generate uniformly distributed landscape with repetition of the same shape. The machine can work with any type of shapes. The only constraint being that no overlap is possible between two arena. The generation of the landscape in a flexible fashion have shown to be more difficult than expect. It include several steps from paving, to drawing, and referencing the shapes.

In fact the mask of the arena can be obtained out of a meta image of a real compartment quite easily. From a top image of a 96 well plate for example by extracting the mask of every well with a simple classifier.

Usually the rendering of a projection look continuous because of the size of its projected pixels compare to the resolution of the human eye. But also because rendering algorithms can be used in order to smooth the shapes. Care shall be taken that such operation are not happening without control when projecting our shapes! This also mean that the projected pattern should be at the same resolution than the projected signal. Else a compression/dilatation will need to occur. If the projected pattern is too much resolved, the compression before its projection will erase part of its details. If the pattern is too small, its dilation may decrease the sharpness of its details.

When creating the arena, additional shapes are created, that will be used all along the experiments for various purposes. They can be structural shapes, such as shown in Figure 3.6, 3.7, 3.8, 3.9. These shapes can be combined together in order to obtain various useful dynamic objects which parts can be moved independently. Such as show in Figure 3.10, 3.11. These shapes are drawn via Python, I use the Numpy package to do so [Van Der Walt et al., 2011]. Other more elaborate framework exist and were explored to draw shapes such as Scikit-image [Van der Walt et al., 2014] and Opencv [Bradski, 2000]. Numpy has shown sufficient for the moment and doesn't include smoothing algorithms that can be problematic in my case. A huge complexity exist in the generation of shapes, if we fix to the computer related part of it, from the beginning of powerful enough computer in the 80's [Gips, 1974], to the modern graphics cards [Kilgard et al., 2001]. The software I did develop do not met specific performance criteria under the second, as the images I generate are included in an hardware related loop which take at least 1 second. This type of temporality is sustained without specific requirement with the help of modern hardware. The shapes are referenced in a Python dictionary, accessible by the projector unit, new shapes can be inserted into this dictionary from specific messages. In order for the shapes to be able to overlap, it is not possible to project the mask of a shape with its surrounding background, as this one would erase the previously affixed shape if superposing the shapes one to another. The shapes are instead stored as a list that contain all the positions of the pixels of the mask, as this type of object is a reference in the Numpy package it is fast to handle by the software. The projection of the shapes from Numpy to the projector is realized with the Pygame package from Python, this package allow to use the graphical interface of the operating system. With this package it is possible to update the projected landscape with frequency up to 60 Hz. Figure 3.8: This shape is called piston, its longer dimension is a the size of the arena. Figure 3.9: This shape is called rectangle, it take the whole arena until the separator.

Figure 3.10: This shape is called motor, it is a combination of 3.9 and 3.8. The idea is that the piston can then be moved inside of the rectangle (cylinder) depending of the 'pression' in every chamber Figure 3.11: This shape is called radar, it is a combination of 3.7 and 3.9. The pistons can rotate in the circle.

Additional shapes are also developed for sampling purpose, i.e. the projection of a specific type of signals such as pixel sized stripes (see Figure 3.12,3.13). This allow by capturing a picture under each projection to reconstruct a pseudo depth, but the z definition of such technique is related to the definition of the projected stripes, which a relatively big in my case compare to the observed objects (25 to 50 µm for the pixel compared to 10 µm for Chlamydomonas reinhardtii ). The idea is that projecting specific patterns at precise position may allow to acquire highly informative images.

Figure 3.12: Example of generated pattern for projection purpose, here are horizontal stripes. These are accessible at all time from the projector unit RAM, this allow their rapid projection.

Capture of the subsets: From a position to an image

Once the subsets are defined. The machine need to be able to capture the image. To do so as we acquire images through a microscope, the machine will need to move to the arena position in order to capture an image of its content.

If the arena fit into one microscopic field. The machine need to move to the proper X,Y position and get an image. If the arena is bigger than one microscopic field. Then the machine will need to acquire several microscopic fields and stitch them together in order to gather an image of the full arena as explained previously ( Figure 2.9).

In order to gather the proper position (avoiding the inherent noise in the positioning of the microscope). I do use light landmarks, which are projected patterns that will allow the microscope to know it exact position on the projected plan. These landmarks can be of multiple nature, from a path that the machine follow, to some marker around the arenas. The constraint of the utilization of such landmarks is the noise they can bring to the experiment (if they are too close from the arenas for example), to avoid such contamination, the projected landmarks are usually of weak intensity (few % of the max projected intensity) but still clearly visible on the images in contrast to the acquisition light conditions. If it is not possible, an image containing only the landmarks is used for a capture, in order to keep them of weak intensity compared to the signal used in the experiment. Simple superposition of acquire image allow to extract the region of interest from the land marked image and use them to get the image of the arena under the acquisition conditions such as shown in Figure 3.14, in this case the landmark was projected directly on the sample as a white dot (instead of an exterior landmark) for simplicity reasons as the acquisition method did already include several colors being projected on the sample , and this projection of various colors for acquisition was already invasive. Figure 3.15 show us the type of signal it is possible to obtain from a position in few seconds, here in this old version of the machine the time for acquisition of the 4 channel was around 14 seconds. Which is fast enough for many application, but this approach was offline (meaning the total image of the Biofocal plan needed to be acquired in order to find the alignment and extract every individual arena) and this due to a total lack of precision in the motors. Please do note that this type of image is usually not acquired as the camera will not be able to manage the amount of light projected to it. Here I did used a polarizing filter in front of the camera.

Figure 3.17: This image is projected on the sample in order to operate a multi spectral acquisition. Each dot can be extracted from its mask. Here is the type of image obtained in the red strong color (168, 0, 0) * Intensity correction On one arena, would be a collection of individuals. It is possible to identify them out of the signal from their singular optical signature. Several methods can be used. Even helped by machine learning, using classifiers. For more information on the technique used to realize the classification see the annex B After this processing I obtain classified pixels, every pixels p k of position k ∈ {1, • • • , n} (or x, y in the corresponding tensor) got a class affectation such as:

Class 1 = {k 1 1 , k 1 2 , k 1 3 , ...}, Class 2 = {k 2 1 , k 2 2 , k 2 3 , ...} with Class 1 ∪ Class 2 = {1, • • • , n}.
We are here in the simple case of 2 classes. And this method can be extended easily to more classes.

Based on this classification I operate a smoothing that will suppress some potential residual grain that are satellite to a real individual. I then identify the basins. Each of them being an individual of a given class. This technique is robust and sufficient as I my case I observe simple objects at focus. I get the properties of the individuals with the analysis of the classified image with the module measure from the Python package skimage [Van der Walt et al., 2014] (skimage.measure).

Class 1 = I 1 ∪ I 2 ∪ ..., Class 2 = I 3 ∪ I 5 ∪ ...} with I n = p 1 , p 2 , .
.p i forming a continuous area. Each I n is stored in the software as a dictionary containing a class, a barycenter and morphological information (area,shape..) of the pixels that compose the individual, as well as a mask of the individual. After the analysis, each individual is referenced by a key representing its number assigned during the identification process and a dictionary containing the above mentioned information. For ease of access, these dictionary are them self stored in a dictionary that contain all the dictionary of the different individuals of the image.

We define the population as following

population = {I 1 , I 2 , ...I n }
We then operate a filtering by excluding weird individuals (misclassification, inoculation issue..) of the individual pool. This is realized by analyzing individuals characteristics such as the area and operating a threshold above a given size for example. More fine criteria can be extracted out of the morphological properties of the shapes to exclude, once the training set has been more detailed, classifiers can be trained with the task of identifying weird individuals.

Such processing of an image of algae for a given arena give us for example result visible in Figure 3.21. The result of a classification need to be tested. To do so the classifier is run against a test set (a collection of image segmented by human) in order to be characterized. This was only partially done, as the realization of such set is dependent of the input used to train the classifier. And these inputs image keep changing along the project with change in the setup. We obtain classification with a precision superior to 95 % of the individuals for the test realized on precision. In my case as I look at the segmented shape, another metrix to check the validity of the classifier would be its Jaccard index, which is a statistic convenient to measure similarity between true and predicted shapes and is defined as J = |A ∩ B|/|A ∪ B| with A and B being the area to compare (test vs predicted individuals in my case) [START_REF] Polak | An evaluation metric for image segmentation of multiple objects[END_REF].

Individual metrics

From the results of the previous classification it is possible to separate individual in the population based on their individual morphological properties. These morphological properties contain valuable information about the individuals. From the masks it is also possible to get the original image of the individual, this image is obtain by cropping the mask of the individual on the original image. For example Figure 3.22 contain a marking in red of the individuals of Figure 3.21 with a circularity inferior to 0.8 (circularity is calculated as circularity = (4 * π * area)/perimeter 2 ) .

There is many such indicator as the circularity, that trough a simple formula allow to characterize a shape, the simplest being the area that represent the number of pixel that compose the individual. Here I present the circularity because this indicator could be related to cellular division or aggregate, biological markers of interests. These indicators can be extracted from the morphological information available on every individual after the classification. Note that increasing the number of class to train the classifier on other class, such as circular and non circular will have for effect to use morphological information in order to discriminate between the two classes.

Pattern metrics

From the previously extracted individuals it is possible to try to learn some information on the local patterning of the individuals in the population, this patterning may teach us on the interactions between the individuals.

It is possible to use machine learning and tools such as dictionary learning to look at this patterning [START_REF] Kreutz-Delgado | Dictionary learning algorithms for sparse representation[END_REF]] [Mairal et al., 2009] [Tosic and Frossard, 2011]. I do use the scikit-learn [START_REF] Pedregosa | Scikit-learn: Machine learning in Python[END_REF] package for Python to learn the dictionary out of a set of images.

Before passing the image into the Dictionnary learning it is necessary to prepare them. For example, the image from Figure 3.21 after a compression to the proper size, a transformation to 8bit gray scale and a Gaussian blur (with a standard deviation equal to the average size of individuals) give us the Figure 3.23.

Out of this image it is possible to use Dictionary learning to extract redundant patterns, for example visible in Figure 3.24 and 3.25 are dictionary of redundant patterns extracted from the training set, respectively with an atom size of 16 by 16 and 32 by 32 pixels. For example, the image from Figure 3.22 with its two population identified will give the image shown in Figure 3.26 once prepared for the dictionary learning algorithm. The steps for the preparation are composed of a compression to the proper size, the repartition of a class per channel (Red is the circulars, Green is normal individuals, and Blue is the Background) and a Gaussian blur of the image with a sigma equal to the average radius of an individual.

The Figure 3.27 and 3.28 are dictionaries trained out of the training set. The difference between the two dictionary is the size of the atoms that compose it, defining the proper size of atom is critical in the outcome of the method. Here the correlation of colors is of interest, especially the yellow color as it represents the superposition of the circulars and normal individuals. Such pattern can be a good target to project reward for example.

Boundary conditions

As I intend to look at the arena as a unit, it is needed to fixed the type of boundary conditions at the border of the arena. Either the boundary and what is located outside of the arena is disipative and is represented as background. Or the system can be toroidal with the use of periodic boundary conditions. This choice have a strong impact on the behavior of the observed system [START_REF] Blok | Effect of boundary conditions on scaling in the"game of life[END_REF]] and seems to be an interesting parameters to explore with the machine.

Here I will stay in the simple case and consider the outside of the arena as background.

Population level metrics

Many operations are possible to quantify and qualify the population from a macroscopic perspective. Here I will present the one that I construct out the classified map of individual. This individuals map, despite adding a chunk of complexity to realize compare to a density allow to overpass some noise inherent to the acquisition as the signal is discretized during classification.

The operation I will present here apply to a cloud of discrete positions. In our case the Barycenter of the individual, which is supposedly the center of a discrete entity. I mainly focused on graph theory, and more particularly spatially constraint graphs, what I will introduce here.

Introduction to graphs

An elegant way to work with cloud of points is to analyze it as a graph. As it offer simple analytic solutions to complex problems in given regime. As nature select parsimonious behaviors [Sober, 1981], thinking of living system with a graph perspective is not aberrant as graph allow the abstraction of an interaction. We can generate graphs out of the population of individuals we obtained previously. Some explanations on graphs: Let take the finite set V = {V 1 , V 2 , ...V n } And denote E a subset of V with two elements. E(V ) = {{i, j} | i, j ∈ V } i.e each edge of E(V) is composed of two point {i, j } belonging to V. A pair G = (V G , E G ) is called a graph. The elements of V G are the vertices and the elements of E G are the edges of the graph.

Each edge can have a weight (by default 1).

To recapitulate, a graph G is composed of V G and E G which are respectively the set of vertices and the set of edges that compose the graph. Each vertex have a position on the plan, and each edge have a weight. In my case each vertex is the barycenter of an individual of the population. As i need to add a spatial information to the graph, it is needed to associate with each vertex its position n(i) in the Arena.

Graph construction, how to put the edges Some cases offer no or few doubt about the relation between individuals in the population. In the case presented here, the graph abstract chemical interactions between individuals, thus it need to be reconstructed as there is no visibility of the diffusive molecules. But I work in the case of a spatialized graph, so I can use the position of my individuals and their relative distance as an interaction generator.

There is several methods that can be used to reconstruct a graph from a cloud of points. To generate specific type of connectivity, two method exist, constructing a graph from the cloud of point by connecting the individual following an algorithmic pattern, or depleting the complete graph from an algorithmic pattern. Here I will present some graph that can be used in the machine.

The most complete graph is fully connected between each vertex i.e. G|∀ (i, j) ∈ V 2 G , ∃E i,j ∈ E G represented in Figure 3.29. This type of graph cannot represent most of the flux in a real 2D world as the edges would cross. A type of connectivity that offer an interesting insight into system is the result of a Delaunay triangulation [Chew, 1989], the Delaunay triangulation is the dual graph of the Voronoi diagram [START_REF] Aggarwal | A linear-time algorithm for computing the voronoi diagram of a convex polygon[END_REF]. This triangulation will connect every point of the cloud while maximizing the smallest angle of every triangle, it will result in an harmonious graph, it is important to note that this triangulation may present several solutions. The graph visible on Figure 3.33 is the result of such triangulation over a population of algae.

A family of connectivity that seems biologically relevant is a connectivity I define as Steric. A steric graph is a graph where every vertex posses an area of interaction, and is connected by an edge to the vertices whose area of interaction is in contact. This distance can be specific to each vertex, for example being related to the area of the individual represented by a vertex, or the class to which this vertex belong. As shown in figure 3.30. Another type of graph I defined is called a Diffusive graph, where every vertex posses an area of interaction, and is connected by an edge to the vertices whom are inside of this area, as shown in Figure 3.31. The graph constructed with this method will differ from the graph constructed with the Steric method.

In the connectivity of graphs

Graph can be studied in various ways. One useful representation for example is the adjacency matrix (see Figure 3.32), that represent the connected vertices. With This type of representation allow to study the connectivity of a graph. Especially if iterated n times, this matrix gives the connectivity of order n: M n i,j is the number of paths of size n connecting vertices i and j.

V = {V 1 , • • • V n } the adjacency matrix M is n x n, with M ij = 0 or M ij = 1, depending if E i,j ∈ E(V ) or not
We can iterate over this connectivity, checking the connectivity of the connected vertices, and the connectivity of these vertices, etc.. These order of connectivity of the graph and its vertices offer a vast information on the system and individual past, present and future.

The interest of graphs as an ecosystemic metric

Exploring the structure of graphs built on a biological system posses a strong interest in the understanding and the control of such a system. Figure 3.33 show a graph constructed out of the Delaunay triangulation of a classified algae image. Figure 3.36 show us the same original data than the previous figure, but in this case the size of the vertices is related to the size of the algae they represent. Figure 3.38 show the vertices of the graph from Figure 3.33, but on this graph all the vertices that have an even number of connections are marked in orange.

Interaction with the subsets, from an observation to an action

Once the sample and the structure of the population was analyzed, it is time to send a feedback to the system. Many different way of feedback can be envisaged, but it always implicate to project a tensor on the ecosystem, this tensor will vary with the feedback. Here I will quickly present some of the most intuitive type of feedback. One of the critical step of the generation of the feedback is the compression, indeed the signal observed is more resolved than the signal projected, thus the feedback need to be adapted from the definition of the observed information to the resolution of the projected feedback.

Uniform reward

It is possible to project an uniform reward for example of a given color, or of a given intensity, or with a given frequency on the arena. In this case the machine can still use its observation to modify the parameter of the reward (intensity, frequency, wavelength). To analyse the effect of the parameter, the machine need a metrics. This metrics can be an average of the ecosystem (average of Absorbance for example), but can also be more complex and use the previously defined type of indicators (see Figure 3.22).

Figure 3.39: Type of uniform pattern that can be projected on the sample in order to asses its relation with in this case the wavelength and the intensity. Figure 3.44: This is a reward pattern obtain from a processing such as the one of Figure 3.38. This image intend to reward the vertex that are connected to an even number of vertices.

Information dependent reward

It is possible to calibrate the projected landscape to a specific total intensity, this mean that the total energy projected can be normalized, and thus its possible to try to measure the impact of the processing of the reward in its pure informative component. Such normalization is constrained by the notion of contrast.

Limits

For observation

As I process a signal there is a noise. As I operate a classification, that mean it will be missing individuals. I do operate the classification pixel wise, based on local properties. Therefore missing individuals will be at pixel scale, as we agglomerate pixels to form individuals there is very few chance that an individual is not at all detected. Still it can occur, as well as partial identification (which will be more frequent) and modify the perceived shape of an individual.

For projection

The signal we do project is orthogonal to the Biological plan. Thus when a micro algae will enter a projected pixel it will diffract light, sending some signal toward the Biological plan. This diffraction will cause a reinforcement of the signal from the pixel where the algae are located onto. Therefore the interaction procedure is not totally flat.

Chapter 4

Coupling scenario

Here I will present one the abstraction we use in the machine in order to learn on the ecosystem. Two main orientation were followed. One is called the formal machine, and is interacting with the ecosystem with a more linear approach. The other, the informal approach is using deep interaction schemes, and is more observational as it construct a complexity with the ecosystem.

The formal machine

The formal machine work like a Turing machine, there is a sum of box that can be scrolled, and it is possible to read and write each of them over time. Every position get a state at every time point t by observing the ecosystem content. A writing procedure can be implemented at this moment (in my case using the projection).

By simply recording and proceeding a number of positions over a time, it is possible to extract a time lapse of ecosystem states. If every arena receive rules that are proper to them but shaped a the experiment scale, and if an objective function exists, then we obtain the capacity to do optimization over the parameters space with respect to the objective function.

Figure 4.1: Example of method including observation, abstraction, projection. Here we introduce the loop system. In this case we try to find the best parameter for growth

Parameters space

The parameters space the machine is exploring can be related to a physical reality, including parameters such as the wavelength, the intensity, the frequency of flash (in the case of flashing light).

Or they can be related to its abstraction of the reality, meaning the parameters related to the integration of the signal and the generation of the feedback, for example the filters used by the classifier for the classification, or the type of feedback generation procedure. In order to realize a screening over the parameter, it must be a mathematical formula that allow to generate it, so shifting a parameter in the formula allows to explore the heuristic.

input space

These parameters are related to the biology and the physics of the hybrid system. The machine can look to a mono dimensional space, for example looking at the optimization of the intensity for the growth of the algae. Or to a multi dimensional space with addition of parameters such as the wavelength and the frequency of flash. The number of sample must be sufficient in order to provide an information, usually I use triplicate at least.

feedback space

The machine can explore the space offered by its feedback capability. This space is very complex as the machine integrate non linear process in its feedback. Care should be taken to operate realistic exploration as the shifting too many parameters may result in a chaotic behavior.

Objective function

The observation of the biological sample provides the signal to analyze. Addition of hardware methods is also possible and can amplify some particular signal of interest (Exopolysaccharides..). For example measuring the number of algae on the classified image representing the growth rate, so maximizing this indicator means maximizing the growth rate.

It is also possible to use classifiers to try to classify the production of other classes by the biological system, for example with the addition of a packed individual class and an Exopolysaccharides class. Helped by the framework, the machine can try either to maximize the pack size and number or even try to optimize their repartition in the population.

Exploration algorithm

In order to explore the parameters space and find the solutions that maximize the Objective function the machine uses genetic algorithms. These algorithms require an iterative generation like process during which the solutions will reproduce to generate siblings that inherited characteristics from the two parents, and that will them self be confronted to the reality of the Biology, thus converging toward solution in a flexible way [Lutton, 1999][Rudolph, 1994].

Lets take a population of patchs. Each of them is a machine, the state of the patch is given by the machine indicator generation function. The indicator generation function is defined as a function that give an indicator value (ideally between 0 to 1) out of the population organization and classification. The patches will run for a given time. After this time we will look at the indicator output of the patch. We will asses the fitness of the indicator function compare to a desired output. And propagate them into the next generation of the patch population with a proportion given by the fitness.

Typically the machine can handle 96 arenas, and iterate over them for several time before the steady state is reached, therefore several generations can be tested. The machine can have an iteration speed that can go from hours to minutes depending to the effect it look after, growth doesn't require a sampling frequency under the hour, while looking at phototropism a sampling frequency in minutes and less can be useful view to the reaction speed of biological system such as Chlamydomonas reinhardtii. But such algorithm is intensive and applying it in real time is neither realistic nor needed. Implementation of such method was done via an homemade Python toolbox, that proved to be just sufficient for such test, the implementation of a proper toolbox related to genetic algorithms is a need to conduct proper experiments with such optimization scheme.

The Figure 4.5 shows us one round of an experiment dedicated to finding the optimal intensity to maximize the indicator, here it is the packed individual that are taken into account to generate the indicator and the goal is to maximize its increase between the two time point. This experiment did fail several time due to hardware and software issues.

Figure 4.4: Example a basic test method, this is the plot of the result of a round of adaptation from a method that include a genetic algorithm step in order to converge toward the optimal intensity of light for a patch in order to maximize an indicator. The blue points represent the observed value of the indicator regarding there parameter, purple points represent the adapted parameter value (they keep the same indicator value as the measurement of the effect will take place at the next round). This plot is here for demonstration purpose, the data used to generate it is biased because of imprecision of positioning during acquisition.

The informal machine

The informal machine is a Markov machine, the state t + 1 is here dependent of a direct transformation of the state a t. Every experiment may receive its own rules of auto amplification, many are possible, one of the simplest being the projection of an inversion or a rotation of the observed image.

Graph related algorithms

The interest here is to look at the structure of the graphs that can be constructed out of the population of algae present in the arena. Operation on these graph are complex, and can be operated in many ways. By rewarding specific points in the graph and looking at the macroscopic effect on the population, it is possible to find properties of interest of this graph that can by generating the reward lead to observable behavior. In order to find these points of interests I define as walker, an algorithm that is capable of traveling over the vertices of the graph by following the edges of this graph. Once on a vertex, the decision of the walker for the next vertex to visit is defined by a rule that is implemented by an algorithm that look at the local properties of the graph around this vertex. The machine can try to co evolve the properties of such walkers (triggering rewards on the ecosystem) with target properties of the ecosystem [START_REF] Kurant | Walking on a graph with a magnifying glass: stratified sampling via weighted random walks[END_REF].

Intrication games

The hybrid can be used in an original perspective by using its ability to control the energetic landscape of ecosystems to couple ecosystems over space, the reward can be computed out of the work of several patch, even if they are distant in space as the machine can ignore this as it generate the reward numerically.

game of life like algorithms

The Game of life is based on cellular automatons. Where the iteration of simple rules over a space lead to the apparition of a deep complexity [Conway, 1970]. A version of this game can be adapted in the hybrid methodology by considering the resolution of the projected arena as a number of discrete boxes that can have a living or dead state, and iterating with rules over this landscape to generate the reward at t + 1. Figure 4.5: This schematic represent the interaction that can be generated between two arena. Here the two arena are opposed in a game of life like game. The one that have the strongest indicator on the box wins it and thus will be rewarded at this pixel. Between each round the machine wait a time t, projecting the reward it obtain at the previous step.

Percolation machine

One of the utilization scenario of the machine can be the trial of the application of a potential to the ecosystem, in order to try to percolate an information through it. The hybrid can applied various problem to the ecosystem, and try to get the biological component to help it answer the problem.

example of spatial games

The traveling salesman problem is a NP-complete problem, as a finding a polynomial solution to it might require an extensive time, and extend even more with the size of the problem. The idea is that a salesman need to visit the most possible city on a map with the shortest distance possible to get back to his origin point. This problem might look trivial but is in fact of deep complexity and have led to many passionate works. Heuristic solution have been found to offer fast resolution of such problems, some by mimicking biological phenomena, such as the ant colony algorithm [START_REF] Dorigo | Ant colonies for the travelling salesman problem[END_REF]]. In the spatialized framework that the machine utilize, such problems could be posed to the system by projecting a landscape and assessing if the biological sample is capable of optimizing such problem.

Chapter 5

Discussion

"Space. It seems to go on and on forever... But then you get to the end and a gorilla starts throwing barrels at you." -Philip J fry

The choice of open science

The project follow an Open access framework. It was in fact mandatory for it to be as much documented as possible, because it do reach a degree of complexity that render undocumented work useless.

The modularity was also one of my goal as I wanted to operate a creative and complex approach onto the microbes. And not stay limited in creativity by the conventional framework possibilities. This modularity allow today an adaptability of the code to common problematic with few command lines and some play with matrix.

Access the project

Here there is a link to the repository of the project, it contain a version of the machine, the code for it to work and the documentation related to this version.

Link to the repository

This repository will become public once the machine is published. There is a lot of things that can be upgraded on the machine, work is in progress.

Today the prototype is pretty stable and almost ready for publication. It is possible to go in few hours from a simple shopping list to a functional machine (caution: still do require a 3D printer and some tinkering). Functional machine meaning that you have all the parts of the machine.

Then it is then the time to configure the machine. The implementation of experiment require to interact with another level of complexity (data management, reward mechanism implementation..). There is a toolbox that I developed that allow to do so. As well as a tutorial to use it. The project in its total intend to be fully reproducible. This was a big investment. Getting reproducible methods as the technology scale is a challenge. I hope this work offer a decent chassis or at least raise the interest for it to emerge.

In the control of complex living systems

One of the objective of this project is to provide a framework to engineer complex microbial consortia. Stability of such structure in nature being mostly the cause of structural or metabolic interactions. The machine allows to generate complex interaction schemes, and interact with it in a relatively short time. Providing an assessment of the sample in complex dimensions, as well as its perturbation.

Symbiosis design is targeted, I will define it as the ability to construct ecological niche strong enough to be stable under pressure,thus increasing the resilience of the function by reducing its CHAPTER 5. DISCUSSION fitness cost from a collective perspective. In reality such systems are hard to scale to industrial perspective due to a combination of several factors. Their realization is one. Their systemic integration is another, indeed getting sufficient yields to be interesting for the industry is a challenge. Especially as the whole process are designed for non resilient, mono specific, auxtrophic systems. And mostly super agitated.

Another goal of this project that is more realistic is metabolic engineering. The framework we develop offer an interesting automated platform to tinker cells metabolism. Especially as optogenetic is developing. The short term loop developed during the project, including complex signal processing, integrated in a spatial approach allowing metabolic coupling seems to be a top choice.

Even if I am far from the reality in my planar assumption. It is possible have a look at potential coupling in the system. These coupling across space will generate patterns. That it is possible to observe and perturb. The machine is thus a good tool to study morphogenetic engineering. As it allow to observe the reality gap between simulation and real ecosystems, getting better hints on the agglomeration of constraints in these systems and the synchronization they are submitted to.

To the realization of a working prototype

A consistent part of my work during this project was invested into the realization of my prototype. It was not planned in the origins of the project, but as no solutions were available for the setup, I needed to take the bull by the horns and do my own machine. In fact if one intend to observe complexity, it require a powerful definition, thus a big data. And if you want to act on complexity as this project intend, you need a resilient and fast mechanism. I have learned a lot along the way, prototyping being far from my skills, I went from the basics to the more complete approach that my machine have today. It is still barely functional. But do the job, at a very affordable time and money investment. Is as much as possible based on Open source designs.

Another big chunk of work was realized on the software side of the machine. Allowing the automated interaction of the machine with the ecosystem during the experiments, this critical task do require complex functionality, that are not trivial to implement. The core of the machine in itself contain several thousands of code lines, and these are the result of a lot of trial and error. The time spend on this part of the project brought me to integrate very modern skills that was not a priority in the realization of the experiments but their acquisition today allow me to interact with complex systems.

I did develop some theoretical games for microbes. I detail very quickly some of them in this manuscript. Mostly from their iterative perspective. They need to be realized in the machine in order to observe if they present an interest or not. It is amazing to see how the simplest set of rules can lead to the emergence of a mathematical complexity.

From a prototype to experiments

One of the big difficulties faced during this project was the transition from a demonstration prototype, to a robust enough system to gather the experimental information I designed it for. This challenge was tackled in several way. -Increase in the hardware resilience -Creation of a deployment procedure -Documentation and correction of the software Now the machine is resilient and still stay simple. Some progress are still needed in order to process complex experiments, especially of a biological significance.

This part presented an heavier challenge than expected, but this is in fact totally normal especially with the constraint on the price of the machine that I got. Constraints offer challenges, and today the machine is on the good path to overcome most of them and offer a very interesting and affordable platform.

To an interesting result

Today the project lack results. The realization of the machine did aspire a lot of time and the problem of stability did prevent to get presentable results. Also a major problem faced is that the modification of the prototype do reverberate in non linear ways on the biological sample, and thus before the conditions of the prototype are strictly fixed and controlled, most of the work related to Biology have shown to be too much variant to be of any significance.

Chapter 6

This work was realized with a funding from PSL research university.

Thanks to the CRI for helping me to finance the prototype. Providing me the budget I was needing to advance for my material.

Thanks

Thanks for the inspiration

This project was complex, it involved a variety of skills and coupled several fields of science. It toke time to shape it into a consistent theory and an operational machine. I would like to thanks all the peoples, that along the way give me trust. My work is deeply impacted by all the projects I have work on. I will never be thankful enough to the persons that gave me this possibility of discovery. I hope that this work can give some interesting insight in the world of complex microbial systems and can one day return the favor. There is universes waiting to be discovered, I intend to continue to explore them.

Special thanks

Thanks to Benoit Roman and Stephane Douady for helping me to continue my project.

Thanks to Paul Rainey for accepting to host the project at its beginning.

Thanks to Julien Derveaux for providing mentoring and access to algae.

A big thanks to Alexis Tessier, Mehdi Elouafi and Leo Darrigade for the technical support. Your advices in your respective fields were important to the project, and your ideas keen and fast.

Chapter 7

Résumés des chapitres en Français

Conformément à l'article L121-3 du code de l'éducation la langue de rédaction d'un mémoire est le français. L'école doctorale Frontières de l'innovation en recherche et éducation demande pour ce faire la présence d'un résumé substantiel en Français de chaque chapitre du mémoire de thèse. Ce chapitre offre donc un résumé en langue Française des autres chapitres du mémoire.

Chapitre 1: Introduction

L'introduction du mémoire.

Ce projet a eu pour but de développer une machine hybride permettant le couplage entre un écosystème microbien et un processus algorytmique.

Ce chapitre contient une ouverture sur les propriétés collectives des systèmes en général tout d'abord, puis un approfondissement sur les systèmes Biologiques. Tout système observé se situe dans l'espace tri dimensionnel que nous percevons, comme la relève brillant René Descartes. Hors le vivant de par sa nature reproductive évolue dans l'espace et le temps, et cette capacité d'évolution emerge sans observation prédéfinie de l'espace l'entourant. Le vivant semble ainsi échapper aux règles et caractérisations applicables à de nombreux autres systèmes. La capacité d'évolution et les systèmes vivant en tant que tel semblent donc être intimement lié à la relation qu'ils entretiennent avec l'espace qui les entoure.

Même si l'on admet un espace simple, la relation entre plusieurs systèmes biologiques à l'intérieur de cet espace, peut encore une fois, se complexifier drastiquement car ces systèmes peuvent évoluer au cours du temps. Les interactions à l'échelle d'une population sont loin d'être trivial, comme de nombreux exemples nous les montres dans la nature. De la colonie de fourmis, en passant par l'embryon des métazoaires et les vols d'étourneaux, les systèmes biologiques dans leurs aspects naturels revêtent des comportements complexes (et observables dans l'espace) qui encore aujourd'hui ne sont que partiellement compris. Il y a de nombreux intérêts derrière des progrès dans cette compréhension. De la capacité à générer et contrôler des symbioses, à des questions plus fondamentales sur la relation entre le vivant et le mouvement. Des systèmes particulièrement intéressants à étudier sont les écosystèmes bactériens, pour des raisons de taille de population et de reproductibilité expérimentale, mais aussi des raisons d'applicabilité industrielle. La generation de forme multicellulaire stable ou de symbiose n'est par example par encore maitrisée, alors que celà permetrais la réalisation de fonctions complexes. Pour le moment des limitations expérimentales empêche notamment d'éclaircir certaines de ces questions. Ce manuscrit propose la création et les essais d'une approche géométrique pour y remédier.

Chapitre 2: Dispositif experimental

Cette partie présente le dispositif expérimental développé durant le projet.Il consiste du couplage entre une machine et un écosystème microbien. La machine est composée d'un microscope et d'un projecteur, qui sont connectés ensemble par le biais de softwares.Une des idées dans la réalisation du projet est l'obtention d'un design simple et robuste, accessible en Open source. Cela permettant d'augmenter son utilité expérimentale, et sa capacité à être adapté à différentes problématiques.L'écosystème microbien utilisé est basé sur des microalgues, et plus particulièrement l'espèce Chlamydomonas Reinhardt. Ces microalgues, de par leur capacité phototropique et photosynthétiques, peuvent être stimulées et orientées via de la lumière. Elles peuvent CHAPTER 7. R ÉSUM ÉS DES CHAPITRES EN FRANC ¸AIS produire de nombreux composants, qui vont impacter le futur de l'écosystème. Que ce soit des exoplysaccharydes, qui de par leur nature gélatineuse vont modifier la circulation et l'accès aux nutriments par exampe. Ou encore des molécules à visée informationelle. Le but des expériences est entre autres de mesurer les capacités de "mémorisations" de l'écosystème par le biais de telles molécules.

L'écosystème est mis dans une chambre de culture planaire, ce qui permet d'observer (via le microscope) et d'actuer (via le projecteur) dans un plan.L'observation est réalisée via un microscope dit "XY", car celui-ci a la capacité de scanner une zone déterminée et d'en tirer une meta image, réalisée à partir du collage d'une collection d'images adjacentes. Ceci permet d'avoir une vaste image (allant jusqu'à plusieurs centimètres de côté) avec une définition permettant d'observer les micro-organismes en détails. Les différentes caractéristiques du microscope et du système permettant le scannage sont discutées. L'actuation est quant à elle réalisée à l'aide d'un projecteur modifié, qui peut projeter avec une résolution de quelques dizaines de micromètres par pixel. Ce projecteur émet différentes longueurs d'onde en serie a très haute fréquence. L'écosystème microbien est maintenu dans une chambre simplement composée de deux lamelles de verre collée ensemble. Il peut aussi être simplement repartit à la surface d'un gel d'agar dans une boite de Petri standard.

Le système fonctionne via un software qui permet la coordination des différents composants. La réalisation de ce software est discutée, ainsi que le cahier des charges que celui-ci doit suivre de manière à être expérimentalement utilisable, en effet la complexité des différentes tâches effectuée rend leur fonctionnement de manière coordonnée complexe à réaliser. Ceci a aspiré beaucoup de travail dans le projet. Le software est grâce à une démarche qui se veux de développement informatique (repositoire de stockage du code, tests automatisés du code), suffisament résiliente pour réaliser un experience être capable de modifier certain composants de ce code. Correcteur d'orthographe et de grammaire français Le software est suffisamment légé pour fonctionner sur des cartes Raspberry Pi, ce qui réduit drastiquement le coût, mais nécessite les lancements des différentes parties sur plusieurs cartes (à cause des capacités limitées de ces cartes, en termes graphiques mais aussi de processeur. Pour réaliser cela, le software est basé sur de la programmation de services indépendants.

Certains aspects de la machine en tant que telle (observation microscopique d'un écosystème soumis à une projection lumineuse) sont discutés. En effet l'observation multi spectral d'un échantillon permet d'en extraire de nombreuses informations, surtout si couplé à des processus automatiques d'apprentissage machine (machine learning). La projection d'une lumière structurée permet aussi de réaliser quelques fonctionnalités interessantes.

Chapitre 3: Procédure d'hybridation

Cette partie traite des processus "d'hybridation" possibles pour coupler la machine et l'écosystème microbiens.Elle comprend notamment une approche mathématique légère qui permet de rationaliser les possibles actions et interprétations dans un plan discrétisé (due à la définition finie de l'observation et de la projection). La machine possède en effet une capacité finie en matière de résolution, l'image projetée est découpée en zones, ces zones vont définir la suite de la procédure d'hybridation. Il est possible d'agir sur ces zones et chacun des pixels les composants (couleur, intensité), différents types d'objets ont été définis sur ces zones, y permettant des opérations variées.

La machine va obtenir au cours de l'expérience des images de ces zones. Les images ont une résolution donnée et il est possible de définir clairement la position des différentes zones et ainsi relier l'image projetée et les images observée. Ces images sont ensuite analysées, de manière comprehensive par rapport à la zone à laquelle elles correspondent. Un exemple d'hybridation est détaillé. Il comprend l'analyse de l'image obtenue via de la reconnaissance d'image, une analyse des différents individus obtenus via cette segmentation, puis un travail sur la population via des graphs et les propriétés de chaque individu. Le tout pour générer une récompense qui sera projetée sur l'écosystème. Cette boucle peut être répétée en chaine à un intervalle donné.

De nombreuses méthodes peuvent être utilisées pour analyser la population, générer la projection, mais aussi pour mémoriser les règles suivies.

Chapitre 4: Scénario de couplage

Cette partie explore les objectifs qui peuvent être recherchés en matière de couplage. La machine formelle est définie comme un couplage logique, qui vise à l'optimisation de paramètre observables. La machine peut pour ce faire utiliser des algorithmes génétiques, en effet le nombre d'essais qui peuvent être réalisés en parallèle (jusqu'à une centaine) permet de réaliser une démarche d'optimisation.

La machine informelle quant à elle recherche à mettre en évidence des propriétés plus exotiques de l'écosystème par le biais du couplage. La machine peut alors stimuler l'écosystème avec des réponses non linéaires générées à partir de l'observation de l'écosystème.

Chapitre 5: Discussion

A.2 Download

It is possible with the use of Git to clone the repository and access the project. The use of the command lines:

1 g i t c l o n e h t t p s : / / g i t l a b . com/ c h a r l e s . f o s s e p r e z . me/ k a s i m i r e . g i t

Listing A.1: This simple command allow to download the machine.

A.3 Content

The repository contain the machine software and its docs. It reference also the different parts to print and electronic component to buy and their details. All is following a pretty logic organization. The deployment tools are present in the circus folder, the packages in the packages folder.

A.4 Details on the machine A.4.1 Projection

Useful bibliography: [START_REF] Lee | Development of a 3d printer using scanning projection stereolithography[END_REF]][Dan et al., 2013][Packer et al., 2001] The projection is realized through a modified projector.

Various technology available

Depending of the optics of the projector. The system must adapt its optic to the projector design. The use of a short throw projector assure a relative compatibility in term of distance of projection and tunability. The calculation can be tricky to do, especially with optimized optical system as found in industrial quality products. Thus we strongly recommend the use of a projector that has already been tinkered and not going for any model. In our case it was no example of LED DLP projector available. These technology were chosen because the DLP as detailed in the following chapter offer an almost True black. And LED because this technology offer a longer life expectancy, which is needed as the setup may run continuously for days and we don't want a decay over time in the power of the lamp.

Several option are there, I did choose to modify the optics of a commercial projector at the beginning. I choose the ak138stAcer as projector, offering the required technology and throwing characteristics at an affordable price. The modification was simple, a simple biconvex lens with a focal of 45mm was placed at its focal distance from the DMD, as shown in Source: frederickvandenbosch.be

After applying power, the EVM will display a default splash screen. Some commands need to be passed via its I2C interface to display the Pi's desktop. This can be automated to be executed at every boot, by adding these commands to /etc/rc.local before the "exit 0" command: sudo i 2 c s e t -y 3 0 x1b 0 x0c 0 x00 0 x00 0 x00 0 x13 i sudo i 2 c s e t -y 3 0 x1b 0 x0b 0 x00 0 x00 0 x00 0 x00 i e x i t 0

Listing A.3: This is the projector /etc/rc.local modification to pipe the display to the EVM.

Source: frederickvandenbosch.be

Integration into the machine optical path

Once these operations are done the EVM can be positioned into the machine. The Figure A.15 show the position of the projector. A biconvex lens of focal 5 cm will be present at its focal distance of the DMD. A post field diaphragm will be added to lens in order to reduce the noise in the resulting image. The image that will be formed at 2 focal length of the DMD will be of its size (0.2 inch of diagonal).

Optical path details

Several parameters are present in the projector and will define the quality and focus of the projected landscape.

Analysis of the alignment

Various tools are there in order to adjust the projection device and the lens in order to get an aligned projection. This step require precision, as a misalignment in the landscape projector will result in the apparition of strong optical aberrations. For example see Figure A.17, and an analysis of the aberration in Figure A.18. To correct such aberration, the lens must be positioned at its focal distance from the DMD and the post field diaphragm should be perfectly orthogonal to the signal.

For the moment there is no automatic tool in order to realize the alignment. As there is no motor connected to the projection part, the adjustments of the platform need to be realized by hand. The analysis of the projected pattern can be automatize (some trial are there in the machine) but seems to be dependant of the surface the image is projected on and the camera acquiring the image. Therefore for the moment the full automation of this step was skipped, but don't seems to oppose major challenges in its realization.

A.4.2 Observation

Useful bibliography: [Kilton, 1965] Various modules were developed and tested during the project. The idea being to obtain image of the full ecosystem. Today technology allow to obtain high resolution images of a full ecosystem at once, and by playing with some parameters (patterned light, focus..) it is even possible to reconstruct magnified images out of several z shifted full field of view images [?]. This solution, even if seducing was not adopted as the targeted resolution of 1 µm was hard to obtain. But this solution would be one of the next upgrade of the machine.

Finally we used an homemade XY moving microscope. A relatively conventional microscope system is fixed to an XY moving module

The XY machine

The solution finally adopted to do the XY motion use stepper motors to move a mobile on a linear bearing. The motor can either transmit its force via a belt or a trapezoidal threaded rod. This offer a smooth motion with a decent load. It is interesting to take a look at the way ball bearing works. Indeed in grant a smooth motion by a partition of the friction between balls, it use in some sens a collective effect to minimize a noise.

In order to control the stepper motors from the raspberry, two solution were developed. The Raspberry Pi GPIOs activate an intermediate A4988 driver card which directly control a stepper motor (see Figure A.29). This is not the smother solution we tried, but the simplest. The connection of such micro controller require attention as there is many cable that cannot be inverted.

Or the Raspberry communicate with an Arduino. Which is itself controlling a motor shield. The motor shield we used did not left enough free i2c pin to generate an i2c protocol between the Raspberry and the Arduino. What left us with the use of a serial protocol via USB or Ethernet to control the Arduino. This was not reliable.

Focus

In the machine the focus is obtained by z shifting the entire microscope module by few µmeters in one or the other direction. It is possible to help the focus procedure by focusing on projected patterns, such shape deformation can be analyze in order to find the best focus.

A.4.3 Power Supply

In order to provide power to the setup I use a scavenged computer power suply. The power supply should in any case be a limit and provide the proper number of A, as this type of bug is very hard to tract in the machine.

A.5 About the Software

Deployment

In order to automatically install the requirements and deploy the software,the machine use Ansible [START_REF] Hochstein | Ansible: Up and Running: Automating Configuration Management and Deployment the Easy Way[END_REF].

The various machines IP and path are set in an .inv file. By operating this file, one do control the entire deployment of the machine.

Ansible is a very powerful tool that operate operation over SSH in an automated and user friendly framework. It is an extensively used framework in order to overpass modern problematic of service deployment.

More detail on the use case on the repository. First in order to use Ansible an SSH communication need to be established with the remote machines. Once this is done, Ansible will be able to operate on these remote machine as if directly logged into them, and monitor the result of these actions.

Asynchronous programs

The machine is extensively decentralized. There is asynchronous software working on separate units. Each units work with its own autonomy and rely on the communication with the server for actions.

Bash scripts are used for the machine control and the various units launch. Some of these bash scripts use Ansibleto operate actions on the different remotes machines.

We use Python as a core language for the units code. But they may call other languages with the proper wrappers. The different Python script run under an homemade application like framework using an Apache web server for monitoring and a bash daemons structure to run the Python. They are enslaved to an AMQP queue, listening to every message requested on this queue and executing the corresponding task.

Figure A.32: This schematic represent the type of framework the Python workers follow. They will listen to a queue. Once a message appear they will execute the action corresponding to this message and its content. Everything is monitored on an HTTP server accessible from the local network. Once the task completed the worker will acknowledge the message.

In both case it allow to launch the various Python workers and monitor their output on an HTTP based server. What allow us to implement Function as a service type of methodology. Where actions of the workers are directly triggered from a simple request.

AMQP protocol as a resilient server based communication

The use of AMQP protocols as a messaging interface between the micro services allow flexibility [START_REF] Rostanski | Evaluation of highly available and faulttolerant middleware clustered architectures using rabbitmq[END_REF]. Each micro service execute requested action and respond. There is different complexity that can be associated to micro services. But their communication is centralised in the AMQP server. Which is very fast and reliable.

We use RabbitMQ to provide the AMQP service, trough its interface in python the pika libraries. Even if pika have the big disadvantage to not be thread safe, it offer a very resilient and fast way to communicate between services on remote machines.

Several trial were done using simple socket communication via USB, then Ethernet. But this solution did appear to be to unstable for a realistic use case of the machine for a relatively long time. This is especially true as we communicate the data through this communication. A NFS implementation was not seen at this step, which can in fact share data over a network quite easily. So we do communicate the data between the different units of the cluster via AMQP until a final storage of it on the mother unit.

RabbitMQ offer fast communication. When properly structured the emission/listening time is under 100 ms. Which is in our a case a perfectly decent achievement.

Software resources

Reference bibliography for software modules: RabbitMQ [Wood, 2016], Fiji [START_REF] Schindelin | Fiji: an open-source platform for biological-image analysis[END_REF], scikit-learn [START_REF] Pedregosa | Scikit-learn: Machine learning in Python[END_REF], ReactiveX [Meijer, 2010], Scipy [START_REF] Virtanen | SciPy 1.0-Fundamental Algorithms for Scientific Computing in Python[END_REF],

A.6 Software generics A.6.1 Pre processing If needed pre processing operations are implemented, either with Fiji, eiher with Python.

With Fiji it is possible to record macro that can be integrated into the machine pipeline. For example the integral image filtering plugin is often used to normalize the image across the surface https://imagej.net/Integral_Image_ Filters.

A.6.2 Mask analysis with Scipy

Analysis of the mask is realized via skimage.measure.regionprops() in Python. This solution offer a fast computation time (< 1s) and extract many features from the identified individuals. The Cellprop object obtained with this method contain all the measures realized on the image. Various of these characteristics are then stored into a dictionary.

A.7 Software details

The software contain a number of subpackage. This structure allow the modularity of the different parts between projects. All are included into a main package. Working together as asynchronous units. We will describe these subpackage here. But first lets have a look at the launch of the machine.

A.7.1 Details on growell pack

The core package for the machine is growell pack. This package can be installed via setuptools with its setup.py file. The subpackages contain conf ig.py file that contain part of the configuration of the machine.

growell pack package information

The package structure is the following:

lantools informations

The subpackage lantools allow to use RabbitMQ functionnalities inside of python scripts. By calling the config, each unit get IP info. By using rabbit utilities it is possible to generate the needed architecture in a few line. Creating the channels and queue to use for communication. There is also more complex behavior implemented here, such as worker and sender, which are queue binded units.

Pika allow Python to RabbitMQ communication, here is an example of implementation. The channel generated allow to communicate between the Python script and the RabbitMQ server.

The f ly() function that the scripts use to create the channel with the server is the following one. Listing A.8: This script allow to generate a connection with the remote server.

# ############################################### #Channel d e c l a r a t i o n # ############################################### ch =
################################################ # s e c r e t s i m p o r t a t i o n # ################################################ ID =
f i g # ################################################ # make t h e p a r a m e t e r s # ################################################ c r
# ################################################ # c o n n e c t t o t h e s e r v e r # ################################################ c o
The sub package lantools contain the various workers that are used in the machines. A lot was explored and is visible in the code. The simplest worker used is the following. ch . b a s i c a c k ( d e l i v e r y t a g = method . d e l i v e r y t a g ) i s i m p o r t a n t """ Listing A.10: For example this function allow to load an image from memory into Python.

# ################################################ # worker d e f i n i t i o n # ################################################ #c
# ################################################ # worker a c t i v a t i o n # ################################################ c h
In order to test the machine when the Camera unit is off, the machine use fake image to realize some of its test. l a n t o o l s . r a b b i t u t i l i t i e s . s e n d e r ( c h a n n e l , message , ' i m a g e q u e u e ' ) # send image i n message t o i m a g e q u e u e i f debug i s True : p r i n t ( " [ i ] Did emit image a s : " + s t r ( name ) + " . On : " + s t r ( q u e u e e m i t ) )

Listing A.13: This function emit an image on the AMQP server.

usefultools informations

This sub packages contain various useful tools that allow to run function in a resilient and accessible way.

A.7.2 Details on unit pack

The package that contain the various units of the machine is unit pack, the units are Mother, Microscope, Projector,Processor and two subunits of Microscope are Camera and Motion. This package can be installed via setuptools with its setup.py file. The sub package contain a main.py , utilities.py, test.py module. Each of those offer respectively the core of the worker, the response mechanism of the worker and the test mechanism of the worker.

# ################################################# """ Queue managment """ # ################################################# p r i n t ( ' [ >] Hunting t h e
# ################################################ # t e s t i n i t # ################################################ p r i
) # ################################################ # mode # ################################################ mode = ' auto ' p r i n t ( " [ i ] mode s e t t o : " + s t r ( mode ) ) # ################################################ # Auto mode # ################################################ i f mode i s '
# ################################################ # Worker p r o p e r # ################################################ i f mode i s ' s t
"" # ################################################ # message unpacking # ################################################ #l o a d t
################################################ # v e r b o s i t y # ################################################
#Give i n f o on o r d e r c o n t e n t p r i n t ( '-------------------------------' ) p r i n t ( "New o r d e r i s : " + o r d e r )

# ################################################ # c k e c k o r d e r # ################################################ i f o r d e r == ' panoramix daemon ' :
Listing A.16: Here is the beginning of the callback the previous worker use.

""" This s c r i p t a l l o w t o l a u n c h t h e p r o c e s s o r """ p r i n t ( ' i > P r o c e s s o r i n i t i a l i s a t i o n ' )

# ################################################ # i m p o r t a t i o n # ################################################ #G
e n e r i c i m p o r t a t i o n from m u l t i p r o c e s s i n g im por t P r o c e s s im po rt s y s im po rt time #C r a f t i m p o r t a t i o n im po rt t e s t D p a c k #imp ort u n i t p a c k im po rt u n i t p a c k im po rt u n i t p a c k . u t i l i t i e s p r i n t ( '---' ) p r i n t ( ' i mp ort OK ' ) p r i n t ( '---' )

# ################################################ # D e c l a r a t i o n # ################################################ # ################################################ # D e c l a r a t i o n # ################################################ #
This s e t t h e package t o u s e . # i s a S t r i n g , ' ' . package name = ' u n i t p a c k ' """name o f t h e main package """ unit name = ' p r o c e s s o r u n i t ' """ u n i t s h o u l d be composed o f one l i v i n g f u n c t i o n ( p r o c e s s ) t o l a u n c h a s a daemons . #P r i n t t h e h e l p about t h e u n i t package p r i n t ( '---' ) p r i n t ( h e l p ( package name + ' . ' + unit name ) )

# ################################################ # Launch # ################################################ i f
p r i n t ( '---' )

#do brawl t h e l i s t u n i t p a c k . u t i l i t i e s . b r a w l e r ( l i s t m o d u l e , l i s t p r o c e s s )

Listing A.17: Every unit launch its software via a dedicated launcher (based on a general pattern) """ l i s t p r o c e s s : This s e t t h e l i s t o f p r o c e s s t o s t a r t i n t h e u n i t . The machine is executed via a main Bash script. It uses a conf ig.txt file as a source, this configuration file contain all the path and the required parameters in order for the machine to work.

# ################################################ # i m p o r t a t i o n # ################################################ #G

#

Here i s t h e c o n f i g f i l e . I t c o n t a i n t h e c o n f i g u r a t i o n needed t o run t h e . ps1 and . sh s c r i p t s .

B.2.2 Simple image segmentation method

Once we get an image, one of the goal is to segment it, i.e. obtaining a transformation from the raw signal to an abstraction of the signal. In our case, the identification of micro organisms. As you can quickly see "identification" can be very diverse, does we need a number? a position? a shape? Here I will present methods that allow simply to discriminate a signal over a background. This is a weak identification as the discrimination is binary. We can see see clearly the green maxima, when the orange maxima are confused.

B.3 Advanced image analysis method with machine learning algorithms

Build on the previous mathematics, one can apply various machine learning tools in order to realized an advanced segmentation task. The machine operate a semantic segmentation in order to extract individuals and their morphological properties (in the mathematical sens) out of the images.

Random Forest

For example the flexible and user friendly Weka trainable segmentation plugin of Fiji with its possibility of using a GUI [START_REF] Arganda-Carreras | Trainable weka segmentation: a machine learning tool for microscopy pixel classification[END_REF] In order to observe the behaviours of a small population we constructed the following discrete model: The ecosystem is a square grid of size SxS. When the agents are pixels on this grid. They can move.

There is several layer of environment: Light, CO2, Molecule, Viscosity, They have the following properties, with there law of action: motion, production of energy, reproduction, death, production of information, burst of information, production of EPS,

C.5 Growth recording

There is several method that were explored to measure the growth of Chlamydomonas.

Each of them contain specificity and are requested at one part of a total experimental cycle. Problems are there between Absorbance and Rayleigh particular absorption as Chlamydomonas tend to move and agglomerate. Especially as Photosynthetic organisms have a strong variability for light absorption in the visible spectrum as there pigment content may adapt regarding different light conditions..etc.. during the incubation. Because Chlamydomonas form agglomerate the scattering of light may vary, This specificity need to be assessed by microscopic imaging for every new condition.

Spectrometric technics

Absorbance at 650 nm is non linear because it also interact with the Exopolysacharides secreted by the algae and potential bacterial contaminants. Still it is a very interesting measure as it is in the visible and very easy to realize. Absorbance at 750 nm is more reliable to asses the population of algae. But need better material as the close to infrared wavelength is not accessible with every spectrometer .

Flowcytometry

Flowcytometry is a powerful tool to record Chlamydomonas growth [?], indeed the size of the cells is very important as biomass growth can be either directed toward increase in volume or reproduction depending of the conditions. But the price of this technique was seen as a limiting parameter. Still assessment of the populations under Flowcytometry could be realized to gather a better vision of the system.

Homemade complex technique, "Where is Chlamy"

This measure can be operated in a Malassez chamber. Put the slide under the microscope and take a picture. The soft count the number of cells and give you the concentration. This can be automated in few lines of code, but the acquisition technique (chamber, camera..) need to be fixed in order to realize such measurement in a reproducible way.

Static measure

A prototype was developed to record growth in static flask conditions. Allowing to draw better kinetics of the system. This method was not completed because preferred to a 96 well plate approach in the actual machine for the static condition. Offering a better numerical power, even if different of the flask condition. Image 3 is the standard deviation between the two images over the 3 channels. In Image 3 the light green surrounded by blue seems to be the exopolysaccharide. Image 4 is a red tresholded image.

C.6 Metabolic activity recording

Figure 0

 0 Figure 0.1: Local normalization of a picture of an algae of species Spirulina Plathensis WT in a micro-metric square pattern FosseprezUnpublished. Magnification x300, Fluorescence microscopy (excitation = 555 nm, emission = 585 nm). Three interesting facts come out of this processed images: it astonishing symmetry to adapt to this constraint environment. The reflection of the algae on it's surrounding from its auto-fluorescence. And this knot made of the two extremities of the filament.

Figure 1 . 1 :

 11 Figure 1.1: Here is a simple draw of the concept of the machine.

Figure 1 . 2 :

 12 Figure 1.2: In an field of constraints, systems tend to minimize their energy. Living systems behave exotically as they tend to reproduce.

Figure 1

 1 Figure 1.6: A and B have their own informative content that define them.

Figure 1 . 7 :

 17 Figure 1.7: The two system posses a common information I AB .

Figure 1 . 8 :

 18 Figure 1.8: There is an information of A accessible from B, and the reverse.

Figure 1 .

 1 Figure 1.10: Critical transitions are present in ecosystems. source: sparcs-center

Figure 1 .

 1 Figure 1.11: Swarm are everywhere in life. Here from microscopic to macroscopic scale, an amoeba slime mold, a bridge of legionary ants, and a flock of birds. Source: Google

Figure 1 .

 1 Figure 1.13: Example of the importance of collective process in the formation of metazoan individuality. The dorsal closure in this example is critical in the process of symetrisation, vital to generate a viable individual[START_REF] Harden | Drac1 and crumbs participate in amnioserosa morphogenesis during dorsal closure in drosophila[END_REF]

Figure 1 .

 1 Figure 1.16: Delaunay connectivity of a planar microbial ecosystem observed with a microscope.Three classes are numerically identified, classes were obtained from the classification of the morphological properties of the pixels by a classifier trained to find cluster of individuals (green)or isolated individuals (red) or the matrix boundaries (light green). Result of a tentative to observe the ability to product a common goods (the matrix) by controlling the population structure (pack vs isolated).

Figure 2 . 1 :

 21 Figure 2.1: Here is a simple drawing of the functionality required by the machine. One part of the system is alive, the other is numeric. They form a generative loop.

Figure 2

 2 Figure 2.4: This figure show the absorption of the various pigments present in photosynthetic organisms such as Chlamydomonas reinhardtii (top plot with white background) compare to the emission spectrum of various artificial sources. The main pigments are PSI (photo system I) PSII(photo system II), OPSIN (rhodopsin photoisomerase) and PCHLD (both protochlorophyllide photoreductase and divinylprotochlorophyllide photoreductase).The red LED show the type emission spectrum of a conventional monochromatic LED such as the ones used in the landscape projector of my machine. Source:[START_REF] Chang | Metabolic network reconstruction of chlamydomonas offers insight into light-driven algal metabolism[END_REF]

Figure 2 . 8 :

 28 Figure 2.8: Here is a visualization of the automated z focus microscope module It include a linear actuator to adjust the z, the motor I use have steps between 10 and 20 µm and was sufficient to acquire the focus of the camera. Issue were encountered when implementing this solution due to over heating of the motors. More details in the Annex A corresponding to the machine.

Figure 2 .

 2 Figure 2.12: Here is a visualization of the landscape projector module. It is a trade off between flexibility and stability.

Figure 2 .

 2 Figure 2.13: Here is a visualization of the perfect light path for the system from left to right. Each of the light of 3 LED (R,G,B) is beamed on a separate DMD micro mirror array. The 3 different beam are then combined into one with a TIR prism, where it will be capture by a projection system composed of 2 plano convex lens. More details are available in the machine related annex A .

Figure 2 .

 2 Figure 2.14: Here is a visualization of the actual light path for the system from left to right. The light of 3 LED (R,G,B) is combined into one beam via a TIR prism. This beam will hit the color wheel that rotate and will let pass each color a given time. This light will hit the DMD where it will be capture by a biconvex lens and projected.

Figure 2 .

 2 Figure 2.15: This plot represent the type emission profile that one can expect from the LEDs of a standard R,G,B projector. Here we used a normal distribution to simulate the LED emission profile. Depending of the LED quality the sharpness of the emission profile may vary. We can see anoverlapping between the Blue and the Green LED.

Figure 2 .

 2 Figure 2.18: Here is a microfluidic chamber that can be use in order to contain the ecosystem. It is made of two microscope slides stacked together via some adhesive tape with a donut shape. Resulting in a space of around 100µm of depth

Figure 2 .

 2 Figure 2.20: Here is a schematic of a Petri dish montage. The dish is positioned upside down. The ecosystem do grow at the thin interface between a loose gel and the air. The observation is realized through the gel.

Figure 2 .

 2 Figure 2.21: Distribution of the algae over a Petri Dish after inoculation with the glass beads technique. The visible squares are residual to the stitching of several microscopic fields together and can be smoothed. The Algae are the dark dots present all over the surface. Objective 20x.Stitching realized with Fiji stitching plugin.

Figure 2

 2 Figure 2.22: Result of the local normalization of the 8 square cropped from an image similar to the one in 2.21. The local normalization was realized with the integral image filtering plugin from Fiji, parameters are sigma = 3 and box size = 40pixels.

Figure 2 .

 2 Figure 2.23: Result of the classification of the image from 2.22. Classification was realized using the trainable Weka segmentation plugin from Fiji [Arganda-Carreras et al., 2017]. The use of a classifier compared to a more simple threshold allow to reduce the noise, especially at the area were two square merge. With this type of processing the squares noise is almost totally smoothed in the final signal.

Figure 2 .

 2 Figure 2.25: Here is a general index generated with sphinx. It is realized by running Sphinx onto the Python package, and automatically aspire all the comments present in the code as Autodoc, as well as the structure of the package. It output an .html build that can be directly put online on a server.

Figure 2 .

 2 Figure 2.26: This is the details of the module, also build with Sphinx.

Figure 2 .

 2 Figure 2.27: Here is a general index generated with Sphinx at the build time. It reference every function used in the software. This API was build on the first version of the software and contain around 200 functions, this first version of the software was too unstable and contain hidden bugs due to bad development practice.

Figure 2 .

 2 Figure 2.28: Here is the details of a specific function, all the documentation was generated automatically from the comments of the Python code.

Figure 2 .

 2 Figure 2.29: Here is a quick overview of the software architecture. All the communications are operated on a local network, in my case I use a Ethernet wired network for facility and rapidity reasons. The apps and the server run on the machines(Raspberry Pi in my case). The remote runon the computer you use to interact with the machine, this communication is realized via SSH protocol. The RabbitMQ server provide an AMQP service[START_REF] Rostanski | Evaluation of highly available and faulttolerant middleware clustered architectures using rabbitmq[END_REF]. RabbitMQ is a messaging protocol base on a system of queue. The apps communicates via these various queues. The Flasks apps can be monitored at their running IP, specifying the application port on the remote machine (that is set at app start).

Figure 2 .

 2 Figure 2.30: This is a folder of the repository. It contain various subfolders and some documentation. The documentation produced as .md files is directly visible on the site.

Figure 2

 2 Figure 2.31: This is the menu of the Powershell script that allow to control the machine remotely from windows.

Figure 2 .

 2 Figure 2.33: This represent the actions triggered when launching the machine from the remote.All the machine need to be connected to the local network. And in order to allow SSH communication, must have a password or a ssh-key set. Each unit will be executed on the IP that was affected to it. Please do note that different units have different hardware components and thus IP cannot be switched arbitrarily. Each unit will have an update phase during which it will pull the repository to update to the latest version. Uninstall and reinstall the Python package.Clear the log.txt files. Reset the RabbitMQ server

Figure 2 .

 2 Figure 2.35: This is the basic structure of a worker. It is a Python script that will listen to a queue, execute the actions corresponding to the message it received. And emit an answer, acknowledging the action

Figure 2 .

 2 Figure 2.36: This is the structure of the projector unit. It act on the projector display.

Figure 2 .

 2 Figure 2.38: This is the structure of the processor unit. It work by directing the input to a folder were a pipeline will automatically process it and put it back to an output folder.

Figure 2 .

 2 Figure 2.39: In this schematic of the processor you can see the path the data will follow. Image arrive via AMQP messaging. A worker is listening to a specific queue. Once a message arrive, it load the image out of it, and save it in the IN folder, where it will be aspired into a cascade of processor, each of whom save the result it produce into a dedicated folder, until the OUT folder.The content of the OUT folder is automatically sent over the the response AMQP queue.

Figure 2 .

 2 Figure 2.40: This is the structure of the mother unit. It coordinate the various actions of the other worker. As well as storing the data.

Figure 2 .

 2 Figure 2.41: Representation of the Bayer pattern of the Raspberry camera CMOS sensor. This type of montage allow to acquire colored images over 3 color channel. Source: Wikipedia.

Figure 2 .

 2 Figure 2.42: These different dots are images acquired under various illumination conditions of the same position of the sample. On the white dot it is possible to see an aberration due to an issue during the capture of the image, this is an hardware related aberration. Such hardware noise is problematic while exploring the data if not categorized upstream.

Figure 2 .

 2 Figure 2.43: The standard deviation visible on the right image (Fiji, stack z project module) between a green and a red light shined on the sample visible on the to left images seems to offer a powerful tool to asses the ecosystem state and production of molecules.

Figure 2 .

 2 Figure2.44: Working on the white channel only, seems to offer interesting possibilities as it is itself composed of 3 distinct wavelength. The standard deviation between the original image (left) and a smoothed variation of it (middle image, Kuwahara filter of window = 5 pixels) seems to offer an interesting insight of the diffusion of light in the sample. The ration of green pixels over red pixels in the resulting image (right) seems to be linked to the light conditions under which the algae were incubated. Exopolysaccharides are for example known to impact the diffusion of the red light[START_REF] Delattre | Production, extraction and characterization of microalgal and cyanobacterial exopolysaccharides[END_REF], this type of indicator is promising. .

Figure 2 .

 2 Figure 2.45: This is the result of a classification with Weka, where a class was assigned to the Exopolysaccharides. .

Figure 3 . 2 :

 32 Figure 3.2: Here is an example of mask where I defined three family of 25 small patch (12 pixels radius) each. Each family are identical and thus allow to operate light statistical analysis on the triplicated results.

Figure 3

 3 Figure 3.3: Here is an example of the type of pattern that can be projected to study population under local uniform light conditions. Each patch have a color, defined in the (R,G,B) spectrum, and an intensity between I min and I max .

Figure 3

 3 Figure 3.6: This shape is called big donuts, it is obtain by dilatation of the original arena mask.

Figure 3

 3 Figure 3.7: This shape is called small donuts, it is obtain by erosion of the original arena mask.

Figure 3 .

 3 Figure 3.13: The stripes visible in this Figure are in phase with the one of Figure 3.12.

Figure 3 .

 3 Figure 3.14: Observation of a sequence of light patterns projected by the machine at the same position onto an agar surface covered with micro algae. Size of the image is around 1 mm. Colors are in a sequence at the same position by tuning the light landscape dynamically. Rendering a multi spectral signal of a position, usually the multispectral component is obtain from the camera side of the measurement method.

Figure 3 .

 3 Figure 3.15: Pairwise standard deviation of the previous dots from the Figure 3.14. What a nice space for learning.

Figure 3 .

 3 Figure 3.16: This is an image acquired by the microscope on the projected signal.Please do note that this type of image is usually not acquired as the camera will not be able to manage the amount of light projected to it. Here I did used a polarizing filter in front of the camera.

Figure 3 .

 3 Figure 3.18: This is the equivalent of the image from Figure 3.17, this time in the red weak color (70, 0, 0) * Intensity correction

Figure 3 .

 3 Figure 3.20: This is the equivalent of the image from Figure 3.17, this time in the green color (0, 130, 0) * Intensity correction

Figure 3 .

 3 Figure 3.21: Result of the classification of an arena. The algae are visible in green, the background is purple. Each individual can then be identified from such an image, and its properties stored in a dictionary.

Figure 3 .

 3 Figure 3.22: Separation of the population of Figure 3.21 based on its circularity. The red individuals are under a circularity of 0.8.

Figure 3 .

 3 Figure 3.23: Preparation of the image from Figure 3.21 for pattern extraction via Dictionary learning. Here I am looking to extract patterns generated by the population of algae.

Figure 3 .

 3 Figure 3.24: Dictionary of 16 atoms of 16 by 16 pixels each, was obtained from the image of Figure 3.23.

Figure 3 .

 3 Figure 3.25: Dictionary of 16 atoms of 32 by 32 pixels each, was obtain from the image of Figure 3.23.

Figure 3 .

 3 Figure 3.26: Preparation of the image from Figure 3.21 for pattern extraction via Dictionary learning. Here I am looking to extract pattern generated by the two sub population defined in Figure 3.22.

Figure 3 .

 3 Figure 3.27: Dictionary of 16 atoms of 16 by 16 pixels each, was obtained from the image of Figure 3.26. The blue color represent the background, the green color the normal algae, and red the circulars.The colors sums as usual.

Figure 3 .

 3 Figure 3.28: Dictionary of 16 atoms of 32 by 32 pixels each, was obtained from the image of Figure 3.26. The blue color represent the background, the green color the normal algae, and red the circulars. The colors sums as usual. The yellow color is especially relevant as it show the superposition of the two classes.

Figure 3 .

 3 Figure 3.29: This graph is fully connected, every vertex possess an edge to every other vertex.

Figure 3 .

 3 Figure 3.30: Representation of a steric graph, the vertices whose Steric areas (in blue) overlap are linked by an edge. Here all the areas are equal, but in other cases the steric area of a vertex can be linked to the property of the individual this vertex relates to.

Figure 3 .

 3 Figure 3.31: A Diffusive graph. The vertices whom Diffusive areas (in purple) overlap with a vertex are linked to this vertex by an edge.

Figure 3 .

 3 Figure 3.32: The matrix right side of the Figure is representing the adjacency matrix of the graph (left side). In my case the diagonal is empty as vertex are not connected to themselves.

Figure 3 .

 3 Figure 3.33: This image represent a graph that was traced out of the image from Figure 3.21. The graph result of a Delaunay triangulation over the population. Two classes are presents, the individuals in red possess a circularity inferior to 0.8, the ones in green have one superior to 0.8.

Figure 3 .

 3 Figure 3.34: Histogram of the radius of the algae in the ecosystem. Here the radius is reconstructed from the area of the classified algae via the circle area formula.

Figure 3 .

 3 Figure 3.35: This graph is similar to the graph of 3.33 but in this one the size of the dots is proportional to the size of the particles they represent. Graph can offer powerful visualization of complex systems.

Figure 3 .

 3 Figure 3.36: Histogram of the connectivity of the algae in the ecosystem. Here the graph used was constructed out of the Delaunay triangulation of the ecosystem.

Figure 3 .

 3 Figure 3.37: This image is constructed with the Delaunay triangulation of the ecosystem. In orange are marked every algae that is connected to an even number of vertices in the Delaunay triangulation.

Figure 3 .

 3 Figure 3.38: Visualization of the proportion of odd connected and even connected individuals in the different class populations from Figure 3.38.

From

  the previous observation and analysis of the population we got the position of the individuals. The information present Figure 3.21 can be transformed for example into the Figure 3.40 by simply compressing the image of the classified individuals to the definition of the projection. The reward is then projected onto the individuals of the population. The Figure 3.41 represent the compression of an inversion and dilatation of the image of Figure 3.21, the reward is projected over the empty parts of the ecosystem present in a given arena.

Figure 3 .

 3 Figure 3.40: This is a reward pattern obtain from the image of Figure 3.21. The reward is generated by compressing the image to the projected resolution, thus here the reward is projected onto the individuals of the ecosystem.

Figure 3 .

 3 Figure 3.41: This is a reward pattern obtain from the image of Figure 3.21. The reward is generated by compressing the inverse of the dilated image to the projected resolution, thus here the reward is projected onto the emptiness of the ecosystem.

Figure 3 .

 3 Figure 3.42: This is a reward pattern obtain from the image of Figure 3.22. The reward is generated by compressing an image containing the individuals of the class circular to the projected resolution, thus here the reward is projected onto the green individuals of Figure 3.22.

Figure 3 .

 3 Figure 3.43: This is a reward pattern obtain from the image of Figure 3.22. The reward is generated by compressing an image containing the individuals of the class non circular to the projected resolution, thus here the reward is projected onto the red individuals of Figure 3.22.

  Figure 4.3 represent such a trial to generate classes out of an image, the tracking of such classes over time in the arena offer the ability to measure interesting ecosystemic indicators.It is possible to try to maximize, minimize or stabilize such indicators.

Figure 4 . 2 :

 42 Figure 4.2: Microscopic image of an algal ecosystem on an agar surface after one day of culture (20x magnification).

Figure 4 . 3 :

 43 Figure 4.3: Result of the classification of the image from Figure 4.2 , different class were identified on this image and are visible as different colors. The yellow color represent the background. The red color represent the isolated individuals. Light blue is for packed individuals and Heavy blue is for the Exopolysaccharides.

  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Analysis of the subsets: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Interaction with the subsets, from an observation to an action . . . . . . . . . . . . . . . . . . . . . 3.4 Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Coupling scenario 4.1 The formal machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 The informal machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . open science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 In the control of complex living systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 To the realization of a working prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Acknowledgments 6.1 Funding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Thanks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Résumés des chapitres en Français 7.1 Chapitre 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Chapitre 2: Dispositif experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Chapitre 3: Procédure d'hybridation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Chapitre 4: Scénario de couplage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5 Chapitre 5: Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6 Chapitre 6: Remerciement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliography Contents A Annex: details on the machine A.1 The repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.4 Details on the machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.5 About the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.6 Software generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.7 Software details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B Annex: details on the mathematics B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Some algorithms for image analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Figure A. 2 :

 2 Figure A.2: This is an example of routine that can be orchestrated via the machine. The machine observe a surface, analyses its observations, generate a reward. And operate such routine automatically at given time points. The analysis of the results can include complex tools such as machine learning.

Figure A. 3 :

 3 Figure A.3: The type of experiment the machine allow to realize. The surface studied is a simple gel surface. The iteration time may vary between experimental procedure, at minimum few seconds are required by the software.

Figure A. 4 :

 4 Figure A.4: The type of operation the software can operate. This include several task, from hardware control, to machine learning application, to spatial analysis, and projecting the desired pattern. All of these tasks can be automated in the machine via accessible frameworks.

  Figure A.5. The diameter of 25mm of the lens and the tube of the projector, allowed in our case to fit directly the lens in the optical tube of the projector. The lens is located at its focal length from the DMD. The use of a post field diaphragm allow to cut a big part of the aberrations, as shown in Figure A.6, it only offer the center of the lens to the projection, which is the flattest surface of the lens, and thus reduce the noise level over the entire projection. It also provide a reduction of the spherical aberrations. Another better upgrade of the previous modification is shown in Figure A.7, it uses 2 PCX lens in order to realise the projection. This type of system is especially recommended with high illumination, but is more expensive and thus was not implemented. Systems with one PCX lens seems to offer some possibilities as shown in Figure A.8 and might be cheaper. Finally we use a combination of Figure A.5 and Figure A.6 in the machine, offering a sharp projection at the desired throwing distance.

Figure

  Figure A.5: Example of projection with a simple biconvex lens. The shape are relatively sharp but a strong background noise is present. Source: Edmundoptics !

Figure A. 9 :

 9 Figure A.9: This is the drawing of a micro mirror as found at the surface of the DMD by thousands. Source: Wikipedia.

Figure

  Figure A.12: This is the EVM side of the connection. Source: frederickvandenbosch.be !

Figure

  Figure A.14: This is a schematic of the landscape projector module. It is mostly 3D printable, and use linear profile of 1cmx1cm

  Figure A.16 shows us the various degree of freedom that are present while designing the optical path of the setup. In my montage I do use a 45 mm focal length lens, the distance d1 is equal to the focal length of the lens, d2 is close to zero as the diaphragm touch the lens. The diameter diam1 is critical, as it condition the projector light output power, it need to be perfectly aligned with the optical path. By adjusting the distance d3 it is possible to focus the projector on the surface.

Figure A. 16 :

 16 Figure A.16: Schematics of the various parameters of the projection setup. There is 3 distance that can be adapted (d1, d2, d3) and the diameter of the diaphragm pinhole (diam1). The focal of the lens (F) can be adapted depending of the constraints of the setup. !

Figure A. 17 :

 17 Figure A.17: This image was acquired with a misaligned landscape projector. Chromatic aberrations are visible. !

Figure A. 19 :

 19 Figure A.19: Here is a sharp image.Figure A.20: Here is the profile plot of the shape borders. It is visible that the transition is happening over one pixel from white to dark.

Figure A. 21 :

 21 Figure A.21: Here is a smoothed image Figure A.22: Here is the profile plot of the shape borders. It is visible that the transition is happening over one pixel from white to dark.

Figure

  Figure A.23 Figure A.24

  Figure A.25: Image of the standard deviation between the sharp and the smoothed image.Figure A.26: Here is the profile of the trace between the sharp and the smoothed images.

  Figure A.27: This is a schematic of the microscope mobile module. It is 3D printable and accept standard microscope objectives.

Figure A. 28 :

 28 Figure A.28: This is a schematic of the microscope mobile module. It is 3D printable and accept standard microscope objectives. It uses a linear motor with a precision of 0.01µm per pulse to realize the Z motion. Overheating did cause problem with this arrangement.

Figure

  Figure A.29: Here is a visualization of the XY microscope module. Integrated with all the components of the complete machine. This design intend to be as simple as possible, but offer limitation in term of vibration. The design is still evolving.

Figure

  Figure A.30: Schematics of the electronic connections linking the Raspberry Pi to the stepper motor controller (A4988 here) to the Bipolar stepper motor. The red and black wires are for the motor power supply. The 2 orange and 2 blue wires connect to the Bipolar motor following the constructor schematics. The cyan and purple wires are the step and dir pin. The step pin transfer every inpulse into a step. The dir pin set the direction of the motor (low or high).

Figure A. 31 :

 31 Figure A.31: Plot of the acquired signal by the microscope of a light pattern projected on a paper piece from the set up. Analysis of such pattern allow to quantify the diffraction inherent to the setup. Left is the picture. Right is the surface plot of this picture(inverted colors)

Utilization

  from skimage imp ort measure i t e m s l a b e l s , totnumitem = measure . l a b e l ( image , background =0 , return num=True ) C e l l p r o p = measure . r e g i o n p r o p s ( i t e m s l a b e l s , i n t e n s i t y i m a g e=None ) Listing A.4: This is the analysis of the masks image. It return an object containing the properties of every individual mask present on the image.

  b i t u t i l i t i e s . py r a b b i t t o o l s . py r a b b i t t e s t . py memorytools / s e r i a l t o o l s / s o u n d t o o l s / u s e f u l t o o l s / Listing A.5: This is the structure of the package

  c o n f i g im po rt r a b b i t u t i l i t i e s d e f f l y ( d i s p I P=F a l s e ) :""" t h i s i n s t a n c i a t e a c h a n n e l """ IP = c o n f i g . I P a d r e s s ( )[ ' mother ' ]

  r a b b i t u t i l i t i e s . t u n e l ( IP ) i f d i s p I P i s True : p r i n t ( ' S e r v e r a d r e s s RabbitMQ : ' + IP ) r e t u r n ch Listing A.6: This is the Uberrabbit module it allow to instantiate the communication with the server. The previous module call the IP from the conf ig module via the .IP adress() function. u r n c o n f i g u r a t i o n Listing A.7: This is the config.IPadress() function. It returns the configuration of the network. The function tunnel() is the function of creation of the communication with the server. d e f t u n e l ( IP ) :

  r a b b i t c r e d e n t i a l s . r a b b i t m q c r e d e n t i a l s ( ) [ ' ID ' ] # t h i s g e t t h e ID from c o n f i g PSWD = r a b b i t c r e d e n t i a l s . r a b b i t m q c r e d e n t i a l s ( ) [ 'PSWD' ] # t h i s g e t t h e password from c o n

  e d e n t i a l s = p i k a . P l a i n C r e d e n t i a l s ( ID , PSWD) p a r a m e t e r s = p i k a . C o n n e c t i o n P a r a m e t e r s

  n n e c t i o n = p i k a . B l o c k i n g C o n n e c t i o n ( p a r a m e t e r s ) c h a n n e l = c o n n e c t i o n . c h a n n e l ( ) r e t u r n c h a n n e l

  d e f a c t i v e w o r k e r b a s i c ( c h a n n e l , queue name , c a l l b a c k , debug=True ) : """ C a l l a b a s i c s t r u c t u r e worker . I t w i l l consume a queue , and e x e c u t e a c a l l b a c k i n r e t u r n . Be C a r e f u l about t h e v a l i d a t i o n o f t h e message t a k e n from t h e queue . ch . b a s i c a c k ( d e l i v e r y t a g = method . d e l i v e r y t a g ) a l l o w t o v a l i d a t e t h e consumption i n t h e c a l l b a c k . P a r a m e t e r s ---------c h a n n e l : AMQP t h e t u n e l t o u s e queue name : s t r o r l i s t o f s t r i n g s name o f t h e queue t o c r e a t e / c o n n e c t c a l l b a c k : s t r o r l i s t o f s t r i n g s Func t o be g i v e n .

  h a n n e l . q u e u e d e c l a r e ( queue=queue name , d u r a b l e=F a l s e ) #c h a n n e l . b a s i c q o s ( p r e f e t c h c o u n t =1) # IMPORTANT dont know why c h a n n e l . b a s i c c o n s u m e ( queue name , c a l l b a c k ) i f debug i s True : p r i n t ( "[>>] C a l l b a c k p a s s e d . A c t i v e worker s t a r t consuming : " + s t r ( queue name ) )

  a n n e l . s t a r t c o n s u m i n g ( ) Listing A.9: This is an example of workerimagestools informationsThis sub packages contain various tools to manipulate images. From loading them to saving them.Here is a function used to load the image. It do use OpenCV to realize the operation in less than a second. d e f i m l o a d ( path , debug=True ) : """ open image with cv2 from f u l l path Args : path (TYPE) : D e s c r i p t i o n debug ( b o o l , o p t i o n a l ) : D e s c r i p t i o n Returns : TYPE: D e s c r i p t i o n

  g e f a k e = Image . new ( 'RGB ' , ( dim1 , dim2 ) , c o l o r= ' b l a c k ' ) d = ImageDraw . Draw ( i m a g e f a k e ) d . t e x t ( ( ( dim1 / 2 ) -3 0 , ( dim2 / 2 ) -2 0 ) , " I am f a k e " , f i l l =(255 , 2 5 5 , 2 5 5 ) ) i m a g e f a k e m a r k e d = i m a g e f a k e r e t u r n i m a g e f a k e m a r k e d Listing A.11: This function generate a fake image The machine exchange the image via the AMQP protocol. Faster solution exist, but this one prooved to be very flexible once well implemented. It use the base64 package in order to converter the image to JSON format for transfert. im po rt b a s e 6 4 d e f save imagefromAMQP ( im , memory adress , n a m e w i t h o u t e x t e n s i o n , e x t= ' . png ' ) : """ Save t h e images from RabbitMQ message i n t o memory Args : im ( Base64 encoded m a t r i x ) : Base64 encoded image . memory adress (TYPE) : D e s c r i p t i o n n a m e w i t h o u t e x t e n s i o n ( S t r i n g ) : n a m e w i t h o u t e x t e n s i o n o f t h e image . WITHOUT EXTENSION ( . png , . t i f f ) """ f h = open ( memory adress + n a m e w i t h o u t e x t e n s i o n + ext , "wb" ) # d e s t i n a t i o n image f h . w r i t e ( b a s e 6 4 . b64decode ( im + "=========" ) ) # w r i t e t h e o b j e c t f h . c l o s e ( ) # c l o s e i t , need r e o p e n Listing A.12: This function I used to convert the image when messaged by AMQP. d e f e m i t i m a g e p r e e n c o d e d ( c h a n n e l , im , name , q u e u e e m i t , debug=True ) : """ t h i s emit an image t o queue . image need t o be b a s e 6 4 encoded . Args : c h a n n e l (TYPE) : D e s c r i p t i o n im (TYPE) : D e s c r i p t i o n name (TYPE) : D e s c r i p t i o n q u e u e e m i t (TYPE) : D e s c r i p t i o n debug ( b o o l , o p t i o n a l ) : D e s c r i p t i a n t o o l s . r a b b i t t o o l s . m a k e m e s s a g e m i n i ( im , name )

  im po rt t r a c e b a c k d e f t r y D f u n c ( func , * * kwargs ) :

  d e f p r o c e s s o r w o r k e r ( ) : """RabbitMQ t y p e worker . Use p r o c e s s o r c o n t r o l queue """

  r a b b i t s . ' ) l a n t o o l s . r a b b i t t o o l s . r a b b i t h u n t e r ( c h a n n e l , l a n t o o l s . c o n f i g . g i v e m e q u e u e ( ' p r o c e s s o r ' ) )

  auto ' : p r i n t ( " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " ) p r i n t ( "[>>>] S t a r t i n g auto mode p r o c e s s o r " ) t i m e b e f o r e l a u n c h = 200 p r i n t ( " [ i ] time s l e e p s e t t o : " + s t r ( t i m e b e f o r e l a u n c h ) ) time . s l e e p ( t i m e b e f o r e l a u n c h ) p a n o r a m i x l o o p e r ( )

  a n d a r d ' : p r i n t ( " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " ) p r i n t ( "[>>>] S t a r t i n g t h e p r o c e s s o r worker . . . " ) l a n t o o l s . r a b b i t u t i l i t i e s . a c t i v e w o r k e r b a s i c ( c h a n n e l , ' p r o c e s s o r c o n t r o l ' , c a l l b a c k ) Listing A.15: Here is the processor worker. located in processor main.py . d e f c a l l b a c k ( ch , method , p r o p e r t i e s , body ) : """ a c t i o n on message Args : ch (TYPE) : D e s c r i p t i o n method (TYPE) : D e s c r i p t i o n p r o p e r t i e s (TYPE) : D e s c r i p t i o n body (TYPE) : D e s c r i p t i o n "

  h e message under t r y c o n d i t i o n t r y : t r a n s c m d = body command = j s o n . l o a d s ( t r a n s c m d ) o r d e r = command [ ' o r d e r ' ] e x c e p t Excepti on , e : p r i n t ( ' F a i l e d : ' + s t r ( e ) ) p r i n t ( ' [ xxx ] E r r o r : p r o c e s s o r c a l l , wrong message f o r m a t ! ' ) #

  The f u n c t i o n i s l o c a t e d i n package . unit name . module """ #This s e t t h e module and p r o c e s s o f t h e s u b u n i t s , grouped with a key """ s u b u n i t s i s a d i c o o f s t r u c t u r e { ' key ' : { ' module ' : , ' p r o c e s s ' : } } with ' module ' and ' p r o c e s s ' b e i n g s t r i n g s . """ s u b u n i t s = { " p r o c e s s o r " : { ' module ' : ' p r o c e s s o r m a i n ' , ' p r o c e s s ' : ' p r o c e s s o r w o r k e r ' } , " t e s t p r o c e s s o r " : { ' module ' : ' t e s t D n e t w o r k p r o c e s s o r ' , ' p r o c e s s ' : ' t e s t D n e t w o r k m a i n ' } , } p r i n t ( ' * * * INFO * * * ' ) p r i n t ( ' u n i t i s : ' + s t r ( unit name ) ) p r i n t ( ' * * * * * * * * ' ) p r i n t ( ' from package : ' + s t r ( package name ) ) p r i n t ( ' * * * * * * * * * * * * * ' ) p r i n t ( ' with f o l l o w i n g s daemons : ' ) p r i n t ( ' * * * * * * * * * * * * * * * * * * * * * * * * ' ) f o r index , ( item , c o n t e n t ) i n enumerate ( s u b u n i t s . i t e m s ( ) ) : p r i n t ( c o n t e n t [ ' p r o c e s s ' ] )# ################################################ # C o n s t r u c t i o n # ################################################ #This s e t t h e l i s t o f modules t o impo rt f o r t h e u n i t #i s a Dico , ' key ' : ' module name ' . #I n i t i a l i z e l i s t m o d u l e , with t h e main package name f o r l a t e r i mp ort l i s t m o d u l e = { " package " : package name , } f o r index , ( item , c o n t e n t ) i n enumerate ( s u b u n i t s . i t e m s ( ) ) :l i s tm o d u l e [ item ] = package name + ' . ' + unit name + ' . ' + c o n t e n t [ ' module ' ] #This s e t t h e l i s t o f p r o c e s s t o s t a r t f o r t h e u n i t #i s a Dico , ' key ' : ' module name ' . l i s t p r o c e s s = {} f o r index , ( item , c o n t e n t ) i n enumerate ( s u b u n i t s . i t e m s ( ) ) : l i s t p r o c e s s [ item ] = package name + ' . ' + unit name + ' . ' + c o n t e n t [ ' module ' ] + ' . ' + c o n t e n t [ ' p r o c e s s ' ]

  e n e r i c i m p o r t a t i o n im po rt s y s im po rt t r a c e b a c k from m u l t i p r o c e s s i n g im por t P r o c e s s im po rt i m p o r t l i b #imp ort u n i t p a c k im po rt u n i t p a c k d e f u n i t s t a r t e r ( d i c o p r o c e s s , debug=True ) : """ S t a r t e r . S t a r t t h e p r o c e s s e s l i s t e d i n d i c o p r o c e s s . Args : d i c o p r o c e s s ( Dico ) : Should be { key : m u l t i p r o c e s s i n g . P r o c e s s } debug ( b o o l , o p t i o n a l ) : To p r i n t s t u f f s debug """ #Loop t h r o u g h t h e d i c o f o r index , ( item , c o n t e n t ) i n enumerate ( d i c o p r o c e s s . i t e m s ( ) ) : i f debug i s True : p r i n t ( "[>>>>] s t a r t p r o c e s s : " + s t r ( item ) ) t r y : #s t a r t t h e P r o c e s s from t h e d i c t i o n n a r y m u l t i p r o c e s s i n g . P r o c e s s . s t a r t ( ) c o n t e n t . s t a r t ( ) #Get an p r i n t t h e e x e p t i o n e x c e p t Except ion , e : p r i n t ( ' f a i l e d : ' + s t r ( item ) ) p r i n t ( s t r ( e ) ) e x c t y p e , e x c v a l u e , e x c t r a c e b a c k = s y s . e x c i n f o ( ) p r i n t ( " * * * f o r m a t e x c e p t i o n : " ) p r i n t ( r e p r ( t r a c e b a c k . f o r m a t e x c e p t i o n ( e x c t y p e , e x c v a l u e , e x c t r a c e b a c k ) ) ) p r i n t ( " * * * e x t r a c t t b : " ) p r i n t ( r e p r ( t r a c e b a c k . e x t r a c t t b ( e x c t r a c e b a c k ) ) ) d e f b r a w l e r ( l i s t m o d u l e , l i s t p r o c e s s ) :

  index , ( item , c o n t e n t ) i n enumerate ( l i s t m o d u l e . i t e m s ( ) ) : i m p o r t l i b . i m p o r t m o d u l e ( c o n t e n t ) #do p r i n t p r i n t ( ' [ i t i s time ] Time t o brawl ! ' ) p r i n t ( l i s t p r o c e s s . i t e m s ( ) ) #do p r e p a r e #g e n e r a t e empty d i c o d i c o p r o c e s s = {} # f i l l i t with t h e p r o c e s s p r e s s e n t i n t h e l i s t p r o c e s s f o r index , ( item , c o n t e n t ) i n enumerate ( l i s t p r o c e s s . i t e m s ( ) ) : #e v e r y key g e t t h e matching P r o c e s s v i a an e v a l ( ) o f t h e d i c o c o n t e n t . #i s a P r o c e s s , package m u l t i p r o c c e s s s i n g d i c o p r o c e s s [ item ] = P r o c e s s ( t a r g e t=e v a l ( c o n t e n t ) ) #do l a u n c h u n i t #Pass t h e d i c o t o t h e u n i t s t a r t e r . u n i t s t a r t e r ( d i c o p r o c e s s )Listing A.18: Here are the unitstarter and the brawler. these are used to launch the units.A.7.3 Running the SoftwareThe machine is executed via a main Bash script. Here is a part of this script.# ############################################ #A n s i b l e echo -e " $ {LIGHT CYAN} * * * $ {NC} $ {LIGHT CYAN} A n s i b l e h o s t key c h e c k i n g s e t t o : $ {NC} $ {RED} " $ { ANSIBLE HOST KEY CHECKING} " $ {NC} $ {LIGHT CYAN} * * * $ {NC} $ {LIGHT CYAN} A n s i b l e path i s : $ {NC} $ {YELLOW} " $ { a n s i b l e m a i n p a t h } " $ {NC} $ {LIGHT CYAN} * * * $ {NC} $ {LIGHT CYAN} A n s i b l e i n i t i a l i z e path i s : $ {NC} $ {YELLOW} " $ { a n s i b l e i n i t i a l i z e p a t h } " $ {NC} $ {LIGHT CYAN} * * * $ {NC} $ {LIGHT CYAN} A n s i b l e t r a i n i n g path i s : $ {NC} $ {YELLOW} " $ { a n s i b l e t r a i n i n g p a t h } " $ {NC } $ {LIGHT CYAN} * * * $ {NC} $ {LIGHT CYAN} An s i b l e o p e r a t e path i s : $ {NC} $ {YELLOW} " $ { a n s i b l e o p e r a t e p a t h } " $ {NC} $ {LIGHT CYAN} * * * $ {NC} $ {LIGHT CYAN} A n s i b l e s c r i p t s subpath s e t t e d $ {NC} " echo -e " $ {LIGHT CYAN} * * * $ {NC} "# ############################################ #LOOP #cl e a r # run m a i n t a i n t h e l o o p a l i v e run=1 w h i l e [ [ " $run " = 1 ] ] do echo -e " * * * * * * * * * * $ {RED} I n t e r a c t i v e s c r i p t s $ {NC} * * * * * * * * * * $ {LIGHT CYAN}0 : I n i t i a l i z e network$ {NC} $ {LIGHT CYAN}00 : Train R a s p b e r r i e s $ {NC} $ {LIGHT CYAN}000 : Operate$ {NC} * * * * * * * * * * $ {RED} P r o t o c o l s : $ {NC} * * * * * * * * * * $ {LIGHT RED} r u n f : p u l l remote , c l e a n queue , push and run with f l a s k v i a s s h $ {NC } $ {LIGHT RED} runa : p u l l remote , c l e a n l o g s and queue , push and run v i a s s h $ {NC} $ {LIGHT RED} data : p u l l t h e data from remote$ {NC} $ {LIGHT RED} run-c f : c l e a r data remote , p u l l remote , c l e a n l o g s and queue , push and run v i a s s h $ {NC} * * * * * * * * * * $ {GREEN} T o o l s : $ {NC} * * * * * * * * * * $ {LIGHT CYAN} p u l l : p u l l r e p o from B i t b u c k e t t o l o c a l with c r e d e n t i a l s $ {NC} $ {LIGHT CYAN} push : push t o R a s p b e r r i e s $ {NC} python : c l e a n and i n s t a l l python p a c k a g e s rabbitmq : rabbitmq ( r e ) i n s t a l l apache : apache ( r e ) i n s t a l l data-c l e a r : c l e a r t h e data on remote ----------$ {GREEN} U s e f u l $ {NC} f o l d e r : Give i n f o f o l d e r r e b o o t : $ {YELLOW}REBOOT${NC} q u i t : q u i t ( a u t r e s ) : r e r u n ---------- * * * * * * * * * * " echo -e " $ {LIGHT RED}---$ {NC} " r e a d -p " c h o i x : " r e p echo -e " $ {LIGHT RED}---$ {NC} " i f [ " $ r e p " = 0 ] then # Go t o t h e a n s i b l e r e a n a i s s a n c e f o l d e r f o r s p e c i f i c p l a y b o o k s cd " $ a n s i b l e i n i t i a l i z e p a t h " o t h e a n s i b l e t r a i n i n g f o l d e r f o r s p e c i f i c p l a y b o o k s cd " $ a n s i b l e t r a i n i n g p a t h " # Launch f o l d e r main bash t r a i n i n g . sh cd "$PATH MAIN" e l i f [ " $ r e p " = 000 ] Listing A.19: This is a part of the mains script. At the beginning the script get the values from the config.txt. It then propose choices to the user.

  # I t s h o u l d not be any s p a c e a r r o u n d e q u a l o p e r a t o r s ! # s e p a r a t o r shoud not be o f \ t y p e##############################################################s e r v er e x p o r t i p s e r v e r = " 1 9 2 . 1 6 8 . 0 . 1 0 " # IP mother e x p o r t i p m o t h e r = " 1 9 2 . 1 6 8 . 0 . 1 0 " # IP p r o c e s s o r e x p o r t i p p r o c e s s o r = " 1 9 2 . 1 6 8 . 0 . 1 0 " # IP m i c r o s c o p e e x p o r t i p m i c r o s c o p e = " 1 9 2 . 1 6 8 . 0 . 2 0 " # IP p r o j e c t o r e x p o r t i p p r o j e c t o r = " 1 o r t u s e r s e r v e r =" r o o t " # mother u s e r e x p o r t u s e r m o t h e r=" r o o t " # m i c r o s c o p e u s e r e x p o r t u s e r m i c r o s c o p e =" r o o t " # p r o j e c t o r u s e r e x p o r t u s e r p r o j e c t o r =" r o o t " # p r o c e s s o r u s e r e x p o r t u s e r p r o c e s s o r =" r o o t "########################################################################################################################### ## ANSIBLE ## #This a l l o w t o u s e a n s i b l e with p a s s w o r d s i n s t e a d o f k e y s . h t t p s : / / devops . s t a c k e x c h a n g e . com/ q u e s t i o n s /725/ can-i -bypass-ho st -key-c h e c k i n g -in -a n s i b l e e x p o r t ANSIBLE HOST KEY CHECKING=F a l s e Listing A.20: This is the beginning of the config.txt file. The main Bash script posses a Powershell script in order to be executed on a Windows operating system B.1 Introduction B.2 Some algorithms for image analysis B.2.1 Image importation Image → M atrix height * width * 3 or Image → M atrix height * width * 7 Matrix are very compatible tools to process image.

Figure

  Figure B.1: On this bright field image x120. Left, we can see that the segmentation task can have different flavour, the green area contain well defined individuals. When the orange area contain packed individuals. Right, these are the surface plot of the corresponding color squares.We can see see clearly the green maxima, when the orange maxima are confused.

Figure B. 5

 5 Figure B.5: Source: https://dsp.stackexchange.com/questions/14606/anisotropic-diffusion

Figure B. 6 :

 6 Figure B.6: Example of classification of an image with Weka

Figure

  Figure B.9: result of the modelisation of an ecosystem of 256 Chlamydomonas reinhardtii individual in a uniform light landscape (512X512 pixels). Based on a multi agents model the firing function of the quorum sensing is modeled with a logistic regression function. Left is the graph of the population, Right is the map of molecules (white is concentrated). Yellow producing QS molecule, Green being refractive to production and red is ready to fire. Here we can see that the stochastic term of the firing function might be too strong

  Several tools are under development to gather metabolic indicators over the population. Some uses some tricks with visible light. Other use IR and visible image comparison to asses the photosynthetic activity by capturing the auto fluorescence of chlorophyll.

Figure C. 5 :

 5 Figure C.5: Trial to identify exopolysaccharide out of diffraction difference between, different wavelength at the same intensity (0.8 * I max ). In this case the standard deviation between an image obtain with a red light of 0.8 * I max for image 1 and a green light of 0.8 * I max for image 2.Image 3 is the standard deviation between the two images over the 3 channels. In Image 3 the light green surrounded by blue seems to be the exopolysaccharide. Image 4 is a red tresholded image.

  Cette partie explique les tenants et aboutissants du projet. La génération d'un framework et d'une machine open source notamment... L'absence de résultats fort aussi. Introduction on collective behaviors in biology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 My approach from a geometrical perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 A gap between theory and experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 About this manuscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessibility of the design and reproducibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 The Biology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 The automated machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

	1 Introduction
	1.1
	7.6 Chapitre 6: Remerciement
	Ce chapitre est dédié au remerciements.
	2 Experimental setup
	2.1

2.4 The numerical layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

This image result of the segmentation of the image of an algal population. The smallest algae do not have a black interior but instead appear as green dots.

This image is the observation with the microscope on a projected pattern onto an algal film at the surface of a gel.

When misaligned, the projector produce rainbow like patterns, which can be problematic if not corrected.

This image result of the threshold and transformation of the image of the limit of a projected pattern.

This image result of the Z projection of a full collection of images from a same plan.

This is a projected dot onto an algal mat present at the surface of a gel.

Collection of projected green dots on a gel surface.

Standard deviation between an image of dots and the same image filtered by anisotropic diffusion.

Some processing of a dot image.

Acknowledgments 6.1 Funding B.3.1 Image stitching

In order to merge microscopic field into a meta image, some stitching algorithms are used. These algorithms will use various techniques that will find common reference between the images and move them (with Affine transform for example) until some global optimum is reached.

Another part of the stitching is the blending. This can also be done by numerous way. But the idea is that once you got the position of every images you need to superpose their content. What can be realized by a simple addition (in respect to the image format thus averaging). Or more complex transformation such as linear blending.

https://imagej.net/Image_Stitching#Citation

Contents

The hardware is orchestrated and coordinated via an asynchronous software , composed of independent and modular bricks, running concurrently. This allow to complete complex iterative operations on the planar biological sample.

The Hybrid details will be accessible in a dedicated publication, it is Opensource and fully 3D printable. A trade off between price, precision and modularity was part of the objective in the design. Are visible. The optomechanic module that contain the LED and the color wheel. The mirror that beam the light to the DMD. And a condenser lens in front of the DMD?.

The EVM was developed to fit on a Beaglebone card. In order to adapt it to the Raspberry Pi, a complex cabling need to be realised. The source for this modification was the great tutorial from frederickvandenbosch.be. You can see in Figure A.12 the cabling on the EVM. On Figure A.13 this is the cabling for the Raspberry. Cabling should be realised with short cables in order for this configuration to work. Another point is that this will require the DISP LAY of the Raspberry carrying the EVM to be piped to none with the command DISP LAY : 0. The Raspberry cannot have an HDMI connection and the EVM connection running at the same time.

""" g i v e a r g s o f f u n c a s * * kwargs i f r e q u i r e d . Annex: details on the mathematics

Abstract

This Doc explain some of the tools we are using. It describe some fundamental tools critical in the methods we are using, they are detailed in order for the reader to understand the underlying principles if not familiar with. There is also a description of the pipeline that the data can follow in the machine.

This represent a whole field, just to remember the image recognition area represent a majority of the brain weight. In our case we process planar image, of simply shaped objects, what render the task easier by many fold. There is a range of methods available to execute this task, varying in complexity and efficiency. The three main objectives for our segmentation are resilience, flexibility and rapidity. Here I will present three techniques that offer satisfying results in our case, but with various limitations.

A classic threshold offer already a very nice precision in particles segmentation task, especially with a light filtering in entry, precision goes up to 95 % .

Figure B.2: execution time ¡ 1 s

Keeping in mind the tresholding method previously used, we can use an heavier filtering in entry, such as a background subtraction. This type of filter use a box approach to render local operation on the image, in this case to reduce the background signal. This type of filtering is efficient but computationally intensive. Especially if several filters are added in cascade (traditionally with watershed). If the parameters are fitted properly, such segmentation of up to 99 % of precision. The issue with such process is more about noise tolerance. Indeed it work very well on an homogeneous signal, but get trouble in changing conditions. What our hardware offer. Also the output of such method doesn't posses class. A downstream analysis of the segmented shapes can be added, but add a lot of complexity to the process.

Figure B.3: execution time ¿ 1 s

In order to overpass this resilience and class issue, the best is to used more complete methods, that are fitted on large data sets, in order to render the segmentation in the noise.

B.2.3 Some filters of choices Kuwhara

Here goes some details on Kuwhara filter [Bartyzel, 2016] .

Local contrast normalisation

Here goes some details on local normalization http://bigwww.epfl.ch/sage/soft/localnormalization/.

Background substraction

Here goes some details on Background subtraction https://imagej.net/Rolling_Ball_Background_Subtraction.

Bilateral filtering

Here goes some details on Bilateral filtering https://imagejdocu.tudor.lu/wishlist/completed/bilateral_filtering.

B.2.4 Features generation by morphological operation, details on local filtering

These operation are non linear and realized on batch of pixels. They can be realize either to clean up signals or to generated features used as input for the machine learning algorithm. We use such filters in order to realize the image segmentation and identification. They consist most of the time of the convolution between a kernel and the image. The image which is represented as a matrix is traveled by a mask. This small mask will give the output matrix value based on the composition between the mask and the source matrix around the targeted pixel But can also be more complex such as anisotropic diffusion filtering, based on the Perona-Malik diffusion, resulting of an artificial diffusion on the image following local gradients, allowing its smoothing. [?]

k-neighbors

"path metric" https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm

B.5 Opening on simulation

Being aware of these communication and synchronization. It is interesting to look at our ecosystem as a connected network. The connectivity and the properties of the graph inform us on the correlations and some emergent behaviors that occurs. This can be seen as the famous problem of the clock synchronization. To study a little bit more the complexity that can reach this simplistic model, we operated simulations with some graph oriented fitness function for the parameters fitting. The parameter space need to bee explored. Note than thee visualization is only operated for human related purpose.

In a more traditional fashion, this method allow to analyze with concrete indicator microbial ecosystems, in a goal of classification or parameters extraction. In this case a model is developed in order for the machine to fit parameters by experimenting on this ecosystem in a dynamical fashion. Ones of the goal of this model is to allow the extraction of quorum sensing parameters, by the only assumption of quorum sensing and the fitting of simple retro-action in the population. The fitting of the model is done by a genetic algorithm with a fitness function checking the population geometrical arrangement of the simulation compare to a target mask.

Appendix C Annex: methods for biology Abstract

This annex give some extra details about the biology of the system and the methods that are used to grow it.

C.1 Introduction

Several area of the Biology of the model organism Chlamydomonas reinhardtii will be covered. As reference for the physiology of Chlamydomonas we use The chlamydomonas sourcebook [Harris et al., 2009a]. Once this quick extra description is done, the experimental condition in which I cultivate Chlamydomonas will be described, as well as the monitoring strategies. Then details on the procedure I use for Chlamydomonas pre cultivation before its introduction into the machine. I did grow Chlorella vulgaris in M9 minimal media, this media is composed of salts and offer minimal physico chemical need require for growth (Composition M9 media).

C.2 Chlamydomonas reinhardtii

C.2.2 Gel condition

Loose gel are made in order to use Petri dish in bottom-up position. These gels are made with an agar volumic concentration of 0.7%. The excess of water potentially present is evacuated. Then I put then in the fridge at (-4C) for at least 12h before inoculation.

C.2.3 Morphological characteristics The Eyespot

There is a fruitful bibliography about photo sensing in algal species. Chlamydomonas reinhardtii as a model organism is granted with a lot of studies [START_REF] Harris | The chlamydomonas sourcebook[END_REF]. Some recent outcomes in the field demonstrated the complexity underlying what could be just considered as a sensing mechanism. [START_REF] Ueki | Eyespotdependent determination of the phototactic sign in chlamydomonas reinhardtii[END_REF]] [Schmidt et al., 2006] Several question about the connection between this sensing and the overall state of the cell are not explored in the bibliography I found. The activation of AMP Cyclase as described in some literature let us think about some link with internal cellular process.

Gametic behavior

During its life cycle Chlamydomonas can go through an haploid asexual cycle or a diploid sexual cycle including a Meiotic event. The last one include the formation of a famous multicellular agglomerate named Tetrade. [Dutcher, 1995].

Multicellularity

Chlamydomonas reinhardtii is well know for its aggregation capacity. This mechanism seems usually to be triggered by external constraints such as nitrogen starvation [Dutcher, 1995] or predation [Boyd M, 2018]. During the aggregated phase, sexual reproduction events occurs. [?] The growth conditions were fixed as following for the flask.

Temperature

Temperature is set at 23C. Despite 25C being the standard lab temperature. 23C is near to the optimal growth temperature and a little bit shiffted from 26C were some metabolic shift in Chlamydomonasi activity seems to happened. [Harris et al., 2009a][?]

Light flux

Light flux is set to 180 µmol.s -1 . Which is the optimal light flux for Chlamydomonas [Harris et al., 2009a] the Light flux is a complex parameter as is value depend of the absorption spectrum of the algae, which is dependent of the biological system itself. To tell you the unit of measurement can be called Einstein..

Light cycle

We set the light cycle at 12h/12h. It has been shown that cells cycle are dependent of circadian mechanisms.

[?]

Agitation

Agitation is set to none. Because Chlamydomonas offer a relative reproducible growth under static conditions, and as the experiment is realized under unshaken conditions. Also as the objective is to check the impact of population structures on the behavior of the collective, it was thought better to stay in a spatially structured world,even out of the experiments.

Culture media

Media is BG11. The media used are the media BG11 which is adapted to freshwater Algae growth (See Figure 1.). Some preliminary test were also done with M9 which is a minimal mineral media and M9+agar. Liquid culture are grown in flasks. Solid culture are grown on agar plate the media is then supplemented with 0.7% agar.

Antibiotics

The use of antibiotics such as a mix Kanamycine and Vancomycine ath the concentrations of [50µg.mL] was tested.

The impact of such molecule, especially on non vital behaviors is supposed to be too strong. No antibiotic additions were maintained in the protocol, at least for the machine related experiments.

C.3.2 Growth conditions (Hybrid)

Variation in several parameters may occur due to the input of the machine, in light mainly as it is the actuator of the machine. Which will have impact on other parameters such as temperature. The machine posses an internal regulation. This regulation is based on PD regulators. The regulation is impacting the Biological system with any doubts. This was not yet assessed.

C.4 Experimental cycle and preparation

Several experimental cycle were explored. The one selected is the following one. The mother solution obtained from a solid or liquid culture is used to inoculate a revivification culture, that it self will be used to prepare the pre culture. Note that this is the ideal experimental path. For prototyping relating purpose, culture at older stage of growth are also used, even if this impact for example the degree of packing.

D.1 Build

D.1.1 Introduction

In this doc I will rapidly detail the construction of the machine. The repository contain the tutorials to realize the different parts as well as their plan.

D.1.2 Machine construction

The blueprints of the parts of the machine to 3D print as well as the procedure to construct the machine electronics and optics are available on this repository in the folder hybrid allyouneed of the main repository.

In order to construct your own hybrid, you will need the following material, listed by part.

• A 3D printer and some filament Several parts need to be printed with the 3D printer, before using it to construct the microscope. These parts were designed either for a Cetus 3D printers.

• A camera

• Actuator

In our case we use Arduinos toped with Adafruit Motorshield in order to Hijack the motor control of the 3D printer.

• 3 Raspberry, and 3 32Go micro SD card

• A router and 4 Ethernet cables of 50cm.

• A projector In our case we use either a short throw LED projector, a simple modification of the optics and the addition of a collimator allow to reduce the projection size to the size of interest. As projector we use a DLP R LightCrafter TM from Texas Instruments.

• An optical path Several lens need to be bought in order to realize a proper collimator. The lens specifications may depends of the projector. In our case we use a simple bi-convex lens with a Focal length (EFL) of 5cm and a diameter of 2.5cm.

• Power supply (3 A min, 8 channel 5V && 2 channels 12V)

• Profile In order to build the Frame we use Open Beam Aluminum profile (10x10mm) with an M3 screw size rail.

The Base of the set up use Rexroth Aluminum profile (40x40mm), following a 'robust' construction.

• Screws and tweaks To build the machine you will request M3 and M5 screw. With hexagonal head. Length from 2 to 8 cm.

• Many jumper wires (30 M/F 10 cm jumper wire) and cables

• Springs (compressible) inner diameter ¿ 4mm

Detailed shopping list model Mark III

Please find a possibly updated shopping list on the repository at Link repo The total price is inferior to 1000 euros.

• cetus 3D printer MKIII

• A projector DLP R LightCrafter TM Display 2000

• A raspicam v2

• A raspicam Pinoir v2

• A biconvex lens, diameter = 25mm, EFL = 50mm

• 3 Raspberry pi B+

• 2 Arduino Uno

• 3 meters of 40x40 mm rexroth profile , and 12 T-slots.

• 3 meters of 10x10 mm maker beam profile

• Stabilised alimentation Tutorial for fabrication

• 2 Adafruit motoshield V2 (or 4 A4988 stepper motor driver [not up to date])

• A switch and 5 Ethernet cables (1m)

• 5 meters of flexible electronic cable area = 0.2mm

• 30 Jumper wires M/F 10cm long(not longer, not shorter!)

Set up the electronics

Some soldering is needed in order to use the Adafruit motorshieldV2. You can find a detailed procedure on the repository under the /hybrid allyouneed/construction/Arduino folder.

Printing the parts

To print the parts with the 3D printer, I use the setting present in the /hybrid allyouneed/construction/ folder. I use PLA filament of 1.75 mm , with an extruder of 0.4 mm and a layer height of 0.2 mm, at 215 C. I fill the parts if they are not for testing, this increase their durability and resistance.

D.2 Setup D.2.1 Introduction

D.2.2 Raspberry setup

To install the software on the different machine it is very simple. Download Raspbian .iso at the following link: Link to Raspbian .iso.

Raspberry OS instalation

First we will flash the Raspbian OS onto the different SD cards. If you are new to this practice to do so you can follow this tutorial if installing from a windows machine.

The SD cards should be of 32 Go. More is not possible for the moment and will not work. In order to flash the memory cards you need a SD card reader (On a computer) and the following softwares (For a windows operating system): Win32 Disk Imager, SD Memory Card Formatter.

Raspberry initial configuration

This step cannot be automated. On every Raspberry you should realize the following operations manually.

Basics

• Insert the SD card This will open the network configuration file of the Raspberry. We need to configure a different IP adress for every Raspberry.

Add the following at the end of the file.

i n t e r f a c e e t h 0 s t a t i c i p a d d r e s s = 1 9 2 . 1 6 8 . 0 .X/24

X is different for every Raspberry. X = 10 for the mother, X = 20 for the microscope, X = 30 for the projector. Use the " main .sh" scrit from your remote machine in order to deploy the software. Share SSH keys from your pushing machine, via the script " initialize " that is called from the main You will be asked to enter the IP of the machine you want to share a key with. And then the username and password of the rasperry. Or you can just execute the following line for every IP. s s h pi@192 . 1 6 8 . 0 . X Once this is done. Go to the train section of the main .sh and launch the training. This will start the deployment. This may take a while (up to 12h). You can follow the deployment into the terminal you ran the script from. To understand what is happening, check the details in the Details section. If the procedure run properly, you you get such output for every IP, with a green "ok" or brown "changed" at every task. The repository contain in the main folder a main.sh file that allow to execute the routines.

Activate the ssh

Test of the software and the machine

The repository contain in the main folder a folder called circus that contain all the required tools.

Make an experiment

To use the software several steps are needed.

• First of all you need to set the different parameters of the packages. To do so use the config tools module present in the growell pack package.

• define the arena, i.e. the initial light landscape. Which will set the size of the projected area, the color channels... To do so use the generation module present in the growellpackpackage.

• Next step is to modify the classifier if needed. This need to be done in case of change in light conditions for example.

To train the classifier follow the procedure in the "classifier" folder of the software.

• You are ready to go! Appendix E

Gallery Abstract

This is a gallery of graphical content around the project. A lot of wonderful images were generated during the project, it is a real pleasure to work on such material. Some mathematical transforms applied to these images give even more beautiful images. Usually these transformations are used during some algorithmic processes, I thought it might be interesting to share the impact on information that these processes do. A legend goes with every pictures.

Collection of projected blue dots on a gel surface.

Collection of projected multi colors dots on a gel surface. This dictionary was learn out of a classified ecosystem.

MOTS CL ÉS

R ÉSUM É

Peu importe l' échelle d'observation, les syst èmes biologiques allant des mol écules aux cellules et les organismes multicellulaires aux communaut és, manifeste des comportements collectifs. De nombreuses id ées explicatives ont ét é avanc ées bas é sur la perception locale. Dans chacun de ces cas, des progr ès ont ét é possible parce que le ph énotype au niveau collectif est évident et observable à l'oeil nu, mais aussi en raison de la fonction d'objectif vis ée dans la compr éhension de ces comportements. Ici, j'ai construit un hybride machine-écosyst ème qui implique un dispositif d'observation, coupl é à un g én érateur de paysage lumineux dans une boucle qui contient un processus d'apprentissage à chaque étape en fonction des donn ées captur ées de l' écosyst ème observ é. Afin de combler la difficult é exp érimentale entre mod élisation et r éalit é, compte tenu de la complexit é profonde du syst ème étudi é car la mod élisation peut alors évoluer avec le la mati ère observ ée, qui est r éactive envers le paysage adaptatif qui va interagir avec lui, cel à permetant d'atteindre des horizons inexplor és et non exp érimentalement impl émentables pour le moment. Mon projet comporte plusieurs étapes. Construction de l'hybride. D évelopppement et mise en pratique d'algorithmes d'interaction. Mise en place de populations microbiennes simples qui peuvent être maintenu et dont le comportement peut être manipul é via la machine. Exp ériences pour d émontrer le principe.

ABSTRACT

No matter the scale of observation, biological systems ranging from molecules to cells, and multicellular organisms to communities, manifest collective behaviours. Many explanatory ideas have been put forward based on local perception. In each of these cases progress has been possible because the collective-level phenotype is obvious and observable to the naked eye, but also because of the objective function targeted in the understanding of these behaviours. Here I constructed a machine-ecosystem hybrid that involve an observation device, coupled to a light landscape generator in an automated loop that contain a learning process at every step based on data captured from the ecosystem being observed. In order to break the reality gap between modelisation and reality, taking into account the deep complexity of the studied system as the modelisation can then co evolve with the observed matter, that is reactive toward the adaptive landscape that interact with it, and then reach unexplored and not experimentally implementable fields of heuristic. My project involves several stages. Construction of the hybrid. Application and development interaction algorithms. Establishment of simple microbial populations that can be sustained and whose behaviour can be manipulated via the machine. Experiments to demonstrate proof of principle.

KEYWORDS

Cybernetics, Microbial ecosystems, Collective behavior, Applied geometric control, Complex systems, Open source electronics