Reventvent-это инструмент молекулярного проектирования для дизайна de novo, скаффолда, замены R-группы, дизайна линкера, оптимизации молекул и других задач по проектированию малых молекул. RevenVent использует алгоритм обучения подкреплению (RL) для генерации оптимизированных молекул, соответствующих пользователю, определенному профилем свойства, определенным как многокомпонентный балл. Переносное обучение (TL) может использоваться для создания или предварительного обучения модели, которая генерирует молекулы ближе к набору входных молекул.
Документ, описывающий программное обеспечение, была опубликована в виде открытого доступа в журнале Cheminformatics: Reinvent 4: Современный дизайн генеративной молекулы, вызванные ИИ. См. Authors.md для ссылок на предыдущие документы.
Результат разрабатывается на Linux и поддерживает как GPU, так и CPU. Версия Linux полностью проверена. Изобретение в Windows и Macosx поддерживает как GPU, так и CPU, но только частично протестирован на этих платформах, и поэтому поддержка ограничена.
Код записан в Python 3 (> = 3.10). Список зависимостей можно найти в репозитории (см. Также установку ниже).
GPU не является строго необходимым, но настоятельно рекомендуется по причинам производительности, особенно для обучения передачи и моделя. Подкрепление обучения (RL) требует вычисления баллов, где большинство баллов компонентов работают на процессоре. Таким образом, графический процессор менее важен для RL (в зависимости от того, сколько времени тратится на процессор).
Обратите внимание, что если на вашем компьютере не установлен графический процессор, код будет работать автоматически. Revenvent поддерживает NVIDIA GPU, а также некоторые графические процессоры AMD. Для большинства задач проектирования достаточно памяти около 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 --helpRevenent - это инструмент командной строки и работает главным образом следующим образом
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/ каталоге. Обратите внимание, что мы предоставляем записные книжки в формате сценария Light Text. Для работы с световыми сценариями вам нужно будет установить Jupytext. Несколько других пакетов тоже пригодится.
pip install jupytext mols2grid seaborn Файлы Python в notebooks/ могут затем быть преобразованы в ноутбук, например,
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 Native Space Packages). Если вы хотите написать свой собственный плагин, следуйте инструкциям ниже. Нет необходимости прикасаться к коду изобретения. Общественный репозиторий содержит каталог ввода с некоторыми полезными примерами.
/top/dir/somewhere/reinvent_plugins/components где /top/dir/somewhere это удобное место для вас.__init__.py ни в reinvent_plugins , ни компонентах, ни components , так как это сломало бы механизм. Хорошо создавать обычные пакеты в components , если вы импортируете их правильно.comp_* in en reinvent_plugins/components . Файлы с разными именами будут игнорироваться, т.е. не импортируется. Каталог будет искать рекурсивно, поэтому структурируйте ваш код по мере необходимости, но имена каталогов/пакетов должны быть уникальными./top/dir/somewhere в переменную среды PYTHONPATH или используйте любой другой механизм для расширения sys.path . Это в первую очередь для разработчиков и администраторов/пользователей, которые хотят обеспечить работу установки. Информация здесь не имеет отношения к практическому использованию изобретения. Пожалуйста, обратитесь к базовому использованию для инструкций о том, как использовать команду reinvent .
Проект Revenvent использует pytest Framework для своих тестов. Перед тем, как запустить их, вам сначала нужно создать файл конфигурации для тестов.
В каталоге проекта создайте файл config.json в configs/ Directory. Вы можете использовать пример config example.config.json в качестве базы. Убедитесь, что вы установили MAIN_TEST_PATH в несуществующий каталог. Вот где временные файлы будут записаны во время тестов. Если он установлен на существующий каталог, этот каталог будет удален после завершения тестов.
Некоторые тесты требуют собственной лицензии Openeye. Вы должны настроить несколько вещей, чтобы испытания прочитали вашу лицензию. Простой способ - просто установить переменную среды OE_LICENSE на путь файла, содержащего лицензию.
После того, как у вас есть конфигурация, и ваша лицензия может быть прочитана, вы можете запустить тесты.
$ pytest tests --json /path/to/config.json --device cuda