Sylvain Mareschal, Ph.D.
Bioinformatics engineer
February 1, 2015 at 19:03
Formation au langage R
Vous pouvez trouver en suivant ce lien le diaporama du premier des 7 modules (sous licence Creative Common BY-NC) et le jeux de données correspondant, et en bas de cette page un bref aperçu du programme de ces différents modules.

Durant ces 5 années passées à l'unité INSERM 918, j'ai eut l'occasion de développer une maitrise plutôt avancée du langage R, langage de script dédié initialement aux statisticiens. Grâce à des initiatives telles que Bioconductor, à sa philosophie résolument "open source" qui colle si bien à celle de la recherche académique et à la part de plus en plus grande que prennent les statistiques dans ce secteur, je reste personnellement convaincu que c'est un outil indispensable à tout biologiste, et tout particulièrement aux bioinformaticiens tels que moi. Je mûrissais donc le projet depuis quelques années déjà de faire profiter mes futurs ex-collègues de mes connaissances en la matière, projet qui s'est concrétisé la semaine dernière.

Cela a été l'occasion pour moi de réaliser toute la logistique qui se cache derrière un tel projet, qui ne s'improvise pas. Cela passe par sonder les intéressés potentiels et discuter avec eux du contenu de la formation (une tâche délicate quand on sait que la plupart d'entre eux ne connaissait rien ou presque de R et de ce qu'ils pouvaient en attendre), trouver une date qui convienne à tous. J'avais pris le parti en organisant cette formation de la découper en modules plus ou moins indépendants afin que chacun puisse en retirer ce qu'il souhaitait en fonction du temps qu'il était prêt à y consacrer (entre quelques heures et quelques jours). Si cela a été fort apprécié, c'était en revanche une contrainte supplémentaire dans la création des emplois du temps, et si quelques imprévus de dernière minute ont poussé certains participants à manquer un ou deux modules, cela s'est plutôt bien terminé pour la majorité d'entre eux.

Une fois la liste des participants et le programme fixés, il était temps de passer aux choses sérieuses. Le programme était plutôt ambitieux, avec au total 16 heures de formation uniques et un module de 3h présenté deux fois (faute de pouvoir réunir tout le monde au même endroit au même moment), le tout condensé sur une semaine. Pour une heure de présentation, il a fallu compter 2 à 3 heures de travail sur le diaporama présenté en séance, selon mon niveau de maîtrise du sujet. C'est un total de 175 diapositives (plus d'un millier en comptant les animations) que j'ai ainsi eut l'occasion de produire en un peu plus d'une semaine, pour un résultat plutôt positif s'il faut en croire les retours que j'ai eut.

Le programme a été pensé pour couvrir l'essentiel des aspects du langage R que j'ai eut l'occasion de pratiquer lors de mon alternance puis de mon doctorat au Centre Henri Becquerel. Outre un module d'initiation qui se voulait très succinct et accessible, on retrouvait ainsi des modules sur les principaux tests statistiques utilisés en biologie, les méthodes de clustering hierarchique populaires en transcriptomique ou le package Rgb que j'ai pu développer pour représenter des données génomiques avec R. Un programme très vaste donc, et je regrette un peu d'avoir sous-estimé le temps nécessaire à présenter chaque module, ce qui nous a forcé à prendre du temps sur la pause déjeuner et finir parfois un peu rapidement de traiter certains sujets. Si l'occasion se présente à moi de refaire cette formation, je pense qu'il serait plus raisonnable de demander 4 à 5 heures supplémentaires, ou d'élaguer un peu le programme.

C'est au final une expérience dont je garde de très bons souvenirs, car c'est un réel plaisir que d'expliquer à un petit comité d’intéressés un sujet qui me passionne comme celui ci. J'espère (et j'ai l'impression) que mon auditoire a profité de cette formation, en tout cas j'ai eut un réel plaisir à l'organiser et l'animer.



Tronc commun (3h 4h)
  • Introduction : R en théorie / en pratique
  • 1. R Studio, installation et interface
  • 2. Opérateurs mathématiques
  • 3. Fonctions, les utiliser et obtenir de l'aide dessus
  • 4. Variables
  • 5. Importer un tableau avec R Studio
  • 6. Vérifier / Éditer un tableau importé
  • 7. Filtrer un tableau avec subset()
  • 8. Introduction des vecteurs
  • 9. Statistiques descriptives
  • 10. Dessiner un nuage de points
  • 11. Sensibilisation à l'usage des scripts
  • 12. Dessiner un box plot
  • 13. Test de Mann-Whitney, théorie et pratique
  • 14. Tableaux de contingence
  • 15. Test exact de Fisher, théorie et pratique
  • Conclusion : R, une langue étrangère

Vecteurs et tables (3h 4h)
  • 1. Dimensions de variables dans R
  • 2. Créer des vecteurs
  • 3. Types de vecteurs
  • 4. Valeurs spéciales (NA, NaN, Inf)
  • 5. Les facteurs dans R
  • 6. Filtrer des vecteurs avec "["
  • 7. Remplacer des valeurs dans un vecteur
  • 8. Combiner des vecteurs en tableaux
  • 9. Filtrer des tableaux avec "["
  • 10. Importer des tableaux avec read.table()
  • 11. Fusionner des tableaux
  • 12. Réordonner vecteurs et tableaux
  • 13. Gérer les doublons
  • 14. Exporter un tableau
  • 15. Application pratique

Clusterings (1h)
  • 1. Principe général
  • 2. Principe des distances les plus utilisées
  • 3. Présentation de LPS::clusterize()
  • 4. Installation du package LPS avec R Studio
  • 5. Application à des données d'expression
  • 6. Application à des données de mutation

Statistiques (2h 2.5h)

Graphiques (3h 4h)
  • 1. Recyclage des paramètres dans plot()
  • 2. Tracer des droites avec abline()
  • 3. Ecrire dans la marge avec mtext()
  • 4. Ecrire sur le graphique avec text()
  • 5. Tracer des segments avec segments()
  • 6. Tracer des rectangles avec rect()
  • 7. Personnaliser les axes
  • 8. Combiner des graphiques avec layout()
  • 9. Quelques autres fonctions utiles : curve(), grid() et title()
  • 10. Application : reproduire un graphique donné
  • 11. Exporter des graphiques, vers des fichiers ou PowerPoint

Automatisation (3h 4h)
  • 1. Définir ses propres fonctions
  • 2. Messages, avertissements et erreurs
  • 3. Structures conditionnelles
  • 4. Boucles for et while
  • 5. Les variables de type "list"
  • 6. Eviter les boucles avec apply() et tapply()
  • 7. Tests mutliples, corrections FDR et FWER

Packages publiés et Rgb (4h)
  • 1. Principe des packages dans R
  • 2. (Dés)installer un package (CRAN, Bioconductor et fichiers archives)
  • 3. Chargement des packages
  • 4. Découvrir un package avec l'aide de R
  • 5. Initiation à la Programmation Orientée Objet
  • 6. The R Genome Browser (Rgb)
  • 7. Importer des données dans Rgb
  • 8. Interface graphique de Rgb
  • 9. Modifier le rendu visuel d'une piste
  • 10. Dessiner en lignes de commandes avec Rgb
  • 11. Manipuler track.table dans un script
  • 12. Manipuler track.bam dans un script