Ускорение открытия новых лекарственных препаратов
Введение
Открытие лекарственных препаратов, как источник инноваций в медицине, является важной частью исследований и разработки новых лекарств. Открытие лекарственных препаратов осуществляется посредством выбора и подтверждения мишеней. Когда обнаруживаются фрагменты или лид-соединения, похожие соединения обычно ищут во внутренних или коммерческих библиотеках соединений, чтобы выявить зависимость «структура-активность» (SAR), доступность соединений и тем самым оценить потенциал лид-соединений для оптимизации до соединений-кандидатов.
Чтобы обнаруживать доступные соединения в пространстве фрагментов из библиотек соединений миллиардного масштаба, химические отпечатки обычно извлекаются для поиска по подструктуре и поиска по сходству. Однако традиционное решение требует много времени и подвержено ошибкам, когда речь идет о высокоразмерных химических отпечатках миллиардного масштаба. В процессе также могут быть потеряны некоторые потенциальные соединения. В этой статье рассматривается использование Milvus, поисковой системы по сходству для векторов массового масштаба, совместно с RDKit для построения системы высокопроизводительного поиска по сходству химических структур.
По сравнению с традиционными методами Milvus обладает более высокой скоростью поиска и более широким охватом. Обрабатывая химические отпечатки, Milvus может выполнять поиск по подструктуре, поиск по сходству и точный поиск в библиотеках химических структур, чтобы обнаруживать потенциально доступные лекарственные препараты.
Обзор системы
Система использует RDKit для генерации химических отпечатков и Milvus для выполнения поиска по сходству химических структур. См. https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/mols_search/README.md, чтобы узнать больше о системе.
Обзор системы
1. Генерация химических отпечатков
Химические отпечатки обычно используются для поиска по подструктуре и поиска по сходству. На следующем изображении показан последовательный список, представленный битами. Каждая цифра представляет элемент, пару атомов или функциональные группы. Химическая структура — C1C(=O)NCO1.
Определение паттернов молекул.
Мы можем использовать RDKit для генерации отпечатков Morgan, что определяет радиус от конкретного атома и вычисляет количество химических структур в пределах этого радиуса для генерации химического отпечатка. Укажите разные значения радиуса и битов, чтобы получить химические отпечатки различных химических структур. Химические структуры представлены в формате SMILES.
from rdkit import Chem
mols = Chem.MolFromSmiles(smiles)
mbfp = AllChem.GetMorganFingerprintAsBitVect(mols, radius=2, bits=512)
mvec = DataStructs.BitVectToFPSText(mbfp)
2. Поиск химических структур
Затем мы можем импортировать отпечатки Morgan в 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 расстояние Жаккара соответствует расстоянию Танимото.
Таблица вычисления химических отпечатков-1.
На основе предыдущих параметров вычисление химических отпечатков можно описать следующим образом:
Таблица вычисления химических отпечатков-2.
Мы видим, что 1- Jaccard = Tanimoto. Здесь мы используем Jaccard в Milvus для вычисления химического отпечатка, что фактически соответствует расстоянию Tanimoto.
Демонстрация системы
Чтобы лучше продемонстрировать, как работает система, мы создали демо, которое использует Milvus для поиска по более чем 90 миллионам химических отпечатков. Используемые данные взяты из ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF. Начальный интерфейс выглядит следующим образом:
Демонстрация системы 1.
Мы можем искать заданные химические структуры в системе и получать похожие химические структуры:
Демонстрация системы 2.
Заключение
Поиск по сходству незаменим в ряде областей, таких как изображения и видео. В разработке лекарств поиск по сходству можно применять к базам данных химических структур для обнаружения потенциально доступных соединений, которые затем преобразуются в исходные соединения для практического синтеза и экспресс-тестирования. Milvus, как open-source движок поиска по сходству для векторов признаков огромного масштаба, построен на гетерогенной вычислительной архитектуре для достижения наилучшей экономической эффективности. Поиск по векторам миллиардного масштаба занимает всего миллисекунды при минимальных вычислительных ресурсах. Таким образом, Milvus может помочь реализовать точный и быстрый поиск химических структур в таких областях, как биология и химия.
Вы можете получить доступ к демо, посетив http://40.117.75.127:8002/, а также не забудьте заглянуть на наш GitHub https://github.com/milvus-io/milvus, чтобы узнать больше!
Читать далее

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.



