Введение
Введение
Открытие лекарств, как источник инноваций в медицине, является важной частью исследований и разработки новых лекарств. Открытие лекарств осуществляется путем выбора и подтверждения цели. Когда обнаруживаются фрагменты или ведущие соединения, обычно проводится поиск аналогичных соединений в собственных или коммерческих библиотеках соединений с целью выявления взаимосвязи структура-активность (SAR), доступности соединений, что позволяет оценить потенциал ведущих соединений для оптимизации до соединений-кандидатов.
Чтобы обнаружить доступные соединения в пространстве фрагментов из миллиардных библиотек соединений, обычно извлекают химический отпечаток для поиска субструктур и сходства. Однако традиционное решение занимает много времени и чревато ошибками, когда речь идет о миллиардных высокоразмерных химических отпечатках. Кроме того, некоторые потенциальные соединения могут быть потеряны в процессе. В этой статье рассматривается использование Milvus, механизма поиска сходства для векторов огромного размера, с RDKit для создания системы высокопроизводительного поиска сходства химической структуры.
По сравнению с традиционными методами, Milvus обладает более высокой скоростью поиска и более широким охватом. Обрабатывая химические отпечатки, Milvus может выполнять поиск подструктур, поиск по сходству и точный поиск в библиотеках химических структур, чтобы обнаружить потенциально доступные лекарства.
Обзор системы
Система использует RDKit для создания химических отпечатков, а Milvus - для поиска сходства химических структур. Более подробная информация о системе представлена на сайте https://github.com/milvus-io/bootcamp/tree/master/solutions/molecular_similarity_search.
1-system-overview.png
1. Генерация химических отпечатков пальцев
Химические отпечатки обычно используются для поиска подструктур и сходства. На следующем рисунке показан последовательный список, представленный битами. Каждая цифра представляет элемент, пару атомов или функциональные группы. Химическая структура - C1C(=O)NCO1
.
2-identifying-patterns-molecules.png
Мы можем использовать RDKit для генерации отпечатков Morgan, который определяет радиус от конкретного атома и подсчитывает количество химических структур в пределах радиуса, чтобы сгенерировать химический отпечаток. Задайте разные значения радиуса и битов, чтобы получить химические отпечатки различных химических структур. Химические структуры представлены в формате SMILES.
from rdkit import Chem
mols = Chem.MolFromSmiles(smiles)
mbfp = AllChem.GetMorganFingerprintAsBitVect(mols, radius=2, bits=512)
mvec = DataStructs.BitVectToFPSText(mbfp)
2. Поиск химических структур
Затем мы можем импортировать отпечатки Моргана в Milvus, чтобы создать базу данных химических структур. По различным химическим отпечаткам Milvus может выполнять поиск подструктур, поиск по сходству и точный поиск.
from milvus import Milvus
Milvus.add_vectors(table_name=MILVUS_TABLE, records=mvecs)
Milvus.search_vectors(table_name=MILVUS_TABLE, query_records=query_mvec, top_k=topk)
Поиск подструктур
Проверяет, содержит ли химическая структура другую химическую структуру.
Поиск по сходству
Поиск схожих химических структур. По умолчанию в качестве метрики используется расстояние Танимото.
Точный поиск
Проверяет, существует ли указанная химическая структура. Этот вид поиска требует точного совпадения.
Вычисление химических отпечатков пальцев
Расстояние Танимото часто используется в качестве метрики для химических отпечатков пальцев. В Milvus расстояние Жаккарда соответствует расстоянию Танимото.
3-computing-chem-fingerprings-table-1.png
Основываясь на предыдущих параметрах, вычисление химических отпечатков пальцев можно описать следующим образом:
4-computing-chem-fingerprings-table-2.png
Мы видим, что 1- Jaccard = Tanimoto
. Здесь мы используем Жаккарда в Milvus для вычисления химического отпечатка, что фактически соответствует расстоянию Танимото.
Демонстрация системы
Чтобы лучше продемонстрировать работу системы, мы создали демо-версию, которая использует Milvus для поиска более 90 миллионов химических отпечатков пальцев. Используемые данные взяты с сайта ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. Начальный интерфейс выглядит следующим образом:
5-system-demo-1.jpg
Мы можем искать заданные химические структуры в системе и возвращать похожие химические структуры:
6-system-demo-2.gif
Заключение
Поиск по сходству незаменим во многих областях, например, в работе с изображениями и видео. Для поиска лекарств поиск по сходству может быть применен к базам данных химических структур для обнаружения потенциально доступных соединений, которые затем преобразуются в семена для практического синтеза и тестирования в точках оказания медицинской помощи. Milvus - поисковая система с открытым исходным кодом для поиска сходств в массивных векторах признаков - построена на основе гетерогенной вычислительной архитектуры для достижения максимальной экономической эффективности. Поиск по миллиардным векторам занимает всего миллисекунды при минимальных вычислительных ресурсах. Таким образом, Milvus может помочь реализовать точный и быстрый поиск химических структур в таких областях, как биология и химия.
Вы можете ознакомиться с демонстрацией по адресу http://40.117.75.127:8002/, а также посетить наш GitHub https://github.com/milvus-io/milvus, чтобы узнать больше!
- Обзор системы
- 1. Генерация химических отпечатков пальцев
- 2. Поиск химических структур
- Вычисление химических отпечатков пальцев
- Демонстрация системы
- Заключение
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word