métier
Malgré la situation difficile et pour le moment incertaine de PLUME, la formation permanente de la DR5 du CNRS, DevLOG, la DSI et des laboratoires du CNRS, avec le soutien par l'INRA, VetAgro-Sup et Inria, proposent une nouvelle édition de la formation ENVOL sur le thème "Méthodes de test et validation des logiciels" qui avait encore été initiée sous l'égide de PLUME.
Cette quatrième édition est la suite de celles qui ont été organisées :
- en 2008 portant sur la valorisation de ces développements,
- en 2010 amenant une vision plus concrète des outils et pratiques de développement et
- dernièrement en 2012/2013 sur les aspects coopératifs du développement pour le logiciel libre.
Cette formation ENVOL 2014 aura lieu du 18 au 21 novembre 2014 à la Londe les Maures dans le Var.
Toutes les informations pratiques, ainsi que le contenu du programme sont en ligne.
L'inscription se fait sur formulaire électronique et est ouverte à tous les agents CNRS et INRA ainsi que ceux d'autres organismes qui s'intéressent aux spécificités de l'environnement enseignement supérieur et recherche (ESR).
Les chercheurs passent un temps considérable à réaliser des figures pour leurs communications scientifiques (présentations orales, publications dans des revues scientifiques, ...). Pour réaliser cette tâche, ils utilisent le plus souvent des logiciels conçus pour des graphistes qui ne sont pas adaptés à la création de figures "scientifiques".
ScientiFig, au contraire, est dédié spécifiquement à la production de figures formatées pour la recherche. C'est un plugin de FIJI/ImageJ et/ou un standalone, les trois utilisations sont possibles. Il permet d'assembler de manière cohérente des panneaux d'images de même tailles ou de tailles différentes, de leur associer une barre d'échelle et des annotations dont la position est préservée même lorsque l'utilisateur change la taille de la figure. ScientiFig peut exporter les figures générées au format png avec un fond transparent pour une meilleure intégration dans les documents bureautique ou au format vectoriel (pour être finalisé dans un éditeur d'images vectorielles). ScientiFig permet enfin de formater des figures pour différents journaux (il est aussi possible de créer, avec l'éditeur intégré, un nouveau style si le journal qui vous intéresse est absent), il suggère une taille de figure compatible avec le journal, le remplacement des polices non conformes, ...
On peut citer à titre de comparaison ces logiciels alternatifs :
Le système GramLab étend Unitex pour offrir aux équipes des outils facilitant le travail collaboratif (partage de ressources, suivi de versions, etc.) dans les traitements linguistiques. Ces outils reposent sur des technologies de type « automates à états finis » et incorporent des ressources linguistiques à large couverture, disponibles dans de nombreuses langues.
Les packages qui composent Gramlab sont disponibles sur la forge Google :
- GramLab IDE Ling : http://code.google.com/p/gramlab-ideling/, avec sa documentation https://sites.google.com/site/gramlabdocumentation...
- GramLab Corpus Manager : http://code.google.com/p/gramlab-corpus-manager/, avec sa documentation https://sites.google.com/site/gramlabdocumentation...
- GramLab Generic Annotator https://code.google.com/p/gramlab-unitex-cpp-uima-...
Les sources d'Unitex sont disponibles sur le site à l'Université de Marne-la-Vallée : http://igm.univ-mlv.fr/~unitex/, voir aussi la fiche PLUME sur Unitex.
Outils et fonctionnalités
- Intégrabilité dans une chaîne UIMA (Unstructured Information Management Architecture)
- Gestion de versions des ressources linguistiques
- Outils de maintenance des grammaires
- Outils de partage de ressources linguistiques
- Gestion de projets
- Auto-graph : création automatique de graphes de grammaires
- Plate-forme multilingue
InterProScan est un environnement logiciel qui permet d'identifier dans un jeu de séquences des signatures protéiques d'intérêt en scannant des banques de motifs et signatures de référence et en utilisant des algorithmes détectant des biais de composition (SEG, TMHMM, Signal-P).
En utilisant plusieurs méthodes de reconnaissance, il effectue des recherches de signatures protéiques dans 11 bases de données de motifs ou domaines protéiques telles que PROSITE, PRINTS, Pfam, ProDom, SMART ou TIGRFAMMs. Chacune de ces bases de références utilisent des méthodes différentes d'identification (HMM, profils, etc.) et de manière plus ou moins automatique.
Usage
Un site WEB est mis à la disposition de la communauté par l'EBI, mais cette fiche se penchera sur le retour d'expérience lié au déploiement d'un environnement sur une plate-forme, permettant de traiter de larges jeux de données (ex : 100 000 séquences).
InterProScan s'utilise aussi via un script frontal qui se charge de lancer les différentes comparaisons. Ces traitements peuvent s’exécuter sur un cluster. La parallélisation des traitements s'effectuera alors en deux étapes
- tout d'abord par le découpage en sous jeu de données ("chunk") des séquences dont la taille sera définie par l'administrateur,
- et par l’exécution en parallèle des différentes recherches (une quinzaine dont par exemple hmmer sur la banque tigrfams) pour chaque sous jeu de données.
InterProScan est capable de traiter des séquences nucléiques et protéiques au format FASTA (multiple). Pour les séquences nucléiques, une traduction selon les 6 phases de lecture est automatiquement effectuée.
Exemple de ligne de commande
iprscan -cli -i mydataset.fasta -email myemail@mydomain -seqtype n -iprlookup -goterms -o mydataset.out -verbose
Fichiers résultats
Interproscan génère des fichiers de sorties pour chaque traitement sur les différents chunks. Un post traitement permet de filtrer et corriger certains hits. Au final, un fichier merged.raw est généré pour chaque chunk. Enfin, Interproscan concatène l'ensemble de ces résultats en un seul fichier. Il existe un fichier résultat par comparaison lancée, ainsi qu'un fichier de synthèse. Un jeu de test permet aussi de vérifier que l'outil fonctionne correctement en local.
Le fichier RAW peut etre converti en divers formats (xml|ebixml|raw|html|txt|gff3) via le script converter.pl fournit dans la distribution.
-
Connexion aux environnements de calcul de type SGE 6.x, LSF et PBS.
-
Utilisation de la suite BioMaj pour mettre à jour automatiquement les banques de données associées.
-
Le site de l'EBI propose des accès Web Services (SOAP & REST).
InterProScan est principalement utilisé pour des traitements automatiques sur de gros volumes de séquences d'intérêt.
Les résultats donnent une information factuelle (présence/absence de domaines/sites) permettant l'annotation de protéomes. Le couplage avec la GeneOntologie ainsi que la structuration en arbre des domaines/familles InterPro permet de générer des annotation fonctionnelles synthétiques.
-
L'installation nécessite de disposer d'un environnement de type plate-forme.
-
La mise à jour des banques implique également une indexation à chaque miuse à jour
-
La version 5 devrait lever certains verrous en rendant l'application plus modulaire et intégrable à des pipelines et traitement annexes.
KiCad est un logiciel de conception CAO pour circuits imprimés (PCB) qui intègre :
- gestionnaire de projet ;
- saisie schématique et création de composants ;
- placement-routage (layout) jusqu'à 16 couches et création d'empreintes ;
- visionneur-éditeur de fichiers gerber ;
- calculatrice spéciale.
Cet article utilise des termes de jargon professionnel. Pour une introduction au sujet, lire par exemple ceci au sujet de la conception de circuits intégrés.
Gestionnaire de projet
Le gestionnaire de projet (GP) donne une vision générale du projet. Il montre l'arborescence du projet (dossiers/fichiers) et permet de naviguer au sein de cette arborescence. Le GP qui est également responsable de la gestion des fichiers grâce aux fonctions classiques ouvrir/renommer/effacer et aussi une fonction d'archivage (fichier zip). Enfin, il donne accès aux différents composants de la suite cités ci-dessous.
Saisie de schématique avec Eeschema
La partie "saisie de schématique" du logiciel offre plusieurs fonctionnalités :
- saisie hiérarchique ;
- bus ;
- numérotation des composants automatique et hiérarchique ;
- génération de la liste des composants (BOM, Bill Of Materials) en prenant en compte les champs ajoutés par l'utilisateur aux composants ;
- labels locaux, hiérarchiques ou globaux ;
- importation d'images bitmap.
La génération de la netlist dans plusieurs formats (natif, orcadPCB2, cadStar et Spice) se fait directement depuis Eeschema. Le résultat d'une saisie schématique est plutôt propre et l'impression se fait aisément puisque le paramétrage de la feuille impose le choix d'un format de papier et inclut en conséquence le cartouche.
Routage avec Pcbnew
Routeur manuel qui offre de nombreuses options aisément utilisables :
- Vérificateur de règles de conception (DRC, design rule check) en temps réel : lorsque l'utilisateur trace une piste, le logiciel regarde en temps réel si cette dernière est cohérente avec les règles préalablement définies (en particulier largeur de pistes et distances aux autre éléments).
- Affichage sélectif des lignes de connexion (ratsnest, pour une définition en anglais, voir ici) : on peut choisir le niveau de ratsnest que l'on souhaite afficher. Il est donc possible de les cacher, les afficher, les afficher pour un ou plusieurs composants. Il est aussi possible de n'afficher que le ratsnest de la piste en cours de traçage.
- Choix du niveau de détails affichés : plan en mode contour ou plein, piste en mode contour ou plein, via en mode contour ou plein, pads en mode contour ou plein. Toutes ces options sont indépendantes les unes des autres.
- routage automatique : peut se faire depuis KiCad directement (interne) ou depuis un outil externe à KiCad, ce dernier générant alors un fichier compatible avec Spectra.
- Tous les fichiers produits et utilisés par KiCad sont des fichiers ASCII, la documentation fournit la spécification détaillée des différents formats.
- Génération de netlist dans plusieurs formats (natif, orcadPCB2, cadStar et Spice).
L'auteur (au laboratoire Subatech) utilise ce logiciel pour la conception de toutes ses cartes. Jusqu'à présent, il a conçu 3 cartes 4 couches :
- une carte d'alimentation pour un ASIC ;
- une carte numérique ;
- une carte d'interface vide/Xénon liquide avec via (connections) non débouchant.
Les cartes ont été produites et testées avec succès.
Il a également conçu une carte analogique 6 couches, produite, reçue, câblée et testée avec succès.
Au CINaM, ont été réalisé à peu prés 6 ou 7 circuits imprimés dans le domaine professionnel. Il s'agit de petites carte de quelques centimètres carrés avec peu de composants. Le but principal, dans chacun des cas, étant de réaliser un circuit imprimé qui fasse l'interface entre des appareils de mesure (via des prises BNC) et la prise de contact (au moyen de pointes de touches directement soudé sur le CI) sur des échantillons de nos chercheurs afin d'en faire les caractérisations électriques.
Dans le domaine personnel, un des relecteurs a réalisé quelques (environ 4 ou 5) petites cartes également telles que : interface série, carte d'alimentation simple, capteurs divers, ...
Pas de routage de lignes différentielles.
Discrétisation de systèmes d'équations aux dérivées partielles en 1D, 2D et 3D. Méthode d'éléments finis mixtes (Nédélec et Raviart-Thomas) et d'ordre élevé. Définition du problème dans un fichier de données (ASCII) dont la syntaxe est proche de l'écriture mathématique de la formulation faible correspondante.
Format de fichier de maillage: .msh (format utilisé par le mailleur gmsh)
Format de fichiers de sortie: .pre .res .pos (format .pos utilisé pour l'exploitation avec gmsh)
Interfaçage très simple avec Gmsh pour la génération du maillage et pour l'exploitation des résultats.
J'ai utilisé GetDP très fréquemment durant mes 3 années de thèse au Laboratoire Ampère (UMR5005) pour la résolution de problèmes d'électromagnétisme dans le domaine fréquentiel. Le logiciel offre une grande liberté pour définir les formulations faibles. J'utilise actuellement GetDP occasionnellement pour la résolution de problèmes spécifiques et comme référence de calcul par la méthode des éléments finis.
GetDP est très bien documenté et bénéficie d'une communauté active et très réactive par l'intermédiaire d'une "mailing list" des utilisateurs et développeurs.
La prise en main demande un investissement important.
Ce logiciel est un patch développé au sein du logiciel Sage. Le but est d'implanter les bases des polynômes multivariés décrites en particulier par Lascoux et Schützenberger ainsi que les opérateurs de différences divisées. Les polynômes sont vus comme des sommes formelles de vecteurs ce qui permet d'appliquer de nombreux algorithmes combinatoires.
A l'heure actuelle, voici les bases disponibles :
- monômes,
- polynômes de Schubert,
- polynômes de Grothendieck,
- polynômes Clés,
- polynômes de Macdonald non symétriques.
Les polynômes de Schubert et les polynômes de Grothendieck existent aussi sous forme de polynômes en deux ensembles de variables.
-
Ce module Sage permet de calculer les invariants secondaires de l'anneau des invariants d'un groupe de permutations. Ces invariants secondaires sont associés aux invariants primaires formés par les polynômes symétriques.
-
Ces deux familles de polynômes invariants engendrent l'anneau des invariants en tant qu'algèbre et donc caractérisent complètement la structure algébrique.
-
Ce module est disponible sous la forme d'un patch téléchargeable dans la suite de patch Sage-Combinat.
-
Exemple avec un grand groupe :
sage: G = TransitiveGroup(14,61)
sage: G.cardinality()
50803200
sage: factorial(14)/G.cardinality()
1716
sage: I = InvariantRingPermutationGroup(G, QQ)
sage: I.secondary_invariants_series()
z^48 + z^47 + 2z^46 + 2z^45 + 4z^44 + 5z^43 + 8z^42 + 9z^41 + 14z^40 + 16z^39 + 22z^38 + 25z^37 + 33z^36 + 36z^35 + 45z^34 + 48z^33 + 58z^32 + 61z^31 + 70z^30 + 71z^29 + 80z^28 + 79z^27 + 85z^26 + 82z^25 + 87z^24 + 81z^23 + 83z^22 + 75z^21 + 75z^20 + 66z^19 + 64z^18 + 54z^17 + 52z^16 + 42z^15 + 39z^14 + 30z^13 + 28z^12 + 20z^11 + 18z^10 + 12z^9 + 11z^8 + 7z^7 + 6z^6 + 3z^5 + 3*z^4 + z^3 + z^2 + 1sage: I.secondary_invariants(verbose=True)
Initialiation of secondary of degree 0
------
Secondary of degree 1 :
We must search 0 secondaries invariants
------
Secondary of degree 2 :
We must search 1 secondaries invariants
Research of product of secondaries of degree smaller
Research now to complete with new irreducible secondaries
New irreducible [2]
------
Secondary of degree 3 :
We must search 1 secondaries invariants
Research of product of secondaries of degree smaller
Research now to complete with new irreducible secondaries
New irreducible [3]
------
Secondary of degree 4 :
We must search 3 secondaries invariants
Research of product of secondaries of degree smaller
Add product [2, 2]
Research now to complete with new irreducible secondaries
New irreducible [4]
(3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is not a good secondary invariants
New irreducible [5]
------
Secondary of degree 5 :
We must search 3 secondaries invariants
Research of product of secondaries of degree smaller
Add product [2, 3]
Research now to complete with new irreducible secondaries
New irreducible [6]
(4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is not a good secondary invariants
New irreducible [7]
------
Secondary of degree 6 :
We must search 6 secondaries invariants
Research of product of secondaries of degree smaller
Add product [2, 4]
Add product [2, 5]
Add product [3, 3]
Register new relation : [2, 2, 2]
Research now to complete with new irreducible secondaries
New irreducible [8]
(5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is not a good secondary invariants
New irreducible [9]
(4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is not a good secondary invariants
(4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is not a good secondary invariants
(4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is not a good secondary invariants
(4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0) is not a good secondary invariants
New irreducible [10]
------
( ... FICHIER DE LOG COUPÉ )
------
Secondary of degree 48 :
We must search 1 secondaries invariants
Correction by adding the space spanned by secondaries of degree 34
Correction by adding the space spanned by secondaries of degree 20
Correction by adding the space spanned by secondaries of degree 6
Research of product of secondaries of degree smaller
Add product [3, 28, 28, 28]
...
sage: for i in range(49): print i," : ", I.irreducible_secondary_invariants_of_degree(i)
....:
0 : [[(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
1 : []
2 : [[(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
3 : [[(2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
4 : [[(3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
5 : [[(4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
6 : [[(5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)],
[(3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
7 : [[(6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)],
[(4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
8 : [[(7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)],
[(5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
9 : [[(7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
10 : [[(7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
11 : [[(7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
12 : [[(7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
13 : [[(12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
14 : [[(13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)], [(12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)],
[(11, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
15 : [[(13, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]]
Destiné principalement aux universités et grandes écoles, l'Outil de Référencement et d'Indexation pour un réseau de portails OAI-PMH ORI-OAI vise la mise en place d'un système ouvert, en logiciel libre, permettant :
- de gérer et de publier tous les documents numériques produits par les établissements universitaires,
- de les partager avec d'autres établissements,
- de les valoriser par une indexation de qualité,
- de les rendre accessibles, à distance et selon les droits définis, dans des interfaces ergonomiques.
La mission du projet ORI-OAI est aussi le développement de communautés OAI-PMH : il propose une implémentation de référence du protocole OAI-PMH ainsi que les outils nécessaires à la mise en place de ces communautés et à la bonne intégration aux communautés existantes.
GesCommLab propose à travers une interface web de gérer les produits disponibles à l'achat, passer et centraliser des commandes, et afficher différentes statistiques sur les commandes passées.
Pour cela, le logiciel offre différentes vues :
- produits : chaque utilisateur peut commander les produits désirés. Chaque produit est caractérisé par un nom, un type, une description, un fournisseur, une référence et un prix unitaire. Si le produit n'existe pas, chaque utilisateur a la possibilité de le créer et ainsi alimenter la base de données.
- commandes : les commandes y sont classées sous deux catégories, en attente de commande et en attente de livraison. Les utilisateurs peuvent donc y renseigner les numéros de bons de commande et les références de livraison. Les dates correspondantes sont alors enregistrées également.
- historique : l'historique des commandes livrées, avec des outils de recherche dédiés.
- statistiques : des statistiques y sont présentées et classées par mois, avec génération de graphiques.
Le logiciel est développé en PHP+Javascript (JQuery AJAX) et requiert une base de données MySQL.