大数跨境
0
0

Alphafold3升级:蛋白及生物大分子结构和互作预测更快、更准!

Alphafold3升级:蛋白及生物大分子结构和互作预测更快、更准! Dr.X的基因空间
2025-02-18
0
导读:Alphafold3升级:更低的计算资源要求和更高性能的预测效果

Alphafold v3.01升级公告

写在前面的
去年11月,DeepMind公司公开了Alphafold3的源代码。我跟朋友立刻在本地服务器部署了Alphafold3。在安装和测试的过程中,我和朋友发现了一些潜在的问题,但是由于的时间和资源限制我们没有进行更多的探索是否可能是bug。于是乎,过去一段时间内,我只是单纯记录了自己怎么用Alphafold3一定会输出正确的结果,而没有去思考过为什么不这样做就会报错或者无法得到结果。今天偶然看见了DeepMind公司在其github相关页面发布了Alphafold3的迭代更新版本。简单浏览完更新记录后,对于过去留下的一些问题豁然开朗。

Alphafold3过去安装和测试中发现的些许问题

1.Singularity安装流程看不懂

       Alphafold3源代码初次发布时DeepMind就提供了基于Docker安装和Singularity安装的教程。一开始我和朋友也讨论过到底选择Docker还是Singularity的安装策略,其实我们个人更倾向于选择基于Singularity的安装策略。这是因为Singularity和Docker都是容器化平台,但它们的确有一些不同之处,适合不同的使用场景:

Docker:
  • Docker是目前最流行的容器平台之一,有着庞大的用户群体和生态系统支持。它提供了简单易用的命令行接口和图形用户界面,使得容器的构建、部署和管理变得更加容易。更适合用于开发和测试环境中,以及在开发过程中构建和分享容器。但是Docker要求用户拥有管理员权限才能运行容器。
Singularity:
  • Singularity更适合在高性能计算(HPC)环境中运行,因为它支持在没有root权限的情况下运行容器。并且Singularity的设计使得容器在运行时更加安全,特别适合在共享环境中运行容器。此外,Singularity支持运行传统的应用程序和工具,这些工具可能不适合在Docker中运行。所以Singularity更容易与现有的HPC环境集成,而无需进行较大的改动。

       因此,Docker更适合面向处理开发、测试、部署或者在拥有管理员权限的环境中运行容器,Singularity更适合在HPC环境中运行应用。由于我们作为生物医药背景的人员主要利用Alphafold3进行生物大分子结构预测,较少涉及大型生物AI软件的开发,同时因为Alphafold3目前只适合安装在具备足够GPU资源的大型服务器上,这类服务器通常以集群的方式供给研究团队或机构的人群使用,Singularity更适合。但是我和朋友根据早先的Alphafold3安装教程去安装基于Singularity的Alphafold3,结果发现安装异常,不是这里报错就是那里提示有问题。无奈之下,我们才选择了基于Docker的安装。通过这次Alphafold3的更新介绍,发现DeepMind团队更新了基于Singularity的安装说明,结合当时的踩坑记录,我们发现确实老版本的安装说明有一部分确实混淆了我们的理解,导致安装失败,新的安装说明更清晰易懂。

2.Python 3.12安装兼容问题

       一开始安装Alphafold3时,我们默认的python版本就是3.12,不过在安装过程中总是碰到一些兼容性问题。起初还能想办法解决,但是在依赖安装的过程中发现兼容问题较多,特别是我们本身的CUDA版本相对较低,还存在一定程度硬件适配问题。随后在安装过程中,我们放弃了选择3.12版本,转而选择降低版本。这一次的Alphafold3更新日志中DeepMind特别提到修复了与python 3.12兼容的设置。如此看来,目前安装Alphafold3应该不会出现太多兼容性问题了。

3.无端的Numpy警告信息

在测试Alphafold3的过程中,我们常发现提交的运行程序中偶尔会出现一些warning,这些warning都指向numpy的结构。一开始我们担心是自身技艺不精,导致提交的运行程序有些许瑕疵,也很担心这些warning会导致预测结果不准确。因此,我们初期花费了较多时间用于反复测试不同蛋白质、不同随机数种子的预测结构变异性。在反复测试下,我们发现应该不是自己的问题,而是这些Warning来自于Alphafold3程序本身。在这次更新中我特别注意到DeepMind团队也注意到了这些无关的warning,并修复了它们。

4.输出的PDB mmCIF文件权限问题

       测试Alphafold3过程中,我注意到哪怕我在运行Alphafold3前已经将输入和输出路径的权限修改为组员可读可执行,但是Alphafold3输出的预测结果文件中仍然无法让组员直接可执行。还需要额外使用chmod命令再改一次输出结果权限。这次更新中Alphafold3也注意到这个问题,并修复了。

5.输出的PDB mmCIF文件中没有每个残基的plDDT值

       每个残基的pLDDT值(per-residue lDDT)是AlphaFold在预测蛋白质结构时为每个残基计算的置信度评分。pLDDT ≥ 90:残基具有非常高的模型置信度(very high confidence)。90 > pLDDT ≥ 70:残基被归类为确信的(confident)。70 > pLDDT ≥ 50:残基的置信度较低(low confidence)。pLDDT < 50:残基的置信度很低(very low confidence),通常与蛋白质的固有无序性相关联。我很早注意到Alphafold3输出结果中并没有给予每个残基一个预测评价。因此很难去检验哪些精确位置可能存在预测质量差的情况。在当前的更新迭代中,Alphafold v3.0.1可以输出每个残基的plDDT值了。

Alphafold v3.0.1全部更新介绍

新增特征

以下是关于Alphafold3的新功能摘要,详细更新介绍可点击原文查看:

1.无模板操作与MSA搜索

  • Alphafold3 现在支持在无模板操作中仍然搜索多序列比对(MSA)。

2.提供MSA的模板搜索

  • 现在可以在提供MSA数据时运行模板搜索。

3.外部文件指定MSA和模板

  • 用户可以将MSA和模板指定为外部文件,而不是内联在输入JSON中。

4.新增参数标志

  • 添加了新的参数标志,包括 --max_template_date--diffusion_num_samples--num_recycles 和 --num_seeds

5.RDKit迭代次数

  • 将 --conformer_max_iterations 暴露为一个标志,允许增加RDKit迭代次数。

6.模型嵌入返回

  • 增加了一个选项,可以返回模型嵌入并将其写入文件。

7.多GPU支持

  • 现在可以设置在多GPU系统上使用哪个GPU。

8.输出mmCIF中的每残基pLDDT

  • 输出的mmCIF文件现在包含每个残基的pLDDT值。

性能提升

1.更快的数据库下载脚本

  • 用一个速度显著更快的脚本替换了旧的数据库下载脚本,并添加了GCP后处理脚本。

2.改进的Stockholm转换器

  • 改进了Stockholm转换器,转换为A3M时不会读取比必要更多的序列。

3.Stockholm到A3M转换的优化

  • 优化了Stockholm到A3M的转换,不会将整个文件读入内存。

4.加快模板搜索速度

  • 通过不读取和解析无关的mmCIF文件,加快了模板搜索速度。

5.重构的输入JSON解析

  • 将输入JSON解析重构为迭代器,这样输入不会一次性全部加载到内存中,避免内存耗尽,也使得更新的Alphafold3的计算资源下限下调,意味着可以用相对低的服务器可能也有机会安装使用Alphafold3。

6.输出JSON时的序列去重

  • 在输出JSON时添加了序列去重功能,使得对于同源聚合物来说输出文件更小。

Bug修复记录

  1. 空白MSA + 模板提供时跳过数据管道处理。
  2. 屏蔽了无关的Numpy警告。
  3. 改进了Singularity安装说明。
  4. 修复了处理大型输入时Pallas GLU内核问题,并更新了编译桶的文档。
  5. 修复了与Python 3.12兼容的设置。
  6. 如果输出目录已经存在,AlphaFold将不会覆盖其中的文件,而是会创建一个新目录。
  7. 将DATIVE键类型转换为SINGLE,以匹配训练中使用的键类型。
  8. 将原子元素转换为大写形式,以匹配训练中使用的嵌入名称。
  9. 修复了在解压PDB mmCIF文件时的用户和权限问题。
  10. 在获取生成的构象时显式使用构象ID。
  11. 修复了包含制表符描述的情况下的A3M -> Stockholm转换。
  12. 对由glob返回的输入文件进行排序,否则会以任意顺序返回。
  13. 确保用户CCD包含所有必要字段,并改进文档。
  14. 修复了在处理SMILES配体中的双字母原子时的错误处理。
  15. 在可能的情况下,使用OpenEye规范的SMILES。
  16. 如果无法创建分子定义,则引发明确的错误。
  17. 为CUDA Capability 7.x GPU添加XLA标志的解决方法。
  18. 在处理Pallas内核中的PID时修复数值精度问题。
  19. 正确处理单字母序列中的非标准残基。
  20. 修复了根据任意链ID计算RASA的问题。
  21. 对于配对的MSA创建,使用真实的链类型。

总结与展望

       根据Alphafold v3.0.1的更新记录,DeepMind不仅持续跟进初代版本的实际应用情况,还积极修复初代版本中出现的问题,尽管从更新版本来看,这次升级属于小升级,但发布版本3.0.1进一步证明了Alphafold3受到其开发团队持续维护的重视,预示着用户体验和预测结果将更加稳健可靠。DeepMind对Alphafold3的安装教程进行了简化和优化,使更多非计算机专业背景的用户能够轻松独立部署该平台。同时,DeepMind致力于提升Alphafold3的性能,降低对硬件的依赖性。尽管这种改进可能需要更多时间来完善,但这种迭代行为预示着未来大型AI模型产品将逐渐朝向轻量化、便携化发展,使得广大用户能够在简单设备或终端上轻松部署自己的AI模型工具。Alphafold3的升级也许预示着AI产品发展的趋势,为未来的AI技术发展描绘了一幅更为广阔的前景。

往期精彩

Alphafold3源代码已完全公开(附本地安装教程)

申请Alphafold3模型参数

实战!利用本地Alphafold3批量预测蛋白结构及其与生物大分子相互作用


【声明】内容源于网络
0
0
Dr.X的基因空间
【中国科学院博士】10年生命科学数据挖掘研究经验,关注生物医药领域体外诊断(IVD)方向,如肿瘤早筛、传染病未知病原快速检测中的技术创新及其与人工智能(AI)的赋能应用
内容 176
粉丝 0
Dr.X的基因空间 【中国科学院博士】10年生命科学数据挖掘研究经验,关注生物医药领域体外诊断(IVD)方向,如肿瘤早筛、传染病未知病原快速检测中的技术创新及其与人工智能(AI)的赋能应用
总阅读140
粉丝0
内容176