Приложение в этом репозитории описано в статье: "REINVENT 2.0-инструмент искусственного интеллекта для разработки лекарств de novo"

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Использование

  1. Шаблоны для входных данных предоставляются в reinvent/data/examples/templatesпапке. Конкретные примеры быстрого старта приведены в ReinventCommunity.
  2. Есть шаблоны для 6 режимов работы. Каждый запущенный режим может быть выполнен с помощью "python input.py some_running_mode.json " после активации среды. Шаблоны должны быть отредактированы перед использованием. Единственное, что нуждается в модификации для стандартного запуска, - это пути к файлам и папкам. Большинство запущенных режимов создают журналы, которые можно отслеживать с помощьюtensorboard, см. ниже.
    • Папка ведения журнала определяется путем установки допустимого пути к полю "logging_path" в json. Это необходимо для всех режимов работы.
  3. Режимы работы:
    • Выборка: 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 с использованием подхода Криппена, реализованного в RDKitlink.
  • NUMBER OF RINGS: Физико-химические свойства рассчитываются по RDKitссылке.
  • SELECTIVITY: Если целью является оптимизация активности против одной цели при одновременном снижении активности против другой, то есть повышение селективности соединения, то этот компонент может быть использован. Использует две модели scikit-learn. Работает как с классификационными, так и с регрессионными моделями. Одна модель предсказывает целевую активность, а другая обеспечивает внецелевое предсказание. Оценка отражает определенный пользователем разрыв в активности между целевыми и нецелевыми прогнозами.

Использовать tensorboardдля ведения журнала:

  1. Для запуска tensorboardвам понадобится графическая среда. Писать: tensorboard --logdir "path to your log output directory" --port=8008 Это даст вам адрес для копирования в браузер и доступа к графическим сводкамtensorboard.

  2. Дополнительные параметры командной строки могут быть использованы для изменения количества показанных скаляров, гистограмм, изображений, распределений и графиков, например:: --samples_per_plugin=scalar=700, images=20

Установка

  1. Установка Anaconda / Miniconda

  2. Клонирование репозитория

  3. Откройте терминал, перейдите в репозиторий и сгенерируйте соответствующую среду: conda env create-f reinvent_shared.yml

  4. (Необязательно) для установки переменных среды (в настоящее время не требуется), например лицензии: Сначала в командной строке:

    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 
  5. Активировать среду: conda активировать reinvent_shared.v2. 1

  6. (Необязательно) в каталоге проекта, in ./configs / создайте файлconfig.json, скопировав example.config.jsonего и отредактировав по мере необходимости. В текущей версии это относится только к модульным тестам.

  7. Использовать инструменты.

Тесты - в настоящее время количество тестов для этого РЕПО значительно сокращено.

Перед запуском модульных тестов убедитесь, что вы настроили свой config.json. Используйте предоставленныйconfigs/example.config.json, переименуйте его в configs/config.jsonи обновите USER_NAMEMAIN_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

Комментарии: