使用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输入文件的格式如下:

image

每一个位点占一行,文件列分别微位点的两个基因型(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的样本数;

生成的结果如下所示:

image

总共有三列。

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

第二列为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的样本数;

生成的结果如下所示:

image

总共有四列。

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

第二列为P值;

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容