EDNA

Fiche logiciel à valider
  • Création ou MAJ importante : 03/11/10
  • Correction mineure : 13/04/12
  • Rédacteur de la fiche : Jerome Kieffer - un des développeurs du logiciel - ESRF (ESRF)
  • Contributions importantes : Olof Svensson (ESRF)
  • Responsable thématique : Christelle Dantec (CRBM)
Mots-clés
Pour aller plus loin
Fiche en recherche de relecteurs
Cette fiche est en recherche de relecteurs. Si vous êtes intéressé(e)s, contactez-nous !

EDNA : environnement pour réaliser des programmes d'analyses de données en ligne

Ce logiciel est en cours d'évaluation par la communauté PLUME. Si vous utilisez ce logiciel en production dans notre communauté, merci de déposer un commentaire.
  • Site web
  • Système :
  • Téléchargement
  • Version évaluée :
  • Langue(s) de l'interface :
  • Licence : GPL, LGPL

    Le kernel EDNA est LGPLv3+ tout comme certaines applications.
    Certaines applications sont GPLv3+

  • Origine du développement : EMBL, ESRF, SOLEIL Synchrotron
Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : EDNA
Description
Fonctionnalités générales

EDNA est une plate-forme, un framework pour développer des applications massivement parallèles (multi-threadées) pour faire de l'analyse de données en ligne pour les synchrotrons (et autres). Chaque application EDNA est composée de plugins d'exécution (qui font des choses), de plugins de contrôle qui servent à chaîner (en parallèle ou en série) des plugins d'exécution et qui constituent donc la logique de l'application et enfin les lanceurs qui initialisent l'environnement de travail et lancent les plugins.

Lanceurs

EDNA dispose de trois types de lanceurs :

  • Ligne de commande tout naturellement, en donnant la structure de donnée en XML sur la ligne de commande
  • DeviceServeur Tango qui communique via CORBA avec des interfaces graphiques (par exemple)
  • Un lanceur parallèle qui permet de lancer des plugins en parallèle sur un grand nombre de données

Plugins d'exécution

EDNA dispose de près d'une centaine de plugins d'exécution qui, soit appellent un programme externe, soit utilisent une bibliothèque python (Numpy, Scipy, PIL...) pour traiter des données. Ils forment la boîte à outil scientifique de EDNA.

Plugins de contrôle

Ce sont des enchaînements d'autres plugins pour réaliser des tâches plus ou moins complexes.

Autres fonctionnalités

La robustesse de EDNA est en grande partie due à sa politique de tests très stricte des plugins qui sont mis en commun.
Ceci assure la non régression d'une part et la pérennité des application écrites avec EDNA.

Interopérabilité

EDNA est écrit en python. Le projet est testé quotidiennement sous linux avec C-Python et occasionnellement avec Jython. Il fonctionne également nativement sous MacOSX avec C-Python.
Le portage sous Windows est une Arlesiène: le noyau EDNA fonctionne sous windows mais en l'absence de demande, de développeurs et de logiciels scientifiques en ligne de commande pour cet environnement, la priorité pour ce portage est minimale.

Contexte d'utilisation dans mon laboratoire/service

Nous développons des applications de traitement de données en ligne pour le synchrotron ESRF en utilisant EDNA:

MXv1

Application permettant la caractérisation rapide de cristaux de protéines à partir de quelques clichés de diffraction X. Une stratégie d'acquisition des données est calculée en quelques secondes.

Diffraction Computed Tomography

Application de tomographie à partir d'un micro-faisceau X utilisant le diffraction des cristallites contenus dans le matériau. Elle nécessite une intégration azimutale et l'assemblage d'un grand nombre de données avant la reconstruction tomographique. L'approche multi-threadée de EDNA a permis de passer le temps de calcul de dizaines d'heures à quelques minutes.

BioSaxs

L'application de la diffraction X aux petits angles sur des protéines en solution est en cours de développement entre le Synchrotron Diamond (UK), l'EMBL de Hambourg (D) et l'ESRF (Eu).

Photographie numérique

Le plus gros reproche fait à EDNA c'est qu'il nécessite un très bon niveau tant en science pour comprendre les applications qu'en méthodes de programmation, ce qui limite le nombre de personnes qui peuvent développer avec cet outil. En choisissant un exemple non-scientifique (la dé-RAW-tisation de photos numériques) pour le tutoriel EDNA, nous espérons faciliter l'apprentissage de EDNA pour augmenter la communauté de développeurs autour de cette plate-forme.

Limitations, difficultés, fonctionnalités importantes non couvertes

EDNA apporte beaucoup d'importance aux méthodes de programmation, à la qualité du code (revue de code croisée), sa maintenabilité tout ceci prime toujours sur les performances brutes ou la vitesse de développement.

Quand j'ai commencé à travailler avec EDNA (avant de travailler pour EDNA), voici les défauts que je lui ai trouvé :

  • La modélisation de structures de données (UML) est obligatoire, sans elle rien n'est possible ce qui est frustrant.
  • Conventions de code très strictes, souvent empruntées au java (ce qui déstabilise le développeur python)
  • Structure des classes assez abstraites et grand nombre de niveau d'héritages (mais cela s'améliore ...)
  • Nécessité d'une revue de code pour toute modification du noyau, même pour une seule ligne.
  • Perte de temps lié à l'écriture des tests (pourtant on y gagne en maintenabilité).
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

aucune à ce jour.

Plates-formes

Unix-like

Logiciels connexes
  • PyMca

  • MxCube
  • BlissFramework
  • Tango
  • Mosflm
  • XDS
  • Best
  • CCP4
  • ...
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement
  • Comité de direction qui gouverne les développements liés au noyau principalement.
  • Gestion de projet pour chaque application.
  • Serveur Web avec Wiki, SVN, Bugzilla.
  • Tests et création de paquets automatiques toutes les nuits.
  • Documentation de l'API en ligne, tutoriel

Une dizaine de développeurs actifs répartis entre l'ESRF, Diamond, CCP4 et Desy.

Eléments de pérennité

Deux développeurs à temps plein en France (permanents).
Les lignes de cristallographie des protéines de l'ESRF dépendent d'EDNA pour leur analyse de données: le projet doit être maintenu.

Références d'utilisateurs institutionnels

ESRF, Diamond, CCP4.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

Une interface graphique pour EDNA, basée sur Passerelle est en développement.

Contributions

Commentaires

Formation EDNA

La prochain formation pour les développeurs souhaitant faire des applications parallèles avec EDNA aura lieu à l'ESRF (Grenoble) les 15 et 16 novembre 2010.

Utilisé dans 3 sites

Ce logiciel est utilisé sur au moins 3 sites mais nous n'avons pas trouvé de relecteur parlant français pour relire cette fiche : elle est donc présentée comme logiciel à valider.