alphafold的“先分后合”

我前段时间躺床上把AlphaFold这一套东西翻来覆去啃了好几遍,搞得灰头土脸,就是想搞清楚它到底怎么干的。你要真想看懂它咋预测蛋白结构,先把这篇存起来。AlphaFold要干的就是个拼图游戏,把一段氨基酸序列变成立体结构。输入那串看着像乱码的字母(比如mklfwllfti gfcwaqyspn……pfiaihaeskl)有511个,输出其实是一大串夹角向量。 它先给氨基酸画个“特征脸”,主要看的是氨基酸种类、理化性质这些。然后用CCMpred算一算两个残基可能碰到一起的概率,弄出个三维的张量。把这两张“脸”拼一起,就成了网络吃进去的那张“全息面孔”。 接着它不猜最后长得啥样,先猜谁离谁近、夹角是多少。它在平面上摆了个8乘8的64格子网格,让网络把残基塞进去,格子里概率越高代表离得越近。角度那边就把360度切成36块10度的小块,弄个36乘36的地图来看夹角落在哪个位置。 有了距离和角度还不行,得有个标准来判断准不准。系统弄了个可微分的评估函数,把这些夹角向量扔进去算出个数值X。X越小就越像真的蛋白。为了不让优化陷入死胡同,AlphaFold还弄了个进化加退火的策略在参数空间里来回折腾,确保找到的是全局最优解。 整个流程就是先提特征、再猜距离和角度、最后评估优选。这种“先分后合”的玩法挺像武当梯云纵的——一脚蹬一脚、左脚踩右脚就能飞出大气层。最关键的还是多序列对齐工具HHblits帮了大忙。系统在数据库里找和输入序列长得像的同源蛋白当参考书,把精度给抬了上去。 虽然有人觉得计算机去搞基因挺不务正业的,但历史总是这么干的:看似没用的探索往往是改变世界的钥匙。AlphaFold这招确实厉害,让“蛋白质折叠”这块千年硬骨头裂开了缝。下一篇咱们继续深挖AlphaFold 2的新花样。