Muitos alunos perguntaram sobre randomização mendeliana, tentarei resolver novamente, espero que seja útil para todos, primeiro olhe para a imagem abaixo por 1 minuto, olhe fixamente para ela e imprima a imagem em minha mente:
The above picture is the model diagram of instrumental variables (if you don’t know about instrumental variables, please refer to the previous article), let’s make one point clear: when we were doing Mendel, we were interested in the relationship between x and y, that is, the small b , but it is definitely wrong for us to directly run the regression of x on y, because there are many Us, so we use the instrumental variable G (our previous article on instrumental variables has a detailed explanation, please refer to it yourself) to estimate the small b we are interested in.
Agora existe uma variável instrumental natural e boa G, que é nossa variável genética. Neste momento, temos a figura acima, e reiteramos novamente: o valor que nos interessa, e esperamos obter uma estimativa precisa no final, é pequeno b. De acordo com a figura acima, devemos ter a relação entre GY e GX .
Para que a fórmula acima funcione, precisamos saber a relação entre GY e GX.
Mas nosso GY, ou seja, a relação entre genes e resultados, já foi estudado para nós, podemos ir diretamente ao GWAS para encontrar os dados resumidos pesquisados e usá-los.
Mas o nosso GX, ou seja, a relação entre genes e exposição, já foi estudado para nós, podemos ir direto ao GWAS para encontrar os dados resumidos pesquisados e utilizá-los.
Ou seja, por meio da randomização mendeliana, podemos estimar facilmente o b pequeno de que precisamos, ou seja, a relação entre exposição e resultado ---- este é o estudo de randomização mendeliana que apresentarei novamente hoje.
A ideia é tão clara. É tão claro. Os alunos que não entenderem podem ler mais algumas vezes.
resolução de terminologia
Para ajudar todos a entender a ideia, existem alguns termos que precisam ser mencionados na prática da randomização mendeliana:
Linkage desequilibrium (desequilíbrio de ligação): Apenas dissemos que podemos ter muitas relações de resultado/exposição de genes, ou seja, muitos genes em GWAS podem ser usados. Neste momento, não queremos ter correlações entre genes (isso causará dupla contagem, tornando os resultados tendenciosos):
Quando realmente fazemos isso, o padrão é como na foto acima, se você disser que é irrelevante entre SNPs, é irrelevante? Quando a frequência de associação de diferentes alelos em dois locais é maior ou menor que a frequência esperada sob a condição de associação aleatória independente, essa situação existe objetivamente. Nesse momento, a correlação entre essas variáveis instrumentais é chamada de desequilíbrio de ligação e seu tamanho pode ser representado por LD r quadrado. Esse índice também é um dos índices que precisamos definir durante a operação.
Pleiotropia Horizontal : Para entender este conceito, primeiro observe a figura abaixo:
Isso significa que minha situação ideal é estimar b por meio da operação de ab/a, mas olhando para a imagem acima, é inevitável que o caminho de f apareça? Se f aparecer, a relação entre nossos genes e o resultado é f+ab. Neste momento, o que estimei usando o método original não é b, mas b+f/a, o que está errado (lembre-se sempre de que nos preocupamos com b ) .
Mas se eu tiver muitas variáveis genéticas, então há muitos f, se o valor médio esperado de todos os f for 0, então o resultado que obtemos depois de resumir é basicamente b, que é inofensivo. Mas temo que todos os fs sejam tendenciosos para um lado (todos maiores que 0 ou menores que 0), e há um problema neste momento, que é chamado de pleiotropia direcional, e é por isso que finalmente fazemos um diagrama de funil.
É através do diagrama de funil que todas as variáveis instrumentais são distribuídas em funil, o que significa que não há viés. Neste momento, pensamos que o efeito pleiotrópico direcional foi eliminado e não tem efeito.
Bom, agora que alguns dos termos acima foram explicados, vamos à prática.
Prático
O exemplo mais básico: o exemplo do IMC em CHD, quero ver o IMC como a exposição, CHD como o mr final, o código é apenas 4:
bmi_exp_dat <- extract_instruments(outcomes = 'ieu-a-2')
chd_out_dat <- extract_outcome_data(snps = bmi_exp_dat$SNP, outcomes = 'ieu-a-7')
dat <- harmonise_data(bmi_exp_dat, chd_out_dat)
res <- mr(dat)
Os resultados são os seguintes: Na figura abaixo, existem diferentes métodos para o b pequeno que nos interessa:
Mesmo que isso seja feito, é simples e rápido.
O próximo passo é a análise de sensibilidade, o primeiro é o teste de heterogeneidade de cada variável instrumental:
mr_heterogeneity(dat)
As estatísticas Q de Cochran podem ser obtidas após a execução do código
Depois, há o teste de pleiotropia gênica horizontal, o código é o seguinte:
mr_pleiotropy_test(dat)
Execute o código para obter egger_intercept
Em seguida, há um único teste de resultado SNP, o código é o seguinte:
res_single <- mr_singlesnp(dat)
Após a execução, você pode obter o pequeno b de cada SNP
Em seguida, há um teste leave-one-out, o código é o seguinte:
mr_leaveoneout(dat)
Em seguida, haverá várias fotos no papel, a primeira é o mapa do ponto, o código é o seguinte:
mr_scatter_plot(res, dat)
No gráfico de pontos, o efeito do mesmo SNP na exposição é colocado no eixo horizontal, e o efeito no resultado é colocado no eixo vertical. Neste momento, a inclinação do gráfico é nosso pequeno b estimado.
Em seguida, o gráfico de floresta da combinação de efeito SNP único pode ser obtido com a função mr_forest_plot, mr_leaveoneout_plot pode obter o gráfico de floresta da análise leave-one-out e mr_funnel_plot pode nos ajudar a obter o gráfico de funil.
Isso é tudo o que há para relatar, feito.
Mas o processo acima tem muitos pré-requisitos. Por exemplo, você precisa saber o GWASid de exposição e finalização para prosseguir. Existem muitos GWASs. Por exemplo, se você usar o código acima diretamente, na verdade é o GWAS no catálogo MR Base GWAS. Claro, você pode escolher outros ou usar o GWAS mais recente encontrado .
A primeira etapa é encontrar os dados resumidos expostos no GWAS correspondente:
Então, qual GWAS podemos usar? Podemos chamar diretamente o diretório do GWAS, o código é o seguinte:
data(gwas_catalog)
Após a execução, cerca de 150.000 dados de estudo de associação de todo o genoma podem ser obtidos. A captura de tela é a seguinte:
Portanto, para nós, agora precisamos encontrar o GWAS correspondente à exposição que nos interessa. Por exemplo, se eu quiser encontrar o GWAS relacionado ao fenótipo "sangue", posso escrever o seguinte código:
exposure_gwas <- subset(gwas_catalog, grepl("Blood", Phenotype_simple))
O código acima é equivalente a usar apenas a coluna Phenotype_simple para filtragem. Claro, você também pode combinar outras colunas como pessoas, como autores, como regiões, etc., tudo isso é possível.
O que fazer depois de selecionar o GWAS relacionado à exposição é determinar ainda mais a intensidade das variáveis da ferramenta genética e da exposição, que geralmente é descrita no artigo: primeiro, a suposição de relevância foi atendida, considerando que todos os SNPs atingiram a significância de todo o genoma (p < 5 × 10−8 )
A operação específica é a seguinte:
exposure_gwas<-exposure_gwas[exposure_gwas$pval<5*10^-8,]
Através das etapas acima, garantimos que nossas variáveis de ferramentas genéticas devem estar fortemente correlacionadas com a exposição.
Em seguida, é para formar os dados GWAS expostos preparados em um formato de dados que pode ser usado para análise de RM. A função format_data() é necessária:
exposure_data<-format_data(exposure_gwas)
A exposição_dados neste momento se parece com isto:
Pode-se ver que existem muitos SNPs variáveis de ferramentas genéticas. Neste momento, precisamos considerar o desequilíbrio de ligação (desequilíbrio de ligação):
exposure_data<-clump_data(exposure_data, clump_r2 = 0.001)
No código acima, clump_r2 é o conjunto de correlação permitido. Até agora, filtramos manualmente todas as variáveis instrumentais, o que resolve o problema de encontrar variáveis instrumentais. Outro método é filtrar automaticamente as variáveis instrumentais. Por exemplo, se eu expor bmi, posso escrever o seguinte código:
subset(ao, grepl("body mass", trait))
Depois de executar, sei que o gwasid que posso escolher é ieu-b-40. Nesse momento, também posso extrair automaticamente as variáveis instrumentais. O objetivo desses dois métodos é o mesmo:
extract_instruments('ieu-b-40')
Em seguida, extraia as estimativas resumidas do resultado de acordo com as variáveis instrumentais. Os dados resumidos do resultado da extração também precisam saber o GWASid, certo? Por exemplo, o resultado que me interessa agora é a pressão arterial sistólica, então posso escrever o seguinte código:
outcome_gwas <- subset(ao, grepl("Systolic", trait))
Depois de correr, posso saber todos os gwasids relacionados à pressão arterial sistólica. Escolho o mais recente. Por exemplo, escolho o seguinte 2021:
Olhando a foto, sabemos que seu id é ieu-b-5075, então escrevi assim:
outcome_data <- extract_outcome_data(
snps = exposure_data$SNP, outcomes = "ieu-b-5075")
A análise de RM subsequente pode ser feita diretamente por fusão, e o processo não é diferente.
resumo
Hoje escrevi a operação prática de palavras aleatórias mendelianas para todos. Os exemplos do artigo são de [Chinese Mendelian Randomization] MRC-IEU da Universidade de Bristol, Reino Unido "Mendelian Randomization in R Language" Capítulo 1: Usando a ferramenta da Web MRBase e o pacote R TwoSampleMR para fazer randomização mendeliana de duas amostras