热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分计算iv值_TwoSampleMR实战教程之提取IV在结局中的信息

在读取完暴露文件并去除掉存在连锁不平衡的SNP后,我们接下来要做的一件事就是提取IV在结局中的信息,完成这一步主要有两种方法:(1)利用T

在读取完暴露文件并去除掉存在连锁不平衡的SNP后,我们接下来要做的一件事就是提取IV在结局中的信息,完成这一步主要有两种方法:

(1)利用TwoSampleMR获取MR base提供的结局信息

(2)读取自己结局的GWAS文件并提取相关信息

第一种方法使用起来非常简洁高效,可以批量读取多个结局文件,但是存在的问题是有的结局数据可能有问题(米老鼠做研究的过程确认过);第二种方法一次读取一个GWAS文件,如果批量处理的话可能会占用大量内存,得不偿失。接下来我将为大家详细介绍一下这两种方法,希望大家能明白这两种读取方法的差异。

1. 利用TwoSampleMR获取MR base提供的结局信息

首先咱们先提取IV的信息并去除存在连锁不平衡的SNP,这里咱们还是以BMI作为暴露,但是ID号需要改成'ieu-a-835',这主要是因为之前ID号’ieu-a-2’的GWAS是在混合人群中做的(也即把欧洲人、非洲人等不同人群合在一起做的GWAS),而’ieu-a-835’则是在欧洲人中做的。在之前的理论学习中,我曾和大家解释过人群的混杂会带来估计结果的偏倚,因此我们需要选择遗传背景一致的人群进行MR研究(如暴露和结局的GWAS都是在欧洲人群中进行的)。

library(TwoSampleMR)bmi_exp outcomes='ieu-a-835', clump=TRUE, r2=0.01, kb=5000,access_token = NULL )dim(bmi_exp)# [1] 80 15t2d_out snps=bmi_exp$SNP, outcomes='ieu-a-26', proxies = FALSE, maf_threshold = 0.01, access_token = NULL)dim(t2d_out)# [1] 80 16

这里我要和大家简单介绍一下extract_outcome_data()函数的关键参数:

snps:它是一串以rs开头的SNP ID

outcomes:它是outcome在MR base中的ID;

proxies:它表示是否使用代理SNP,默认值是TRUE,也即当一个SNP在outcome中找不到时可以使用与其存在强连锁不平衡的SNP信息来替代,我个人喜欢设置成FALSE。

maf_threshold:它表示的是SNP在outcome中的最小等位基因频率,默认值是0.3,不过大样本GWAS可以适当调低,我这里设置的是0.01。

access_token:大陆用户必须设置成access_token=NULL。

2. 从自己的GWAS结果中提取IV在结局中的信息

米老鼠从DIAGRAM研究中下载了与'ieu-a-26'对应的完整GWAS数据然后提取IV,代码如下:

#install.packages('data.table') 安装data.table包library(data.table) # 加载R包t2d 'DIAGRAMv3.2012DEC17.txt',header=T) head(t2d) # 查看数据

20b594bac1ad70403f417798f6528754.png

t2d$phenotype 'Type 2 diabetes' t2d$beta log(t2d$OR) t2d$se abs(t2d$beta/qnorm(t2d$P_VALUE/head(t2d) # 查看数据

eee03dc0b714f99ad1306bc6c98219ea.png

t2d_out dat=t2d, type = "outcome", snps = bmi_exp$SNP, header = TRUE, phenotype_col = "phenotype", snp_col = "SNP", beta_col = "beta", se_col = "se", effect_allele_col = "RISK_ALLELE", other_allele_col = "OTHER_ALLELE", pval_col = "P_VALUE", ncase_col = "N_CASES", ncontrol_col = "N_CONTROLS", chr_col = "CHROMOSOME", pos_col = "POSITION")head(t2d_out)

b64bbde160a6dd5c8a0ca4b6c9027969.png

由于原始的GWAS结果中没有phenotype、beta和se的信息,因此米老鼠先将它读取到R中,然后转换格式。米老鼠这里是先把原始的GWAS使用data.table包的fread()函数读到R中,因为这个fread()函数读取大文件的速度非常快,接着我再使用format_data()函数将该数据框转化成TwoSampleMR的格式,关于format_data()函数的用法参见往期内容TwoSampleMR包实战教程之读取暴露文件。

当然,如果各位小伙伴们的文件里的信息很完整,可以考虑使用read_outcome_data()函数,它的用法与read_expsoure_data()类似,具体可以使用?read_outcome_data查询。

大家可以自行比对一下本文中的两个方法得出的t2d_out结果,米老鼠看了一下,他们的beta和p值是一致,但se有微小差异,这是由于精确位数不同导致,不会对结果产生实质影响。

另外,今天的内容里还介绍了OR和beta的转换以及se的计算,这个非常重要,希望大家掌握!

最后,米老鼠整理好了MR base里以IEU开头的outcome信息,有兴趣的朋友可以私聊我获取。DIAGRAM consortium的GWAS数据库网站可以点击阅读原文后下载第一个文件即可,当然也可以私聊米老鼠获取。




推荐阅读
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 中科院学位论文排版指南
    随着毕业季的到来,许多即将毕业的学生开始撰写学位论文。本文介绍了使用LaTeX排版学位论文的方法,特别是针对中国科学院大学研究生学位论文撰写规范指导意见的最新要求。LaTeX以其精确的控制和美观的排版效果成为许多学者的首选。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合Python编程语言和深度学习框架,详细展示了从数据预处理到模型训练的完整流程,并提供了代码示例。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
author-avatar
四木子1982
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有