跳到内容

pcarbo/混合物

 
 

文件夹和文件

姓名姓名
上次提交消息
上次提交日期

最新提交

 
 
 
 
 
 
 
 
 
 
 
 
 

人类基因组多样性小组对K=7祖先群体的混合估计

外加剂

简单的加速EM实现外加剂中的模型R、 加上扩展。

外加剂软件广泛用于从基因型数据估计种群结构部分原因是计算可以很好地扩展到全基因组基因型数据。例如,一百多万人拿走了祖先DNA测试都收到了他们的种族估计来自ADMIXTURE。

我开发了一个简单的ADMIXTURE替代实现计算混合物的最大似然估计使用期望的比例和群体等位基因频率最大化(EM)算法。(请参见外加剂。粗骨料。R(右)外加剂.barebones.demo。R(右)对于非常简单,或者说是“基本框架”,实际工作的实现,尽管很慢!)我使用涡轮发动机库到改善EM的极慢收敛性。

ADMIXTURE软件使用准Newton方法实现,并且通常会比EM更快地收敛到解决方案算法。我修改了模型以考虑基因型错误这似乎在一定程度上有助于趋同。无论如何,希望这个非常简单的实现将促进外加剂的扩展。我在这里开发的一个扩展是对优化(M-step)进行修改,以鼓励稀疏的外加剂估算。

使用R版本3.2.2测试此代码。

混合源代码库是免费软件:您可以根据麻省理工学院许可证.所有文件在这个项目中是外加剂.此项目是分布式的希望它会有用,但没有任何保证甚至没有适销性或适合特殊目的。请参阅文件许可证用于全文许可证。

彼得·卡博内托
祖先DNA
加利福尼亚州旧金山

开始

在使用R中的任何函数之前,请构建共享对象(.so)文件,并使用以下命令:

R CMD SHLIB mcmc.c公司R CMD SHLIB外加剂。c(c)

我已经编写了四个脚本来演示EM算法的用法。

脚本例如,外加剂。R(右)使用EM算法(函数外加剂.em)预测外加剂比例,当我们有一个标记的单原点参考集时个人。

脚本例如,sim。R(右)评估模拟基因型数据的混合估计,有无L0-鼓励外加剂稀少的惩罚条款比例。在本例中,所有样本均未标记。

脚本预测admix.hgdp。R(右)使用exmixture.em用于估计人类基因组中的混合比例多元化小组(HGDP)。外加剂仍然比turboEM算法;在我的实验中,外加剂至少是10倍速度更快。有关获取HGDP基因型数据的说明,请参阅此R脚本顶部的注释。

脚本预测.admix.from.panel。R(右)演示了EM算法如何与之前计算的一组等位基因频率(这是“面板”)将一组样本投影到K个祖先种群上。这个例子提供了一个包含1000个基因组和HGDP数据的组合面板。请参见在这里下载这些数据。

模拟基因型数据中的混合物估计

admission.em函数

估算标记和未标记样品中的外加剂比例他们的基因型。

用法

exdixt.em(X,K,z=NULL,e=0.001,a=0,F=NULL,更新。F=真,更新。Q=真,init.iter=40,max.iter=1e4,tol=0.001,精确。q=假,T=1,mc.cores=1)

论据

max.iter=1e4,tol=1e-4,方法=“平方米”,control.method=列表(方形=真,K=3){

输入X(X)是n x p基因型矩阵,其中n是样本数和p是双基因的数量标记。基因型以等位基因计数表示,因此所有条目必须为0、1或2。也允许缺少值(NA)。

输入K(K)是一个模型参数,指定祖先群体。

输入z(z)是一个向量,给出了原点的数量(一个1到K之间的整数),或NA为样本未标记。如果z设置为NULL或未指定,则所有样本被视为未标记。

输入电子指定基因型错误的可能性。必须是正数。它可以很小(例如1e-6),但请注意较小的值会增加EM算法的收敛时间。

输入指定L0-惩罚条款的强度这助长了混合估计的稀疏性。默认情况下=0,这意味着L0-惩罚条款无效,并且返回最大似然估计。我已经实现了使用交叉验证选择L0-惩罚强度的程序,但此代码中尚未演示此过程。对于一些人有关此交叉验证的详细信息,请参阅函数calc.geno.error(计算基因错误).

输入F类是对群体等位基因频率和混合比例,分别是。如果未指定这些输入,则这些模型参数随机初始化。可以保留其中一个等位基因频率或混合比例通过设置而恒定更新。F=错误更新。Q=错误。对于有关F和Q的更多详细信息,请参阅下文。

输入最大值,托尔,方法控制方法指定优化设置。这个收敛公差由托尔; 明确地,两次连续迭代中的模型参数小于托尔.输入最大值指定最大值TurboEM的迭代次数。最后,方法控制方法是功能涡轮发动机的输入。对于有关这两个输入的详细信息,请参见帮助(涡轮发动机).签署人默认情况下,我们使用SQUAREM算法,因为它产生了最好的解决方案和我们的实验中最快的收敛。

当a>0时,Q的M步更新有两种变化。什么时候?祖先种群的数量很少(例如,K<20)用穷举法精确计算最优解的可行性计算每个可能选择的后验概率非零混合比例。设置exact.q=真激活此选项。然而,对于较大的K计算精确解,因为选择的方法有很多非零混合比例过大。相反,设置exact.q=假使用计算近似解模拟退火。在这种情况下,需要设置输入有关T的解释,请参见函数更新.q.稀疏近似值.

最后,mc.孔是mclapply的输入,指定E和M步骤的多核版本中要使用的核数。

价值

返回值是一个包含三个元素的列表:

F类人群特异性等位基因的pxK矩阵频率估计;

,外加剂比例的n x K矩阵,其中n是个人数量(样本)。对于标记的样品,外加剂对于z[i]=k,比例为Q[i,k]=1。

对数似然,每个迭代的对数似然TurboEM公司。

关于

R中ADMIXTURE模型的简单加速EM实现,以及扩展。

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包

语言文字

  • OpenEdge ABL公司 99.2%
  • 其他 0.8%