Calcul de la probabilité de chevauchement de la liste de gènes entre une séquence d'ARN et un ensemble de données de puce ChIP

13

J'espère que quelqu'un sur ces forums pourra m'aider avec ce problème de base dans les études d'expression génique.

J'ai fait un séquençage profond d'un tissu expérimental et d'un tissu témoin. J'ai ensuite obtenu des valeurs d'enrichissement par repli des gènes dans l'échantillon expérimental par rapport au contrôle. Le génome de référence compte environ 15 000 gènes. 3 000 des 15 000 gènes sont enrichis au-dessus d'un certain seuil dans mon échantillon d'intérêt par rapport au contrôle.

Donc: A = population totale de gènes = 15 000 B = sous-population enrichie en ARN-Seq = 3 000.

Lors d'une précédente expérience sur puce ChIP, j'ai trouvé 400 gènes enrichis par puce ChIP. Sur les 400 gènes de la puce ChIP, 100 gènes font partie du groupe de 3 000 transcrits ARN-Seq enrichis.

Donc: C = nombre total de gènes enrichis par puce ChIP = 400.

Quelle est la probabilité que mes 100 gènes de puce ChIP soient enrichis par RNA-Seq uniquement par hasard? En d'autres termes, quelle est la façon la plus prudente de calculer si mon chevauchement observé entre B et C (100 gènes) est meilleur que celui obtenu par le seul hasard? D'après ce que j'ai lu jusqu'à présent, la meilleure façon de tester cela est d'utiliser la distribution hypergéométrique.

J'ai utilisé une calculatrice en ligne (stattrek.com) pour mettre en place un test de distribution hypergéométrique avec les paramètres suivants: - taille de la pop = 15 000 - # de succès dans la population = 3 000 - taille de l'échantillon = 400, - # de succès dans l'échantillon = 100. J'obtiens ce qui suit pour la probabilité hypergéométrique P (x = 100) = 0,00224050636447747

Le nombre réel de gènes se chevauchant entre B et C = 100. Est-ce mieux que par hasard seul? Il ne semble pas que ce soit si la chance d'enrichir un gène est de 1: 5 (3 000 sur 15 000). C'est pourquoi je ne comprends pas pourquoi mon P (x = 100) que j'ai calculé ci-dessus est de 0,0022. Cela équivaut à 0,2% de chance que le chevauchement se produise par hasard. Cela ne devrait-il pas être beaucoup plus élevé?

Si j'ai échantillonné 400 gènes aléatoires sur la grande liste de 15 000, alors 80 de ces gènes devraient être enrichis par le seul hasard (1: 5). Le nombre de gènes qui se chevauchent réellement est de 100, donc c'est juste un peu mieux que par hasard.

J'ai également essayé de trouver une solution en utilisant les fonctions dhyper ou phyper dans R (en utilisant ce que j'ai vu dans un autre post): A = tous les gènes du génome (15 000) B = gènes enrichis en ARN-Seq (3 000) C = puce -chip enriched genes (400) Voici l'entrée / sortie R (adaptée d'un précédent post d'échange de pile):

> totalpop <- 15000    
> sample1 <- 3000    
> sample2 <- 400    
> dhyper(0:2, sample1, totalpop-sample1, sample2)    
[1] 4.431784e-40 4.584209e-38 2.364018e-36    
> phyper(-1:2, sample1, totalpop-sample1, sample2)    
[1] 0.000000e+00 4.431784e-40 4.628526e-38 2.410304e-36    

Je ne sais pas comment interpréter ces chiffres. Je crois que 2.36e-36 est la probabilité d'obtenir un chevauchement complet entre B et C par hasard seulement? Mais cela n'a aucun sens, car cette probabilité est beaucoup plus proche de 1: 5. Si je commence avec 15 000 gènes, 3 000 seront enrichis. De même, si je commence avec 400 gènes de puce ChIP, 80 d'entre eux devraient être enrichis dans l'ARN-Seq seul en raison des chances d'enrichissement de 1: 5 dans cet ensemble de données.

Quelle est la bonne façon de calculer la valeur de p, selon la distribution hypergéométrique, pour le chevauchement de B et C?

stlandroidfan
la source

Réponses:

15

Vous êtes proche, avec votre utilisation de dhyperet phyper, mais je ne comprends pas d'où 0:2et -1:2viennent.

La valeur de p que vous voulez est la probabilité d'obtenir 100 boules blanches ou plus dans un échantillon de taille 400 à partir d'une urne avec 3000 boules blanches et 12000 boules noires. Voici quatre façons de le calculer.

sum(dhyper(100:400, 3000, 12000, 400))
1 - sum(dhyper(0:99, 3000, 12000, 400))
phyper(99, 3000, 12000, 400, lower.tail=FALSE)
1-phyper(99, 3000, 12000, 400)

Cela donne 0,0078.

dhyper(x, m, n, k)donne la probabilité de dessiner exactement x. Dans la première ligne, nous résumons les probabilités pour 100 - 400; dans la deuxième ligne, nous prenons 1 moins la somme des probabilités de 0 - 99.

phyper(x, m, n, k)donne la probabilité d'obtenir xou moins, phyper(x, m, n, k)est donc identique à sum(dhyper(0:x, m, n, k)).

C'est lower.tail=FALSEun peu déroutant. phyper(x, m, n, k, lower.tail=FALSE)est la même chose que 1-phyper(x, m, n, k)la probabilité de x+1ou plus. [Je ne m'en souviens jamais et je dois donc toujours vérifier.]

max(dhyper(0:400, 3000, 12000, 400))

Voici une image de la distribution hypergéométrique dans ce cas. Vous pouvez voir qu'il est centré sur 80 (20% de 400) et que 100 est assez loin dans la queue droite. entrez la description de l'image ici

Karl
la source
Merci beaucoup pour votre aide. Je comprends la logique de votre réponse. Mais comment expliquer à un groupe de biologistes que c'est plus que le chevauchement observé en raison du hasard seul? Ils diront que j'ai une chance de chevauchement de 1: 5. Mon chevauchement est-il significatif parce que dans un échantillon de 400 boules (sur un total de 15 000 boules), ma chance d'obtenir une boule blanche est en fait inférieure à 1: 5 parce que j'échantillonne une population plus petite (pas la totalité des 15 000)? Cela n'a pas de sens car même si 400 <15 000, il existe toujours un rapport 1: 5 de blanc: noir. Est-ce que ça a du sens?
stlandroidfan
@stlandroidfan - Je ne comprends pas ce que vous trouvez déroutant. J'ai ajouté un chiffre; est-ce que cela aide?
Karl
0

Regardez-le de cette façon .. Si vous l'avez supposé comme un binôme, ce qui n'est peut-être pas correct, mais il devrait être assez approximatif .. votre sigma ^ 2 est .8 * .2 * 400 = 64, alors sigma = 8. Donc de 80 à 100, vous avez dépassé 2,5 écarts-types .. C'est assez important .. Il devrait avoir une petite valeur p.

Adam
la source
Merci pour votre réponse. Les distributions hypergéométriques ont tendance à être utilisées plus fréquemment pour les chevauchements de listes de gènes de ce que j'ai vu dans la littérature. La question est quelle est la probabilité d'obtenir 100 boules blanches ou plus dans un échantillon de taille 400 à partir d'une urne avec 3000 boules blanches et 12000 boules noires? Je pense que je suis toujours perplexe sur la façon d'expliquer cela à un tas de biologistes? La façon dont ils le voient est de 3000: 12000 est une chance de 1: 5 de blanc: noir. Donc, dans un échantillon de 400, 80 devraient être blancs. Alors, comment se fait-il que la probabilité d'obtenir 100 ou plus soit tellement inférieure à 20% (1 sur 5)?
stlandroidfan