专栏首页R语言交流中心R语言实现基因表达模式识别

R语言实现基因表达模式识别

今天给大家介绍一个基于先验贝叶斯理论的微阵列基因表达数据的模拟包。主要用于大量的特定属性的表达数据的重构,模拟。那么,我们看下几个概念:

先验概率:是指根据以往经验和分析得到的概率{P(事件)}.

后验概率:事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小{P(事件|原因)}。

基础的知识有了那么我们看下贝叶斯的理论公式:

对待模型的自我心得就是所有公式都是纸老虎,捅破了其实就那么回事。就怕你不敢去捅。接下来我们就捅一捅,看看在我们的这个基因表达数据中是如何应用的。

首先是提出假设:所有样本之间的表达是可以互换的,那么就可以通过构建每个基因在不同样本表达偏差(相对于每个基因均值大小)进行后期的表达分布模式函数fobs (·|µj )的构建。

接下来,有两个情况:

一个是单条件的两组样本的情况,也就形成在两组样本之间存在差异(DE)和没有差异的基因(EE)。针对这个情况我们得到我们所有样本的整体分布函数:

其中参数π(u)指的系统特定的分布模型。也就是边缘分布函数。

那么,以上的情况是只能对EE基因进行评估,如果是DE的基因需要各自计算均值,那么就得到如下的公式:

那既然既存在差异基因也存在无差异基因,那么我们需要引入一个概率参数P(差异基因),无差异基因就是1- P(差异基因)。至此,我们前面介绍的贝叶斯理论就开始派上用场了:

第二种情况就是多模式混合的情况,计算原理比前面的更加复杂,那就是增加了模式的概率P的参数。

最后,我们需要把上面的这个函数思想应用到指定的分布函数模型中,作者便引入了下面的三个模型:

最后,我们就来看下作者开发的包里面具体函数应用,主要的函数功能如下(就不翻译了):

包的安装还是通过bioconductor来安装:

BiocManager::install("EBarrays")

首先看下基因表达模式创建函数ebPatterns。具体参数不介绍了,需要注意的是如果设置为0那么就是不列入分析的样本。看下实例:

library(EBarrays)
patterns <- ebPatterns(c("1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
                         "1 1 1 1 1 1 1 11 1 1 1 1 2 2 2 2 2 2 2 2 2 2
                          2 2 2"), TRUE)
show(patterns)

上面就得到了我们的样本分布模式,接下来就是基于以上的模式对表达数据进行模型的构建,利用EM算法构建了emfit函数:

其中主要的参数:

Family 设置分布模型,可以选择作者提出的几个模型,也可以自己设置。

Hypotheses 样本的分布模式,多组或者单组。

接下来我们看下实例:

data(sample.ExpressionSet) ## from Biobase
eset <- exprs(sample.ExpressionSet)
patterns <- ebPatterns(c("1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
                         "1 1 1 1 1 1 1 11 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2"))
gg.fit <- emfit(data = eset, family ="GG", hypotheses = patterns, verbose = TRUE)
show(gg.fit)

接下来我们可以输出后验概率:

gg.post.out <- postprob(gg.fit,eset)$pattern

然后就是FDR计算所需要的阈值分计算,需要用到函数crit.fun。直接我们看下实例:

gg.threshold <-crit.fun(gg.post.out[,1], 0.05)

这个阈值意义就是某一种表达模式中那些具有此模式表的基因的后验概率必须大于我们的阈值。这也就是我们最终想要的符合某种表达模式基因列表。

本文分享自微信公众号 - R语言交流中心(R_statistics)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Google的PAWS数据集可帮助AI模型捕获单词顺序和结构

    自然语言处理(NLP)(用于处理机器阅读理解的AI子领域)无法解决语音识别领域的所有问题,这是因为语法上的细微差别会极大地影响句子的含义。

    AiTechYun
  • TensorFlow中的计算图

    TensorFlow的计算图粒度比较细,由节点和有向边组成(后来也加入了层)。相比之下,腾讯的开源机器学习平台Angel,其计算图的粒度较粗,由层(Layer)...

    AI科技大本营
  • 【NLP】一文介绍条件随机场

    一个简单明了的对条件随机场的说明,给大家一个非常直观的印象,CRF到底是个什么东西,能干什么用。

    yuquanle
  • 开源 | 最牛无监督学习BigBiGAN预训练模型

    近日,DeepMind发布了预训练的BigBiGAN表示学习模型,开源代码可以在TF Hub上找到。

    昱良
  • 有关如何使用特征提取技术减少数据集维度的端到端指南

    如今,使用具有数百个(甚至数千个)特征的数据集变得非常普遍。如果要素的数量变得与存储在数据集中的观测值的数量相似(甚至更大!),则很可能导致机器学习模型过度拟合...

    代码医生工作室
  • 双雄之争,PyTorch1.3发布,全新功能来袭

    2019年,机器学习框架之争进入了新阶段:PyTorch与TensorFlow成为最后两大玩家,PyTorch占据学术界领军地位,TensorFlow在工业界力...

    AiTechYun
  • 基于TensorFlow和Keras的图像识别

    TensorFlow和Keras最常见的用途之一是图像识别/分类。通过本文,您将了解如何使用Keras达到这一目的。

    小白学视觉
  • 【知识星球】有三AI 10月新主题,千奇百怪GAN上线!

    DCGAN是第一个使用全卷积网络做数据生成的GAN,生成器和判别器都采用了4层的网络结构。

    用户1508658
  • 求实求新 | 2018年CCF-腾讯犀牛鸟基金成果分享(一)

    在越发重视科技自主创新,新产业国际竞争逐渐激烈的时代,我们更加坚信,科研道路没有捷径可走,只有脚踏实地,一步一个脚印,不断积累方能实现创新。 7年来,犀牛鸟基...

    腾讯高校合作
  • DeepMind开源最牛无监督学习BigBiGAN预训练模型

    近日,DeepMind发布了预训练的BigBiGAN表示学习模型,开源代码可以在TF Hub上找到。

    新智元

扫码关注云+社区

领取腾讯云代金券