使用metaCCA进行单/多个SNP与多表型的典型相关性分析

欢迎来到"bio生物信息"的世界

新年的第一篇更文。

祝大家新春快乐!身体健康!

18号回家以后,经历了如下过程。

20号 喉咙痛

21号 喉咙痛

22号喉咙痛 咳嗽

23-24号 咳嗽

25号 咳嗽为主 鼻塞 夜间咳嗽加剧

26号 咳嗽为主 鼻塞 流鼻涕 夜间咳嗽加剧

27号 咳嗽为主 鼻塞 流鼻涕 打喷嚏 夜间咳嗽加剧

28号 咳嗽为主 鼻塞 流鼻涕 打喷嚏 夜间咳嗽加剧

换了多种药物,均不见效。

索性也少关注新型病毒肺炎的事了,缓解些焦虑感。

好了,以上是交代我这段时间没更文的原因。

主要是懒,其次是生病。



这次给大家介绍一个R包metaCCA

1 metaCCA有什么用

传统的GWAS分析都是基于多个SNP与单表型的关联分析,找出显著的候选位点。

随着复杂表型的不断涌现,这种分析慢慢的有些局限。

比如,已有多个研究表明,精神分裂症、抑郁症、自闭症、双向情感障碍等疾病存在着遗传上的相关性,也就是说,他们有着共享的风险基因,但这些共享的风险基因是什么?是一个位点还是多个位点?一个基因座还是多个基因座?共享基因是如何共同影响多种不同的疾病?

这些问题都没有很好的被解释清楚。

因此,通过metaCCA就能解决这个问题。

其功能有两个。

第一、分析单个SNP与多种表型的相关性;

第二、分析多个SNP与多种表型的相关性;

2 metaCCA思想

metaCCA的思想类似于降维。

将多维的基因型数据和多维的表型数据各自进行降维,再计算降维之后的基因型数据和表型数据之间的相关性。

metaCCA提出了两个算法:metaCCA和metaCCA+。

这两个算法的适用范围不大一样。

诸位进行分析前,需要对自己的数据有一定的了解,再酌情选择合适的算法。

适用范围不一样表现在:

metaCCA算法适用于基因型相关系数矩阵XX和表型数据相关系数矩阵YY的计算结果比较精确的情况。举例来说,基因型相关系数矩阵是通过GWAS summary数据对应参考人群基因组评估出来的。

metaCCA+算法适用于基因型相关系数矩阵XX和表型数据相关系数矩阵YY计算结果不是很准的情况下。举例来说,参考人群的基因型数据只有1000个位点,样本数只有10个人,而GWAS summary数据就有几百万个位点,几十万个样本,在这种情况下,GWAS summary数据通过参考人群基因组评估出来的基因型相关系数矩阵XX和表型数据相关系数矩阵YY就不是很准确。此时强行使用metaCCA算法就容易有假阳性结果。这种情况下,最好是用metaCCA+算法。

3 metaCCA安装

if (!requireNamespace("BiocManager", quietly = TRUE))

install.packages("BiocManager")

BiocManager::install("metaCCA")

这一步如果产生如下错误:

Error in read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) :
无法打开链结
此外: Warning messages:
1: In download.file(url, destfile, method, mode = "wb", ...) :
downloaded length 409600 != reported length 1002514
2: In unzip(zipname, exdir = dest) : 从zip文件中抽取1时出了错
3: In read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) :
无法打开压缩文件‘metaCCA/DESCRIPTION‘,可能是因为‘No such file or directory‘

解决办法:先番蔷(自己意会)。再重新安装就可以了。

我没有尝试过在不借助工具的情况下,解决这个报错,如果你有办法,欢迎告知,谢谢。

4 基于单个SNP与多种表型的相关性分析

进行单个SNP与多表型的相关性分析,需要准备一个输入文件,这里将输入文件命名微S_XY_full_study

S_XY_full_study输入文件的格式如下:

每一个位点占一行,文件列分别微位点的两个基因型(allele_0、allele_1)、不同表型在该位点的效应值(trait1_b,trait2_b,……)和误差(trait1_se, trait2_se, ……)。

注意,文件顺序是位点、位点基因型1、位点基因型2、表型1效应值、表型1效应值误差、表型2效应值、表型2效应值误差、表型3效应值、表型3效应值误差、……、表型n效应值、表型n效应值误差;

基因型由“A ”,“C”, “G”,“T”组成;

准备好输入文件好后,输入以下命令,即可得到单个SNP与多表型的相关性结果

metaCCA_res1 =metaCcaGp( nr_studies = 1,S_XY =list( S_XY_full_study ),std_info = 0,S_YY =list( estimateSyy( S_XY_full_study ) ),N = N )

N指的是GWAS summary的样本数;

生成的结果如下所示:

总共有三列。

第一列为每个位点与多种表型的典型相关性值;

第二列为P值;

第三列为每个表型的权重值;

P值的显著性阈值为0.05/SNP数量;

如果只想一个位点一个位点放进去计算,则需要加上analysis_type = 1 和 SNP_id的参数,命令如下:

metaCCA_res1 =metaCcaGp( nr_studies = 1,S_XY =list( S_XY_full_study ),std_info = 0,S_YY =list( estimateSyy( S_XY_full_study ) ),N = N,analysis_type = 1,SNP_id =‘rs666‘) )

rs666指的是想单独计算的SNP位点;

5 多个SNP与多种表型的典型相关性分析

5.1 计算基因型相关系数矩阵

计算基因型相关系数矩阵前需要准备几个数据,第一个是下载GWAS summary对应人群的参考基因组数据,假如是中国人群,则需要下载中国人群的公共数据库,这里以千人基因组为例。

计算基因型相关系数矩阵需要有PLINK软件的使用基础。

1000G为千人基因组包含个体层次的基因型数据;

SNP为一个文件,包含GWAS summary文件的SNP ID号,通常以rs开头,每一个SNP为一行;

CHB_sample为一个文件,包含中国人群的样本ID,文件有两列,分别为FID和IID,详细参考PLINK的输入文件格式;

S_XX_study为输出文件的文件名;

准备好后,输入如下命令:

plink2 --bfile 1000G --extract SNP --keep CHB_sample --r2 inter-chr with-freqs --ld-window-r2 0 --make-bed --out S_XX_study

输出文件S_XX_study即为基因型的相关系数矩阵;

5.2 计算多个SNP与多种表型的典型相关性

准备好输入文件S_XX_studyS_XY_full_study后,假定想研究基因A上的五个SNP位点‘rs10‘,‘rs80‘,‘rs140‘,‘rs170‘,‘rs172‘与多种表型的典型相关结果,则输入以下命令:

metaCCA_res3 =metaCcaGp( nr_studies = 1,S_XY =list( S_XY_full_study ),std_info = 0 ,S_YY =list( estimateSyy( S_XY_full_study ) ),N = N,analysis_type = 2,SNP_id =c(‘rs10‘,‘rs80‘,‘rs140‘,‘rs170‘,‘rs172‘),S_XX =list( S_XX_study))

N指的是GWAS summary的样本数;

生成的结果如下所示:

总共有四列。

第一列为‘rs10‘,‘rs80‘,‘rs140‘,‘rs170‘,‘rs172‘与多种表型的典型相关性值;

第二列为P值;

第三列为每个表型的权重值;

第四列为每个SNP位点的权重值;

P值的显著性阈值为0.05/metaCCA_res3行数;

好了,今天的内容就讲到这,感兴趣的看原文文献:
https://academic.oup.com/bioinformatics/article/32/13/1981/1742730

祝各位假期愉快!学业有成。

原文地址:https://www.cnblogs.com/chenwenyan/p/12238275.html

时间: 2024-10-22 16:49:37

使用metaCCA进行单/多个SNP与多表型的典型相关性分析的相关文章

第0课 - 数据结构引言

第0课 - 课程目标(实现一个轻量级STL) 第1课 - 进阶高手的大门 第2课 - 数据的艺术 第3课 - 初识程序的灵魂 第4课 - 程序灵魂的审判 第5课 - 算法的时间复杂度 第6课 - 算法效率的度量 第7课 - 课程学习小问答 第8课 - 泛型编程简介 第9课 - 智能指针示例 第10课 - C++异常简介 第11课 - 异常类构建 第12课 - 顶层父类的创建 第13课 - 类族结构的进化 第14课 - 线性表的本质和操作 第15课 - 线性表的顺序存储结构 第16课 - 顺序存储

(单例设计模式之一)饿汉式的反射与反序列化漏洞

1.闲话少说,直接上代码. import java.io.Serializable;//饿汉式public class Singleton01 implements Serializable{    //1.私有的属性    private static Singleton01 instance=new Singleton01();    //2.私有的构造器    private Singleton01(){}    //3.共有的get()方法    public static  Singl

web day19 Service层处理事务(利用ThreadLocal),TxQueryRunner小工具,单表练习(增删改查操作),分页

Service事务 DAO中不是处理事务的地方,因为DAO中的每个方法都是对数据库的一次操作 在Service中不应该出现Connection,它应该只在DAO中出现, 因为它是JDBC的东西,JDBC的东西是用来连接数据库的 修改JdbcUtils 我们把对事务的开启和关闭放到JdbcUtils中,在Service中调用JdbcUtils的方法来完成事务的处理, 但在Service中就不会再出现Connection这一"禁忌"了. 代码 public class JdbcUtils

互信息应用于SNP特征选择的局限

互信息已广泛应用于特征选择问题,但应用在 SNP 选择上还存在着一些局限.第一,互信息只能衡量一个 SNP 组合与表型的相关性, 无法衡量多个 SNP 与表型的相关性.第二, 利用互信息排序 SNP 时,隐含着一个假设,即: SNP 间是相互独立的,不存在着依赖关系.然而事实上,SNP 间存在着广泛的交互作用.因此,互信息排序 SNP 会严重低估交互作用 SNP 的重要性.第三,利用互信息选择 SNP 组合时,任意加入一个新 SNP 都会使互信息值不小于加入前该 SNP 组合的互信息值,限制了不

全球最低功耗蓝牙单芯片DA14580的软件体系 -层次架构和BLE消息事件处理过程

在作者之前发表的<全球最低功耗蓝牙单芯片DA14580的系统架构和应用开发框架分析>.<全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗>.<全球最低功耗蓝牙单芯片DA14580的软件体系-RW内核和消息处理机制>三篇文章分析了DA14580的SDK开发目录结构.硬件架构.低功耗.RW内核和消息处理机制.本篇文章将深入到具体的源码去分析DA14580平台的软件层次架构和具体的BLE消息处理过程,以此佐证前面发表的文章. 一.软件层次架构 1.1 BLE协议栈 从中

HTML5表单、一些新增的输入类型以及为不支持新特性的浏览器提供解决方案

我们先来看一下这么样一个表单: 一.一步一步来分析下代码: 1 <form id="redemption" method="post"> 2 <hgroup> 3 <h1>Oscar Redemption</h1> 4 <h2>Here's your chance to set the record straight: tell us what 5 year the wrong film got nomin

全基因组重测序基础及高级分析知识汇总

全基因组重测序基础及高级分析知识汇总 oddxix 已关注 2018.09.20 17:04 字数 11355 阅读 212评论 0喜欢 6 转自:http://www.360doc.com/content/18/0208/11/19913717_728563847.shtml 全基因组重测序是通过对已有参考序列(Reference Sequence)的物种的不同个体进行基因组测序,并以此为基础进行个体或群体水平的遗传差异性分析.通过全基因组重测序,研究者可以找到大量的单核苷酸多态性位点(SNP

Modbus库开发笔记之二:Modbus消息帧的生成

前面我们已经对Modbus的基本事务作了说明,也据此设计了我们将要实现的主从站的操作流程.这其中与Modbus直接相关的就是Modbus消息帧的生成.Modbus消息帧也是实现Modbus通讯协议的根本. 1.Modbus消息帧分析 MODBUS协议在不同的物理链路上的消息帧有一些差异,但我们分析一下就会发现,在这些不同的消息帧中具有一下相同的部分,这对我们实现统一的数据操作非常重要,具体描述如下: (1).简单协议数据单元 MODBUS协议定义了一个与基础通信层无关的简单协议数据单元(PDU)

2015-2016前端知识体系

一.框架与组件 ?bootstrap等UI框架设计与实现 伸缩布局:grid网格布局 基础UI样式:元素reset.按钮.图片.菜单.表单 组件UI样式:按钮组.字体图标.下拉菜单.输入框组.导航组.面包屑.分页.标签.轮播.弹出框.列表.多媒体.警告 响应式布局:布局.结构.样式.媒体.javascript响应式 第三方插件:插件管理 ?jQuery.zepto使用原理以及插件开发 支持amd.cmd.全局变量的模块化封装 $.fn.method = function(){} ?mvc/mvv