OpenAlea OpenAlea: news & perspectives 2011 C. Pradal, C. Fournier, C. Godin OpenAlea - Alinea Plateforme/services pour la diffusion et l’interopérabilité des modèles Bibliothèque de modèles EA sur le thème plante virtuelle (reconstruction – simulation 3D, microclimat, fonctionnement) Communauté FSPM How big is OpenAlea ? OpenAlea, Vplants, Alinea - 957 K Source Lines of Code - 270 Person-Years, 36 000 000 $ (COCOMO) Credits: David Wheelers SLOCcont How big is OpenAlea ? (cont.) RoadMap 2011 Interoperability with other international platforms – Record, GroIMP, Lstudio, Capsis, … – Phenotyping High Performance Computing – Distributed computing (SPMD, GPGPU, MPSD) Benchmark methodology and open data – Comparison of models – Open license for databases – Reproducibility of experiments Web technology - Upload, download dataflow/data on a web server - Package Manager as a catalog of web services Diffusion and software quality – Training, documentation, continuous integration, Technology - Deployment Build (SconsX) New tools : f2py, cython Installation - python setup.py [develop | install | bdist_egg] - build, install (header, lib, bin, share) - python multisetup.py ... Packaging - eggs, deb (launchpad), NSIS, pkg Package Builder alea_create_package --name MyPkg --languages cpp fortran Horizon OpenAlea 2.0 Environnement Python scientific OpenAlea Web Alinea : du dépot de modèle… Light Microclimate M Chelle, D Combes Plant/Pathogens Morphogenesis/Plasticity C Robert,C Fournier,S Saint Jean , M Chelle Verdenal, Louarn, Fournier, Andrieu Plant functioning (N,C02) Bertheloot,Andrieu, Louarn,Luquet,Soullie Louarn, Lebon, Prieto 3D measurement/Phenotyping Combes, Andrieu, Louarn, Dornbusch,Fournier Vers des composants inter-opérables Plant Topology & Geometry Fluxes and Plant Functionning Development Environnement / Phylloclimat Paquets/projets actifs 2011 Modèles Méthodes génériques (Publication) RATP M2A3PC Echap Leaf Reflectance MappleT Topvine physiology Phenomena PlantScan3D Rose MTG Lpy Modular FSPM Tendances Liens plateforme Phénotypage Support projet élargi (Rizopolis, ITN cyberplants) Communauté 1ère Journées OpenAlea (14-15 juin) 60 participants 18 topos 2 Tables rondes Labellisation « plateforme département EA » Gouvernance Réorganisation développeur Contribution plateforme (CATI ?) Recentrement Modélisateur- développeur pour Alinea Création Scientific Board Goals - Software Review as an editorial committee - Animation & Training & Workshop - Strategy & Management Board - C. Godin & C. Pradal (INRIA/CIRAD, EPI VirtualPlants, AGAP, Mpt) - B. Andrieu (INRA, EGC, Paris/Grignon) - M. Chelle (INRA, EGC, Paris/Grignon) - B. de Solan (Arvalis, EMMAH, Avignon) - S. Dufour-Kowalski (INRA EFPA, AMAP, Mpt) - C. Fournier (INRA, LEPSE, Mpt) - G. Louarn (INRA, PPF, Lusignan) - M. Saudreau (INRA, PIAF, Clermont-Ferrand) - J.C. Soulie (CIRAD, AGAP, Mpt) - L. Pagès (INRA, PSH, Avignon) Plant modeling Different scales U2 U2 X I2 I1F1 U2 Data acquisition XF1 I1 X I10 F1 I9XF1 X F1 S1 I7 U2 S1I8 I6 U2 U2 X F1 U1 I11 I10 X X I9 F1 X F1 F1 I8 X F1 U2 I15 X I10 F1 U1I12I13 U2 U1 U1 U2 U2 + F1 U2 U2 + A92 F1 + + + F1 F1 A92 A92 F1 A92 + A92 + S1 + A92 + U1 + < + S1 A92 < + < + A92 < + F1 + + U2 A92 + A92 + F1 F1 + < F1 + A92 + F1 A92 + U2+ < + < U2 + A91 < A91 U1 + U1 + + U2 + < A91 dC f Cr − C f = − kf C f dt R dW f = α fCf dt A92 Modeling U1 Simulation 0.4 0.2 0.2 0.1 0.1 0.3 0.2 0 0 5 0 0 0 5 1 10 0.3 0.2 0.2 0.1 0.1 0.2 leaves r roots 0.1 0.1 0 0.3 f 0 0 5 10 15 20 2 0 0 5 10 15 20 3 0 0 5 10 4 15 0 10 5 20 30 6 dCr C f − Cr = − kr Cr dt R dWr = α r Cr dt A diversity of modeling formalisms m F D P C l k i j B g h e d f c E b A a Geometrical models Fractals Graphs p1 Transport networks A(age) :age < T ODEs and PDEs Statistical models --> I(age)[A(age+1)]A(age) p2 1-p1 2 1 1-p2 A(age) :age == T --> F P(branche) = Dynamical systems with dynamical structure (e.g. L-systems) 1 − p2 (1 − p1 ) + (1 − p2 ) Stochastic processes Co-evolution with FSPM community AMAPmod (1995): Plant analysis - OpenSource but static architecture. - No co-development 1st FSPM workshop (1996) - Emergence of FSPM community - Need to share models & tools PAIS Network (2000) - 1st initiative to share database, models, software & training - No common strategy for software development Réseau Ecophysiologique de l’arbre (2003) - Definition of the strategy for software development - Birth of the OpenAlea community FSPM 2004 - Presentation of the 1st release Context Multi-disciplinary domain – It involves a variety of disciplines and expertise. Low Reusability – Large models are built from smaller parts – Reusing existing software is complex • Different OS, different programming languages • No common standards or data-structures Building models is expensive – Development – Validation – Distribution, Documentation, Training OpenAlea Goals OpenAlea A platform for plant modeling at different scales. Sharing knowledge Reuse software & tools Share development between various teams Share databases & training effort Common software platform Integration of existing models & tools Rapid development of new models Enhance accessibility (GUI) Quality rules OpenAlea design principles Language centric – Common modeling language – Glue language – Dynamic composition – High-level dataflow approach Visual programming – Graphical model representation – Automatic GUI generation Shared deployment tools – Build, packaging, distribution, installation, upgrade Multi-platform – Linux, Windows, Mac OS X 3D Vie w er St a t is t ic ph ra G Component architecture o s iiooll o pphhyys E Eccoo G G MT ggyy Bi o ph LLii ggh htt ODE ys i c Ne M e ew tho d ur Yo h o d t Me Si m u la ti o n OpenAlea Architecture GUI Existing C, C++, Fortran Models Visualea Deployment Tools Python Library Compone nt framewor k Numeric PyQt 4 Component SciPy Package Manager XML Dataflow Database GUI GUI Python JEmbed Boost, SWIG f2py Java Classes C++ Classes, C Code Fortran Code shell math Python as an integration platform Scientific modules NumPy SciPy Very rich set of specialized generic modules XML Several GUI toolkits R Gateways to other frameworks GUI PyQt Jeep Boost, SWIG f2py Java Classes C++ Classes, C Code Fortran Code shell math math Very rich set of Python standard modules Visual Programming Dataflow Package Manager Compone nt Widgets Python Interprete Plant architecture and ecophysiology Plant architecture analysis - VPlants (Godin, Guedon et al) Biophysical models Buissiere et al., 07 Fournier et al., 07 Pradal et al., 08 3D reconstruction, simulation of development, and epidemics Wheat, Maize, Rice, Vine Apple, Almond, Peach VPlants Multiscale Topology (MTG) PlantGL (Boudon, Pradal et al) (Godin, Pradal et al) Axes + + + + + + + + Growth unit + < + + < + + < + < + < Internode < + + + + < + + + < + + < + + + + + Stat (Guédon, Durand et al) + + < < < L M + < S + F Zone s L 20 Number of GUs < 15 histogram 10 NB(12, 1.0, 0.1) 5 0 0 10 20 30 40 50 60 Numbe r of inte rnodes 70 80 LPy (Boudon et al) Alinea Microclimate M Chelle, D Combes,K Ma Plant/Pathogens Morphogenesis C Robert,C Fournier,S Saint Jean , M Chelle Verdenal, Louarn, Fournier, Andrieu 3D reconstruction Plant functionning Photosynthesis Lebon, Louarn, Prieto Transpiration Fournier, Combes, Andrieu, Louarn, Dornbusch, Connection with other platforms GroIMP, Kniemeyer et. LStudio, Prusinkiewicz et. al. al., CAPSIS, Coligny & Dufour-Kowalski LPy, Boudon et. al. Connexion OpenAlea - DTK E. Moscardi et al. J.Wintz and Asclepios – INRIA OpenAlea - DTK OpenAlea Community 3 types of members – Computer scientists (Kernel development) – Modelers (Module development and integration) – Users (Define scenarii, provide plant databases) Some contributors – France: INRIA Virtual Plants/UMR DAP, UMR Lepse, UMR AIVA (Montpellier), UMR PSH, UMR EMMAH (Avignon), UMR EGC (Paris-Grignon), UMR PIAF (Clermont-Ferrand), UMR RDP (ENS Lyon), EPI Anubis,UMR Labri (Bordeaux), EPI INRIA Mistis (Grenoble), UMR SAGAH (Angers), … – International: Calgary U. (Canada), Gottingen U. (Germany), Wageningen U. (Netherlands), California U. (USA), CPIB (UK) – Industrial: Arvalis OpenSource community OpenSource license – Kernel : CeCILL-C – Visualea: CeCILL – Components (Open or proprietary license) Animation of the community – « Coding sprint » for developers – « Modeling sprint » for biologists & developers – « Hackathon » Collabartive development – Shared website (gforge) – Documentation & code Conclusions OpenAlea is a collaborative project – http://openalea.gforge.inria.fr Reusable components – Itegration of heterogeneous models – Deployment tools (Build, Download, Share) Flexible and extendable – Multi-domain (plant architecture, meristem, …) Usable by biologists – Visual Programming – Automatic GUI generation Component / Node Simple Python function – Multiples I/O (ports) – Typed interface – Documentation Port • name : ‘nb_plants’ • Interface : IInt Technology – Log & Script Logging - One logger / module - critical, error, warning, info, debug Dataflow to Script OpenAlea - Dataflow Dataflow {X, Y, f} Orchestration Multiple algorithms for graph evaluation Control flow Dataflow variable : X Map, for, while Scheduling Exemple : Euler scheme Sensitivity Analysis in Parallel - map vs pmap (SPMD) - 180 s vs 100 s => speedup = 1.8 OpenAlea - Dataflow Problem Processes may have different time scale Scheduling - define active nodes - evaluate until one active node stop Technology - Quality Documentation (sphinx) - Dataflow command (exemple) .. dataflow:: openalea.pylab.test tutorial_plot Test (nosetests) - Unit test, dataflow Continuous integration (builbot) - openalea, vplants, alinea http://vp-continuous.cirad.fr - build, install, test, package, … after each commit