最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

AlphaFold2表示

2023-03-23 15:35 作者:程序員-王堅(jiān)  | 我要投稿

技術(shù)背景

在前面的這一篇博客中,比較全面的介紹了組成蛋白質(zhì)的各種氨基酸的三維結(jié)構(gòu)。由于每個(gè)氨基酸大小不一,在傳統(tǒng)的蛋白質(zhì)折疊預(yù)測(cè)的方案中,一般會(huì)考慮全原子方案或者是粗粒化方案。對(duì)于全原子方案而言,即時(shí)去除了氫原子,也包含了極大的原子數(shù),對(duì)于計(jì)算量來(lái)說(shuō)是一個(gè)非常大的考驗(yàn)。而將一個(gè)氨基酸近似為一個(gè)點(diǎn)的方案,因?yàn)橥雎粤颂嗟男畔?,比如氨基酸之間的二面角等,因此無(wú)法達(dá)到很好的預(yù)測(cè)效果。在AlphaFold中,將每一個(gè)氨基酸在主鏈上的位置,用一個(gè)三角形剛體來(lái)表示。這個(gè)三角形的三個(gè)頂點(diǎn)分別是C原子、N原子和αα位的C原子。由于一個(gè)三角形就可以確定一個(gè)平面,因此每一個(gè)氨基酸可以通過(guò)一個(gè)三角形的內(nèi)坐標(biāo)和一個(gè)頂點(diǎn)的笛卡爾坐標(biāo)來(lái)完整的表示出來(lái)。

算法實(shí)現(xiàn)

這里我們使用MindSpore復(fù)現(xiàn)一下AlphaFold2中的算法21,也就是剛體表示算法。由于是一個(gè)剛體,我們可以將其中除了用于定位頂點(diǎn)的笛卡爾坐標(biāo)以外的內(nèi)坐標(biāo)做一個(gè)歸一化處理。該算法的基本流程為:

  1. 輸入三角形ΔCCαNΔCCαN的笛卡爾坐標(biāo);

  2. 計(jì)算CαCCαC→的單位向量,表示為e1e1→

  3. 計(jì)算CαCCαC→NN的垂向量的單位向量,表示為e2e2→;

  4. 計(jì)算e1e1→e2e2→的叉乘,得到一個(gè)跟三角形ΔCCαNΔCCαN平面相垂直的單位向量e3e3→

  5. e1e1→、e2e2→e3e3→表示當(dāng)前氨基酸的空間位置,保留Cα的坐標(biāo)用于表示當(dāng)前氨基酸在空間中的絕對(duì)位置。
    具體算法實(shí)現(xiàn)如下所示:

# algorithm21.py# 關(guān)閉MindSpore的Warning信息import osos.environ['GLOG_v'] = '4'import numpy as npimport mindspore as msfrom mindspore import Tensor, opsfrom mindspore import numpy as msnpdef rigidFrom3Points(crd):""" Transform the coordinates formulation. """v1 = crd[:, 2] - crd[:, 1]v2 = crd[:, 0] - crd[:, 1]e1 = v1 / v1.norm(axis=-1, keep_dims=True)u2 = v2 - e1 * ops.Einsum('ij,ij->i')((e1, v2))[:, None]e2 = u2 / u2.norm(axis=-1, keep_dims=True)e3 = msnp.cross(e1, e2, axisc=-1)R = ops.Concat(axis=-2)((e1[:, None], e2[:, None], e3[:, None]))t = crd[:, 1][:, None]new_crd = ops.Concat(axis=-2)((R, t))return new_crdif __name__ == '__main__':np.random.seed(1)BATCHES = 2DIMENSIONS = 3ATOMS = 3# 定義原始坐標(biāo)origin_crd = Tensor(np.random.random((BATCHES, ATOMS, DIMENSIONS)), ms.float32)print ('The original coordinates is: \n{}'.format(origin_crd))trans_crd = rigidFrom3Points(origin_crd)print ('The transformed coordinates is: \n{}'.format(trans_crd))

該算法的輸出結(jié)果為:

The original coordinates is:[[[4.17021990e-01 7.20324516e-01 1.14374816e-04][3.02332580e-01 1.46755889e-01 9.23385918e-02][1.86260208e-01 3.45560730e-01 3.96767467e-01]][[5.38816750e-01 4.19194520e-01 6.85219526e-01][2.04452246e-01 8.78117442e-01 2.73875929e-02][6.70467496e-01 4.17304814e-01 5.58689833e-01]]]The transformed coordinates is:[[[-0.30411592 ?0.5208795 ? 0.79762024][ 0.30775824 ?0.8461014 ?-0.43519795][-0.90155333 ?0.11312358 -0.41761786][ 0.30233258 ?0.14675589 ?0.09233859]][[ 0.55235845 -0.5461919 ? 0.6297417 ][-0.73928094 ?0.02810205 ?0.67281044][-0.38518062 -0.8371886 ?-0.38826686][ 0.20445225 ?0.87811744 ?0.02738759]]]

如此一來(lái),我們就可以通過(guò)調(diào)整給定蛋白質(zhì)坐標(biāo)的Cα位置和旋轉(zhuǎn)用于表示氨基酸內(nèi)坐標(biāo)的三個(gè)向量e1e1→、e2e2→e3e3→,以得到一個(gè)使得整體模型的Loss最低的采樣器,就可以用于預(yù)測(cè)生成一系列給定氨基酸序列的蛋白質(zhì)構(gòu)象。

總結(jié)概要

本文主要通過(guò)MindSpore復(fù)現(xiàn)了一個(gè)AlphaFold2文章中的算法21,該算法可以用于將蛋白質(zhì)構(gòu)象中的每一個(gè)氨基酸轉(zhuǎn)化成一個(gè)歸一化的空間三角形表示,更方便用于深度學(xué)習(xí)模型中的參數(shù)優(yōu)化。有了這樣一個(gè)抽象的模型,再定義一系列的梯度優(yōu)化和損失函數(shù),就可以得到一個(gè)用于預(yù)測(cè)蛋白質(zhì)構(gòu)象的生成模型。

作者ID:DechinPhy

AlphaFold2表示的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
正蓝旗| 济宁市| 瑞昌市| 阿荣旗| 台江县| 敦煌市| 嫩江县| 英吉沙县| 桂平市| 光泽县| 嵊州市| 山东| 马公市| 皮山县| 新疆| 海盐县| 永福县| 崇义县| 封开县| 高邮市| 延庆县| 深圳市| 定陶县| 平度市| 时尚| 赫章县| 凯里市| 淮滨县| 连城县| 宣城市| 邢台县| 陕西省| 凤翔县| 隆回县| 绍兴市| 博白县| 呼和浩特市| 枞阳县| 化州市| 伊吾县| 大冶市|