UNIX-like
myProMS est un outil multi-utilisateur (serveur web et base de données) dédié à la gestion, au traitement et au partage des données d'identifications protéiques issues de la spectrométrie de masse. Il accepte les résultats des moteurs de recherche Mascot (avec lequel il communique directement) et Proteome Discoverer.
Les données importées sont organisées en projet dont l'accès est dépendant des droits de chaque utilisateur. Les données d'identification peuvent être validées manuellement ou automatiquement selon différents critères. Une fois validées, les données deviennent accessibles aux différents collaborateurs du projet qui peuvent les analyser pour en extraire des informations biologiques pertinentes. Des fonctionnalités telles que la comparaison (de groupes) d'échantillons et l'enrichissement d'annotations sont proposées pour aider les utilisateurs dans l'interprétation des résultats.
X!TandemPipeline est un logiciel libre qui propose une interface graphique pour visualiser et manipuler des résultats d'identifications de protéines par spectrométrie de masse (MS/MS).
Les principales fonctionnalités sont :
- Identification de protéines avec le logiciel X!Tandem
- Chargement de résultats d'identification au format Mascot (.dat) ou X!Tandem
- Application de filtres statistiques sur les peptides ou les protéines
- Calcul de taux de faux positifs (FDR)
- Filtrage de la redondance, regroupement des protéines par fonction
- Mode "Phopshoprotéomique" pour traiter efficacement les peptides phosphorylés
- Interface graphique pour visualiser, filtrer, éditer les résultats
- Export des données au format Open Document (compatible MS Office 2010 ou LibreOffice)
- Support de la quantification avec l'export au format MassChroQml (MassChroQ)
- Facile à installer sur tous les systèmes
- Support via la liste "pappso-tools [at] listes [dot] inra [dot] fr"
Serial Cloner est un logiciel d'analyse et de visualisation de séquences d'ADN.
Il permet d’une part d’annoter des séquences et de les analyser :
- analyse : la fenêtre de séquence permet de rechercher des séquences de nucléotides, ou d'acides aminés, des ORF ou des sites de restriction. Il est aussi possible d'analyser la composition en nucléotides ou le Tm d'un fragment ;
- alignements : localement ou par la fenêtre d'accès internet sur le site BLAST2seq NCBI server ;
- annotations : l’ajout peut se faire manuellement ou bien automatiquement en utilisant une base de données de séquences enregistrées ou à partir de Genebank. La base de données peut être modifiée ou complétée par l’utilisateur. Les annotations sont visibles dans la fenêtre de visualisation de la séquence ADN mais aussi sur la carte graphique ;
- traduction : elle peut se faire directement dans la fenêtre de visualisation (permettant par exemple de sélectionner un fragment d’ADN à traduire et de calculer la masse moléculaire de la protéine correspondante ou bien au contraire de sélectionner le fragment d'ADN correspondant à une partie de la protéine seulement). Elle est aussi visible dans la carte de séquence où il est possible d’afficher les 3 phases de traduction, les codons mais aussi les sites de restriction ;
- visualisation graphique : elle permet une manipulation très intuitive de la séquence. Les fragments peuvent être sélectionnés, extraits ou digérés en vue d’une ligation par exemple
D’autre part, Serial Cloner permet de réaliser virtuellement des sous clonages par enzymes de restriction ou par recombinaison (préparation d’adaptateurs, d’oligonucléotides, PCR puis digestion et ligation ou bien recombinaison) ou de préparer la synthèse de shRNA.
Pour les adaptateurs et les shRNA, il est par exemple possible d'afficher directement les oligonucléotides à commander pour obtenir la construction désirée.
L’interface graphique de Serial Cloner combinée avec l'aide sous forme de bulles permet une prise en main rapide et intuitive.
Serial Cloner est utilisé quotidiennement dans notre laboratoire pour l’analyse de séquences et la préparation de sous clonages. La compatibilité des fichiers avec d’autres logiciels courants du même type permet également d’échanger des données de façon transparente avec d’autres utilisateurs.
Utilisable sur plusieurs plate-formes et gratuit, il peut facilement être installé sur tous les postes de travail. La prise en main est simple et intuitive grâce à l’interface graphique et à l’aide sous forme de bulles.
FreeRDP est un fork du projet rdesktop, qui est un client libre pour accéder à un environnement applicatif Windows. FreeRDP fournit une implémentation libre du protocole RDP.
A ce jour, le projet se décompose en divers composants :
- xfreerdp est un client RDP pour Linux, permettant d’accéder des à sessions sous Windows 2000, 2003 ou 2008 incluant RemoteFX. xfreerdp peut ainsi se connecter vers de multiple serveurs, où chaque fenêtre est une session différente.
- wfreerdp est un client RDP pour Windows, permettant d’accéder à des sessions sous Windows 2008 incluant RemoteFX.
- remmina un client multi protocole (RDP, VNC, NX, XDMCP et SSH) écrit en GKT+, permettant d’accéder à un large choix de sessions à distance depuis un même client Unix.
- freeRDP Servers (expérimental) a pour vocation de fournir un serveur utilisant le protocole RDP pour déporter des sessions distantes sous Unix. Actuellement le code du projet xrdp a été repris, et ne fonctionne qu’avec un backend VNC, en attendant son remplacement par RDP.
- freeRDP-WebConnect (expérimental) est une passerelle web pour accéder aux sessions RDP depuis un navigateur HTML5 supportant les Canevas et les WebSockets.
-
Possibilité de fonctionner en plein écran.
-
Renvoi du son bidirectionnel et autres périphériques (ports séries et parallèles) sur l'ordinateur local.
-
Accès aux applications distribuées par RDP (sans le mode bureau).
-
Support des codex RemoteFX en encodage et en décodage.
-
Les OS des serveurs RDP supportés sont : Windows 2000 Server, Windows Server 2003, Windows Server 2008, Windows XP, Windows 7.
-
De nombreuses options permettent d'adapter le matériel client aux spécificités matérielles du serveur et de la connexion (langue du clavier, nombre de couleurs, compression du flux de données, ...).
-
Supporte protocoles de rdp5 à rdp7.1.
- Accès aux logiciels fonctionnant sous Windows depuis les postes Unix.
- A l’IPHC, des serveurs de terminaux sont mis à disposition des utilisateurs Unix pour accéder à la suite MS Office ou à des logiciels d’analyse développés uniquement sous Windows.
- Accès au report d'affichage de VirtualBox.
Le report du son n’est pas supporté sur les versions inférieures à la version 6 de RedHat.
Le client xfreerdp est disponible via le repository EPEL pour CentOS ou Fedora, et intègre les fonctionnalités telles que RemoteFx, RemoteApp, le report du son ou des disques locaux.
FullCircleMagazine en français
Le Full Circle Magazine est un magazine en ligne anglophone ayant pour sujet la distribution GNU/Linux Ubuntu et ses dérivés : Kubuntu, Xubuntu et Edubuntu.
Le magazine se définit lui-même comme étant le magazine de la communauté Ubuntu. Mais les sujets abordés tournent plus généralement autour des logiciels libres et Open Source.
Sa parution est mensuelle.
Le numéro 0 du magazine est paru le 15 avril 2007. N'étant qu'un numéro dit de test, le premier numéro officiel du Full Circle Magazine (numéro 1) est paru en juin 2007.
Des équipes de traduction se sont mises en place dans plusieurs pays, les plus actives étant à ce jour les équipes italienne, française, chinoise et hongroise.
Début 2013, le magazine en est à son 70ème numéro.
Le site du magazine : http://fullcirclemagazine.org/
Le site de l'équipe francophone : http://www.fullcirclemag.fr/
Apache Archiva est un entrepôt d'artefacts (d'archives, généralement Java au format jar) Open Source développé par la fondation Apache. Il permet la mise à disposition d'artefacts, au format Maven2 et à travers le protocole HTTP, pour des outils de fabrication tels que Maven, Ivy, BuildR ou Gradle. Ces outils ont la particularité de gérer les dépendances déclaratives et transitives des projets dans des dépôts distants évitant ainsi que le processus de construction d'un logiciel dépende d'artefacts stockés en local ou directement dans le projet. Ce mécanisme sécurise grandement la fabrication des binaires en simplifiant la maintenance et la gestion des changements de versions des dépendances des projets.
Apache Archiva peut également jouer le rôle de "proxy" d'autres dépôts distants. Autrement dit, il est possible de faire en sorte que vos dépôts d'artefacts incluent d'autres dépôts de manière transparente.
Il est également possible de regrouper des dépôts dans un seul groupe de manière à avoir un point d'accès unique sur plusieurs dépôts que ceux-ci soient gérés localement ou bien qu'ils soient distants.
Apache Archiva gère ses dépôts au format Maven1 (legacy) ou Maven2. Il s'intègre naturellement avec tous les outils de construction logicielle supportant ce format, notamment Maven, Ivy, BuildR et Gradle.
Ant (Another Neat Tool) est un outil de build basé sur XML qui permet d'automatiser la construction de logiciel dans de nombreux langages. Très simple d'utilisation et possédant de nombreuses fonctionnalités, Ant est très répandu dans la communauté Java. Ses principales fonctionnalités sont les suivantes :
- gestion de la compilation ;
- génération de pages de documentation ;
- création de redistribuables ;
- mise en place de batteries de tests ;
- grand nombre de tâches disponible et possibilité d'écrire ses propres tâches.
Couplage avec des gestionnaires de versions.
Un script Ant peut être utilisé dans MAVEN .
Ant est utilisé dans le cadre de la nouvelle version du logiciel Monolix
Ant ne gère pas nativement les dépendances. Il existe néanmoins le plugin ivy qui permet d'adresser cette préoccupation.
Hormis ce point, la principale contrainte de Ant est sa syntaxe verbeuse.
Le projet DIRAC développe et maintien l'intergiciel de calcul distribué qui permet aux utilisateurs d’accéder aux différentes ressources de calcul comme les grilles de calcul, les clouds, les grappes ou les ordinateurs individuels. Le système DIRAC est complet et fournit tous les services nécessaires pour l'organisation des calculs distribués.
Le système d'ordonnancement de travaux avec les agents-pilotes améliore considérablement l'efficacité d’utilisation des ressources de calcul surtout pour les grandes communautés d'utilisateurs.
Le système de gestion de données donne accès aux différents types de stockage et fournit un service de Catalogue des Fichiers puissant avec la possibilité de définir les métadonnées d'utilisateur.
Le système de réplication de données permet d'automatiser les déplacements des fichiers avec des scénarios complexes.
Presque toutes les fonctionnalités de DIRAC sont accessible à partir du portail Web. L’accès est complètement sécurisé avec les certificats grille d'utilisateur.
Le service Web DIRAC permet de compléter les portails Web des applications existantes avec un moteur puissant d’exécution des travaux sur la grille.
Le logiciel DIRAC fournit un cadre de développement qui permet d'ajouter vite de nouveaux services nécessaires pour les applications particulières tout en respectant les règles de sécurité et en intégrant de nouveaux composants avec le reste du système. Cela permet de l'adapter facilement aux besoins de nouvelles communautés d'utilisateurs.
La distribution contient tout le nécessaire au déploiement d'un cloud de type "Infrastructure-as-a-Service" (IaaS) : réseau, stockage et gestion des machines virtuelles.
De plus, StratusLab propose des fonctionnalités innovantes comme le "Marketplace" qui facilite le partage des "virtual appliances", la gestion du service qui permet le déploiement et l'extension de services multi-machines, le support pour des scenarios multi-clouds.
StratusLab supporte de nombreux systèmes d'exploitations comme CentOS 6.2, Fedora16 et OpenSuSE 12.1 et est bien adapté au déploiement de clouds tant publics que privés. Le client StratusLab écrit en Python propose une interface simple en ligne de commandes pour accéder aux infrastructures cloud StratusLab depuis Linux, Mac OS X ou des machines Windows.
Le code source de la distribution est disponible sur GitHub.
Groovy est un langage et un écosystème destinés à s’exécuter sur la machine virtuelle Java. Introduisant des concepts inspirés de Ruby et Python tout en conservant continuité et cohérence au sein de l’environnement Java, il est totalement interopérable avec lui.
L’objectif avoué de Groovy n’est pas de supplanter Java, mais de fournir un outil complémentaire plus simple et plus productif aux utilisateurs de l’univers Java.
Langage
Groovy est, tout comme Java, un langage orienté objet.
La syntaxe
La syntaxe de Groovy repose volontairement sur celle de Java, afin de faciliter la courbe d’apprentissage des développeurs Java. Elle s’enrichie de simplifications ou des raccourcis syntaxiques (dit «syntactic sugar» ou «sucres syntaxiques») dictés par le pragmatisme et la lisibilité.
Parmi les éléments remarquables, citons :
- les listes ou dictionnaires sont nativement symbolisés comme élément de langage
- le point-virgule de fin d’instruction ou les try/catch sont facultatifs
- Les importations des bibliothèques java les plus utilisées sont implicites
- Les classes java usuelles (String, File, Date…) sont complétées par des méthodes pragmatiques
Dynamisme
Groovy est un langage dynamique dont les instructions sont interprétées à l’exécution permettant une plus grande souplesse d’usage que le typage statique. Groovy utilise la méta programmation, il est ainsi possible de faire évoluer en cours d’exécution des définitions ou des comportements de classes ou d’objets sans avoir à recompiler le programme. Par exemple on peut ajouter contextuellement ou durablement des méthodes à des classes ou des objets. Il est aussi possible de l'utiliser pour écrire des scripts.
Les invocations de méthode dynamiques autorisent l’utilisation du typage canard (duck typing), fournissant une approche polymorphique plus souple que l’application stricte des mécanismes de typage par héritage ou implémentation d’interface.
Approche statique
Depuis la version 2.0, il est possible d'utiliser une approche statique sur certaines portions de code pour bénéficier de la sureté de fonctionnement ou des performances associées.
Ceci est réalisé à l'aide d'annotation:
- La vérification statique de code via l'annotation @TypeChecked
- La compilation statique via l'annotation @CompileStatic
Langage fonctionnel
Groovy permet d’utiliser le paradigme de programmation fonctionnel par le biais des fermetures (closures).
Une fermeture est une entité prenant des paramètres en entrée et fournissant un résultat en sortie. Une fermeture étant un bloc d’instructions manipulable comme un objet, elle peut être passée en paramètre à une fonction, appliquée à des collections.
Eléments de langage propres à un domaine
Groovy permet de définir des éléments de langage propres à un domaine métier (Domain Specific Language) en s’appuyant sur les possibilités offertes.
Citons :
- la faculté de modéliser des structures arborescentes complexes,
- la faculté de surcharger les opérateurs courants, globalement ou contextuellement ,
- d’utiliser des fermetures,
- la faculté de capturer des appels de méthodes manquantes et y répondre pour implémenter des conventions de nommage.
Intégration dans l’univers Java
Groovy est dédié à l’univers Java et s’y intègre parfaitement sans effort particulier.
Indifférenciation au niveau JVM
Au niveau de la Machine Virtuelle Java, un code Groovy ne peut être distingué d’un code Java, les deux sont exécutés sous forme de bytecode Java. En effet, Groovy utilise les mêmes outils que Java en insérant des étapes supplémentaires de compilation pour honorer ses fonctionnalités, et son résultat est un ensemble de fichiers .class similaires. De même que Groovy utilise des classes Java, il est possible d’utiliser des classes issues de code Groovy dans un code Java.
La conséquence, c’est qu’aux niveaux organisationnel et opérationnel, il n’y a aucun différence entre du Java et du Groovy : tous les deux s’organisent en archive JAR, se déploient et s’exécutent de la même façon.
Facilitation des standards
Groovy propose un certain nombre de fonctionnalités pour faciliter l’utilisation de standards de fait :
Groovy, de par son écosystème, propose un ensemble de fonctionnalités étoffées à travers différentes frameworks ou modules. La liste complète peut être consultée ici.
Parmi ceux-ci, citons les plus remarquables ou les plus pertinents pour la communauté ESR.
Grails
Grails est un framework de développement agile d’application web reprenant les principes validés par le framework RubyOnRails tels que :
- programmer par convention plutôt que par configuration,
- éviter les redondances selon le principe DRY («Don’t Repeat Yourself») en faisant usage de métaprogrammation.
Grails s’appuie sur des frameworks industriels et constitue un écosystème particulièrement riche en soi, comptant plus de 400 extensions.
Gorm
Bibliothèque permettant d’appliquer le pattern ORM (« Object-Relation Mapping ») : http://grails.org/GORM
Gldapo
Equivalent de GORM dans l’univers LDAP, mais surtout facilite l’utilisation de LDAP dans l’univers Java : http://gldapo.codehaus.org/
GroovyLab
Utilisation de bibliothèques de type Mathlab en Groovy : http://code.google.com/p/groovylab/
Groosh
Module permettant d’interagir avec le système d’exploitation à travers son shell : http://groovy.codehaus.org/Groosh
Nous utilisons groovy à la DSI du CNRS depuis plusieurs années. Le langage groovy est utilisé comme "couteau suisse" dans plusieurs tâches qui bénéficient de l’écosystème Java.
Modélisation des règles de gestion d’une entrée LDAP
En utilisant la fonction de builder et une bibliothèque LDAP, nous avons modélisé les règles de gestion des entrées LDAP de nos annuaires d’authentification sous une forme lisible et compréhensible.
Scripts d’administration et maintenance des annuaires LDAP
Des scripts d’administration et maintenance d’annuaires LDAP sont entièrement écrits en groovy, ce qui, de par sa nature, permet de les écrire ou les adapter directement sur des serveurs, à l’aide d’un simple éditeur de texte (vi) et sans avoir besoin d’un éditeur spécialisé (comme Eclipse), avec une très grande aisance.
Reprise et extraction de données
De nombreux programmes d’extraction ou reprise de données sont écrits en groovy. L’usage natif des dictionnaires (Map), des listes et des fermetures associés à la facilité d’évolution sont parfaitement adaptés à ce genre d’opérations à la fois itératives dans leur constructions et jetables par nature.
La principale limitation est la vitesse de lancement. Il y a déjà la lenteur propre au démarrage de la Machine Virtuelle Java qui recharge et revalide l'ensemble des classes avant d'exécuter le programme appelé. Ensuite, si Groovy est utilisé en mode script (régénération des classes à partir des sources), le temps de compilation s'ajoute au précédent, entrainant des latences pouvant aller jusqu'à plus d'une dizaine de secondes.