R1 - это двоичная оценка, указывающая, может ли лежащий в основе инструмент планирования автоматизированного синтеза найти маршрут (1) или нет (0) к данному соединению.
Этот инструмент был обучен на 200 000 соединениях из ChEMBL и поэтому ограничен соединениями в пределах аналогичных областей химического пространства. Он предназначен для прогнозирования ретросинтетической доступности биологически активных молекул.
Попытки использовать оценку на более экзотических соединениях, таких как те, которые находятся в базах данных GDB, не будут работать:
В этом случае необходимо будет переключиться на модель GDBscore, соответствующие модели можно найти в папке models или загрузить с сервера предварительной печати.
Установка
Следуйте инструкциям в указанном порядке, чтобы избежать конфликтов.
Создайте среду (Примечание: версия python должна быть >=3.7): conda create --name myenv python=3.7
или использовать существующую среду
Установите rdkit 2020.03, tensorflow 2 и XGboost (если они уже установлены, пропустите этот шаг)
Распакуйте модели в папку models. Zip-файл, содержащий модели, также доступен на сервере предварительной печати. cd RAscore/model/ unzip models
Если вы хотите переподготовить модели или обучить свои собственные модели с помощью платформы оптимизации гиперпараметров, найденной в папке "model_building", то в среде также должно быть установлено следующее: pip install -r requirements.txt
SYBA, SCscore и S1 также должны быть загружены для расчетов дескрипторов и обучающих скриптов, модифицированных с учетом расположения моделей:
В зависимости от того, хотите ли вы использовать модели на основе XGB или Tensorflow, вы можете импортировать различные модули.
Модели RFC содержатся в следующих папках:
R1
DNN_chembl_fcfp_counts
XGB_chembl_ecfp_counts
GDBscore
DNN_gdbchembl_fcfp_counts
XGB_gdbchembl_ecfp_counts
from RAscore import RAscore_NN #For tensorflow and keras based models from RAscore import RAscore_XGB #For XGB based models nn_scorer = RAscore_NN.RAScorerNN('<path-to-repo>/RAscore/RAscore/model/models/DNN_chembl_fcfp_counts/model.h5') xgb_scorer = RAscore_XGB.RAScorerXGB('<path-to-repo>/RAscore/RAscore/model/models/XGB_chembl_ecfp_counts/model.pkl') mesylate imatinib_mesylate = 'CC1=C(C=C(C=C1)NC(=O)C2=CC=C(C=C2)CN3CCN(CC3)C)NC4=NC=CC(=N4)C5=CN=CC=C5.CS(=O)(=O)O' nn_scorer.predict(imatinib_mesylate) 0.99522984 xgb_scorer.predict(imatinib_mesylate) 0.99259007 omeprazole = 'CC1=CN=C(C(=C1OC)C)CS(=O)C2=NC3=C(N2)C=C(C=C3)OC' nn_scorer.predict(omeprazole) 0.99999106 xgb_scorer.predict(omeprazole) 0.9556329 - Illustrates problem synthesis planning tools face with complex ring systems morphine = 'CN1CC[C@]23c4c5ccc(O)c4O[C@H]2[C@@H](O)C=C[C@H]3[C@H]1C5' nn_scorer.predict(morphine) 8.316945e-07 xgb_scorer.predict(morphine) 0.0028359715
Интерфейс Командной Строки
Предусмотрен интерфейс командной строки, который обеспечивает гибкость определения моделей. Интерфейс можно найти по адресу: RAscore/command_line_interface.py
Usage: command_line_interface.py [OPTIONS] Options: -f, --file_path TEXT Absolute path to input file containing one SMILES on each line. The column should be labelled "SMILES" or if another header is used, specify it as an option -c, --column_header TEXT The name given to the singular column in the file which contains the SMILES. The column must be named. -o, --output_path TEXT Output file path -m, --model_path TEXT Absolute path to the model to use, if .h5 file neural network in tensorflow/keras, if .pkl then XGBoost --help Show this message and exit. python command_line_interface.py -f <path-to-smiles-file> -c SMILES -o <path-to-output-file> -m <path-to-model-file>
Производительность на тестовом наборе
Тестовый набор содержит около 20 000 соединений от ChEMBL
Модель была способна разделить кластеры решенных / нерастворенных соединений, найденных путем вычисления средней связи
R1 может лучше различать растворенные / нерастворенные соединения, чем существующие методы.