Алгоритмы сравнения молекул и их частей

обсуждение вопросов физической химии и химической физики
physical chemistry and chemical physics: discussions for professionals
Ответить
chemigor
Сообщения: 585
Зарегистрирован: Вс июн 21, 2015 5:29 pm
Контактная информация:

Алгоритмы сравнения молекул и их частей

Сообщение chemigor » Чт мар 04, 2021 1:41 pm

Добрый день,

посоветуйте, пожалуйста, сабж. Условия таковы:

есть две молекулы, которые надо сравнить, для каждой имеется насчитанных несколько конформеров, причем число конформеров и точность их расчетов могут сильно варьироваться.

По задаче предполагается, что одна молекула является как-бы составной частью другой, например радикалом. А может и не сильно повезти, то есть радикал с замещенным чем-то. Грубо говоря в сравнении может попасть что-то типа фенилбензоата C6H5 - COO - C6H5, с толуолом и надо найти, что у фенилбензоата есть C6H5-С группа, которая сильно похожа на такую же у толуола (толуол без трех водородов у метила).

Поиск нужен не по графам, а именно по геометрии, то есть если в одной молекуле есть какая-то хиральная группа, а в другой - есть его стериоизомер - то это различные вещества, хотя графы могут быть довольно схожими или одинаковыми.

На графов алгоритмов полно и многие мне известны, но они-то как раз мне не сильно интересны.

Нужна именно нечеткая логика, "примерно равно", "почти точно равно", "почти точно не равно", и т.д. и я планирую напускать огромный набор радикалов на сравнение с искомой молекулой, и хочу найти тот радикал, что наиболее похож.

Иногда у меня нет связей, есть только координаты атомов. В принципе связи построить не сильно сложно, но, так как координаты заданы не точно, то граф связей может получиться очень дурацким.

Сам вижу решение - искать трансформацию каждого атома первой молекулы во вторую, сравнивать эти трансформации, и, если найдено много очень похожих трансформаций, то ее применить к первой молекуле, и сравнить поатомно на сколько все совпало. Я его попробовал - пока если конформеров много, считается довольно медленно, хотя более-менее надежно.

Скажите, пожалуйста, как такие алгоритмы правильно называются если конечно они есть в природе, где о них можно почитать и что Вы бы могли бы посоветовать в качестве альтернативы?

Спасибо!

Аватара пользователя
amge
Сообщения: 1843
Зарегистрирован: Вт июл 31, 2007 11:42 am

Re: Алгоритмы сравнения молекул и их частей

Сообщение amge » Чт мар 04, 2021 2:30 pm

Гляньте Open Babel obgrep obfit. Может, что-то пригодится

chemigor
Сообщения: 585
Зарегистрирован: Вс июн 21, 2015 5:29 pm
Контактная информация:

Re: Алгоритмы сравнения молекул и их частей

Сообщение chemigor » Чт мар 04, 2021 3:21 pm

amge писал(а):
Чт мар 04, 2021 2:30 pm
Гляньте Open Babel obgrep obfit. Может, что-то пригодится
Спасибо большое, да, там уже все, что смог вычитал и высмотрел, даже по статьям авторов Бабеля гулял, но всяко обязательно еще раз посмотрю, может что-то и пропустил.

В Бабеле много сравнений по графам, и это - здорово, но тут основная проблема в том, что радикал (или фрагмент, который я хочу сравнить с остальными - часто задан с не правильными связями и тогда тут не все хорошо работает.

Аватара пользователя
amge
Сообщения: 1843
Зарегистрирован: Вт июл 31, 2007 11:42 am

Re: Алгоритмы сравнения молекул и их частей

Сообщение amge » Пт мар 05, 2021 6:56 am

chemigor писал(а):
Чт мар 04, 2021 3:21 pm
основная проблема в том, что радикал (или фрагмент, который я хочу сравнить с остальными - часто задан с не правильными связями и тогда тут не все хорошо работает.
А имеет ли решение такая задача? Например, если задали циклопропан атомами углерода с расстояниями между ними 1.5, 1.5 и 2.0, то как можно догадаться, что имеется в виду не пропан?

Аватара пользователя
Гесс
Сообщения: 12150
Зарегистрирован: Ср фев 15, 2012 11:19 pm

Re: Алгоритмы сравнения молекул и их частей

Сообщение Гесс » Пт мар 05, 2021 9:26 am

Ну в рамках "нечеткой логики" это скажем на 40% пропан, на 30 - циклопропан, на 20 - пропилен, на 10 - аллен, а дальше исходя из окружения (водородов).

chemigor
Сообщения: 585
Зарегистрирован: Вс июн 21, 2015 5:29 pm
Контактная информация:

Re: Алгоритмы сравнения молекул и их частей

Сообщение chemigor » Пт мар 05, 2021 9:54 am

Спасибо за интересные вопросы!
amge писал(а):
Пт мар 05, 2021 6:56 am
А имеет ли решение такая задача? Например, если задали циклопропан атомами углерода с расстояниями между ними 1.5, 1.5 и 2.0, то как можно догадаться, что имеется в виду не пропан?
Классно, пример суперский!!!

Попробовал в свою программу подставить, и получил, что наиболее подходят циклобутан, оксетан, тиетан, вернее те его части, что содержат C3H6. То есть тут как раз нечеткая логика нужна, а потом перебираем все из табличных, и смотрим какая молекула наиболее похожа и похожесть достигается на максимально большом числе атомов.

Ответить

Вернуться в «физическая химия / physical chemistry»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость