AlphaFold 内存不足错误,未使用 15 GB RAM 和 95 GB 磁盘空间?

问题描述 投票:0回答:2

我正在尝试使用this笔记本运行AlphaFold来预测大蛋白质的结构。我已经多次使用此笔记本来分析合理大小的蛋白质(300-800 个氨基酸,如果这有帮助的话),没有任何问题,但这种蛋白质几乎是 2,400 个氨基酸。我首先尝试在免费的 Colab 帐户上运行它,但该帐户显然没有足够的 RAM。我今天切换到 Colab Pro 并再次尝试,但收到了非常相似的错误消息,这次仅出现在代码本身中,而不是 colab 弹出的购买 Pro 的小提示。奇怪的是,整个运行从未使用超过 9 GB 的 RAM 和 60 GB 的磁盘空间(25 GB RAM 和 155 GB 可用磁盘空间),所以看起来我什至不接近资源当失败并闪烁错误时进行限制。

我是 Colab 的新手,所以我不确定会发生什么,但似乎该程序可能在某种程度上“自我破坏”,并对 Pro 帐户施加了与 Colab 实际限制不同的资源限制。对此或其他一些可能性和潜在的解决方案有什么想法吗?

提前致谢!

这是确切的错误消息:

running model_1
---------------------------------------------------------------------------
UnfilteredStackTrace                      Traceback (most recent call last)
<ipython-input-15-af48741e914e> in <module>()
     50                          model_params=model_params, use_model=use_model,
---> 51                          do_relax=use_amber)

13 frames
UnfilteredStackTrace: RuntimeError: RESOURCE_EXHAUSTED: Out of memory while trying to 
allocate 1465970944 bytes.

The stack trace below excludes JAX-internal frames.
The preceding is the original exception that occurred, unmodified.

--------------------

The above exception was the direct cause of the following exception:

RuntimeError                              Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/jax/interpreters/xla.py in 
_execute_compiled(compiled, avals, handlers, kept_var_idx, *args)
    958           for i, x in enumerate(args)
    959           if x is not token and i in kept_var_idx))
--> 960   out_bufs = compiled.execute(input_bufs)
    961   check_special(xla_call_p.name, out_bufs)
    962   return [handler(*bs) for handler, bs in zip(handlers, 
_partition_outputs(avals, out_bufs))]

RuntimeError: RESOURCE_EXHAUSTED: Out of memory while trying to allocate 1465970944 
bytes.
google-colaboratory
2个回答
1
投票

您似乎耗尽了 GPU 内存(最大 ~15GB),而不是系统 RAM。我也遇到过同样的问题。不幸的是,如果可能的话,唯一的解决办法是截短蛋白质。


0
投票

这是因为您的系统不适合 GPU 内存。您有几个选择:

  1. 您可以使用 AlphaFold 中的
    reduced_dbs
    标志运行相同的系统。请参阅此处 文档。 这会减少 AlphaFold 用于预测蛋白质结构的数据库的大小,这可能会或可能不会导致预测结构质量的下降。
  2. 您可以独立预测蛋白质链或蛋白质复合物中的蛋白质,然后先验组装它们。请参阅 AlphaFold 开发人员之一 Augustin Zidek 的解释,此处
  3. 2 亿个预测的蛋白质结构托管在AlphaFold 蛋白质结构数据库
  4. 您可以安装本地版本的 AlphaFold,它可以比 ColabFold 版本处理更多内存。安装说明这里
  5. 您可以使用 AlphaFold 3 代替 AlphaFold 2; AlphaFold 3 可以预测更大的系统。

深入了解,GitHub 提供了更复杂的选项。

© www.soinside.com 2019 - 2024. All rights reserved.