很粗浅的思考和理解(胡思乱想ing)
其实一直不是很明白深度学习是怎么样从序列预测蛋白质的结构,特别是一直不明白这种idea是怎么想出来的,现在有略微一点点明白(猜测)。
那就是先有的想法应该是蛋白质的结构是氨基酸自己一个个长出来的,也就是预测的时候不需要计算绝对的位置(x,y,z)而是计算氨基酸相对的位置(相对于前面一个氨基酸),那么我们就只需要考虑氨基酸A然后到氨基酸B怎么样进行折叠,前后的作用力以及远端的作用力是怎么样作用的,那么我们只需要学习这些氨基酸在前后不同距离的相关性就行了,那么只要生成一个氨基酸,然后依次生成多个氨基酸,然后根据这些相关性,后面的氨基酸的空间结构会根据权重不断变换,那么就可以粗略的长出其主要的结构,然后再对精细的结构进行不断的调整,最后生成最后的结构。
其实这也是符合生物学上的翻译的一个过程,翻译的过程其实就是有了氨基酸序列,氨基酸序列再根据其特性就像是弹簧一样折叠成结构。
然后有了这种想法之后,我们就只需要计算氨基酸之间的相关性,相似性,以及距离上的相关性就可以了,这就是深度学习在编码器上能够做的事情。transformer最大的优势便是能够考虑不同的词(或者说基本单元,氨基酸)之间的相关关系,所以deepmind团队改进了原始版本的tansformer之后,使其在编码(encode)的过程之中能够考虑的氨基酸之间的相关的信息更多,比如考虑多序列比对的信息,然后再在解码的过程之中从一个氨基酸生成若干个氨基酸的蛋白结构。然后不断迭代改进,思路大体应该是这样。
也就是说虽然实现alphafold的代码是先编码后解码,但是实际思路是从解码这一步出发,然后思考如何更精细的编码,不断改进解码以及最后的生成效果,然后再根据最后的效果,不断加入能够优化效果的模块,这也就是为何作者这么多的原因。
image.png按照这个思路来理解的话,alphafold有价值的地方不仅在于能够高精度的预测蛋白,而应该在于捕获了氨基酸之间关系变化的一些本质的特征。
基于AlphaFold2进行蛋白质结构预测的文章解析 - 简书 (jianshu.com)
【转载】AlphaFold/ RoseTTAFold开源复现(1)—推理复现MindSpore昇腾_华为云论坛 (huaweicloud.com)
网友评论