The aim of the plant architecture research community is to understand the
biological processes involved in the function and growth of plants with explicit
representation of their topology and geometry. To understand these systems,
which may be quite complex, researchers in botany, ecophysiology, forestry,
horticulture, applied mathematics and computer science share experimental data,
plant models and software tools. Research in this domain concerns several
different scales, such as plant cells, plant organs, entire plants and plant
To support this research, we are developing OpenAlea, an open source software
platform implemented in Python. OpenAlea is used for the integration and
comparison of diverse models and tools provided by the research community. We
use Python to glue together components implemented in various languages (e.g. C,
C++ and Fortran). Standard wrapping tools, such as Boost.Python, Swig and f2py,
are used to support the integration process.
Different components can use common data structures such as sequences, tree
graphs and multiscale tree graphs. To ease the communication between
components, a unique interface has been specified for each data structure. The
Zope component framework is used to define interfaces and adapters.
Three types of components are integrated into OpenAlea:
- analysis of plant architecture (e.g. AMAPmod),
- geometric representation and visualization of plants at different scales
- and simulation models of ecophysiological processes (e.g. RATP, Archimede,
Users can combine components from OpenAlea and other Python scientific libraries into
customised work flows according to their specific needs. Training courses on
Python and OpenAlea's modules are given in France and other countries (e.g. Thailand,
Brazil, etc.) or through an e-learning platform.
In this presentation, I will discuss:
- the plant architecture scientific domain.
- the OpenAlea architecture.
- the OpenAlea community of developers, modellers and users and how we work together.
- specific components for plant study.
- development tools and quality assurance.
- how Python is used to solve key problems.
Pierre Barbier de Reuille