Renventは、De Novo設計、足場ホッピング、Rグループ置換、リンカー設計、分子最適化、およびその他の小分子設計タスクの分子設計ツールです。 Renventは、強化学習(RL)アルゴリズムを使用して、マルチコンポーネントスコアとして定義されたユーザー定義のプロパティプロファイルに準拠した最適化された分子を生成します。トランスファーラーニング(TL)を使用して、入力分子のセットに近い分子を生成するモデルを作成または前誘導できます。
ソフトウェアを説明する論文は、Journal of ChemInformatics:Renvent 4:Modern AI駆動の生成分子設計にオープンアクセスとして公開されています。以前の論文への参照については、authors.mdを参照してください。
RinventはLinuxで開発されており、GPUとCPUの両方をサポートしています。 Linuxバージョンは完全に検証されています。 WindowsとMacOSXの再発明はGPUとCPUの両方をサポートしていますが、これらのプラットフォームで部分的にしかテストされていないため、サポートは限られています。
コードはPython 3(> = 3.10)で記述されています。依存関係のリストはリポジトリにあります(以下のインストールも参照)。
GPUは厳密に必要ではありませんが、特に転送学習とモデルトレーニングにはパフォーマンス上の理由で強く推奨されます。 RENEDECEMENT LEARNIS(RL)には、ほとんどのスコアリングコンポーネントがCPUで実行されるスコアの計算が必要です。したがって、GPUはRLではそれほど重要ではありません(CPUに費やされる時間に応じて)。
コンピューターにGPUがインストールされていない場合、コードはCPUで自動的に実行されることに注意してください。 Renventは、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 MacOSXに使用します。pip install --no-deps .reinventを追加しました。 reinvent --helpRenventはコマンドラインツールであり、主に次のように機能します
reinvent -l sampling.log sampling.tomlこれにより、ロギング情報がファイルsampling.logに書き込まれます。これを画面に書きたい場合は、 -l sampling.logパーツを省略してください。 sampling.tomlは構成ファイルです。メインのユーザー形式はTOMLです。なぜなら、それはより親しみやすい傾向があるからです。 JSONも使用できますが、 -f jsonを追加しますが、形式はマイナーな変更に非常に敏感であるため、専門のエディターが推奨されます。
すべての実行モードのサンプル構成ファイルは、リポジトリのconfig/tomlにあり、これらのファイルのファイルパスをローカルインストールに調整する必要があります。特に、既製の以前のモデルはpriorsにあり、対処しようとしている研究の問題に応じて、モデルと適切な実行モードを選択します。 TOMLファイルの構成方法に関する指示を備えたいくつかの*.mdファイルにconfig/tomlに追加情報があります。内部プライアーは、ドット表記で参照できます( reinvent/prior_registry.pyを参照)。
Jupyterノートブック基本的な指示はconfig/tomlの構成例のコメントに記載されています。
ノートブックはnotebooks/ディレクトリにあります。 JupyText「Light Script」形式のノートブックを提供していることに注意してください。ライトスクリプトを使用するには、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ネイティブネームスペースパッケージ)を使用します。独自のプラグインを書きたい場合は、以下の指示に従ってください。再発明コードに触れる必要はありません。パブリックリポジトリには、いくつかの有用な例があるContribディレクトリが含まれています。
/top/dir/somewhere/reinvent_plugins/components where /top/dir/somewhereあなたにとって便利な場所です。reinvent_pluginsまたはcomponentsのいずれかに__init__.pyを配置しないでください。これはメカニズムを破壊するためです。コンポーネント内に正しくインポートする限り、 components内に通常のパッケージを作成することは問題ありません。comp_*を使用してreinvent_plugins/componentsに始まるファイルを配置します。異なる名前のファイルは無視されます。つまり、インポートされていません。ディレクトリは再帰的に検索されるため、必要に応じてコードを構成しますが、ディレクトリ/パッケージ名は一意でなければなりません。PYTHONPATH環境変数の/top/dir/somewhereを設定するか、他のメカニズムを使用してsys.path拡張します。これは主に、インストールが機能することを保証したい開発者と管理者/ユーザー向けです。ここでの情報は、Renventの実際の使用には関係ありません。 reinventコマンドの使用方法については、基本的な使用法を参照してください。
Renventプロジェクトは、テストのためにpytestフレームワークを使用しています。それらを実行する前に、最初にテスト用の構成ファイルを作成する必要があります。
プロジェクトディレクトリで、 configs/ directoryにconfig.jsonファイルを作成します。 config example.config.jsonベースとして使用できます。 MAIN_TEST_PATH存在しないディレクトリに設定するようにしてください。そこで、テスト中に一時ファイルが記述されます。既存のディレクトリに設定されている場合、そのディレクトリはテストが終了すると削除されます。
一部のテストでは、独自のOpeneyeライセンスが必要です。テストにライセンスを読み取らせるために、いくつかのことを設定する必要があります。簡単な方法は、 OE_LICENSE環境変数をライセンスを含むファイルのパスに設定することです。
構成があり、ライセンスを読み取ることができたら、テストを実行できます。
$ pytest tests --json /path/to/config.json --device cuda