Un article court aujourd’hui pour présenter SARTools, un outil d’analyse différentielle de données de RNA-seq.
Plus qu’un outil, SARTools est plutôt un pipeline simplifié pour traiter des données d’analyses réalisées dans un plan d’expérience assez basique.
En effet le cadre d’utilisation de SARTools est volontairement limité aux plans d’expérience simples, à savoir des comparaisons de deux (ou plus) conditions/mutants avec au moins deux réplicats par condition. Cela dit, ce type de plan représente la majorité des expériences réalisées et permettra de traiter une grande partie des données de RNA-seq.
Le pré-requis, malgré tout, est que les différentes conditions ou mutations n’affectent qu’une faible proportion des gènes ou, si ce n’est pas le cas, qu’il y ait un bon équilibre entre les gènes sur-exprimés et sous-exprimés.
SARTools se base sur 2 packages R : DESeq2 et EdgeR. Ces outils développés spécifiquement pour traiter les données de transcriptomique vont chercher à estimer la variabilité biologique des différents échantillons afin de les normaliser et de calculer des ratios moyen pour chaque gène. Ils vont également déterminer quels gènes sont différentiellement exprimés en cherchant des valeurs de log2 de ratios significativement supérieures à 1 ou inférieures à ‑1 et en employant pour cela le test de Wald.
Passons à la pratique.
Installation
Sartools est un package R. mais il n’est pas encore disponible sur le CRAN. Il faut l’installer depuis github. Le package est disponible à l’adresse suivante : https://github.com/PF2-pasteur-fr/SARTools
La documentation est bien faite et il suffit de suivre les instructions pour l’installer. Il faudra d’abord installer depuis bioconductor DESeq2 et EdgeR qui serviront à l’analyse différentielle proprement dite, puis quelques outils supplémentaires et enfin installer le package SARTools. Cette dernière étape génère souvent une erreur, due à la génération de la documentation à l’aide de LaTeX. Quand ce dernier n’est pas (ou mal) installé, l’installation de SARTools s’interrompt avant la fin. Pour régler le problème, sans installer LaTeX, il suffit de mettre l’option
1 |
build_vignettes=FALSE |
et l’installation se termine sans erreur.
Utilisation
Comme je le disais plus haut, la documentation est bien faite et il y a un tutoriel pour bien démarrer.
Le tutoriel décrit les fichiers nécessaires pour faire une analyse, les fichiers et figures obtenus et donne enfin deux exemples de script R selon que l’on souhaite utiliser les packages DESeq2 ou EdgeR.
Premier point, les fichiers d’entrée. Pour chaque échantillon il va falloir fournir un fichier de 2 colonnes (sans en-tête) avec dans la première colonne les identifiants des gènes ou régions et dans la deuxième le nombre de reads de chaque gène. Il faut ensuite un fichier de design. Ce fichier doit comporter au moins 3 colonnes, avec en-tête cette fois ci. La première colonne est l’identifiant de chaque échantillon, la deuxième le nom du fichier (sans le chemin d’accès) et la troisième le groupe auquel appartient l’échantillon. On doit donc avoir autant de ligne que d’échantillons à traiter.
Une fois que tout cela est prêt, on peut commencer l’analyse. Il y a un certain nombre de paramètres à définir. Ces paramètres sont bien définis dans le tutoriel, donc je ne vais pas revenir dessus ici. Je vais juste apporter une précision pour le paramètre
1 |
featuresToRemove |
. Ce paramètre ne peut être nul sinon, cela génère une erreur. Par conséquent, même s’il n’y a aucune feature à retirer il va falloir donner une valeur à ce paramètre. Il suffit d’indiquer un nom qui n’existe pas dans les tables d’entrée et le problème est réglé.
Cela fait, il suffit d’utiliser les commandes données dans les templates de la fin du tutoriel. Il y a d’abord des étapes de vérification des paramètres, d’importation des données et d’exploration des données. Puis l’analyse différentielle est réalisée par les commandes run.DESeq2 ou run.edgeR. Il faut choisir l’un ou l’autre. Ce sont deux méthodes très utilisées actuellement. Il y a une légère préférence dans la littérature pour DESeq2 mais il n’y a pas vraiment de raison objective, si ce n’est que DESeq2 donne en général plus de gènes différentiellement exprimés que edgeR.
Ensuite une ACP et un clustering sont réalisés sur les échantillons normalisés par DESeq2 ou edgeR.
Les commandes suivantes vont servir à exporter les fichiers de résultats, enregistrer l’espace de travail R et enfin produire un fichier HTML résumant l’ensemble de l’analyse et contenant des figures telles que des MA-Plots ou des volcano-plots.
1 2 3 4 5 6 7 8 9 10 11 12 |
# summary of the analysis (boxplots, dispersions, diag size factors, export table, nDiffTotal, histograms, MA plot)<br> summaryResults independentFiltering=independentFiltering,<br> cooksCutoff=cooksCutoff, alpha=alpha)<br> # save image of the R session<br> save.image(file=paste0(projectName, ".RData"))<br> # generating HTML report<br> writeReport.DESeq2(target=target, counts=counts, out.DESeq2=out.DESeq2, summaryResults=summaryResults,<br> majSequences=majSequences, workDir=workDir, projectName=projectName, author=author,<br> targetFile=targetFile, rawDir=rawDir, featuresToRemove=featuresToRemove, varInt=varInt,<br> condRef=condRef, batch=batch, fitType=fitType, cooksCutoff=cooksCutoff,<br> independentFiltering=independentFiltering, alpha=alpha, pAdjustMethod=pAdjustMethod,<br> typeTrans=typeTrans, locfunc=locfunc, colors=colors) |
Le fichier HTML résumant l'ensemble est un des intérêts de SARTools. Un exemple est disponible ici (Statistical report) Il permet d’avoir une trace de tout ce qui a été fait, étape par étape. Une explication de chaque figure et des guides pour interpréter les résultats observés. On retrouve également à la fin les références des outils utilisés et les versions de chaque package R utilisé. Ces informations sont essentielles quand on cherche à publier aujourd’hui et il est très appréciable de ne pas avoir à les chercher lorsqu’on est en train de finaliser la rédaction d’un article.
SARTools ne révolutionne pas l’analyse différentielle mais la simplifie suffisamment pour justifier son existence et mérite d’être testé.
Merci aux relecteurs ZaZo0o, NiGoPol, Yoann M. et Sylvain P. pour leur temps et leurs conseils
Merci également à Hugo Varet, auteur de package, pour son travail et pour m'avoir fait gagner beaucoup de temps dans mes analyses.
Laisser un commentaire