EWAS(Epigenome-Wide Association Study,表观基因组关联分析)其实就是用表观数据进行关联分析,目前用的最多的是5mC作为基因型进行分析。目前,EWAS 已经成为解析表观修饰与复杂表型关系的重要手段。
我们使用的是去年刚发表的新软件,OSCA去做EWAS分析。做群体分析的,至少听过GCTA这个强大的软件,而OSCA和GCTA是同一个实验室的开发人员,并且这个软件发表在Genome Biology上,可以表明这个软件应该是相当可以的。
OSCA的这几项功能还是不错的,并且计算速度特别快,为了充实字数,我还是翻译一下:
- 从全基因组DNA甲基化(或基因表达)数据估计个体之间的表观遗传(或转录组)关系。
- 估计所有DNA甲基化(或基因表达)探针均可捕获的复杂性状的表型变异比例。
- 基于混合线性模型的方法来测试DNA甲基化(或基因表达)探针与复杂性状之间的关联
- 在混合线性模型(类似于BLUP)中,估算所有甲基化(转录)探针对表型(例如BMI)的联合“效应”。 这些估计的效果可用于“预测”新的独立样本中的表型。
- 基于具有相关协变量的线性回归模型的eQTL / mQTL分析
- vQTL分析,以测试遗传变异对性状变异的效应。 已经实现了三种算法(即Bartlett检验,Levene检验和Fligner-Killeen检验)。
上述为目前OSCA的全部功能,比较常用的是计算亲缘关系,EWAS和计算标记的effect size。
下载安装
软件的下载和安装特别简单,直接下载下来,解压就可以使用。
但是一定要下对版本!!!
数据格式
OSCA使用了一个全新的数据格式,有点像Plink 也是多文件同名的方式,这里他的数据文件叫BOD格式,这个格式的文件包含三个文件,oii,opi和bod,下面依次介绍三个文件:
oii文件格式
opi文件格式
制作bod文件
由于最后一个文件是储存甲基化数据的文件,软件必须要二进制,所以需要使用OSCA进行制作。
osca --efile myprofile.txt --methylation --make-bod --out my
--efile reads a DNA methylation (or gene expression) data file in plain text format.
--methylation-beta indicates methylation beta values in the file.
--make-bod saves DNA methylation (or gene expression) data in binary format.
--out saves data ( or results) in a file.
英文大家都懂,作者写的已经很明白了,不需要过多赘述。
然后我们需要提供的myprofile.txt文件格式如下:
如果是转置的格式,那么用tefile即可,如果使用甲基化值,那么需要设定参数为 --methylation-m。
EWAS
输入文件准备好后,我们开始进行关联分析,OSCA的一个特点是,软件特别好用。之前用gene-base GWAS也是使用一点不复杂,而且也很容易安装。
EWAS我们使用的是文章中特别推崇的MOMENT(Multi-component MLM-based association excluding the target),这种MOMENT是一种似约法,即基于多成分MLM的关联测试,不包括marker(要进行关联测试的探针)和位于ORM侧翼区域的marker(侧翼区域的大小可通过-进行修饰 -moment-wind)。 根据线性回归分析的关联统计信息(按降序排列),将探针分为两组。 这是一种近似方法,其中在空模型下使用估计的方差分量测试每个目标探针。 仅在将第一组中的一个或多个探针(具有比另一组中的线性回归关联统计量更大的探针的组)的一个或多个探针从ORM中排除时才重新估计方差分量。 结果将保存在纯文本文件(* .moment)中。
作者已经开发了moment2的beta版本,通过官网的解释说,moment2会有更快速的计算速度,而且错误率和第一代是差不多的。
下面说一下OSCA的表型格式,主要为三列,FID,IID和表型值,目前的情况是一次只能计算一个表型,所以很麻烦:
实际操作特别的简单
osca_Linux --moment --befile test --pheno testpheno.phen --out new_res
计算之后的结果保存在moment文件中,文件也很简单粗暴,主要这么几列染色体,标记,位置,对应基因,方向,b(这个是什么意思,有知道的同学请发言),标准差和p-value。
刚才看了moa算法,感觉我们更应该用moa 他会有一个群体结构的平衡,同样计算之后,发现整体p值都是偏高的。