山东大学2019级软件工程应用与实践——基于人工智能的多肽药物分析问题(六)

本文介绍了DeepHLApan,这是一个用于预测多肽与HLA(人类白细胞抗原)分子结合及免疫原性的深度学习模型。模型由三层双向门控循环单元(BiGRU)构成,旨在处理HLA肽结合数据不平衡的问题。在未见过的HLA等位基因上,结合模型显示出良好的泛化能力。尽管预测基序与实际基序不完全相同,但显示出了相似的模式。此外,代码分析部分展示了注意力机制在模型中的应用。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

基于人工智能的多肽药物分析问题

主题:肽与HLA分子结合预测研究(6)
论文学习
DeepHLApan的体系结构

结合亲和力是HLA肽结合最广泛使用的测量方法。然而,随着用于HLA肽结合检测的高通量方法(例如MS)的发展,出现了大量没有结合亲和力的HLA肽结合数据。在从IEDB收集的绑定数据集中,66.8%的绑定数据未通过绑定亲和力进行测量。

随着时间的推移,差距进一步扩大。作者将具有绑定亲和力的绑定数据转换为二进制模型,以创建一个只提供绑定或不绑定结果的模型。此外,pHLA的潜在免疫原性是肿瘤免疫治疗的一个必要因素。然而,由于数据不足,已发表的工具均考虑pHLA的免疫原性。

作者试图确定现有的免疫原性数据是否能够促进高信心新抗原的鉴定。DeepHLApan包含两个独立部分(结合模型和免疫原性模型),其模型框架由三层BiGRU组成。

结合模型对未知等位基因的预测性能

在结合模型训练期间,作者创建了高置信度伪HLA-肽对,以平衡每个等位基因的训练数据,并移除了正/负配对数量不平衡的HLA等位基因。在这些去除的等位基因中,62个具有纯阳性HLA肽对,1个具有纯阴性对,14个具有超过5倍阴性对的阳性对,4个具有超过5倍阳性对的阴性对。

作者评估了结合模型在这些从未见过的HLA等位基因上的性能,以发现其预测pan等位基因的能力。对于具有阴性和阳性对的18个等位基因,大多数(18个中的9个,50%)的AUC>0.9。对于其余未经训练的等位基因,大多数(63人中的35人,56%)的准确度>0.9。

结合模型对从未见过的HLA等位基因的可靠预测结果表明,该模型适用于pan等位基因的预测。

结合模型在43个HLA等位基因上表现良好(AUC或准确度>0.9)。为了进一步研究结合模型是否能够为这些等位基因学习到真正正确的基序(仅考虑9-mer),作者将16个HLA等位基因上的实际基序和预测基序与100多个结合肽(从43个HLA等位基因中选择)进行了比较。

实际基序基于结合肽,预测基序是通过从100000个随机肽中提取前1%的预测肽生成的。WebLogo用于主题表示。我们发现预测的基序与实际基序并不完全相同,但它们在大多数HLA等位基因中具有相似的模式。HLA-B48:01的预测基序与实际基序最不相似,但氨基酸精氨酸、谷氨酸和谷氨酰胺也保存在预测基序的第二个氨基酸残基中。

这些结果表明,DeepHLApan的结合模型并不是简单地归结为训练集的许多等位基因之间的混合,而是具有区分不同等位基因的能力。

代码分析

attention.py

    def compute_mask(self, input, input_mask=None):
        return None
    def call(self, x, mask=None):
        eij = dot_product(x, self.W)

        if self.bias:
            eij += self.b

        eij = K.tanh(eij)

        a = K.exp(eij)

        if mask is not None:
            a *= K.cast(mask, K.floatx())

        a /= K.cast(K.sum(a, axis=1, keepdims=True) + K.epsilon(), K.floatx())

        weighted_input = x * K.expand_dims(a)

        result = K.sum(weighted_input, axis=1)

        if self.return_attention:
            return [result, a]
        return result

K.tanh()双曲正切函数,用作激活函数

进行除法运算时,通常将其添加到分母中以防止被零除误差。epsilon是一个很小的值,与分母的值几乎没有区别,但可确保它不等于零。

    def compute_output_shape(self, input_shape):
        if self.return_attention:
            return [(input_shape[0], input_shape[-1]),
                    (input_shape[0], input_shape[1])]
        else:
            return input_shape[0], input_shape[-1]

至此代码全部分析完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值