Использование
- Шаблоны для входных данных предоставляются в
reinvent/data/examples/templates
папке. Конкретные примеры быстрого старта приведены в ReinventCommunity. - Есть шаблоны для 6 режимов работы. Каждый запущенный режим может быть выполнен с помощью "python input.py some_running_mode.json " после активации среды. Шаблоны должны быть отредактированы перед использованием. Единственное, что нуждается в модификации для стандартного запуска, - это пути к файлам и папкам. Большинство запущенных режимов создают журналы, которые можно отслеживать с помощью
tensorboard
, см. ниже.- Папка ведения журнала определяется путем установки допустимого пути к полю "logging_path" в json. Это необходимо для всех режимов работы.
- Режимы работы:
- Выборка:
sampling.json
может быть использована для начала выборки. Требуется генеративная модель в качестве входных данных и создается файл, содержащий смайлы. Мы предлагаем генеративную модель " reinvent / data / augmented.предварительный". В качестве альтернативы могут быть отобраны целенаправленные агенты, генерируемые обучением передаче или обучением подкреплению. Пример - Transfer Learning (TL):
transfer_learning.json
является релевантным шаблоном, и он может быть использован для фокусировки общего предшествующего на узком химическом пространстве путем обучения на репрезентативной выборке улыбок, предоставленных Пользователем. Требуется в качестве входных данных список смайлов (пример формата в "reinvent/data/smiles.smi") и генеративная модель " reinvent/data/augmented.предварительный". Результатом будет набор контрольных точек генеративного агента, создаваемых после каждой эпохи обучения, и конечный сфокусированный агент. Проверьте tensorboard
журналы, чтобы оценить, какой агент имеет уровень фокусировки, который вы предпочитаете. Пример - Обучение подкреплению (RL): используйте
reinforcement_learning.json
в качестве шаблона. Общие входные данные требуют путей как для агента, так и для предыдущих генеративных моделей (в разделе "reinforcement_learning" файлов JSON). И то, и другое может быть одной и той же моделью, предоставленной нами "reinvent/data/augmented.prior" или альтернативно пользователь может предоставить сфокусированный агент, сгенерированный TL. Результатом является сфокусированная генеративная модель и " scaffold_memory.csv " файл, который содержит лучшие скоринговые улыбки во время выполнения RL. Выходная папка определяется путем установки значения "resultdir". Объект функции подсчета "scoring_function"
очков может быть либо "name": "custom_product"
или "name": "custom_sum"
. Скоринговая функция имеет список параметров"parameters":[]
, которые могут содержать любое количество компонентных объектов. Текущий пример шаблона содержит 5 компонентов: оценку QED, соответствующую субструктуру (MS), пользовательские оповещения (CA) и 2 компонента прогностических свойств (PP). Компоненты PP требуют установки либо классификации ("reinvent/data / drd2.pkl") или регрессия ("reinvent/data/Aurora_model.pkl") модельные пути. Пример 1, Пример 2, Пример 3.
Учебники / jupyterблокноты
Существует еще одно хранилище, содержащее полезные jupyter
записные книжки, связанные с REINVENT
так называемым ReinventCommunity. В настоящее время он содержит записные книжки, иллюстрирующие режим обучения подкреплению и функциональность преобразования баллов (включая поиск подходящих параметров для компонента). Обратите внимание, что последний использует другую conda
среду для выполнения.
Доступные компоненты
Функция подсчета очков строится из компонентов, которые вместе определяют "компас", используемый агентами для навигации по химическому пространству и предложения химических соединений. В настоящее время доступны следующие компоненты:
PREDICTIVE PROPERTY
: Модели на основе дескрипторов для прогнозирования, например, активности по отношению к заданной цели или растворимости. Использует scikit-learn
модели (интерфейс). Работает как с классификационными, так и с регрессионными моделями.TANIMOTO SIMILARITY
: Требует определенного пользователем набора улыбок и возвращает самый высокий балл сходства с предоставленным набором.JACCARD DISTANCE
: Требует определенного пользователем набора улыбок и возвращает наименьший балл расстояния к предоставленному набору.MATCHING SUBSTRUCTRE
: Это штрафная составляющая для смещения в сторону генерации определенных (суб-)структур. Требуется определенный пользователем набор интеллектуальных способностей. Возвращает 1, Если есть соответствие подструктуры, и 0,5 в противном случае.CUSTOM ALERTS
: Это штрафной компонент, чтобы избежать генерации определенных (суб-)структур. Требуется определенный пользователем набор шаблонов SMARTS, указывающих на нежелательные фрагменты. Возвращает 0, если есть совпадение, и 1 в противном случае.QED SCORE
: Использует реализацию QED в RDKit
ссылке.MOLECULAR WEIGHT
: Физико-химические свойства рассчитываются по RDKit
ссылке.TPSA
: Физико-химические свойства рассчитываются по RDKit
ссылке.ROTATABLE BONDS
: Физико-химические свойства рассчитываются по RDKit
ссылке.NUMBER OF HYDROGEN BOND DONORS
: Физико-химические свойства рассчитываются по RDKit
ссылке.NUMBER OF HYDROGEN BOND ACCEPTORS
: Физико-химические свойства рассчитываются по RDKit
ссылке.SLOGP
: Атомарный расчет LogP с использованием подхода Криппена, реализованного в RDKit
link.NUMBER OF RINGS
: Физико-химические свойства рассчитываются по RDKit
ссылке.SELECTIVITY
: Если целью является оптимизация активности против одной цели при одновременном снижении активности против другой, то есть повышение селективности соединения, то этот компонент может быть использован. Использует две модели scikit-learn. Работает как с классификационными, так и с регрессионными моделями. Одна модель предсказывает целевую активность, а другая обеспечивает внецелевое предсказание. Оценка отражает определенный пользователем разрыв в активности между целевыми и нецелевыми прогнозами.
Использовать tensorboard
для ведения журнала:
Для запуска tensorboard
вам понадобится графическая среда. Писать: tensorboard --logdir "path to your log output directory" --port=8008
Это даст вам адрес для копирования в браузер и доступа к графическим сводкамtensorboard
.
Дополнительные параметры командной строки могут быть использованы для изменения количества показанных скаляров, гистограмм, изображений, распределений и графиков, например:: --samples_per_plugin=scalar=700, images=20
Установка
Установка Anaconda / Miniconda
Клонирование репозитория
Откройте терминал, перейдите в репозиторий и сгенерируйте соответствующую среду: conda env create-f reinvent_shared.yml
(Необязательно) для установки переменных среды (в настоящее время не требуется), например лицензии: Сначала в командной строке:
cd $CONDA_PREFIX mkdir -p ./etc/conda/activate.d mkdir -p ./etc/conda/deactivate.d touch ./etc/conda/activate.d/env_vars.sh touch ./etc/conda/deactivate.d/env_vars.sh
затем отредактируйте ./etc/conda/activate.d/env_vars.sh следующим образом:
#!/bin/sh export SOME_LICENSE='/path/to/your/license/file'
и, наконец, редактировать ./etc/conda/deactivate.d/env_vars.sh :
#!/bin/sh unset SOME_LICENSE
Активировать среду: conda активировать reinvent_shared.v2. 1
(Необязательно) в каталоге проекта, in ./configs / создайте файлconfig.json
, скопировав example.config.json
его и отредактировав по мере необходимости. В текущей версии это относится только к модульным тестам.
Использовать инструменты.
Тесты - в настоящее время количество тестов для этого РЕПО значительно сокращено.
Перед запуском модульных тестов убедитесь, что вы настроили свой config.json
. Используйте предоставленныйconfigs/example.config.json
, переименуйте его в configs/config.json
и обновите USER_NAME
MAIN_TEST_PATH
переменные and. Этот файл не будет управляться версиями. Тесты могут быть выполнены с помощьюUnittest
:
python main_test.py
Или с помощью Pytest:
python -m pytest unittest_reinvent
Интеграционные тесты украшены @pytest.mark.integration
. Вы можете легко пропустить интеграционные тесты, используя pytest
выражение mark expression (-m
аргумент):
python -m pytest -m "not integration" --strict-markers unittest_reinvent/
Источник: github.com
Комментарии: