重新發明是用於從頭設計,腳手架跳躍,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