calcul du FDR avec un seuil sur le log(FoldChange)

Poster un nouveau sujet   Répondre au sujet

Voir le sujet précédent Voir le sujet suivant Aller en bas

calcul du FDR avec un seuil sur le log(FoldChange)

Message par Ced@P3S le Jeu 2 Nov - 12:44

Bonjour,

Dans la fonction "FDR Computation" du DataAnalyzer, il est possible de calculer le FDR à une p-value donnée sur une sélection de protéines qui ont un log(FC) supérieur en valeur absolu au seuil indiqué. Comment est calculé ce FDR et quelle méthode utilise-t-il ? Est-ce un FDR conditionnel ? Le FDR calculé est bien inférieur à celui calculé sans seuil sur le log(FC), mais cette valeur de FDR  est-elle autant robuste que le FDR sans seuil ?

Merci pour vos réponses.

Ced@P3S
Invité


Revenir en haut Aller en bas

Re: calcul du FDR avec un seuil sur le log(FoldChange)

Message par Thomas B. le Mar 7 Nov - 12:00

Bonjour,
Voici une réponse à vos différentes questions:

• Comment est calculé ce FDR et quelle méthode utilise-t-il ?

Pour la plupart des traitements statistiques, le DataAnalyser appelle les fonctions R du package DAPAR. Pour ce qui est du contrôle du FDR, DAPAR appelle à son tour le package CP4P, qui propose un ensemble d’outils de visualisation ou d’estimation qui viennent se greffer autour du package FDR-AME (de Benjamini, Kenigsberg, Reiner, et Yekutieli) dont on récupère la fonction de calcul de la p-value ajustée. Voici la publication décrivant les fonctionnalités du package CP4P :

Q. Giai Gianetto, F. Combes, C. Ramus, C. Bruley, Y. Couté, T. Burger. "Calibration Plot for Proteomics (CP4P): A graphical tool to visually check the assumptions underlying FDR control in quantitative experiments". Proteomics, 16(1):29-32, 2016.

Cette publication est accompagnée d’un tutoriel disponible dans les "supplemental materials" du papier.

Pour ce qui est de la méthode de calcul, il s’agit d’une procédure d’ajustement des p-values, qui est somme toute assez classique (si ce n’est le fait qu’on autorise l’utilisation de différents estimateurs de la proportion d’hypothèses nulles, un peu à la manière de Storey pour le calcul des q-values). Si vous souhaitez mieux comprendre le lien entre FDR, p-value, p-value ajustée et q-value dans le contexte de la protéomique, vous trouverez les informations nécessaires dans le tutoriel suivant :

T. Burger. "Gentle introduction to the statistical foundations of false discovery rate in quantitative proteomics". Journal of Proteome Research, accepted for publication, October 2017.

• Est-ce un FDR conditionnel ?

C’est difficile à dire, dans la mesure où il n’y a à ma connaissance pas de définition standard du FDR conditionnel : Le « positive FDR » de Storey peut-être considéré comme un FDR conditionnel, puisqu’il est formellement défini par une espérance conditionnelle (la condition concerne la positivité). De même l’estimateur proposé par Friguet, Kloareg et Causeur propose de prendre en compte la structure de dépendance entre les tests via un estimateur de la variance conditionnelle sous l’hypothèse nulle, et le FDR résultant est dénommé « conditional FDR ». Enfin, une brève recherche dans Google Scholar m’a amené à un ensemble de publications de Ole A. Andreassen qui définit encore autrement cette notion dans un contexte applicatif qui ne me semble pas avoir de contrepartie en protéomique.

Concrètement, dans la mesure où l’on n’estime la distribution nulle que sur un sous-ensemble de toute la population (le sous-ensemble où le FC est supérieur à un seuil choisi), on peut considérer qu’il s’agit d’un FDR conditionnel ; cependant, cette dénomination me semble très empruntée et artificielle.

• Le FDR calculé est bien inférieur à celui calculé sans seuil sur le log(FC), mais cette valeur de FDR  est-elle autant robuste que le FDR sans seuil ?

Tout dépend de ce que l’on appelle la robustesse :
- Si cela désigne la stabilité du résultat (le fait que le FDR calculé reste le même après avoir légèrement perturbé les données), alors, plus il y a d’observations, plus on est stable. Dès lors, la stabilité maximale est obtenue sans utiliser de seuil ; et à l’inverse si l’on met un seuil trop stringeant, le résultat sera vraiment instable.
- Si cela désigne la justesse de l’estimateur (c’est-à-dire qu’on veut avoir un FDR qui est au plus proche de la FDP – la proportion réelle de fausse découverte, cf. le tutoriel  dans JPR indiqué plus haut), cela dépend entièrement de comment le seuil est fixé : pour certaines valeurs, il sera meilleur que pour d’autres… et malheureusement, la théorie statistique ne nous dit pas comment réaliser un « tuning » optimal. Tout au plus, on peut utiliser des graphiques de calibration, tel que proposé dans CP4P, afin d’affiner le réglage du paramètre.
- Si cela désigne le conservatisme de l’estimateur (le fait de ne pas sous-estimer la FDP), alors le FDR le meilleur est simplement le plus élevé (dans le cas extrême, en annonçant un FDR de 100% on est parfaitement conservatif).

Donc concrètement, d’un point de vue purement statistique, il vaut mieux ne pas mettre de seuil. Ainsi, le FDR sera plus stable et plus conservatif. Cependant, en pratique, cela ne convient pas aux protéomiciens, qui se retrouvent avec un FDR très élevé, tout en sachant d’expérience, qu’un très grand nombre de fausses découvertes (ou de vraies découvertes dénuées d’intérêt biologiques) se trouvent dans la zone du volcano plot ou les FC sont les plus faibles. Il est donc tentant d’appliquer un filtre sur le FC. Malheureusement, il est interdit d’appliquer un quelconque filtre après le calcul du FDR. En effet, il n’y a aucune garantie théorique que le filtre ne retire pas plus de vraies découvertes que de fausses, de sorte qu’à la suite du filtrage, l’estimateur du FDR réalisé avant le filtrage ne tient plus. De manière similaire, c’est pour répondre à ce problème que le logiciel Perseus propose d’utiliser le fudge factor du test SAM afin d’appliquer une espèce de seuil « courbe » sur le volcano plot, et donc d’avoir in fine, un test statistique qui élimine « tout seul » les protéines avec un faible FC. Malheureusement, cette pratique n’a aucun fondement théorique, et on peut même montrer qu’elle aboutit à des FDR plus que douteux, comme cela apparaît dans le papier suivant :

Q. Giai Gianetto, Y. Couté, C. Bruley, T. Burger. "Uses and misuses of the fudge factor in quantitative discovery proteomics". Proteomics, vol. 16, no 14, p. 1955-1960, 2016.

Dès lors, quelle solution reste-t-il ? Il peut être possible de faire appel à la fonction treat() du package Limma, qui propose d’intégrer le FC dans la définition de l’hypothèse nulle du test statistique, de manière tout  fait rigoureuse. Cependant, les p-values résultantes vont être toutes mécaniquement plus élevées, rendant leur interprétation pour des protéines différentiellement abondantes particulièrement difficile. C’est cela qui nous a amené à choisir une approche différente, constituée de 2 étapes : la première est un seuillage sur le FC, qui permet de se débarrasser des protéines inintéressantes, indépendamment de la p-values (il s’agit d’un filtre « biologique », en quelque sorte), suivi ensuite d’un calcul du FDR (qui lui est fondé statistiquement). Cet enchainement n’est pas exempt de défaut, bien sûr. Notamment, le protéomicien doit faire preuve d’expertise pour choisir son seuil, sans aucun « guideline » statistique : un seuil trop élevé rend le résultat moins conservatif et moins stable, mais plus proche de ses attentes. A l’inverse, un seuil trop bas garanti un résultat statistiquement « béton », mais possiblement d’un moindre intérêt biologique. Cependant, nous pensons qu’il s’agit de la moins mauvaise solution.

Compte-tenu de tout cela, voici comment je conseille généralement de choisir le seuil sur le FC. Si l’on met un seuil de X, alors il faut pouvoir accepter qu’une protéine fictive, qui serait filtrée, mais qui serait à la limite de ne pas l’être (elle aurait donc un FC de X-e, ou e désigne une quantité positive très faible), n’aurait en effet pas d’intérêt, en raison de son trop petit FC, et ce, quelle que soit sa p-value. Ainsi, même si cette protéine avait une p-value exceptionnelle, il semblerait, sur la base de son FC, censé de la filtrer d’office. Si une telle protéine avec une p-value exceptionnelle avait malgré tout un intérêt, alors, cela signifie que le seuil a été placé trop haut.

En espérant avoir répondu à vos questions.
Thomas

Thomas B.
Invité


Revenir en haut Aller en bas

CALCUL DU FDR AVEC UN SEUIL SUR LE LOG(FC)

Message par Ced@P3S le Mer 8 Nov - 16:31

Bonjour,

Merci beaucoup pour toutes ces réponses. J'avais lu les 2 premières publi conseillées et le tutoriel qui m'ont effectivement permis de mieux comprendre le calcul du FDR.

Je suis d'accord sur le fait que le filtrage sur le FC peut être trop stringent ou au contraire pas assez en fonction de la valeur choisie, mais en filtrant par rapport à un seuil de FC, on obtient une liste de protéines moins importante et la distribution des p-value est modifiée (dans mes jeux de données, beaucoup de protéines ayant des FC supérieurs au seuil de 1.8 ont des faibles p-value). Ne risque-t-on pas alors de moins bien estimer la proportion d’hypothèses nulles (pi0), et donc de moins bien estimer le FDR ?

D'après ce que j'ai compris du calcul du FDR avec un seuil FC proposé dans Proline, j'ai essayé de filtrer manuellement les données après analyse différentielle par rapport à un seuil FC (via la fonction expression builder) et j'ai ensuite calculé le FDR sans indiquer de seuil FC (valeur à 0). Cependant, je ne retrouve pas la même valeur de FDR que lorsque je le calcule directement à partir des données après analyse différentielle et en indiquant le seuil FC... Mais il y a peut-être une subtilité qui m'échappe...

Cédric.

Ced@P3S
Invité


Revenir en haut Aller en bas

Re: calcul du FDR avec un seuil sur le log(FoldChange)

Message par Thomas B. le Jeu 9 Nov - 15:25

Bonjour,

Concernant le premier point vous semblez en effet avoir tout bien compris. C'est exactement cela: plus il y a de protéines, plus il est facile d'estimer pi0, de sorte que si on n'en filtre trop, l'estimateur devient instable... C'est donc aussi à prendre en compte au moment de définir le seuil sur le FC (mais cela se produirait aussi avec une autre méthode comme la fonction treat() de Limma par exemple... C'est intrinsèque au fait que plus les données sont nombreuses, plus l'estimateur est fiable, comme un sondage).

Cependant, il faut relativiser cela, pour deux raisons: (1) les estimateurs de pi0 ne sont jamais bons, c'est d'ailleurs pour cela qu'on en propose plusieurs; (2) il n'est pas grave de sur-estimer un peu pi0, ce qui est grave, c'est de le sous-estimer. Ainsi, si on a beaucoup de données et que l'estimation de pi0 est "facile", tous les estimateurs vont être bons, et ils seront tous très proches. A l'inverse, si on a un peu trop filtré sur le FC et qu'il y a moins de proteines, les estimateurs vont commencer un peu à diverger. Dès lors, l'usage de la courbe de calibration permet d'en trouver un qui ne semble pas trop mauvais, et qui au pire sur-estime un peu. Son usage garantira la conservativité et ne modifiera que très peu le FDR, donc on est tranquille. Et dans le pire des cas, il suffit de prendre la méthode BH, pour laquelle pi0 = 1: C'est aussi tout à fait acceptable, même si ca peut être un peu trop stringent.

Concernant le second point: Si j'ai bien compris, vous avez d'abord filtrer sur le FC, et seulement ensuite vous êtes rentré dans le pipeline DAPAR... C'est bien cela ? Si oui, il devrait être en effet logique que le FDR soit identique, quelque soit le chemin pris, puisqu'à priori, dans les deux cas, les mêmes filtres de FC et de p-values ont été utilisés.

Cependant, il faut comprendre que certains des traitements de DAPAR ne s'appliquent pas à chaque protéine prise individuellement, mais à l'ensemble du dataset... C'est notamment le cas:
- de la normalisation: suivant si on a enlevé ou pas certaines protéines, les intensités ne seront pas renormalisées de la même manières
- de certaines méthodes d'imputation (c'est le même principe que la normalisation)
- du test Limma: En effet, Limma modère la variance estimée sur chaque protéine en fonction de la distribution des variances sur tout le jeu de données. Ainsi, en fonction de si on filtre sur le FC ou pas, la modération ne sera pas du tout la même, et donc les p-values non plus.

Ainsi, si vous n'avez fait ni normalisation, ni imputation et que vous avez utilisé le test de Welch, normalement, en effet, les FDR devraient concorder. En revanche, si vous avez utilisé les différentes étapes et/ou que vous utilisez le test Limma, il me semble normal que le FDR ne soit pas exactement le même.

Dès lors, la question est de savoir quel pipeline est optimal. Il n'est pas possible de répondre dans l'absolu à cette question, cependant, les différentes étapes du pipeline DAPAR (présent aussi bien dans Prostar que dans le data analyser) ont été assemblées de la sorte parce qu'on est convaincu que cette manière de procéder n'est pas mauvaise. J'encouragerais donc à suivre celle-ci.

cordialement,
Thomas

Thomas B.
Invité


Revenir en haut Aller en bas

Re: calcul du FDR avec un seuil sur le log(FoldChange)

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum