【机器学习在生物信息中的应用(一)】根据免疫组库TCRβ预测病人的CMV感染状态(第二版)

目录

  • 入门级:基于单特征的Beta分布贝叶斯分类器
  • 进阶:以Beta分布作为先验分布的二项分布贝叶斯分类器

入门级:基于单特征的Beta分布贝叶斯分类器

该实例中的机器学习方法本质上使用的是基于单特征的(朴素)贝叶斯判别模型

首先,鉴定出那些在CMV感染状态表现为阳性的(phenotype-positive)患者中出现明显克隆扩张的TCRβs,称为阳性表型相关性TCRβs克隆

一个样本的表型负荷(phenotype burden)被定义为:

该样本的所有unique TCRβs中与阳性表型相关的克隆的数量所占的比例

由于表型负荷的取值范围为 (0,1),其符合β二项分布(简称为β分布)

然后分别对表型阳性和表型阴性两组样本,利用Beta分布(见后文补充知识部分))估计出各组的表型负荷的概率密度分布,分别记作 Beta++ , β+) 和 Beta-- , β-)

P(x\mid c_+) \sim Beta(\alpha_+,\,\beta_+) \\ P(x\mid c_-) \sim Beta(\alpha_-,\,\beta_-) \\

对于一个新的样本可以计算出它来自表型阳性组和表型阴性组的后验概率:

P(c_+ \mid x_i)=P(c_+)P(x_i \mid c_+) \\ P(c_- \mid x_i)=P(c_-)P(x_i \mid c_-)

P(c_+ \mid x_i) > P(c_- \mid x_i),则判断为阳性组,否则为阴性组

进阶:以Beta分布作为先验分布的二项分布贝叶斯分类器

这个项目用到了641个样本(cohort 1),包括352 例CMV阴性(CMV-)和289例CMV阳性(CMV+)

外部验证用到了120个样本(cohort 2)

该机器学习的任务为:

讨论 TCRβ 免疫组的数据特点:

  • 可能出现的TCRβ的集合非常大,而单个样本只能从中检测到稀疏的少数几个;
  • 一个新样本中很可能会出现训练样本集合中未出现的TCRβ克隆类型;
  • 对于一个给定的TCR,它对给定抗原肽的结合亲和力会受到HLA类型的调控,因此原始的用于判别分析的特征集合还受到隐变量——HLA类型的影响;
  • 特征选择:鉴定表型相关的TCRβs

    使用Fisher精确检验(单尾检验,具体实现过程请查看文末 *2.1. Fisher检验筛选CMV阳性(CMV+)相关克隆):

    Fisher检验的阈值设为:P<1\times 10^{-4},FDR<0.14(该FDR的计算方法见文末 *3. FDR的计算方法,且阈值的选择问题本质上是一个模型选择问题 (model selection) ,该问题会在这部分靠后的位置进行讨论),且富集在CMV+样本中,从而得到与CMV+相关的CDR3克隆集合,共有164个

    通过下面的TCRβ克隆在两组中的发生率的散点图可以明显地看到,筛出的表型相关的TCRβ克隆的确显著地表达在CMV+组中

  • 计算表型负荷(phenotype burden)

    一个样本的表型负荷(phenotype burden)被定义为:

    该样本的所有unique TCRβs中与阳性表型相关的克隆的数量所占的比例

    若阳性表型相关的克隆的集合记为CDR,样本i的unique克隆集合记为CDRi,则它的表型负荷为:

    PB_i=\frac{||CDR_i \cap CDR||}{||CDR_i||}

    其中||·||表示集合·中元素的数量

    下图是将上面的表型负荷计算公式中的分子与分母分别作为纵轴和横轴,画成二维的散点图

    可以明显地看出两类样本在这个层面上来看,有很好的区分度

  • 基于二项分布的贝叶斯判别模型

    基本思想:

    对于CMV^+相关TCR数为k',total unique TCR数为n'的样本,认为它一个概率为它的表型负荷\theta'\theta'服从Beta分布),n=n', k=k'的二项分布(伯努利分布),根据贝叶斯思想,构造最优贝叶斯分类器,即

    h(k',n')=arg \max_{x \in \{+,\,-\}} p(c=x \mid k',\,n')

    其中

    p(c=x \mid k',\,n')=\frac{p(k' \mid n',\,c)p(c)}{p(k')}

    p(k')是一个常数,对分类器的结果没有影响,可以省略

    那么就需要根据训练集估计:

    • 类先验概率p(c)
    • 类条件概率(似然)p(k' \mid n',\,c)

    (1)首先根据概率图模型推出单个样本的概率表示公式

    概率图模型如下:

    则对于j样本,我们可以算出它的 \theta_i 的后验分布:

    p(\theta_i \mid y_{ij},\,\alpha_i,\,\beta_i)=\frac{p(\theta_i \mid \alpha_i,\,\beta_i)p(y_{ij} \mid \theta_i)}{p(y_{ij})}

    其中,

    • p(y_{ij}):表示事件(k_{ij} \mid n_{ij})发生的概率,即p(k_{ij}\mid n_{ij},\,c_i)
    • p(y_{ij} \mid \theta_i):表示Binomial(k_{ij} \mid n_{ij},\,\theta_i)=\left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right)\theta_i^{k_{ij}}(1-\theta_i)^{n_{ij}-k_{}ij}
    • p(\theta_i \mid \alpha_i,\,\beta_i):表示\theta_i的先验分布Beta(\theta_i\mid\alpha_i,\,\beta_i)

    对上面的公式进一步推导

    \begin{aligned} &p(\theta_i \mid y_{ij},\,\alpha_i,\,\beta_i) \\ &=\frac{p(\theta_i \mid \alpha_i,\,\beta_i)p(y_{ij} \mid \theta_i)}{p(y_{ij})}\\ &=\frac{1}{p(y_{ij})}Beta(\theta_i \mid \alpha_i,\,\beta_i)Binomial(k_{ij}\mid n_{ij},\,\theta_i) \\ &=\frac{1}{p(y_{ij})} \quad \{\frac{1}{B(\alpha_i,\,\beta_i)}\theta_i^{\alpha_i-1}(1-\theta_i)^{\beta_i-1}\} \quad \{\left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right)\theta_i^{k_{ij}}(1-\theta_i)^{n_{ij}-k_{ij}}\} \\ &=\frac{1}{p(y_{ij})} \quad \frac{1}{B(\alpha_i,\,\beta_i)} \left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right) \theta_i^{(\alpha_i+k_{ij})-1}(1-\theta_i)^{(\beta_i+n_{ij}-k_{ij})-1} \\ &=\frac{1}{p(y_{ij})} \quad \frac{B(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})}{B(\alpha_i,\,\beta_i)} \left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right) \frac{1}{B(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})} \theta_i^{(\alpha_i+k_{ij})-1}(1-\theta_i)^{(\beta_i+n_{ij}-k_{ij})-1} \\ &=\frac{1}{p(y_{ij})} \quad \frac{B(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})}{B(\alpha_i,\,\beta_i)} \left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right) \quad Beta(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij}) \end{aligned}

    根据Beta分布的先验分布的,已知

    p(\theta_i \mid y_{ij},\,\alpha_i,\,\beta_i)=Beta(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})

    因此

    p(k_{ij}\mid n_{ij},\,c_i)=p(y_{ij})=\left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right) \frac{B(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})}{B(\alpha_i,\,\beta_i)}

    这样我们就得到单个样本的概率表示公式,其中B(·)是Beta函数,从上面的表达式中,我们可以看出p(k_{ij}\mid n_{ij},\,c_i)\alpha_i\beta_i的函数

    (2)优化每个组的表型负荷 \theta_i 的先验分布的两个参数 \alpha_i\theta_i——最大似然法

    我们要最大化c_i组的样本集合它们的联合概率:

    \begin{aligned} &p(k_i \mid n_i,\,c_i) \\ &=\prod_{j,j \in c_i} \left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right) \frac{B(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})}{B(\alpha_i,\,\beta_i)}\\ &= \prod_{j,j \in c_i} \left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right) \quad \prod_{j,j \in c_i} \frac{B(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})}{B(\alpha_i,\,\beta_i)} \end{aligned}

    其中,\prod_{j,\,j \in c_i} \left(\begin{matrix}n_{ij}\\ k_{ij}\end{matrix}\right)是常数,可以省略,则

    p(k_i \mid n_i,\,c_i)=\prod_{j,j \in c_i} \frac{B(\alpha_i+k_{ij},\,\beta_i+n_{ij}-k_{ij})}{B(\alpha_i,\,\beta_i)}

    对它取对数,得到

    l(\alpha_i,\,\beta_i)=\log p(k_i \mid n_i,\,c_i) \\ = \sum_{j,\,j \in c_i} \log B(\alpha_i+k_{ij}, \, \beta_i+n_{ij}-k_{ij})-N_i\log B(\alpha_i, \, \beta_i)

    其中,N_i是属于c_i组的样本数

    因此优化目标为:

    (\alpha_i^*,\beta_i^*)=arg \, \max\limits_{\alpha_i,\,\beta_i}l(\alpha_i,\,\beta_i)

    l(\alpha_i,\,\beta_i)分别对\alpha_i\beta_i求偏导

    \frac{\partial l}{\partial \alpha_i}=-N_i(\psi(\alpha_i)-\psi(\alpha_i+\beta_i))+\sum_{j,\,j \in c_i}(\psi(\alpha_i+k_{ij})-\psi(\alpha_i+\beta_i+n_{ij}))


    \frac{\partial l}{\partial \beta_i}=-N_i(\psi(\beta_i)-\psi(\alpha_i+\beta_i))+\sum_{j,\,j \in c_i}(\psi(\beta_i+n_{ij}-k_{ij})-\psi(\alpha_i+\beta_i+n_{ij}))

    其中,\psi(·)是伽马函数

    使用梯度上升(gradient ascent)法来求解优化目标,其中梯度的公式为:

    \alpha_i := \alpha_i+\alpha\frac{\partial l}{\partial \alpha_i}\\ \beta_i := \beta_i+\alpha\frac{\partial l}{\partial \beta_i}

    最终得到的解记为\alpha_i^*\beta_i^*,其中

    \alpha_+^*=4.0,\quad \beta_+^*=51,820.1\\ \alpha_-^*=26.7,\quad \beta_-^*=2,814,963.8

    (3)根据训练好的分类器对新样本进行分类

    分类器为

    \begin{aligned} h(k',n') &= arg \max_{x \in \{CMV^+,\,CMV^-\}} p(c=x \mid n',k') \\ &=arg \max_{x \in \{CMV^+,\,CMV^-\}} p(k' \mid n', c=x)p(c=x) \\ &=arg \max_{x \in \{CMV^+,\,CMV^-\}}\left(\begin{matrix}n'\\k'\end{matrix}\right)\frac{B(\alpha_x^*+k',\,\beta_x^*+n'-k')}{B(\alpha_x^*,\,\beta_x^*)}\frac{N_x}{N} \end{aligned}

    (4)选择合适的的阈值:model selection

    使用交叉验证法中的留一法 (leave-one-out)来进行模型选择

    定义该问题的优化目标为最小化cross-entropy loss:

    L(\phi)=-\frac{1}{N}\sum_{i=1}^N [c_i\log q_i(\phi)+(1-c_i)\log (1-q_i(\phi))]

    其中,c_i表示样本i的所属类别,q_i(\phi)表示样本i被判为CMV^+的概率,N为训练样本数(N个训练样本数的训练集它总共有N种留一法组合形式)

    分析优化目标为什么选择最小化cross-entropy loss:

    我们的目的是选择合适的阈值,那么什么叫合适的阈值?就是在该阈值下,能筛选出合适的features,基于这些features训练出的模型能有足够高的泛化性能,即模型的variance足够的小,也就是对于测试数据(这里就是留一法中的那一个样本)有足够高的预测准确性,定量化描述就是N次留一法的准确预测的概率的均值(几何平均数)最大化,即

    \max_{\phi} \sqrt[N]{\prod_i^N q_i(\phi)^{c_i}(1-q_i(\phi)^{1-c_i}} \\ s.t.\quad c_i \in \{0,\,1\}

    由于取对数不影响优化方向,所以

    \begin{aligned}&\log \left[\prod_i^N q_i(\phi)^{c_i}(1-q_i(\phi)^{1-c_i} \right]^{1/N} \\ &=\frac{1}{N}\log \prod_i^N q_i(\phi)^{c_i}(1-q_i(\phi)^{1-c_i} \\ &=\frac{1}{N}\sum_{i=1}^N [c_i\log q_i(\phi)+(1-c_i)\log (1-q_i(\phi))] \end{aligned}

    从而得到上面的优化目标

补充知识

*1. beta分布

*1.1. 什么是beta分布

对于硬币或者骰子这样的简单实验,我们事先能很准确地掌握系统成功的概率。

然而通常情况下,系统成功的概率是未知的,但是根据频率学派的观点,我们可以通过频率来估计概率。为了测试系统的成功概率,我们做n次试验,统计成功的次数k,于是很直观地就可以计算出。然而由于系统成功的概率是未知的,这个公式计算出的只是系统成功概率的最佳估计。也就是说实际上也可能为其它的值,只是为其它的值的概率较小。因此我们并不能完全确定硬币出现正面的概率就是该值,所以也是一个随机变量,它符合Beta分布,其取值范围为0到1

用一句话来说,beta分布可以看作一个概率的概率密度分布,当你不知道一个东西的具体概率是多少时,它可以给出了所有概率出现的可能性大小。

Beta分布有和两个参数α和β,其中α为成功次数加1,β为失败次数加1。

*1.2. 理解beta分布

举一个简单的例子,熟悉棒球运动的都知道有一个指标就是棒球击球率(batting average),就是用一个运动员击中的球数除以击球的总数,我们一般认为0.266是正常水平的击球率,而如果击球率高达0.3就被认为是非常优秀的。

现在有一个棒球运动员,我们希望能够预测他在这一赛季中的棒球击球率是多少。你可能就会直接计算棒球击球率,用击中的数除以击球数,但是如果这个棒球运动员只打了一次,而且还命中了,那么他就击球率就是100%了,这显然是不合理的,因为根据棒球的历史信息,我们知道这个击球率应该是0.215到0.36之间才对啊。

对于这个问题,一个最好的方法来表示这些经验(在统计中称为先验信息)就是用beta分布,这表示在我们没有看到这个运动员打球之前,我们就有了一个大概的范围。beta分布的定义域是(0,1)这就跟概率的范围是一样的。
s
接下来我们将这些先验信息转换为beta分布的参数,我们知道一个击球率应该是平均0.27左右,而他的范围是0.21到0.35,那么根据这个信息,我们可以取α=81,β=219

之所以取这两个参数是因为:

  • beta分布的均值

  • 这个分布主要落在了(0.2,0.35)间,这是从经验中得出的合理的范围

Beta(81, 219)

在这个例子里,我们的x轴就表示各个击球率的取值,x对应的y值就是这个击球率所对应的概率密度。也就是说beta分布可以看作一个概率的概率密度分布。

那么有了先验信息后,现在我们考虑一个运动员只打一次球,那么他现在的数据就是“1中;1击”。这时候我们就可以更新我们的分布了,让这个曲线做一些移动去适应我们的新信息,移动的方法很简单

其中α0和β0是一开始的参数,在这里是81和219。所以在这一例子里,α增加了1(击中了一次)。β没有增加(没有漏球)。这就是我们的新的beta分布 Beta(81+1,219),我们跟原来的比较一下:

可以看到这个分布其实没多大变化,这是因为只打了1次球并不能说明什么问题。但是如果我们得到了更多的数据,假设一共打了300次,其中击中了100次,200次没击中,那么这一新分布就是 Beta(81+100,219+200) :

注意到这个曲线变得更加尖,并且平移到了一个右边的位置,表示比平均水平要高

有趣的现象:

根据这个新的beta分布,我们可以得出他的数学期望为:α/(α+β)=82+100/(82+100+219+200)=.303 ,这一结果要比直接的估计要小 100/(100+200)=.333 。你可能已经意识到,我们事实上就是在这个运动员在击球之前可以理解为他已经成功了81次,失败了219次这样一个先验信息。


参考资料:

(1) Emerson R O , Dewitt W S , Vignali M , et al. Immunosequencing identifies signatures of cytomegalovirus exposure history and HLA-mediated effects on the T cell repertoire[J]. Nature Genetics, 2017, 49(5):659-665.

(2) CSDN·chivalry《二项分布和Beta分布》

(3) CSDN·Jie Qiao《带你理解beta分布》

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

推荐阅读更多精彩内容