$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Questo studio applica un disegno di randomizzazione mendeliana (RM) a due campioni per valutare se la lunghezza dei telomeri (TL) geneticamente proxy influenzi causalmente il rischio di tirotossicosi. Sono state utilizzate solo statistiche riassuntive GWAS deidentificate e pubblicamente disponibili, e non sono stati accessibili dati a livello individuale. Il Consiglio di Revisione Istituzionale dell'Ospedale Municipale di Qingdao ha stabilito che l'analisi è esente da ulteriori revisioni perché si basa esclusivamente su dati pubblici riassuntivi. Tutti gli studi di associazione genomica a livello genomico che hanno contribuito hanno ottenuto consenso informato e approvazioni etiche come parte dei loro protocolli originali. L'analisi è strutturata per minimizzare la confusione e la causalità inversa utilizzando varianti germinali associate alla TL come strumenti non confusi e implementando procedure di sensibilità per esaminare la pleiotropia, l'eterogeneità e la direzione dell'effetto.
Fonti dati
Il dataset di esposizione per TL è stato ottenuto da IEU OpenGWAS con l'identificativo ieu-b-4879, comprendendo circa 472.174 partecipanti di origine europea. Il dataset degli esiti per la tirotossicosi è stato estratto dal consorzio FinnGen, utilizzando l'endpoint finn-b-thyROTOXICOSIS del 2021 con 4.142 casi e 213.693 controlli. Queste risorse forniscono stime efficaci e errori standard necessari per costruire strumenti a livello SNP, armonizzare alleli e stimare effetti causali con stimatori MR consolidati.
Software e ambiente informatico
Tutte le analisi sono state condotte in R (versione 4.3.1). Il pacchetto analitico principale era TwoSampleMR (versione 0.5.7), integrato da ieugwasr per l'accesso programmatico alle risorse GIS, MRPRESSO per il rilevamento di outlier e i test di distorsione, mr.raps per la stima robusta sotto strumenti deboli e pleiotropia idiosincratica, RadialMR per la visualizzazione radiale e pacchetti generici tra cui tidyverse e data.table. Le informazioni di sessione e le versioni dei pacchetti vengono scritte su un file per garantire una riproducibilità rigorosa.
Assunzioni fondamentali della randomizzazione mendeliana
Il quadro della RM presuppone che gli strumenti genetici siano fortemente associati alla TL, siano indipendenti dai fattori che confondono la relazione tra TL e tirotossicosi e influenzino la tirotossicosi solo attraverso la TL piuttosto che tramite vie alternative. Il piano di analisi operativizza queste ipotesi quantificando la forza per variante, testando la pleiotropia orizzontale sbilanciata usando metodi basati su intercettazioni e screening degli outlieri, valutando l'eterogeneità tra varianti e confermando la direzione d'effetto tra TL e tirotossicosi con un test di direzionalitàformale 12.
Selezione degli strumenti e controllo qualità
Gli strumenti genetici sono stati selezionati dal GWAS TL con una soglia di significatività genomica di p < 5×10-8. Per garantire l'indipendenza, il disequilibrio di collegamento è stato affrontato raggruppando a r2 = 0,001 entro una finestra di 10.000 kb utilizzando dati di riferimento europei del 1000 Genomes Project; quando le varianti erano correlate, la variante con il valore p più piccolo per associazione con TL veniva mantenuta. La forza degli strumenti è stata riassunta per ogni variante usando la statistica F_i = \beta_{E,i}^{2}/\mathrm{SE}(\beta_{E,i})^{2} e giudicata secondo il criterio convenzionale F > 1013,14. Quando appropriato, l'approssimazione di Sanderson-Windmeijer è stata citata per descrivere la potenza aggregata degli strumenti attraverso molteplici varianti in un campione di dimensione N, con K strumenti che spiegano la varianza di esposizione R^{2}: F_{\mathrm{SW}} = \{[R^{2}/(1-R^{2})]\,(N-K-1)\}/K 15. Le varianti palindromiche ambigue con frequenze alleliche vicine a 0,5 sono state escluse a meno che l'informazione sulla frequenza allelica non permettesse un allineamento univoco.
Armonizzazione
Per ogni strumento, l'associazione corrispondente con la tirotossicosi è stata estrata da FinnGen e allineata in modo che le dimensioni dell'effetto rappresentino lo stesso allele d'effetto sia nell'esposizione che nell'esito. L'armonizzazione ha rimosso le disallineazioni alleche, corretto problemi di filamento ed escluso SNP palindromici con ambiguità irrisolta, produendo un dataset adatto alla costruzione valida del rapporto di Wald.
Stima causale primaria
L'analisi primaria ha utilizzato lo stimatore ponderato per varianza inversa (IVW) per meta-analizzare i rapporti di Wald specifici per SNP in un effetto causaleaggregato 16. Le stime sono riportate come odds ratios per un aumento di deviazione standard in TL, con intervalli di confidenza del 95% derivati in modelli a effetti fissi e casuali. La scelta del modello è stata guidata da diagnostiche di eterogeneità, e entrambe le specifiche sono presentate per facilitare un'interpretazione robusta.
Analisi di sensibilità e controlli di robustezza
La robustezza è stata valutata utilizzando la regressione MR-Egger con termine di intercetta per testare la pleiotropia direzionale sbilanciata, la stima della massima verosimiglianza per migliorare l'efficienza sotto omogeneità mitigando l'errore di misura, MR-PRESSO per eseguire un test globale di outlier e stimare effetti corretti da distorsioni e outlier, e MR-RAPS per fornire stime resilienti a strumenti deboli e pleiotropiaidiosincratica 17. L'eterogeneità tra varianti è stata quantificata utilizzando la statistica Q di Cochran nell'ambito del quadroIVW 18. La direzione dell'effetto è stata esaminata con il test di Steiger, che confronta la proporzione di varianza spiegata nell'esposizione e nell'esito per determinare se i dati siano più compatibili con la TL che causa la tirotossicosi piuttosto che il contrario. L'intercettazione MR-Egger veniva utilizzata come test formale per la pleiotropia direzionale. Sono state ispezionate analisi lascia-uno-fuori per assicurarsi che l'associazione complessiva non fosse guidata da una singola variante.
Randomizzazione Mendeliana Inversa
Per indagare la possibile causalità inversa, la pipeline analitica è stata ripetuta con la tirotossicosi come esposizione e TL come risultato. Sono stati applicati gli stessi criteri di selezione degli strumenti, procedure di armonizzazione, stimatore primario IVW e analisi di sensibilità, così che le conclusioni sulla direzionalità vengano trarre all'interno di un quadro causale identico.
Test multipli, alimentazione e report
Il test di ipotesi principale riguarda lo stimatore IVW per l'effetto della TL sulla tirotossicosi. Gli stimatori di sensibilità e i test diagnostici sono interpretati come prove di supporto; I valori p sono riportati in notazione scientifica per chiarezza, e le conclusioni enfatizzano la coerenza tra i metodi piuttosto che soglie di significatività isolate. I riassunti della forza degli strumenti e la proporzione di varianza spiegata indicano la potenza approssimativa secondo formulazioni standard di non centralità, riconoscendo che la potenza dipende dalla dimensione del campione, dalla forza dello strumento e dalla grandezza dell'effetto reale.
Riproducibilità computazionale e comandi esatti
La riproducibilità è garantita fornendo la sequenza completa di comandi R che ricreano la selezione degli strumenti, l'estrazione degli esiti, l'armonizzazione, le analisi primarie e di sensibilità, la risonanza magnetica inversa, gli output diagnostici e l'esportazione di file pronti per l'analisi. Lo script scrive file CSV stabili e leggibili dall'uomo corrispondenti alla lista degli strumenti, al dataset armonizzato e al riassunto delle stime e diagnostiche della RM.
# R 4.3.1; TwoSampleMR 0.5.7
# Installazione opzionale:
# install.packages(c("TwoSampleMR","ieugwasr", "MRPRESSO", "mr.raps",
"RadialMR","tidyverse", "data.table"))
library(TwoSampleMR)
Biblioteca (ieugwasr)
Biblioteca (MRPRESSO)
Biblioteca (Mr.Raps)
biblioteca (RadialMR)
Biblioteca (Tidyverse)
library(data.table)
# Esposizione: lunghezza dei telomeri (IEU OpenGWAS)
exposure_id <- "IIU-B-4879"
# Risultato: FinnGen 2021 endpoint per la tirotossicosi utilizzato per le analisi riportate
outcome_id <- "finn-b-thyROTOSOSIS"
# Selezione degli strumenti con soglia a livello genomico e stringente aggregazione LD
exp <- extract_instruments(risultati = exposure_id, p1 = 5e-8, gruppo = VERO, r2 = 0,001, kb = 10000)
exp$F_stat <- (exp$beta.exposure^2) / (exp$se.exposure^2)
fwrite(exp, "S1_instruments_TL.csv")
# Estrazione e armonizzazione degli esitosi
out <- extract_outcome_data(SNPS = exp$SNP, risultati = outcome_id)
dat <- harmonise_data(exp, fuori, azione = 2)
fwrite(dat, "S2_harmonised_TL_vs_thyrotoxicosis.csv")
# Stimatori MR primari e di sensibilità
res <- mr(dat, method_list = c("mr_ivw","mr_ivw_fe","mr_egger_regression",
"mr_weighted_median","mr_raps","mr_maxlik"))
het <- mr_heterogeneity(dat) # Q di Cochran
pleio <- mr_pleiotropy_test(dat) # Intercettazione Egger
Steiger <- directionality_test(dat) # Direzionalità Steiger
# Stime globali e corrette per outlier MR-PRESSO
mrpresso <- mr_presso(BetaOutcome = "beta.outcome", BetaExposure = "beta.exposure",
SdOutcome = "se.outcome", SdExposure = "se.exposure",
OUTLIERtest = VERO, DISTORTIONtest = VERO,
data = dat, NbDistribution = 1000, SignifThreshold = 0,05) #
# Risonanza magnetica inversa: tirotossicosi (esposizione) -> TL (esito)
rev_exp <- extract_instruments(risultati = outcome_id, p1 = 5e-8, gruppo = VERO, r2 = 0,001, kb = 10000)
rev_out <- extract_outcome_data(snps = rev_exp$SNP, risultati = exposure_id)
rev_dat <- harmonise_data(rev_exp, rev_out, azione = 2)
rev_res <- mr(rev_dat, method_list = c("mr_ivw","mr_ivw_fe","mr_egger_regression",
"mr_weighted_median","mr_raps","mr_maxlik"))
rev_het <- mr_heterogeneity(rev_dat)
rev_pleio <- mr_pleiotropy_test(rev_dat)
rev_steiger <- directionality_test(rev_dat)
# Esportazioni per l'archiviazione e la generazione di figure/tabelle
write.csv(bind_rows(res), "S3_mr_results_primary.csv", riga.nomi = FALSO)
write.csv(het, "S3_mr_heterogeneity.csv", riga.nomi = FALSO)
write.csv(pleio, "S3_mr_pleiotropy_egger.csv",riga.nomi = FALSO)
write.csv(steiger, "S3_mr_steiger.csv", riga.nomi = FALSO)
write.csv(bind_rows(rev_res), "S3_reverse_mr_results.csv", riga.nomi = FALSO)
write.csv(rev_het, "S3_reverse_heterogeneity.csv", riga.nomi = FALSO)
write.csv(rev_pleio, "S3_reverse_pleiotropy_egger.csv", riga.nomi = FALSO)
write.csv(rev_steiger, "S3_reverse_steiger.csv", riga.nomi = FALSO)