CONFINED:利用多个甲基化数据集来区分生物学和技术变异来源
甲基化数据集受到无数可变性来源的影响,包括生物学(细胞类型组成,遗传学)和技术(批次效应)。在这里,我们提出了一种基于稀疏典型相关分析的无参考方法,将生物学与技术的变异性源分开。
CONFINED的开发是为了捕获甲基化数据中可复制的生物变异来源。这些来源包括例如年龄,性别和细胞类型组成。重要的是,CONFINED捕获的变体不包括技术或批量效应的任何变化。
CONFINED将成为捕获生物变异性影响以及突出多个数据集中共享细胞机制的有用工具。来自CONFINED的组分可用于下游分析,其希望仅模拟甲基化数据集的生物信号或将某些生物信号包括在统计分析中作为混杂物。我们建议将来对t的选择进行研究,用于恢复特定生物因子信号的信息站点的数量,以及研究哪些表型或数据集对可用于提取变异性的特定生物驱动因子的信号。
安装:
devtools::install_github("cozygene/CONFINED")
作为输入,CONFINED采用强制参数:
大小为m的两个矩阵由n1和m乘以n2(行数相同但不一定是相同的列数),其中m > n1和n2
t - 要使用的特征(甲基化位点)的数量(稀疏参数)
k - 要保存的组件数(最多可以保存{ n1,n2 }个组件)
以下输入是可选的:
saveOP -布尔值,将输出保存(约束对于每个数据集和特征排序列表组件)或不
outfile - 保存输出文件的前缀(默认为“Xi_CONFINED_components.txt”和“CONFINED_ranked_features.txt”)
thresh - 在CONFINED算法的特征选择步骤中确定输入矩阵的低秩近似的秩的阈值。默认值为.95,如果没有关联> thresh的规范变量,则将rank设置为1。
CONFINED返回包含两个项目的列表:
X1comps -所述ķ用于通过产生数据集1的部件约束使用吨特征
X2comps -所述ķ用于通过产生dataset2部件约束使用吨特征
基因本体
我们通过血液对数据集中的CONFINED测试了排名最高的站点的富集情况。在这里,我们根据通过交叉验证学习的规则设置稀疏度参数; 然而,我们在一系列稀疏度参数中观察到定性相似的结果,当我们包含相对较多的CpG位点时,其显着性增加(附加文件 1:图S11)
演示
我们提供了来自Liu等[1]的两个全血甲基化数据集子集。和Hannum等人[2] 有关CONFINED用法的示例。在此下载演示文件。
首先将CONFINED包加载到R中:
library(CONFINED)
然后,加载数据集:
dat1<-read.table("demo_data1.txt")
dat2<-read.table("demo_data2.txt")
运行CONFINED,使用前缀“demo”保存输出:
results<-CONFINED(X1=dat1, X2=dat2, t=3000, k=10, outfile="demo")
然后,CONFINED将保存文件
demo_CONFINED_ranked_features.txt -包含的特征列表文件作为排序由约束的特征选择步骤
demo_X2_CONFINED_components_t_3000.txt - 包含第一个数据集中个体的k CONFINED组件的n1乘k矩阵的文件
demo_X1_CONFINED_components_t_3000.txt - 包含第一个数据集中个体的k CONFINED组件的n1乘k矩阵的文件
您还可以使用这些组件来预测各种生物变异来源。我们从Houseman等人的基于参考的算法中提供了两个细胞类型比例估计文件[3]。举个例子:
cellests1<-read.table(file = "demo_cellcomp1.txt")
sapply(1:10, function(i) sapply(1:dim(cellests1)[2], function(j) summary(lm(cellests1[,j] ~ results$X1_comps[,1:i]))$r.squared) )
cellests2<-read.table(file = "demo_cellcomp2.txt")
sapply(1:10, function(i) sapply(1:dim(cellests2)[2], function(j) summary(lm(cellests2[,j] ~ results$X2_comps[,1:i]))$r.squared) )
对sapply的调用将返回矩阵,其中每个条目ij对应于使用1:j分量预测第i个单元类型的比例的R ^ 2值。在演示的情况下,性能可能不是最佳的,因为为了提高效率,我们仅提供了整个数据集的大约5%。
典型相关分析(CCA)的超快实现
如果您只想使用此软件执行快速规范关联分析,可以从CONFINED包访问它:
CONFINED::CCA(X,Y)
A和B是将输入矩阵X和Y投影到最大相关空间的加载。U = XA和V = YB被定义为正则变量X和ÿ其中的列,X和ÿ人为了使U形彼此正交正交于各列以及V的列被居中其他。
我们的CCA算法完全基于Gonzalez和Dejean 的R包CCA。我们只是使用来自RcppArmadillo的软件包将他们的代码翻译成C ++代码,算法的所有功劳都归功于他们。
故障排除
OSX(Mac)可能存在无法找到“math.h”的问题。通常可以通过在终端中运行来减轻这种情况:
xcode-select --install
或者:
sudo installer -pkg \
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg \
-target /
OSX(Mac)上的另一个常见问题是关于“lgfortran”或“quadmath”的错误。下面,我们列出了The Coatless Professor建议的步骤。在该网站上,有一些宝贵的故障排除步骤。在这里,我们将尝试提供所需的最少步骤。请访问该链接了解更多详情。
原创: 小伍说事
文章转载自 医知圈微信公众号