ALEA Atelier logiciel libre pour la modélisation des plantes Christophe Pradal, Christophe Godin Modélisation des plantes Botanique: U2 U2 X I2 I1F1 U2 F1 XI1 X I10 F1 XF1 XI9 F1 I7 S1 U2 S1I8 I6 X F1 I15 U2 X I10 F1 Mesure: U2 U2 X F1 U1 I11 I10 X XI9X F1 F1 F1 U1 I12I13 I8 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 C − C R |Sdt = R − k C ||TdWdt = α C A92 Modélisation: U1 Simulation: f r f f 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 0 5 10 15 20 f 2 0 0 5 10 15 20 3 f f feuilles r racines f 0.2 0.1 0.1 0 0.3 f 0 0 5 10 4 15 0 10 20 5 30 6 C −C R |SdCdt = R − k C |TdWdt = α C r f r r r r r r AMAPmod - 1995 Extraction Models & tools 350 350 300 300 250 250 200 histogramme 200 loi 150 150 Plant Code Form ... Classes ... Decompos ... Topology ... Features ... Code ... /P1/U1 +U1 ... Observation Digitalization MTG 100 100 50 50 0 0 0 0 1 2 3 4 5 6 1 2 3 4 5 6 7 7 10110000101 00110011101 11101101011 ... 40034010 ... 4440132101133 2300141111 AML 2 0 1 3 ? AMAPmod - 1995 Analyse et modélisation de l'architecture des plantes – Développé par deux chercheurs en collaboration avec des biologistes. – 400 kl de C++ étendues par le langage «maison» AML Goulot d'étranglement – Demandes des biologistes en application – Formation – Maintenance – Nouveaux développements Choix Logiciel libre – Licence GPL – Des utilisateurs dans plus de 20 pays – 150 chercheurs formés, 8 formations – Architecture statique, sentiment de propriété => pas de co-développement FSPM - 1996 FSPM (Functional / Structural Plant Modelling) – Communauté scientifique international de modélisation des plantes (workshops, ~200 chercheurs) Modélisation de la croissance et du fonctionnement des plantes – Representation 3D de l'architecture des plantes – Modèles physiologiques et environementaux – Outils d'analyse et de simulation Domaines d'application – Botanique, foresterie, agronomie et écologie Un domaine pluridisciplinaire Visualisation Biophysique Ecophysiologie Analyse statistique Analyse spatiale Calcul scientifique Modélisation Génie logiciel Simulation ... Réseau PAIS - 2000 Plant Architecture Information System – Réseau européen et international Objectifs – Partage des bases de données – Définir un standard de representation des plantes – Diffuser modèles et outils logiciels – Formation Limites – Pas d'homogénéité dans la démarche logicielle – Pas de règles de diffusion ALEA - 2003 Atelier Logiciel pour la modélisation Ecophysiologique de l'Architecture des plantes – Utiliser, évaluer et construire des modèles experimentaux. Objectifs – Communauté autour d'un logiciel • Co-développement entre équipes de recherche • Echange d'experience et d'outils • Formation – Architecture à composants logiciels • Intégration des modèles existants (C, C++, Fortran) • Développement rapide de nouveaux modèles • Qualité logicielle pour diffusion et maintenance Partenaires – INRA, CIRAD, INRIA, LABRI. Logiciel Libre - Intérêts scientifiques Validation scientifique – Accès code source => Vérification des modèles, algos, outils. Collaboration scientifique – Les modèles publiés sont directement accessibles. Accessible et adaptable par tous – Code adapté par chacun en fonction de ses besoins. – Modèles compatibles et comparables. Pérennité du code – En cas d'arrêt du développement, quiconque peut reprendre un projet et continuer à le développer. Protection du droit d'auteur – Licence libre Logiciel Libre – Avantage pratique Synergie – Collaboration entre développeurs (souvent isolés) – Collaboration entre équipes pluridisciplinaires Economie d'échelle – Développement – Diffusion et Maintenance – Formation – Veille technologique Qualité – Rationalisation des choix – Règles communes Communauté libre ALEA Architectes – Développent le noyau principale du système – Conseil, formation et assistance auprès des modélisateurs Modélisateurs – Développent et intègrent leurs modules – Conseil, formation et assistance auprès des utilisateurs Utilisateurs – Définissent des scénarios – Mettent à disposiion des bases de données Communauté libre – Licence libre du noyau: LGPL – Critères de diffusions: • Copyright & license. • Qualité logicielle (GUI, tests, documentation) Logiciel Libre – ALEA Communauté libre – Développeurs, modélisateurs et utilisateurs – Règles de fonctionnement (Charte ALEA) Licence libre (LGPL) Animation de la communauté – Réunions régulières des architectes – 2 formations des modélisateurs – 3 formations des utilsateurs (France, Brésil, Thaïlande) Développement collaboratif – CVS, Forums – Site web (en construction) o rd e r 3 G U 1 ALEA 25 20 15 10 5 0 0 5 10 15 20 SEast 1800 U2 X I2 I1 F1 1991 1992 U2 X F1 I1 I10 X F1 I9 X I8 F1 U2 I7 S1 S1 I6 X F1 X F1 ALEA U2 U2 MAX n X F1 I15 I11 I10 X X I9 X F1 F1 F1 I8 I10 U1 1400 MEAN 1200 RATP 1000 800 600 400 200 0 8:00 U2 I13 I12 U1 U1 12:00 16:00 LOCAL TIME (h) U1 dul es U2 se y l a n A MIN 1600 Python, GUIs Sim ulat io Mo F1 X Mo dél isa tio PAR i (µm ol.m-2.s-1) U2 n 20:00 R ALEA: différents objets biologiques Python vu comme un Bus Logiciel Modules spécialisés Modules scientifiques Differents toolkit de GUI Ponts entre les languages Numeric SciPy XML Database GUI QT Python shell Boost, SWIG f2py C++ Classes, C Code Fortran Code math math Modules standard Python (http://root.cern.ch) ALEA – Description technique ✔ ✔ ✔ Langages: C, C++, Fortran et Python OS: Gnu/Linux, Windows Logiciels utilisés ✔ GUI: QT et PyQT ✔ Gestion de versions: CVS ✔ Documentation: Doxygen (C, C++), epydoc (Python) ✔ Tests unitaires: cppUnit, PyUnit ✔ Compilation: SCons ✔ Wrappers: Boost.Python, Swig et f2py Logiciel Libre – Tension liée au don Le don perçu comme une perte – L'utilisateur n'est plus captif. – Comment valoriser et financer le coût de développement? Le don comme un échange – Partage des coûts de développement des algos, de la formation et de la diffusion du logiciel. – Partage des connaissances • Scientifiques • Techniques (génie logiciel) • Bases de Données (plantes) ALEA – Bilan Logiciel Libre, un modèle adapté pour la recherche – Création d'une communauté libre française entre équipes initialement concurrentes. => Développement d’un outil de collaboration => Propriété partagée => Partage des connaissances entre équipes => Amélioration de la qualité - Co-développement possible Un bénéfice pas encore unanimement reconnu – Perte du contrôle total – Problème d’identité de l’auteur – Coût de la qualité – La transparence fait souvent peur – Valorisation par la publication Questions ouvertes Comment financer le développement logiciel ? – Double licence ? – Consortium ? – …? Comment valoriser l’activité de production logicielle ? – Investissement lourd – Faible reconnaissance des instances d’évaluation – Logiciel = production scientifique ? Un modèle pour le partage des données en biologie ?