$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Deze studie past een twee-steekproef Mendeliaanse randomisatie (MR) toe om te beoordelen of genetisch geproxieerde telomeerlengte (TL) causaal invloed heeft op het risico op thyrotoxicose. Er werden alleen gedeïdentificeerde, openbaar beschikbare GWAS-samenvattende statistieken gebruikt, en er werden geen individuele gegevens geraadpleegd. De Institutional Review Board van het Qingdao Gemeentelijk Ziekenhuis heeft vastgesteld dat de analyse is vrijgesteld van verdere beoordeling omdat deze uitsluitend gebaseerd is op openbare samenvattingsgegevens. Alle bijdragende genoombrede associatiestudies verkregen geïnformeerde toestemming en ethische goedkeuringen als onderdeel van hun oorspronkelijke protocollen. De analyse is zo gestructureerd dat confounding en omgekeerde causaliteit worden geminimaliseerd door gebruik te maken van kiemlijnvarianten die met TL geassocieerd zijn als niet-verwarde instrumenten en door gevoeligheidsprocedures te implementeren om pleiotropie, heterogeniteit en de richting van het effect te onderzoeken.
Gegevensbronnen
De blootstellingsdataset voor TL is verkregen van IEU OpenGWAS onder de identificatie ieu-b-4879, bestaande uit ongeveer 472.174 deelnemers van Europese afkomst. De uitkomstdataset voor thyrotoxicose is afkomstig van het FinnGen-consortium, met het eindpunt finn-b-thyROTOXICOSIS van 2021 met 4.142 gevallen en 213.693 controles. Deze bronnen leveren effectieve schattingen en standaardfouten die nodig zijn om SNP-niveau instrumenten te construeren, allelen te harmoniseren en causale effecten te schatten met gevestigde MR-schatters.
Software en computeromgeving
Alle analyses werden uitgevoerd in R (versie 4.3.1). Het belangrijkste analytische pakket was TwoSampleMR (versie 0.5.7), aangevuld met ieugwasr voor programmatische toegang tot GWAS-bronnen, MRPRESSO voor outlierdetectie en vervormingstesten, mr.raps voor robuuste schatting onder zwakke instrumenten en idiosyncratische pleiotropie, RadialMR voor radiale visualisatie, en algemene pakketten waaronder tidyverse en data.table. Sessie-informatie en pakketversies worden naar een bestand geschreven om strikte reproduceerbaarheid te waarborgen.
Kernaannames van Mendeliaanse randomisatie
Het MR-kader gaat ervan uit dat genetische instrumenten sterk geassocieerd zijn met TL, onafhankelijk zijn van factoren die de relatie tussen TL en thyrotoxicose in de war brengen, en de thyrotoxicose alleen via TL beïnvloeden in plaats van via alternatieve routes. Het analyseplan operationalisert deze aannames door de sterkte per variant te kwantificeren, door te testen op onevenwichtige horizontale pleiotropie met intercept-gebaseerde methoden en outlier-screening, door de heterogeniteit tussen varianten te evalueren, en door de richting van het effect van TL-naar-thyrotoxicose te bevestigen met een formele directionele test12.
Instrumentkeuze en kwaliteitscontrole
Genetische instrumenten werden geselecteerd uit de TL GWAS met een genoombrede significantiedrempel van p < 5×10-8. Om onafhankelijkheid te waarborgen werd koppelingsdisequilibrium aangepakt door te klonteren bij r2 = 0,001 binnen een venster van 10.000 kb met Europese referentiegegevens van het 1000 Genomes Project; waar varianten gecorreleerd waren, bleef de variant met de kleinere p-waarde voor associatie met TL behouden. De instrumentsterkte werd voor elke variant samengevat met behulp van de statistiek F_i = \beta_{E,i}^{2}/\mathrm{SE}(\beta_{E,i})^{2} en beoordeeld aan de hand van het conventionele F > 10-criterium13,14. Waar passend werd de Sanderson-Windmeijer-benadering gebruikt om de totale instrumentsterkte over meerdere varianten in een steekproef van grootte N te beschrijven, waarbij K instrumenten de blootstellingsvariantie R^{2}: F_{\mathrm{SW}} = \{[R^{2}/(1-R^{2})]\,(N-K-1)\}/K 15. Ambiguïge palindromische varianten met alleelfrequenties rond 0,5 werden uitgesloten, tenzij allelfrequentie-informatie een ondubbelzinnige uitlijning toeliet.
Harmonisering
Voor elk instrument werd de overeenkomstige associatie met thyrotoxicose uit FinnGen geëxtraheerd en zo uitgelijnd dat de effectgroottes hetzelfde effectallel vertegenwoordigen over blootstelling en uitkomst. Harmonisering verwijderde allelmismatches, corrigeerde strengproblemen en sloot palindromische SNP's met onopgeloste ambiguïteit uit, waardoor een dataset werd opgeleverd die geschikt was voor de constructie van geldige Wald-ratio's.
Primaire causale schatting
De primaire analyse gebruikte de inverse variantie-gewogen (IVW) schatter om SNP-specifieke Wald-ratio's te meta-analyseren tot een gepoold causaal effect16. Schattingen worden gerapporteerd als odds ratio's per één standaarddeviatieverhoging in TL, met 95% betrouwbaarheidsintervallen afgeleid onder fixed- en random-effects modellen. De modelkeuze werd geleid door heterogeniteitsdiagnostiek, en beide specificaties worden gepresenteerd om robuuste interpretatie te vergemakkelijken.
Gevoeligheidsanalyses en robuustheidscontroles
Robuustheid werd beoordeeld met MR-Egger-regressie met een interceptterm om te testen op ongebalanceerde directionele pleiotropie, maximum likelihood-schatting om de efficiëntie onder homogeniteit te verbeteren en meetfouten te beperken, MR-PRESSO om een globale outliertest uit te voeren en vervorming en uitschieter-gecorrigeerde effecten te schatten, en MR-RAPS om schattingen te bieden die bestand zijn tegen zwakke instrumenten en idiosyncratische pleiotropie17. Tussen-variant heterogeniteit werd gekwantificeerd met behulp van Cochran's Q-statistiek onder het IVW-kader18. De richting van het effect werd onderzocht met de Steiger-test, die het aandeel variantie dat wordt verklaard in blootstelling en uitkomst vergelijkt om te bepalen of de gegevens beter compatibel zijn met TL die thyrotoxicose veroorzaakt in plaats van omgekeerd. De MR-Egger-interceptie werd gebruikt als formele test voor directionele pleiotropie. Leave-one-out-analyses werden geïnspecteerd om te verzekeren dat de algehele associatie niet door één enkele variant werd veroorzaakt.
Omgekeerde Mendeliaanse randomisatie
Om mogelijke omgekeerde causaliteit te onderzoeken, werd de analytische pijplijn herhaald met thyrotoxicose als blootstelling en TL als uitkomst. Dezelfde instrumentselectiecriteria, harmonisatieprocedures, IVW-primaire schatter en gevoeligheidsanalyses werden toegepast zodat conclusies over richting binnen een identiek causaal kader worden getrokken.
Meerdere testen, stroom en rapportage
De primaire hypothesetest betreft de IVW-schatter voor het effect van TL op thyrotoxicose. Gevoeligheidsschatters en diagnostische tests worden geïnterpreteerd als ondersteunend bewijs; p-waarden worden in wetenschappelijke notatie gerapporteerd voor duidelijkheid, en conclusies benadrukken consistentie tussen methoden in plaats van geïsoleerde significantiedrempels. Samenvattingen van instrumentsterkte en het verklaarde variantieproportie informeren de benaderende kracht onder standaard niet-centraliteitsformuleringen, waarbij wordt erkend dat kracht afhangt van steekproefgrootte, instrumentsterkte en werkelijke effectgrootte.
Computationele reproduceerbaarheid en exacte commando's
Reproduceerbaarheid wordt gegarandeerd door de volledige reeks R-commando's te bieden die instrumentselectie, uitkomstextractie, harmonisatie, primaire en gevoeligheidsanalyses, reverse MR, diagnostische outputs en export van analyseklare bestanden recreëren. Het script schrijft stabiele, door mensen leesbare CSV-bestanden die overeenkomen met de instrumentenlijst, de geharmoniseerde dataset en de samenvatting van MR-schattingen en diagnostiek.
# R 4.3.1; TwoSampleMR 0.5.7
# Optionele installatie:
# install.packages(c("TwoSampleMR","ieugwasr","MRPRESSO","mr.raps",
"RadialMR","tidyverse","data.table"))
bibliotheek(TwoSampleMR)
Bibliotheek(IEUGWASR)
bibliotheek (MRPRESSO)
Bibliotheek (Mr. Raps)
bibliotheek(RadialMR)
bibliotheek (Tidyverse)
library(data.table)
# Blootstelling: telomeerlengte (IEU OpenGWAS)
exposure_id <- "IEU-B-4879"
# Uitkomst: FinnGen 2021 thyrotoxicose-eindpunt gebruikt voor de gerapporteerde analyses
outcome_id <- "finn-b-thyROTOXICOSE"
# Instrumentselectie met genoombrede drempel en strenge LD-klontering
exp <- extract_instruments(uitkomsten = exposure_id, p1 = 5e-8, klont = WAAR, r2 = 0,001, kb = 10000)
exp$F_stat <- (exp$beta.exposure^2) / (exp$se.exposure^2)
fwrite(exp, "S1_instruments_TL.csv")
# Uitkomstextractie en harmonisatie
uit <- extract_outcome_data(SNPS = exp$SNP, uitkomsten = outcome_id)
dat <- harmonise_data(exp, uit, actie = 2)
fwrite(dat, "S2_harmonised_TL_vs_thyrotoxicosis.csv")
# Primaire MR- en gevoeligheidsschatters
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) # Cochran's Q
Pleio <- mr_pleiotropy_test(dat) # Egger onderschepping
steiger <- directionality_test(dat) # Steiger directionaliteit
# MR-PRESSO globale en door uitschieters gecorrigeerde schattingen
mrpresso <- mr_presso(BetaOutcome = "beta.outcome", BetaExposure = "beta.exposure",
SdOutcome = "se.uitkomst", SdBlootstelling = "se.exposure",
OUTLIERtest = WAAR, DISTORTIONtest = WAAR,
data = dat, NbDistribution = 1000, SignifThreshold = 0,05) #
# Omgekeerde MR: thyrotoxicose (blootstelling) -> TL (uitkomst)
rev_exp <- extract_instruments(uitkomsten = outcome_id, p1 = 5e-8, klont = WAAR, r2 = 0,001, kb = 10000)
rev_out <- extract_outcome_data(SNPS = rev_exp$SNP, uitkomsten = exposure_id)
rev_dat <- harmonise_data(rev_exp, rev_out, actie = 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)
# Exporteert voor archiveren en figuur/tabel generatie
write.csv(bind_rows(res), "S3_mr_results_primary.csv", rij.namen = ONJUIST)
write.csv(het, "S3_mr_heterogeneity.csv", rij.namen = ONWAARDIG)
write.csv(pleio, "S3_mr_pleiotropy_egger.csv",rij.namen = ONWAARDIG)
write.csv(steiger, "S3_mr_steiger.csv", rij.namen = ONJUIST)
write.csv(bind_rows(rev_res), "S3_reverse_mr_results.csv", rij.namen = ONJUIST)
write.csv(rev_het, "S3_reverse_heterogeneity.csv", rij.namen = ONJUIST)
write.csv(rev_pleio, "S3_reverse_pleiotropy_egger.csv", rij.namen = ONJUIST)
write.csv(rev_steiger, "S3_reverse_steiger.csv", rij.namen = ONJUIST)