Publications des agents du Cirad


OpenAleaLab: An open-source multi-paradigm - multi-language software framework for modeling morphogenesis

Pradal C., Coste J., Baty G., Ribes S., Boudon F., Godin C.. 2016. In : Book of abstracts poster: 2016 IEEE International Conference on Functional-Structural Plant Growth Modeling, Simulation, Visualization and Applications (FSPMA 2016). Qingdao : FSPMA, p. 80-80. IEEE International Conference on Functional-Structural Plant Growth Modeling, Simulation, Visualization and Applications (FSPMA 2016), 2016-11-07/2016-11-11, Qingdao (Chine).

Models are often developed in the context of one conceptual paradigm (that defines the way to think about a particular phenomenon, the main concepts, their relationships, etc.) and one programming language (with which the model will be expressed to be executed on a computer). Different paradigms have been used by different groups to model plant development such as L-systems, stochastic and branching processes, or agent-based approaches. Based on one paradigm, models are usually implemented using a specific computer language. The language can be a classical programming language (e.g. C++, Java, Python), or a more specific language, adapted to the underlying paradigm. For example, models using the L-system paradigm have been implemented as declarative languages, leading to different variant of the language: cpfg, L+C, XL, LPy. Languages used to implement models according to a particular paradigm may be either i) imperative using a script or a compiled language; ii) declarative and based on the definition of rewriting rules like in L-systems; or iii) visual to combine existing components in a scientific workflow using a visual programming interface (Galaxy, Visualea, XFrog). Recently, the need to develop increasingly complex and integrated models, often based on many sub-models, lead us to consider the possibility to assemble models expressed using different paradigms and written in different programming languages in a seamless integrated model. OpenAleaLab is an integrated software modeling environment that provides users with flexible and interactive tools to combine different modeling paradigms to support the computational investigation. It has been originally developed in the context of plant architecture and plant growth modeling. It is now used also to model organ development with cellular resolution in both plants and animals. The architecture of OpenAleaLab is an object-oriented, component-based and service-based architecture. Object-oriented components allow to define independent piece of functionalities that can be composed to form the application. Services expose the different functionalities of the system with well-defined contracts, and map these functionalities to concrete components. For instance, a visualisation service is implemented either by a PlantGL component and a VTK one. OpenAleaLab is designed to be easily extensible using a plug'in system in order to include new plant modeling paradigms in the future or to be customized for other scientific domains. Its use and flexibility will be demonstrated on a plant growth modeling application illustrating the use of several paradigms (workflows, L-systems, blackboards) and several programming languages (Python, VisuAlea, L-Py, R). OpenAleaLab can also be easily configured to adapt to specific application domains and ease the construction of Lab instances dedicated to particular modeling contexts. An illustration of this is given in a companion paper on the analysis of 3D cellular tissues, TissueLab. (Texte intégral)

Documents associés

Communication de congrès

Agents Cirad, auteurs de cette publication :