Correzione dei valori p per più test in cui i test sono correlati (genetica)


24

Ho valori di p da molti test e vorrei sapere se in realtà c'è qualcosa di significativo dopo aver corretto per più test. La complicazione: i miei test non sono indipendenti. Il metodo a cui sto pensando (una variante del metodo del prodotto di Fisher, Zaykin et al., Genet Epidemiol , 2002) necessita della correlazione tra i valori di p.

Al fine di stimare questa correlazione, sto attualmente pensando ai casi di bootstrap, eseguendo le analisi e correlando i vettori risultanti dei valori di p. Qualcuno ha un'idea migliore? O anche un'idea migliore per il mio problema originale (correzione per test multipli in test correlati)?

Contesto: sto logisticamente regredendo se i miei soggetti soffrono o meno di una particolare malattia nell'interazione tra il loro genotipo (AA, Aa o aa) e una covariata. Tuttavia, il genotipo è in realtà un sacco (30-250) di polimorfismi a singolo nucleotide (SNP), che non sono certamente indipendenti ma in Linkage Disequilibrium.

Risposte:


29

Questo è in realtà un argomento caldo negli studi di analisi del Genomewide (GWAS)! Non sono sicuro che il metodo che stai pensando sia il più appropriato in questo contesto. Il pooling di valori p è stato descritto da alcuni autori, ma in un contesto diverso (studi di replicazione o meta-analisi, vedi ad es. (1) per una revisione recente). La combinazione di valori p SNP con il metodo di Fisher viene generalmente utilizzata quando si desidera derivare un valore p unico per un dato gene; ciò consente di lavorare a livello genico e ridurre la quantità di dimensionalità dei test successivi, ma come hai detto, la non indipendenza tra i marker (derivanti da colocalizzazione spaziale o squilibrio del legame, LD) introduce un pregiudizio. Alternative più potenti si basano su procedure di ricampionamento,

La mia principale preoccupazione con il bootstraping (con la sostituzione) sarebbe che stai introducendo una forma artificiale di relazione, o in altre parole crei gemelli virtuali, alterando quindi l'equilibrio di Hardy-Weinberg (ma anche la frequenza minima dell'allele e la frequenza di chiamata). Questo non sarebbe il caso di un approccio di permutazione in cui permetti le singole etichette e mantieni i dati di genotipizzazione così come sono. Di solito, il software plink può fornire valori p grezzi e permutati, sebbene utilizzi (per impostazione predefinita) una strategia di test adattivo con una finestra scorrevole che consente di interrompere l'esecuzione di tutte le permutazioni (diciamo 1000 per SNP) se sembra che SNP in la considerazione non è "interessante"; ha anche l'opzione per il calcolo di maxT, consultare la guida in linea .

Ma dato il basso numero di SNP che stai prendendo in considerazione, suggerirei di fare affidamento su test basati su FDR o maxT come implementati nel pacchetto R multtest (vedi mt.maxT), ma la guida definitiva al ricampionamento delle strategie per l'applicazione genomica è Multiple Testing Procedures with Applications to Genomica , da Dudoit e van der Laan (Springer, 2008). Vedi anche il libro di Andrea Foulkes sulla genetica con R , che è stato recensito nel JSS. Ha un ottimo materiale su più procedure di test.

Ulteriori note

Molti autori hanno sottolineato il fatto che semplici metodi di correzione di test multipli come Bonferroni o Sidak sono troppo rigorosi per regolare i risultati per i singoli SNP. Inoltre, nessuno di questi metodi tiene conto della correlazione esistente tra SNP a causa della LD che contrassegna la variazione genetica tra le regioni genetiche. Altre alternative sono state proposte, come un derivato del metodo di Holm per il confronto multiplo (3), il modello nascosto di Markov (4), il FDR condizionale o positivo (5) o un suo derivato (6), per citarne alcuni. Le cosiddette statistiche sul gap o finestra scorrevole si sono dimostrate efficaci in alcuni casi, ma troverai una buona recensione in (7) e (8).

Ho anche sentito parlare di metodi che fanno un uso efficace della struttura aplotipica o LD, ad esempio (9), ma non li ho mai usati. Sembrano, tuttavia, più legati alla stima della correlazione tra marcatori, non al valore p come intendevi. Ma in effetti, potresti pensare meglio in termini di struttura di dipendenza tra successive statistiche di test, piuttosto che tra valori p correlati.

Riferimenti

  1. Cantor, RM, Lange, K e Sinsheimer, JS. Dare la priorità ai risultati GWAS: una revisione dei metodi statistici e raccomandazioni per la loro applicazione . Am J Hum Genet. 2010 86 (1): 6–22.
  2. Corley, RP, Zeiger, JS, Crowley, T et al. Associazione di geni candidati con dipendenza da farmaci antisociali negli adolescenti . Dipendenza da droghe e alcol 2008 96: 90–98.
  3. Dalmasso, C, Génin, E e Trégouet DA. Una procedura di Holm ponderata che tiene conto delle frequenze degli alleli negli studi sull'associazione su tutto il genoma . Genetica 2008 180 (1): 697–702.
  4. Wei, Z, Sun, W, Wang, K e Hakonarson, H. Test multipli in studi di associazione a livello del genoma tramite modelli di Markov nascosti . Bioinformatica 2009 25 (21): 2802-2808.
  5. Broberg, P. Una revisione comparativa delle stime della proporzione di geni invariati e del tasso di falsa scoperta . BMC Bioinformatics 2005 6: 199.
  6. Need, AC, Ge, D, Weale, ME, et a. Un'indagine genomica su SNP e CNV nella schizofrenia . PLoS Genet. 2009 5 (2): e1000373.
  7. Han, B, Kang, HM ed Eskin, E. Correzione di prove multiple rapide e accurate e stima della potenza per milioni di marcatori correlati . PLoS Genetics 2009
  8. Liang, Y e Kelemen, A. Progressi statistici e sfide per l'analisi dei dati snp ad alta dimensione correlati nello studio genomico per malattie complesse . Statistiche Surveys 2008 2: 43–60. - la migliore recensione recente di sempre
  9. Nyholt, DR. Una correzione semplice per test multipli per polimorfismi a singolo nucleotide nel disequilibrio del legame tra loro . Am J Hum Genet. 2004 74 (4): 765–769.
  10. Nicodemo, KK, Liu, W, Chase, GA, Tsai, YY e Fallin, MD. Confronto dell'errore di tipo I per correzioni di test multipli in grandi studi di polimorfismo a singolo nucleotide utilizzando componenti principali rispetto agli algoritmi di blocco degli aplotipi . BMC Genetics 2005; 6 (Suppl 1): S78.
  11. Peng, Q, Zhao, J e Xue, F. Test dell'intervallo di confidenza bootstrap basato su PCA per l'associazione malattia genetica che coinvolge più SNP . BMC Genetics 2010, 11: 6
  12. Li, M, Romero, R, Fu, WJ e Cui, Y (2010). Mappatura delle interazioni dell'aplotipo-aplotipo con LASSO adattivo . BMC Genetics 2010, 11:79 - sebbene non direttamente correlato alla domanda, copre l'analisi basata sull'aplotipo / effetto epistatico

1
Wow, grazie per essere andato a tutti questi problemi! Capisco i tuoi dubbi sul bootstrap e sono quasi convinto. Penso che la mia principale complicazione sia la covariata numerica che ho che sarà certamente necessaria (da sola o in interazione con il genotipo), e che sembra escludere mt.maxT e plink, anche se potrei aver bisogno di rivedere il plink. Ma certamente analizzerò i riferimenti che hai fornito!
S. Kolassa - Ripristina Monica il

Puoi sempre lavorare con i residui del tuo GLM per cavalcare le tue covariate, anche se hai perso un Df che sarà difficile da spiegare o reintrodurre in seguito (ad es. Per calcolare il valore p).
chl

Hm, residui della mia regressione logistica? Sarebbe legittimo?
S. Kolassa - Ripristina Monica il

Si perché no? Non è raro rimuovere la varianza spiegata da altre covariate e quindi passare all'analisi di 2 ° livello con i dati residualizzati. Spesso è più veloce (ad esempio, il plink è piuttosto lento con le covariate categoriche, mentre va bene con quelle continue; snpMatrixo semplicemente glm()funziona abbastanza meglio su questo punto ma non è possibile incorporare molti SNP in glm()...); il problema è che ottenere il valore p corretto alla fine della seconda analisi è piuttosto complicato (perché è necessario tenere conto dei parametri già stimati).
chl

Per un'illustrazione di come le persone lavorano con i residui, vedere ad esempio p. 466 di Heck et al. Lo studio di 17 geni candidati per i tratti della personalità conferma gli effetti del gene HTR2A sulla ricerca di novità. Geni, cervello e comportamento (2009) vol. 8 (4) pagg. 464-72
chl

2

Utilizzando un metodo come bonferroni va bene, il problema è che se hai molti test non è probabile che trovi molte "scoperte".

Puoi andare con l'approccio FDR per i test dipendenti (vedi qui per i dettagli ) il problema è che non sono sicuro se puoi dire in anticipo se le tue correlazioni sono tutte positive.

In R puoi fare un semplice FDR con p.adjust. Per cose più complesse darei un'occhiata al multcomp , ma non l'ho esaminato per cercare soluzioni in caso di dipendenze.

In bocca al lupo.


1
Ciao Tal, grazie! Bonferroni non mi sembra appropriato - se uno dei miei SNP è causale e altri sono associati ad esso, dovrebbe esserci un segnale e Bonferroni mi è sempre sembrato troppo conservativo (di solito preferisco la correzione graduale di Holm). L'FDR a cui ti colleghi e p.adjust non considerano l' evidenza combinata (e l'FDR mi richiede ancora di capire la correlazione dei miei test, la domanda originale). multcomp può aiutare, anche se a prima vista sembra che si occupi di più di più test all'interno di un singolo modello, mentre io ho più modelli. Scaverò più a fondo ...
S. Kolassa - Ripristina Monica il

Ciao Stephan. Capisco, scusa per non aver aiutato di più. In bocca al lupo! Tal
Tal Galili,

Ciao Stephan, penso ancora che tu possa ancora usare il metodo = BY (per la procedura Yekuteli di Benjamini Hochberg) in p. Aggiusta in R, come indicato da Tal. Sicuramente, l'uso di Bonferroni può essere conservativo.
suncoolsu,

suncoolsu, penso che questo metodo funzioni solo quando la correlazione è positiva (non negativa) tra le variabili. Saluti.
Tal Galili,

2

Penso che vengano utilizzati modelli normali multivariati per modellare i valori p correlati e per ottenere il giusto tipo di correzioni multiple di test. Correzione di test multipli rapidi e accurati e stima della potenza per milioni di marcatori correlati. PLoS Genet 2009 ne parla e fornisce anche altri riferimenti. Sembra simile a quello di cui stavi parlando, ma penso che oltre a ottenere una correzione del valore p globale più accurata, la conoscenza della struttura LD dovrebbe anche essere usata per rimuovere i falsi positivi derivanti da marcatori correlati a marcatori causali.


2

Sto cercando una soluzione funzionante per lo stesso problema. Il migliore che ho trovato è il Null Unrestricted Bootstrap introdotto da Foulkes Andrea nel suo libro Applied Statistical Genetics con R (2009) . Contrariamente a tutti gli altri articoli e libri, considera specificamente le regressioni. Oltre ad altri metodi, consiglia il Null Unrestricted Bootstrap, che è adatto laddove non è possibile calcolare facilmente i residui (come nel mio caso, in cui modello molte regressioni indipendenti (fondamentalmente semplici correlazioni), ognuna con la stessa variabile di risposta e lo snip diverso). Ho trovato questo metodo anche chiamato il metodo maxT .

> attach(fms)
> Actn3Bin <- > data.frame(actn3_r577x!="TT",actn3_rs540874!="AA",actn3_rs1815739!="TT",actn3_1671064!="GG")
> Mod <- summary(lm(NDRM.CH~.,data=Actn3Bin))
> CoefObs <- as.vector(Mod$coefficients[-1,1]) 
> B <-1000
> TestStatBoot <- matrix(nrow=B,ncol=NSnps)
> for (i in 1:B){
+    SampID <- sample(1:Nobs,size=Nobs, replace=T)
+    Ynew <- NDRM.CH[!MissDat][SampID]
+    Xnew <- Actn3BinC[SampID,]
+    CoefBoot <- summary(lm(Ynew~.,data=Xnew))$coefficients[-1,1]
+    SEBoot <- summary(lm(Ynew~.,data=Xnew))$coefficients[-1,2]
+    if (length(CoefBoot)==length(CoefObs)){
+       TestStatBoot[i,] <- (CoefBoot-CoefObs)/SEBoot
+    }
+ }

TestStatBootT*^Tcrit.α=0.05T*^Tcrit.

ioTio^>Tcrit.

L'ultimo passaggio può essere realizzato con questo codice

p.value<-0.05 # The target alpha threshold
digits<-1000000
library(gtools) # for binsearch

pValueFun<-function(cj)
{
   mean(apply(abs(TestStatBoot)>cj/digits,1,sum)>=1,na.rm=T)
}
ans<-binsearch(pValueFun,c(0.5*digits,100*digits),target=p.value)
p.level<-(1-pnorm(q=ans$where[[1]]/digits))*2 #two-sided.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.