Anwenden einer Mehrfachtestkorrektur für die Überlappung von Genlisten mit R.

8

Ich habe 2 Studien, die die Reaktion des Patienten auf dasselbe Medikament untersuchen. In Studie 1 wurden 10.000 über dem Hintergrund exprimierte Gene gefunden, von denen 500 differentiell exprimiert und als Signatur der Arzneimittelantwort bezeichnet werden. In Studie 2 wurden 1.000 Gene gefunden, die die Signatur der Arzneimittelantwort darstellen. Die Überlappung zwischen den beiden Signaturen beträgt 100 Gene.

Ich möchte die statistische Signifikanz der Überlappung zwischen den Signaturen berechnen. Wenn ich das richtig verstehe, ist eine Möglichkeit, dies zu tun (basierend auf den Beiträgen hier: Berechnen der Wahrscheinlichkeit einer Überlappung von Genlisten zwischen einer RNA-Sequenz und einem ChLP-Chip-Datensatz und hier: Verwenden von Rs Phyper, um die Wahrscheinlichkeit einer Überlappung von Listen zu ermitteln ) via phyper()::

> overlap  <- 100
> list1    <- 500
> totalPop <- 10000
> list2    <- 1000
> 
> 1-phyper(overlap-1, list1, totalPop-list1, list2)
[1] 4.103051e-12
  1. Klingt das vernünftig?

  2. Wenn ich die Bonferroni-Korrektur anwenden wollte, müsste ich diesen p-Wert mit der Anzahl der Vergleiche multiplizieren. Wie hoch wäre in diesem Fall die Anzahl der Vergleiche? Liste2? Was wäre alternativ ein schneller Weg, um weniger konservative Korrekturen vorzunehmen (z. B. Benjamini-Hochberg)?

Gemeinschaft
quelle
1 Anmerkung: So wie ich es normalerweise von der Bonferroni-Korrektur halte, dividieren Sie Ihren -Wert (normalerweise ) durch die Anzahl der Vergleiche und prüfen, ob Ihr p-Wert unter dem angepassten Schwellenwert liegt. 0,05α0.05
Gung - Reinstate Monica
OK, das macht Sinn. Ich glaube, ich bin immer noch verwirrt über die Anzahl der Vergleiche und den Wert, dem sie in meinem Fall entsprechen (Liste1, Liste2 oder deren Produkt). Vielen Dank für die Änderung der Frage, übrigens!
Hoffentlich erhalten Sie jetzt mehr Seitenaufrufe. Eine Sache, die ich denke, ist, dass Ihr vorheriger Titel wahrscheinlich niemanden "gepackt" hat. Wenn Sie in ein paar Tagen keine Treffer mehr erhalten, können Sie versuchen, sie zu bearbeiten, um sie erneut zu "stoßen", oder mich anpingen (über einen Kommentar unter diesem w / @gung). Vielleicht können wir eine andere Strategie ausprobieren. Leider kenne ich diese Probleme mit Genexpressionsstudien selbst nicht gut.
Gung - Reinstate Monica

Antworten:

3

Ich weiß nichts über Genexpressionsstudien, aber ich habe ein gewisses Interesse an multipler Inferenz, daher werde ich trotzdem eine Antwort auf diesen Teil der Frage riskieren.

Persönlich würde ich das Problem nicht so angehen. Ich würde die Fehlerstufe in den ursprünglichen Studien anpassen, die neue Überlappung berechnen und den Test am Ende in Ruhe lassen. Wenn die Anzahl der differentiell exprimierten Gene (und jedes andere Ergebnis, das Sie verwenden) bereits auf angepassten Tests basiert, würde ich argumentieren, dass Sie nichts tun müssen.

Wenn Sie nicht zu den ursprünglichen Daten zurückkehren können und den p- Wert wirklich anpassen möchten , können Sie ihn zwar mit der Anzahl der Tests multiplizieren, aber ich verstehe nicht, warum dies etwas mit der Größe von list2 zu tun haben sollte. Es wäre sinnvoller, die Gesamtzahl der in beiden Studien durchgeführten Tests (dh das Zweifache der Grundgesamtheit) anzupassen. Dies wird jedoch brutal sein.

Um p- Werte in R anzupassen , können Sie verwenden p.adjust(p), wobei pein Vektor von p- Werten ist.

p.adjust(p, method="bonferroni") # Bonferroni method, simple multiplication
p.adjust(p, method="holm") # Holm-Bonferroni method, more powerful than Bonferroni
p.adjust(p, method="BH") # Benjamini-Hochberg

Wie in der Hilfedatei angegeben, gibt es keinen Grund, Holm-Bonferroni nicht über Bonferroni zu verwenden, da es in jedem Fall eine starke Kontrolle über die familienbezogene Fehlerrate bietet, aber leistungsfähiger ist. Benjamini-Hochberg kontrolliert die Falschentdeckungsrate, was ein weniger strenges Kriterium ist.


Nach dem Kommentar unten bearbeitet:

Je mehr ich über das Problem nachdenke, desto mehr denke ich, dass eine Korrektur für mehrere Vergleiche in dieser Situation unnötig und unangemessen ist. Hier setzt die Vorstellung einer „Familie“ von Hypothesen an. Ihr letzter Test ist nicht ganz mit allen früheren Tests vergleichbar, es besteht kein Risiko, „vom Zufall zu profitieren“ oder signifikante Ergebnisse zu erzielen, es gibt nur einen Test von Interesse und es ist legitim, die normale Fehlerstufe für diesen zu verwenden.

Selbst wenn Sie die vielen zuvor durchgeführten Tests aggressiv korrigieren, würden Sie das Hauptproblem nicht direkt ansprechen, nämlich die Tatsache, dass einige der Gene in beiden Listen möglicherweise fälschlicherweise als unterschiedlich exprimiert erkannt wurden. Die früheren Testergebnisse bleiben erhalten, und wenn Sie diese Ergebnisse interpretieren und gleichzeitig die familienbezogene Fehlerrate steuern möchten, müssen Sie auch alle korrigieren.

Wenn die Nullhypothese jedoch wirklich für alle Gene gilt, wäre jedes signifikante Ergebnis falsch positiv und Sie würden nicht erwarten, dass dasselbe Gen in der nächsten Probe erneut markiert wird. Eine Überlappung zwischen beiden Listen würde daher nur zufällig erfolgen, und genau dies testet der auf der hypergeometrischen Verteilung basierende Test. Selbst wenn die Liste der Gene vollständig ist, ist das Ergebnis dieses letzten Tests sicher. Intuitiv scheint alles dazwischen (eine Mischung aus wahren und falschen Hypothesen) auch in Ordnung zu sein.

Vielleicht könnte jemand mit mehr Erfahrung auf diesem Gebiet abwägen, aber ich denke, eine Anpassung wäre nur notwendig, wenn Sie die Gesamtzahl der nachgewiesenen Gene vergleichen oder herausfinden möchten, welche unterschiedlich exprimiert werden, dh wenn Sie die Tausenden von Individuen interpretieren möchten Tests in jeder Studie durchgeführt.

Gala
quelle
Vielen Dank für die ausführliche Antwort. Grundsätzlich versuche ich genau das zu tun, was Sie im dritten Absatz beschreiben, dh den p-Wert anzupassen, ohne zu den ursprünglichen Daten zurückzukehren. In diesem hypothetischen Fall würde ich nach Multiplikation mit totalPop mal 2 immer noch einen p-Wert <E-07 erhalten (wenn ich Sie richtig verstanden hätte). Aber ich kann sehen, wie es für ein reales Szenario brutal werden kann. Gibt es eine ähnlich einfache Anpassung für einen einzelnen p-Wert basierend auf Holm-Bonferroni- oder Benjamini-Hochberg-Korrekturen? Hoffe die Frage macht Sinn. Und entschuldigen Sie die Lesbarkeit, ich kann die Zeilenumbrüche nicht herausfinden.
Holm-Bonferroni und Benjamini-Hochberg benötigen den ursprünglichen p- Wert, so dass dies bereits nicht in Frage kommt.
Gala
Das ist sehr interessant. Mein Beispiel basiert lose auf dem Artikel von clinexprheumatol.org/article.asp?a=5537, in dem die Autoren die Bonferroni-Korrektur verwendeten. Sie wendeten den hypergeometrischen Test an, um die Bedeutung der Überlappung von Gensätzen basierend auf diesem Artikel abzuschätzen : ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4463058 . Letzteres diskutiert überhaupt nicht die Notwendigkeit mehrerer Tests. Es scheint also, dass die Jury immer noch nicht da ist und Ihre Argumentation sehr viel Sinn macht. Vielleicht denke ich in diesem Fall zu viel über Mehrfachtests nach.
1

Sie müssen den p-Wert für Ihren einzelnen Überlappungstest nicht korrigieren. Nehmen wir jedoch an, Sie waren daran interessiert festzustellen, ob das Medikament Gene auf demselben Weg beeinflusst. Wie würden Sie feststellen, welcher Pfad die meisten Überlappungen aufwies? Angenommen, Sie haben 500 Pathway-Gensätze. Sie führen den hypergeometrischen Satzüberlappungstest 500 Mal durch und ordnen sie nach p-Wert. Da Sie diesen Test 500 Mal durchgeführt haben (oder sogar mehr, je nachdem, wie viele Daten Sie haben), besteht die Möglichkeit, dass Sie zufällig eine gute Punktzahl erzielen (falsch positiv). Dann müssen Sie das korrigieren und eine p-Wert-Anpassung durchführen ... entweder Bonferroni (am konservativsten) oder Benjamini Hochberg.

David
quelle