РАЗРАБОТКИ¶
В данном разделе размещено программное обеспечение, разработанное в рамках проекта «Повышение эффективности первичного скрининга биологически активных соединений с использованием вычислительных моделей» (в рамках ФЦП «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2014 – 2020 годы», соглашение № 14.587.21.0049, уникальный идентификатор проекта RFMEFI58718X0049).
ПРОГРАММНЫЕ МОДУЛИ¶
PMAPPER¶
Модуль для создания хешированных сигнатур трехмерных фармакофоров
Последняя версия модуля PMAPPER (Python) доступна по ссылке: https://github.com/DrrDom/pmapper
PMAPPER - это модуль, написанный на языке программирования Python, для создания сигнатур трехмерных фармакофоров и молекулярных отпечатков (фингерпринтов). Сигнатуры уникально кодируют трехмерные фармакофоры с помощью хешей, подходящих для быстрой идентификации идентичных фармакофоров.
Зависимости
rdkit >= 2017.09
networkx >= 1.11
Примеры
Загрузка модулей
from rdkit import Chem
from rdkit.Chem import AllChem, ChemicalFeatures
from pharmacophore import Pharmacophore as P, read_smarts_feature_file, load_multi_conf_mol
from pprint import pprint
Создание фармакофорной модели из единого конформера, используя описание фармакофорных признаков из файла SMARTS
# загрузка молекулы из SMILES и генерация 3D координат
mol = Chem.MolFromSmiles('C1CC(=O)NC(=O)C1N2C(=O)C3=CC=CC=C3C2=O') # talidomide
mol = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol, randomSeed=42)
# загрузка описания фармакофорных признаков из файла SMARTS
smarts = read_smarts_feature_file('smarts_features.txt')
# create pharmacophore
p = P()
p.load_from_smarts(mol, smarts)
Получение 3D фармакофорных сигнатур
# get 3D pharmacophore signature
sig = p.get_signature_md5()
print(sig)
Вывод:
f2e16f52f6f6ca6e97fc5844bfd35d36
Получение 3D фармакофорных сигнатур с ненулевой толерантностью
sig = p.get_signature_md5(tol=5)
print(sig)
Вывод:
fb535302db2e5d624aa979b6e8dfbdf2
Генерация фармакофорной модели из единственного конформера с использованием фабрики признаков из RDKit
# загрузка фармакофоров с использованием фабрики RDKit и получение 3D фармакофорных сигнатур
factory = ChemicalFeatures.BuildFeatureFactory('smarts_features.fdef')
p.load_from_feature_factory(mol, factory)
sig = p.get_signature_md5()
print(sig)
Вывод
f2e16f52f6f6ca6e97fc5844bfd35d36
Генерация фармакофорных моделей для соединения со множеством конформеров
# генерация множества конформеров для молекулы
AllChem.EmbedMultipleConfs(mol, numConfs=10, randomSeed=1024)
ps = load_multi_conf_mol(mol, smarts_features=smarts)
sig = [p.get_signature_md5() for p in ps]
pprint(sorted(sig)) # наличие идентичных сигнатур
Вывод
['13d168458ab1f251157f2422efcce312',
'13d168458ab1f251157f2422efcce312',
'182a4cfa756fe8b7f736a7f7ac0e8e0a',
'182a4cfa756fe8b7f736a7f7ac0e8e0a',
'4234e9d249874a5009f1e312dd885d80',
'ab273dd083c4f2e3424ba917b121b846',
'b6ec58553d2984bd398b4520bd1545cc',
'bfc43365b2657d08b6bb888e4d8ec71b',
'f5ca8e406dae31182e2b06fde7452b75',
'fc4a85e818fc0b3f034a7af42fa5ca69']
Генерация 3D фармакофорного фингерпринта (отпечатка)
# генерация 3D фармакофорного фингерпринта (отпечатка), который принимает во внимание стереоконфигурацию
b = p.get_fp(min_features=4, max_features=4) # набор активированных бит
print(b)
Вывод (набор номеров активированных бит)
{1922, 1795, 779, 1040, 528, 920, 154, 1437, 287, 1313, 1447, 1961, 941, 690, 1203, 65, 1346, 709, 1486, 1366, 2006, 1750, 1016, 346, 603, 1116, 354, 995, 228, 2024, 1900, 1524, 888, 2043}
Изменение настроек
b = p.get_fp(min_features=4, max_features=4, nbits=1024, activate_bits=2)
print(b)
Вывод (набор номеров активированных бит)
{897, 514, 259, 389, 520, 264, 143, 16, 529, 656, 787, 660, 24, 285, 157, 32, 673, 550, 683, 173, 301, 558, 45, 945, 177, 692, 950, 443, 444, 61, 960, 961, 448, 321, 709, 197, 587, 460, 77, 718, 720, 80, 339, 596, 723, 470, 980, 345, 601, 476, 354, 614, 743, 1003, 875, 494, 367, 497, 114, 1012, 244, 630, 377, 762, 507, 508, 1021}
Сохранение/загрузка фармакофорной модели
p.save_to_pma('filename.pma')
# Вывод - текстовый файл в формате json.
p = P()
p.load_from_pma('filename.pma')
Поддержка pml-файлов LigandScout
Модели LigandScout, сохраненные как pml-файлы, могут быть прочитаны с помощью p.load_ls_model. Также фармакофорная модель может быть сохранена в данном формате в целях экспорта в LigandScout (p.save_ls_model).
Тесты на скорость
Генерация фармакофорных сигнатур (хэшей) является задачей, зависящий только от быстродействия процессора. Скорость вычислений зависит от количества признаков в фармакофорных моделях. Тесты проводились на 500 соединениях (случайная подвыборка из Drugbank). Для каждого соединения было создано до 50 конформеров. Для генерации сигнатур фармакофоров случайным образом из общего числа 25000 фармакофоров было выбрано до 100 фармакофоров, обладающих определенным количеством признаков.
Конфигурация ноутбука:
Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
12 GB RAM
расчет выполнялся в 1 потоке (модуль ориентирован на многопоточность и вычисления можно распараллеливать)
Вывод
pharmacophore generation: 19.21 s
total number of pharmacophores: 25000
pharmacophore hash generation:
50 pharmacophores having 2 features: 0.00 s; time per pharmacophore: 0.00000 s
100 pharmacophores having 3 features: 0.01 s; time per pharmacophore: 0.00010 s
100 pharmacophores having 4 features: 0.01 s; time per pharmacophore: 0.00010 s
100 pharmacophores having 5 features: 0.04 s; time per pharmacophore: 0.00040 s
100 pharmacophores having 6 features: 0.12 s; time per pharmacophore: 0.00120 s
100 pharmacophores having 7 features: 0.24 s; time per pharmacophore: 0.00240 s
100 pharmacophores having 8 features: 0.51 s; time per pharmacophore: 0.00510 s
100 pharmacophores having 9 features: 0.94 s; time per pharmacophore: 0.00940 s
100 pharmacophores having 10 features: 1.86 s; time per pharmacophore: 0.01860 s
100 pharmacophores having 11 features: 3.02 s; time per pharmacophore: 0.03020 s
100 pharmacophores having 12 features: 4.17 s; time per pharmacophore: 0.04170 s
100 pharmacophores having 13 features: 7.04 s; time per pharmacophore: 0.07040 s
100 pharmacophores having 14 features: 9.29 s; time per pharmacophore: 0.09290 s
100 pharmacophores having 15 features: 12.94 s; time per pharmacophore: 0.12940 s
100 pharmacophores having 16 features: 17.79 s; time per pharmacophore: 0.17790 s
100 pharmacophores having 17 features: 23.58 s; time per pharmacophore: 0.23580 s
100 pharmacophores having 18 features: 33.83 s; time per pharmacophore: 0.33830 s
100 pharmacophores having 19 features: 40.43 s; time per pharmacophore: 0.40430 s
100 pharmacophores having 20 features: 58.30 s; time per pharmacophore: 0.58300 s
Цитирование
Ligand-Based Pharmacophore Modeling Using Novel 3D Pharmacophore Signatures Alina Kutlushina, Aigul Khakimova, Timur Madzhidov, Pavel Polishchuk Molecules 2018, 23(12), 3094 https://doi.org/10.3390/molecules23123094
PSEARCH¶
PSEARCH - это программный модуль для поиска общего фармакофора на основании структур активных и неактивных молекул [1], [2].
Последняя версия модуля PSEARCH (Python) доступна по ссылке: https://github.com/meddwl/psearch
Также модуль PSEARCH (Python) доступен для скачивания по ссылке: скачать PSEARCH.
Подготовка данных
В данном контексте под подготовкой данных подразумевается разделение набора данных по активности, генерация стереоизомеров и конформеров для каждой молекулы и генерация базы данных с фармакофорным представлением соединений. Фармакофорное представление соединения - это полный граф, вершинами которого являются все возможные фармакофорные центры соединения, а ребрами - расстояния между ними.
Запускает процесс подготовки данных модуль prepare_dataset.py . На вход он принимает файл формата .smi (содержащий SMILES).
Пример
prepare_dataset.py -i test/input.smi --label -n 100 -e 100 -r 0.5 -c 4
Фармакофорное моделирование и виртуальный скрининг
Генерация фармакофоров осуществляется в 2 этапа:
(а) сначала генерируются все возможные квадруплеты,
(б) после создаются наиболее сложные фармакофорные модели, количество и качество которых регулируются статистикой.
(а) Для генерации квадруплетов используется модуль create_subpharm.py.
Параметры
-d/--input_db, путь к базе данных, в которой хранится информация о всех молекулах (тренировочного и тестового наборов), обязательный параметр.
-ts/--file_trainset, путь к файлу со списком молекул тренировочного набора, обязательный параметр.
-tol/--tolerance, параметр, который используется для генерации знака стереоконфигурации соединения, по умолчанию этот параметр равен 0.
-l/--lower, число фармакофорных центров, с которым будут сгенерированы фармакофорные модели, по умолчанию этот параметр равен 4.
Пример
psearch/scripts/create_subpharm.py -d test/compounds/active.db -ts test/trainset/active_tr1.txt -tol 0 -l 4
(б) Генерация фармакофорных моделей. На этом этапе генерируется статистика, с помощью которой оценивается качество полученных моделей, и лучшие фармакофорные модели сохраняются в папку models с расширением .pma.
Эту функцию выполняет модуль gen_subph.py.
Параметры
-a/--in_subph_active, путь к файлу с активными квадруплетами, полученные на предыдущем шаге.
-i/--in_subph_inactive, путь к файлу с неактивными квадруплетами, полученные на предыдущем шаге.
-adb/--in_active_database, путь к базе данных с активными соединениями.
-idb/--in_inactive_database, путь к базе данных с неактивными соединениями.
-ats/--in_active_trainset, путь к файлу со списком активных молекул тренировочного набора.
-l/--lower, число фармакофорных центров, которые имеют фармакофорные модели на входе.
Пример
psearch/scripts/gen_subph.py -a test/trainset/ph_active_tr1.txt -i test/trainset/ph_inactive_tr1.txt -adb test/compounds/active.db -idb test/compounds/inactive.db -ats test/trainset/active_tr1.txt -l 4
Виртуальный скрининг с использованием полученных фармакофорных моделей осуществляется модулем screen_db.py.
Параметры
-d/--database, путь к базе данных.
-q/--query, путь к фармакофорной модели (.pma файл).
-o/--output, путь к файлу, куда бдут сохранены результаты виртуального скрининга.
Пример
psearch/scripts/screen_db.py -d test/compounds/active.db -q models/model1.pma -o screen/screen_active_model1.txt
GTM_DIVERSE¶
Последняя версия модуля GTM_DIVERSE_2019 (Python) доступна для скачивания по ссылке: скачать GTM_DIVERSE_2019.
Предыдущая версия модуля GTM_DIVERSE (Python) доступна для скачивания по ссылке: скачать GTM_DIVERSE.
GTM_DIVERSE - это модуль, написанный на языке программирования Python, предназначенный для дизайна разнообразных библиотек соединений с использованием проецирования библиотек соединений на генеративные топографические карты. Другими словами, данный программный модуль служит для выборки минимального набора данных с равномерным покрытием генеративной топографической карты (карты GTM). Данный подход позволяет отобрать наиболее разнообразные молекулы в подвыборку, формируя репрезентативную выборку с обогащением биологически активными представителями. Для работы алгоритма нужны проекции молекул на карту GTM (file.svm или file.rsvm) и специально форматированный файл с биологическими активностями (y.txt).
Зависимости
python >= 3.7
scikit-learn
joblib
pandas
numpy
В качестве входных данных требуется модель генеративной топографической карты, вероятности нахождения конкретной молекулы во всех узлах карты, информация об активности конкретной молекулы против всех рассматриваемых мишеней.
Параметры
-i1/--input1, бинарный файл с сохраненными коэффициентами модели генеративной топографической карты.
-i2/--input2, текстовый файл с активностями молекул против различных мишеней, где первая строка - строка заголовков,
первая колонка - id молекулы, каждая колонка соответствует одной мишени, а активность молекулы против мишени
обозначена 1 для активных соединений, и 0 - для неактивных; в качестве разделителей столбцов выступает табуляция.
-i3/--input3, текстовый файл с проекциями молекул на генеративную топографическую карту в формате .SVM, .libSVM или .RSVM.
В качестве выходных данных выступает разнообразная подвыборка молекул, а также справочная информация о подвыборке, такая как параметр обогащения сформированной подвыборки и др.
Выходные данные
бинарный файл (с расширением .PICKLE), представляющий собой сериализованный объект типа словарь, включающий следующие значения (далее приведены пары «ключ-значение»):
layers: список списков, каждый список представляет собой отдельный слой;
buckets: наполнение узлов;
percent: процент данных, отобранных в подвыборку;
random: рассчитанный параметр обогащения для случайной подвыборки такого же объема;
enrichment: рассчитанный параметр обогащения для подвыборки.
Имеется соответствующее веб-приложение (GTM_DIVERSE_web), предназначенное для дизайна разнообразных библиотек соединений с использованием картографирования химического пространства методом генеративного топографического отображения без установки данного программного модуля на устройство пользователя.
PharMD¶
PharMD — программный модуль для создания фармакофора на основе структуры биомишени с использованием молекулярнодинамических траекторий [3].
Последняя версия модуля PharMD (Python) доступна по ссылке: https://github.com/ci-lab-cz/pharmd
Также модуль PharMD (Python) доступен для скачивания по ссылке: скачать PharMD.
Зависимости:
mdtraj >= 1.9.3
plip >= 1.4.2
pmapper >= 0.3.1
psearch >= 0.0.2
Примеры
Извлечение фармакофорных моделей из траектории молекулярной динамики
Для получения отдельных кадров из траектории молекулярной динамики используется модуль mdtraj. Поэтому md2pharm принимает те же аргументы, что и mdconvert из модуля mdtraj. Таким образом, возможно извлечение только указанных кадров траектории, а не всей траектории. Требуется указать код лиганда, как это указано в файле топологии PDB. Отдельные кадры будут храниться в одном файле PDB без молекул растворителя. Модели фармакофоров для каждого кадра будут храниться в формате xyz в той же директории, что и выходной pdb-файл.
md2pharm -i md.xtc -t md.pdb -s 10 -g LIG -o pharmacophores/frames.pdb
Извлечение не избыточных фармакофоров
Подобные фармакофоры распознаются по идентичным 3D-хэшам фармакофоров. Ожидается, что фармакофоры с одинаковыми хэшами будут иметь RMSD меньше, чем указанный шаг биннинга. По умолчанию он равен 1 Å.
get_distinct -i pharmacophores/ -o distinct_pharmacophores/
Выполнение виртуального скрининга с использованием нескольких не избыточных фармакофоров
Для этой цели используется утилита screen_db из модуля psearch. Нужно создать базу данных конформеров и их фармакофорных представлений, используя утилиты из модуля psearch. На этом шаге вы можете задать значение шага биннинга, которое будет использоваться в дальнейшем при скрининге.
prepare_db -i input.smi -o connections.db -c 2 -v
Чтобы рассчитать оценку на основе подхода Conformer Coverage, нужно указать аргумент –conf для утилиты screen_db. Тогда все конформеры соединения, соответствующего моделям фармакофора, будут извлечены как соединения-лидеры, в противном случае будет возвращен только первый конформер. Рекомендуется ограничить скрининг сложными моделями фармакофоров, имеющими по крайней мере четыре фармакофорных центра, так как менее сложные модели могут извлекать нерелевантные соединения. В выходной директории будет создано несколько txt-файлов, содержащих списки соединений-лидеров, полученные отдельными моделями фармакофоров.
Расчет составных оценок на основе нескольких списков соединений-лидеров
Преимущество ансамблевой оценки заключается в том, что не нужно проверять отдельные модели и выбирать наиболее эффективные. Ансамблевая оценка рассчитывается по формуле:
Подход Conformer Coverage (CCA) - оценка равна проценту конформеров, соответствующих по крайней мере одной из моделей фармакофоров.
Подход Common HIts (CHA) - оценка равна проценту моделей, соответствующих как минимум одному конформеру соединения.
В случае оценки CCA нужно предоставить базу данных проверенных соединений в качестве дополнительного параметра.
get_scores -i screen/ -o cca_scores.txt -s cca -d compounds.db
BIO_BIO_BIO¶
BIO_BIO_BIO - это программный модуль для создания сфокусированной библиотеки соединений перечислением трансформаций молекулы-затравки, приводящих к целевому изменению характеристик биологической активности.
Последняя версия модуля BIO_BIO_BIO (Python) доступна для скачивания по ссылке: скачать BIO_BIO_BIO.
Зависимости:
Python >= 3.8
CIMtools >= 4.0.8
CGRtools >= 4.1.4
torch >= 1.7.1
BIO_BIO_BIO можно использовать как отдельную библиотеку на языке программирования Python либо как программу командной строки.
Параметры
-m, файл с интересующей молекулой, к которой будут применяться замены, в формате .SDF.
-t, идентификатор биомишени из химической базы данных ChEMBL (ChEMBL ID).
Выходные данные
сфокусированная библиотека в виде списка кортежей молекул и обозначения активности относительно исходной молекулы (‘isosteric’ - биоизостер, ‘more active’ - более активная, ‘less active’ - менее активная).
Имеется соответствующее веб-приложение (BIO_BIO_BIO_web), позволяющее создавать сфокусированную библиотеку соединений перечислением трансформаций молекулы-затравки, приводящих к целевому изменению характеристик биологической активности без установки данного программного модуля на устройство пользователя.
СКРИПТЫ¶
sphere_exclusion_diverse_lib¶
Последняя версия скрипта sphere_exclusion_diverse_lib (Python) доступна для скачивания по ссылке: скачать sphere_exclusion_diverse_lib.
sphere_exclusion_diverse_lib - скрипт, написанный на языке программирования Python, для создания разнообразных библиотек с использованием метода исключенной сферы. Для работы алгоритма нужны следующие библиотеки:
Зависимости
python 3.7
numpy
pandas
multiprocess
matplotlib
Скрипт ранжирования¶
Скрипт для ранжирования соединений на основе их фармакофорных сигнатур.
Последняя версия скрипта для ранжирования соединений на основе их фармакофорных сигнатур (Python) доступна для скачивания по ссылке: скачать скрипт rank.
ВЕБ-ПРИЛОЖЕНИЯ¶
BIO_BIO_BIO_web¶
BIO_BIO_BIO_web - это веб-приложение для создания сфокусированной библиотеки соединений перечислением трансформаций молекулы-затравки, приводящих к целевому изменению характеристик биологической активности.
BIO_BIO_BIO_web позволяет:
генерировать возможные биоизостеры для молекулы-затравки в рамках выбранной биомишени;
предсказывать концентрацию полумаксимального ингибирования для сгенерированных соединений перечислением трансформаций молекулы-затравки в рамках выбранной биомишени;
создавать сфокусированную библиотеку соединений.
Веб-приложение BIO_BIO_BIO_web производит генерацию возможных биоизостеров для молекулы-затравки в рамках выбранной биомишени, предсказание концентрации полумаксимального ингибирования для сгенерированных соединений перечислением трансформаций молекулы-затравки в рамках выбранной биомишени и генерацию сфокусированной библиотеки соединений. Для его использования со стороны пользователя достаточно перейти на соответствующую веб-страницу и загрузить файл с интересующей молекулой и выбрать интересующую биомишень из списка, после чего результат будет выведен на страницу в виде таблицы, включающей сгенерированные молекулы в виде SMILES.
Веб-приложение доступно по ссылке: https://bioiso.cimm.site/
DECOMPOSITION RATE CONSTANT/HALF-LIFE PREDICTIONS MODELS¶
Decomposition rate constant/half-life predictions models - это веб-приложение для предсказания стабильности соединений в растворителях, используемых для высокопроизводительного скрининга.
Веб-приложение позволяет:
предсказывать константы скорости разложения соединений в водных растворах в реакциях гидролиза, моно-и бимолекулярного замещения водой;
предсказывать константы скорости разложения соединений в смесях вода-диметилсульфоксид различных концентраций в реакциях гидролиза, моно-и бимолекулярного замещения водой;
рассчитывать время полураспада соединений в водных растворах и смесях вода-диметилсульфоксид.
Входные данные
нарисованное в соответствующем поле графическое представление молекулы;
выбор соответствующей модели (по умолчанию – модель, построенная для набора данных реакций бимолекулярного нуклеофильного замещения);
выбор соответствующего растворителя (по умолчанию вода);
температура (целочисленное значение, в Кельвинах; по умолчанию 298 K);
рН (целочисленное значение; по умолчанию 7);
мольная доля раствора (число с плавающей точкой; по умолчанию 1).
Выходные данные
представление одного из продуктов гидролиза;
предсказанное значение константы скорости кислотного гидролиза;
предсказанное значение константы скорости нейтрального гидролиза;
предсказанное значение константы скорости основного гидролиза;
значение стабильности соединения;
принадлежность молекулы к области применимости выбранной модели.
Веб-приложение доступно по ссылке: https://stabil.cimm.site/
GTM_DIVERSE_web¶
GTM_DIVERSE_web - веб-приложение для дизайна библиотек с использованием картографирования химического пространства методом генеративного топографического отображения.
Веб-приложение GTM_DIVERSE_web производит отбор соединений для формирования репрезентативной выборки с обогащением биологически активными представителями. Данный подход позволяет отобрать наиболее разнообразные молекулы в выборку за счет равномерного покрытия генеративных топографических карт. Для его использования со стороны пользователя достаточно перейти на соответствующую веб-страницу и загрузить исходный набор молекул и указать размер искомой разнообразной подвыборки, после чего скачать файл, содержащий желаемую разнообразную подвыборку.
Веб-приложение доступно по ссылке: https://diverse.cimm.site/
PROBABILISTIC BIOLOGICAL ACTIVITY PREDICTION MODELS¶
Probabilistic biological activity prediction models - веб-приложение, предназначенное для проведения профилирования биологической активности соединений.
Веб-приложение доступно по ссылке: https://pharm.cimm.site/
ФАРМАКОФОРНЫЕ МОДЕЛИ¶
pharmmodels¶
Комплекс фармакофорных моделей для множества различных белков, построенных на основе базы данных ChEMBL
Комплекс разработанных фармакофорных моделей доступен для скачивания по ссылке: скачать pharmmodels.