R语言复现一篇6分的孟德尔随机化文章

这篇具有很好参考价值的文章主要介绍了R语言复现一篇6分的孟德尔随机化文章。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一期我们对孟德尔随机化做了一个简单的介绍,今天我们来复现一篇6分左右的使用了孟德尔随机化方法的文章,文章的题目是:Mendelian randomization analysis does not reveal a causal influence of mental diseases on osteoporosis(孟德尔随机分析没有揭示精神疾病对骨质疏松症的因果影响)

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
这是一篇我们国人写的文章,为什么选这篇文章呢?因为作者提供了文章的数据和主要流程的代码。我们可以跟着作者的思路进行一个复盘。
作者的研究是精神病(包括精神分裂症(SCH)、抑郁症(MDD)、情绪障碍、人格分裂和其他相关疾病)会不会对骨质疏松或骨折造成的影响。作者指出作为慢性疾病,精神病与骨代谢异常有关, 与一般人群相比,更有可能出现更低的骨密度和骨折风险,所以作者做了这项相关研究。最后作者的结论是:结果没有显示精神病(MDS)与骨质疏松症(OP)风险之间的因果关系。所以阴性结果也是能发文章的。
作者研究了精神分裂症、抑郁症、阿尔茨海默病、帕金森病等多个疾病对骨密度和骨折的影响,其中骨密度又分为前臂骨密度、腰椎骨密度、股骨颈骨密度等,骨折又分为手臂骨折、脊柱骨折、退步骨折等等。作者都做了一一比较,数据的工作量非常大。我抽取其中一部分内容:精神分裂症对骨密度(主要是上肢骨密度)的影响这一部分复现一下。
首先我们看看作者的给出的数据来源

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言

我们可以看到第一个精神分裂症(Schizophrenia)是来自GWAS的ieu-a-22,我们先查看一下对得上吗?ieu-a-22确实是精神病,样本量是82,315,和作者提供的对得上,我又拿它和作者提供的数据比对了一下,也是一样的。拿这个数据做暴露的数据应该是没问题。

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
接下来看看结局变量前臂骨密度(FA-BMD)是来自GWAS的ieu-a-977,我们也像刚才一样检查一下,确实是前臂骨密度(Forearm bone mineral density),样本量8,143也对的上。这样两个数据就都对上了,

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
我们根据作者的代码来操作一下,先把R包导入

library(TwoSampleMR)
library(MRPRESSO)

先导入暴露变量数据(详细操作可以看上一章),作者在这里把暴露数据定义为aaa

aaa <- extract_instruments(outcomes='ieu-a-22',clump=TRUE, r2=0.001,kb=10000,access_token= NULL)

然后导入结果变量数据

abc <- extract_outcome_data(snps=aaa$SNP,
                            outcomes='ieu-a-977',
                            proxies = FALSE,
                            maf_threshold = 0.01,
                            access_token = NULL)

这样2个数据都生成好了

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
接下来按步骤进行:效应等位与效应量保持统一,这一步是必须的,

Mydata <- harmonise_data(exposure_dat=aaa,
                         outcome_dat=abc,
                         action= 2)

接下来就可以进行MR分析了,在这里作者定义了5种方法,包括固定效应和随机效应模型

res<-mr(Mydata, method_list=c("mr_ivw", "mr_ivw_fe", "mr_two_sample_ml",
                              "mr_egger_regression", "mr_weighted_median", "mr_penalised_weighted_median",
                              "mr_simple_mode", "mr_weighted_mode"))

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
生成了结果,结论是一样的,精神病对前臂骨质疏松没关联。但是算出来和作者的不一样,我的OR和可信区间这里没有转换,但是我对照了P值不一样。
R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
于是我看了一下作者提供的结果数据,我把它提取出来重新做一遍看看

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
这里顺便介绍一下怎么提取本地数据,使用read_excel这个函数提取数据很方便

Ins<-data <- read_excel("FA-BMD.outcome_dat.xlsx",1)

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
作者的提供的数据不是标准格式,我们需要对数据进行格式

outcome_dat<-format_data(Ins, type = "outcome", header = TRUE,
                         phenotype_col = "Phenotype", snp_col = "SNPs", beta_col = "beta.outcome",
                         se_col = "se.outcome", eaf_col = "eaf.outcome", effect_allele_col = "effect_allele.outcome",
                         other_allele_col = "other_allele.outcome", pval_col = "pval.outcome")

进行数据效应等位与效应量保持统一,并行MR分析

Mydata <- harmonise_data(aaa, outcome_dat)

res<-mr(Mydata, method_list=c("mr_ivw", "mr_ivw_fe", "mr_two_sample_ml",
                              "mr_egger_regression", "mr_weighted_median", "mr_penalised_weighted_median",
                              "mr_simple_mode", "mr_weighted_mode"))

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
我无论自己提取数据还是使用作者的数据两次算出来的结果都是一样的(使用了作者的代码),但是和作者算出来的结论虽然一样,P值却不一样。
接下来作者还进行了一个(MR-PRESSO)检验,这个也是多水平效应检验,P值应该要大于0.05

mr_presso(BetaOutcome ="beta.outcome", 
          BetaExposure = "beta.exposure", SdOutcome ="se.outcome", 
          SdExposure = "se.exposure", OUTLIERtest =TRUE,DISTORTIONtest = TRUE, 
          data =Mydata, NbDistribution = 1000, SignifThreshold = 0.05)

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
接下来就是异质性检验,和作者文章中结论一样,是没有异质性的。

mr_heterogeneity(Mydata, method_list=c("mr_egger_regression", "mr_ivw"))

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
多水平校验,这里是没有多水平效应的,和文章一致

pleio <- mr_pleiotropy_test(Mydata) 
pleio

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
接下来是Leave-one-out analysis,Leave-one-out analysis是指逐步剔除SNP后观察剩余的稳定性,理想的是剔除后变化不大,这和我们的meta分析剔除法很相似。这张图和作者做的几乎一样。

single <- mr_leaveoneout(Mydata) 
mr_leaveoneout_plot(single)

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
散点图

mr_scatter_plot(res,Mydata)

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
绘制森林图

res_single <- mr_singlesnp(Mydata)
mr_forest_plot(res_single)

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
绘制漏斗图,主要是看蓝线周围的散点是否对称

mr_funnel_plot(res_single)  

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
最后这个是生成OR和可信区间,我们可以看到虽然P值不一样,但是OR和可信区间非常接近,表明咱们的方法应该基本上是没啥问题的,毕竟数据和作者的一致,又是使用作者给的代码。

out<-generate_odds_ratios(res)

R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
R语言复现一篇6分的孟德尔随机化文章,R语言,孟德尔随机化,r语言,开发语言
最后总结一下,咱们对作者的文章部分结果进行了复盘(自己提取数据和使用作者提供的数据),虽然数据和代码都对得上,结论也是正确的,但是OR和P值和原作者有轻微差别,我觉得本次对数据和方法还有结果是没有问题的,我大胆猜一下,有没有一种可能是作者数据太多,贴错了

到此咱们已经介绍了R包软件提取数据和手动提取数据,然后进行分析,趁着风口,大家还不自己来一篇。
欢迎斧正!文章来源地址https://www.toymoban.com/news/detail-637642.html

到了这里,关于R语言复现一篇6分的孟德尔随机化文章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • R数据分析:孟德尔随机化实操

    好多同学询问孟德尔随机化的问题,我再来尝试着梳理一遍,希望对大家有所帮助,首先看下图1分钟,盯着看将下图印在脑海中: 上图是工具变量(不知道工具变量请翻之前的文章)的模式图,明确一个点: 我们做孟德尔的时候感兴趣的是x和y的关系,也就是小b ,但是我们

    2024年01月23日
    浏览(35)
  • 【R包安装】TwoSampleMR 两样本孟德尔随机化

    根据报错,依次安装依赖包,不能直接在R中安装的包(可能是因为版本不对)可以用conda安装。 安装好依赖包以后就能成功安装TwoSampleMR包了 library以后显示上面的信息就说明安装成功了

    2024年02月11日
    浏览(41)
  • C#,计算几何,随机点集之三角剖分的德劳内(Delaunay)算法的源代码

    点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技术。尤其是Delaunay三角剖分,由于其独特性,关于点集的很多种几何图都和Delaunay三角剖分相关,如 Voronoi 图, EMST 树, Gabriel 图等。Delaunay三角剖分有最大化最小角

    2024年03月12日
    浏览(44)
  • R语言复现:轨迹增长模型发表二区文章 | 潜变量模型系列(2)

    培训通知 Nhanes数据库数据挖掘,快速发表发文的利器,你来试试吧! 欢迎报名郑老师团队统计课程 ,4.20直播。 案例分享 2022年9月,中国四川大学学者在 《Journal of Psychosomatic Research》 (二区,IF=4.7) 发表题为: \\\" Associations between trajectories of depressive symptoms and rate of cogniti

    2024年04月14日
    浏览(48)
  • 【python】我用python写了一个可以批量查询文章质量分的小项目(纯python、flask+html、打包成exe文件)

    web 效果预览: 先去质量查询地址:https://www.csdn.net/qc 输入任意一篇文章地址进行查询,同时检查页面,在Network选项下即可看到调用的API的请求地址、请求方法、请求头、请求体等内容: 请求头里面很多参数是不需要的,我们用 ApiPost 这个软件来测试哪些是必要参数。 经过

    2024年02月13日
    浏览(38)
  • R语言【文章复现】——集成式地绘制高分辨率的多样性分布图,对方法的检验和优化,以及处理思路的思考

    本文对一篇 2022 年发表在 New Phytologist 的绘图方法文章中的技术路线进行复现。 An integrated high-resolution mapping shows congruent biodiversity patterns of Fagales and Pinales 文中,作者针对在全球尺度上绘制物种分布图提出了一种全新的方法。该方法整合了 多边形绘图 ( polygon mapping )和 物

    2024年02月02日
    浏览(43)
  • 智能合约学习笔记--随机数攻击复现

    智能合约中的随机数 在智能合约中随机数经常被用到,但是我们知道,这些生成的随机数都是伪随机数,当生成的随机数不是足够安全的时候就会产生漏洞。随机数攻击,就是针对智能合约的随机数生成算法进行攻击,预测智能合约的随机数。 目前来说常见的随机数获取有

    2023年04月12日
    浏览(43)
  • 文章内容生成随机图像,并将这些图像上链

    一、需求背景 在当前的互联网时代,信息越来越快速地传播,一篇好的文章不仅需要有吸引人的文字内容,还需要有精美的配图。但是,对于某些只有文字,而没有图片的文章,我们可以使用程序去生成随机的图片来作为文章的配图。 本文将详细介绍如何使用Java语言实现文

    2024年02月09日
    浏览(43)
  • 一篇关于计算机网络原理的文章

    计算机网络原理是指计算机网络的基本概念、协议以及通信技术等方面的知识。 了解计算机网络原理对于我们使用互联网、编程开发以及网络安全等方面都极为重要。 在本文中,将介绍计算机网络原理的基本内容。 一、计算机网络的基本概念 计算机网络是指将分布在不同地

    2023年04月23日
    浏览(90)
  • 【科普向】LaTeX简介(一篇极简的 LaTeX 介绍文章)

    我们平时在word里新建一个doc(x)文件后,输入内容,调整页边距、字体大小、行间距等待,然后交给打印机打印就可以了。 如果你写了一篇关于新疆棉花的文章,2000字,在word里调整很快就可以得到你想要的效果。 但如果你想把自己记下的关于矩阵乘法的笔记打印下来,因为

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包