重新发明是用于从头设计,脚手架跳跃,R组替换,接头设计,分子优化和其他小分子设计任务的分子设计工具。重塑使用增强学习(RL)算法来生成具有用户定义的属性配置文件定义为多组分分数的优化分子。转移学习(TL)可用于创建或预先训练一种模型,该模型生成更接近一组输入分子的分子。
一篇描述该软件的论文已在《化学信息学杂志:重塑4:现代AI驱动的生成分子设计》中发表。有关以前的论文的参考,请参见作者。
正在开发在Linux上,并支持GPU和CPU。 Linux版本已完全验证。重新发明Windows和MacOSX支持GPU和CPU,但仅在这些平台上进行了部分测试,因此支持是有限的。
该代码写在Python 3(> = 3.10)中。依赖项列表可以在存储库中找到(另请参见下面的安装)。
GPU并不是严格必要的,但出于绩效原因而强烈推荐,尤其是用于转移学习和模型培训。强化学习(RL)需要计算大多数评分组件在CPU上运行的分数。因此,对于RL,GPU不太重要(取决于在CPU上花费了多少时间)。
请注意,如果计算机中未安装GPU,则代码将在CPU上自动运行。重塑支持NVIDIA GPU和一些AMD GPU。对于大多数设计任务,CPU主内存和GPU内存的大约8 GIB的内存就足够了。
conda create --name reinvent4 python=3.10
conda activate reinvent4pip install -r requirements-linux-64.lockpip install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https://download.pytorch.org/whl/rocm5.7requirements-macOS.lock 。pip install --no-deps .reinvent 。 reinvent --help重新发明是一种命令行工具,主要工作如下
reinvent -l sampling.log sampling.toml这将记录信息写入文件sampling.log 。如果您想将其写入屏幕,请遗漏-l sampling.log零件。 sampling.toml是配置文件。主要用户格式是TOML,因为它往往更友好。 JSON也可以使用-f json ,但是建议使用专门的编辑器,因为该格式对微小变化非常敏感。
所有运行模式的示例配置文件位于存储库中的config/toml中,这些文件中的文件路径将需要调整到您的本地安装。特别是,就绪的先验模型位于priors中,您将根据您要解决的研究问题选择一个模型和适当的运行模式。 config/toml中有几个*.md文件中有其他信息,其中包含有关如何配置TOML文件的说明。可以使用点表示法引用内部先验(请参阅reinvent/prior_registry.py )。
Jupyter笔记本基本说明可以在config/toml中的配置示例中的注释中找到。
笔记本在notebooks/目录中提供。请注意,我们以jupytext的“轻脚本”格式提供笔记本。要使用轻脚本,您需要安装JupyText。其他一些软件包也将派上用场。
pip install jupytext mols2grid seaborn notebooks/中的Python文件可以转换为笔记本
jupytext -o Reinvent_demo.ipynb Reinvent_demo.py使用PIP-Tools更新锁定文件(请不要手动编辑文件):
pip-compile --extra-index-url=https://download.pytorch.org/whl/cu121 --extra-index-url=https://pypi.anaconda.org/OpenEye/simple --resolver=backtracking pyproject.toml要更新单个软件包,请使用pip-compile --upgrade-package somepackage (请参阅PIP-Tools的文档)。
评分子系统使用简单的插件机制(Python本地名称空间软件包)。如果您想编写自己的插件,请按照下面的说明进行操作。无需触摸任何重塑代码。公共存储库包含一个贡献目录,其中包含一些有用的示例。
/top/dir/somewhere/reinvent_plugins/components /top/dir/somewhere是您的方便位置。__init__.py放在reinvent_plugins或components中,因为这会破坏机制。只要您正确导入这些组件,就可以在components中创建普通软件包。comp_*开头的文件放入reinvent_plugins/components中。具有不同名称的文件将被忽略,即未导入。目录将递归搜索,以便根据需要构建您的代码,但是目录/软件包名称必须是唯一的。/top/dir/somewhere到PYTHONPATH环境变量或使用任何其他机制扩展sys.path 。这主要适用于希望确保安装工作的开发人员和管理员/用户。这里的信息与重新发明的实际使用无关。请参阅基本用法,以获取有关如何使用reinvent命令的说明。
重塑项目使用pytest框架进行测试。在运行它们之前,首先必须为测试创建配置文件。
在项目目录中,在configs/目录中创建一个config.json文件。您可以将示例config example.config.json用作基础。确保将MAIN_TEST_PATH设置为不存在的目录。那是在测试期间写临时文件的地方。如果将其设置为现有目录,则一旦测试完成,该目录将被删除。
一些测试需要专有的露天许可证。您必须设置一些内容才能使测试阅读您的许可证。简单的方法是将OE_LICENSE环境变量设置为包含许可证的文件路径。
一旦配置并可以阅读许可证,就可以运行测试。
$ pytest tests --json /path/to/config.json --device cuda