Похожие чаты

Добрый день, коллеги! Нужен совет от людей, пользовавшихся пакетом RDKit, и,

в частности, вычислявших RMSD между двумя конформерами. В пакете нашел две функции: AlignMol и GetBestRMS. Вторая учитывает симметрию молекулы. И, конечно же, обе функции возвращают немного разные значения RMSD на одной и той же паре конформеров. И вопрос в следующем: какой метод использовать, зачем и где вообще учитывается симметрия молекулы в подобных задачах?

3 ответов

13 просмотров

В рассылке это спрашивали, правда в ответе предложили использовать третий вариант https://www.mail-archive.com/rdkit-discuss@lists.sourceforge.net/msg09230.html

Artem-Vakhrushev Автор вопроса
Simon Steshin
В рассылке это спрашивали, правда в ответе предлож...

Спасибо большое! Там, далее в сообщениях, было очень хорошее объяснение в чем разница учета симметрии, но значит ли это, что я могу всегда использовать функцию, которая учитывает симметрию? Ощущения подсказывают, что для больших систем, она начинает гораздо дольше считаться, так ли это?

Artem Vakhrushev
Спасибо большое! Там, далее в сообщениях, было оче...

I В RDKit есть три функции для этого: 1) GetBestRMS (минимальное рмсд по топологическому мэтчу между молекулами + выравниванию по координатам) 2) AlignMol / AlignMolConformers (минимальное рмсд по выравниванию по координатам) 3) CalcBestRMS (минимальное рмсд по топологическому мэтчу между молекулами) Выравнивание по координатам в 1) и 2) нужно, например, когда делается простой template-based докинг силами одного лишь рдкита, и нужно из многих конформеров лиганда выбрать наиболее совпадающий с известной молекулой в пакете. Симметрия в 1) и 3) нужна, чтобы считать настоящий минимальный рмсд (как на картинке 1), и кмк почти всегда есть смысл ей пользоваться. Для подсчета симметрии запускается SubstructMatch(...) и в нем вот эта функция https://github.com/rdkit/rdkit/blob/7053e97a1511f3a716d4cf8320ea9ef6518dc745/Code/GraphMol/Substruct/SubstructMatch.cpp#L512 отсюда https://github.com/rdkit/rdkit/blob/master/Code/GraphMol/Substruct/vf2.hpp#L613, то есть это VF2 алгоритм для сравнения графов. Еще в целом мэтч по топологии в 1) и 3) [или же указывание мэтча руками через atomMap в 1), 2), 3)] полезен тем, что можно сравнивать одинаковые молекулы из разных источников с разными индексами атомов. Отсутствие выравнивания по координатам в 3) нужно, чтобы считать rmsd между текущим положением двух молекул, но с учетом симметрии и если у них разные индексы атомов. Например, у вас есть сколько-то поз молекулы в разных конформациях - результатов обычного докинга. Их не нужно выравнивать друг относительно друга, потому что это готовые результаты докинга. Но мб нужно разбить их на кластеры, посчитав рмсд между каждым. Или же если это какой-то тест и реальное положение молекулы известно, можно посчитать рмсд от каждого до известной молекулы. II > Там, далее в сообщениях, было очень хорошее объяснение в чем разница учета симметрии, но значит ли это, что я могу всегда использовать функцию, которая учитывает симметрию? Ощущения подсказывают, что для больших систем, она начинает гораздо дольше считаться, так ли это? Мне кажется, что если засунуть туда две большие молекулы с большой системой симметричных сопряженных колец, то оно будет дольше считаться, но я никогда не проверяла. Я всегда использую CalcRMS/GetBestRMS и обычно все нормально. А вот в FindMCS вроде другой алгоритм используется (или мб там тупо число сравнений больше, тк там не subgraph matching, а max common substructure, и оно может быть ОЧЕНЬ ДОЛГИМ, так что там даже есть параметр таймаута и настраиваемый класс для таймаута). III Еще пара замечаний: - обычно есть смысл удалять водороды перед использованием этих функций - начиная с какой-то версии рдкита, они добавили волшебное symmetrizeConjugatedTerminalGroups=True, которое мэтчит некоторые группы с распределенной электронной плотностью, как на картинке 2.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Карта сайта