Индекс окружения для одинаковых атомов

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

Индекс окружения для одинаковых атомов

Сообщение chemigor » Вс мар 28, 2021 3:01 pm

Добрый день,

пусть у нас есть молекула, которая задана графом (атомы и связи), но на атомах нет координат.

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

Возьмем, например, толуол:

водороды:
1 группа - 3 водорода, что при CH3, индекс a1,
2 группа - 2 водорода в орто положении, индекс a2,
3 группа - 2 водорода в мета положении, индекс a3,
4 группа - 1 водород в пара положении, индекс a4.

углероды:
1 группа - 1 углерод в CH3, индекс a5,
2 группа - 1 углерод, что в бензольном кольце и связан с CH3, индекс a6,
3 группа - 2 углерода в орто положении, индекс a7,
4 группа - 2 углерода в мета положении, индекс a8,
5 группа - 1 углерод в пара положении, индекс a9.

То есть в толуоле есть 9 различных атомов (с учетом окружения).

Мне также очень бы хотелось бы, чтобы с помощью этих индексов можно было бы сравнивать две молекулы, то есть, например, ксилол содержал бы очень схожие, но не равные по значению соответствующие индексы с толуолом.

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

Но очень не хочется изобретать велосипед, ибо есть подозрение, что такие индексы, по крайней мере, в ЯМР используются и люди научились их как-то правильно формулировать, но с ходу сам не могу вспомнить или нагуглить

Посоветуйте, пожалуйста, как построить такие индексы!

Спасибо!

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

Re: Индекс окружения для одинаковых атомов

Сообщение Гесс » Вс мар 28, 2021 7:13 pm

Позвольте немного оффтопа.
В химии кластеров и поверхностей есть во первых Coordination Number CN, который считается для каждого атома как количество ближайших соседей. То есть для плотной упаковки шаров - это 12, для атома на вершине трехгранной пирамиды - 3, для атома на (111)-поверхности fcc металла - 6+3=9.
Это достаточно простая характеристика, в которой атомы подповерхностного слоя неотличимы от глубинных. Поэтому следующим шагом развития явился Generalised Coordination Number, GCN. Для каждого атома он расчитывается как Сумма CN всех соседних атомов деленная на 12. На самом деле это можно растягивать и дальше, просто математически утомительно.
Ваша модель выглядит достаточно похожей.
Вы хотите единичный числовой индекс или просто некоторое выражение?
Давайте рассмотрим окружение одного метильного водорода в толуоле и м-ксилоле
1 ______С vs C
2 __H,H,C vs H,H,C
3 ____C,C vs C,C
4 H,C,H,C vs H,C,H,C (тут только порядок записи позволяет нам отличить 2CH от СH2+C, числовая сумма этот момент утратит, а если вы будете использовать атомные массы то CH2 = азоту)
5 H,C,H,C vs H,C,C,C (тут впервые появляется разница + мы впервые дважды учитываем один и тот же атом, с этим надо бороться на уровне графа)
На следующих соседях мы пойдем по уже обработанным соседям.

ИМХО вам нужно смотреть чтото типа алгоритма сравнения деревьев, мне гугл подкинул https://habr.com/ru/post/334384/

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

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

Re: Индекс окружения для одинаковых атомов

Сообщение chemigor » Вс мар 28, 2021 8:42 pm

Спасибо большое, Гесс!

Вот Generalised Coordination Number или какой-то синоним. Мне велосипед изобретать не хотелось, или сделать то, что уже люди до меня делали.
Гесс писал(а):
Вс мар 28, 2021 7:13 pm
Вы хотите единичный числовой индекс или просто некоторое выражение?
конечно, хотелось бы чтобы это было бы число, по возможности целое и не сильно многобитное.

Сейчас если сравнить индексы одного метильного водорода в толуоле и м-ксилоле
то у меня получается так:
1 окружение и там и там 6
2 окружение H,H,C vs H,H,C, то есть (6+1+1)/2=4
3 окружение C,C vs C,C, то есть 12/4 = 3
4 окружение H,C,H,C vs H,C,H,C, то есть 14/8 = 7/4
5 окружение H,C,H vs H,C,C, то есть 8/16 vs 13/16
6 окружение H vs H H H, то есть 1/32 vs 3/32
итого 15 + 9/32 vs 15 + 21/32
то есть они конечно отличаются, но, ИМХО, можно случайно не угадать, например,

такой индекс в H-COOH у H-C и индекс у обоих водородов в CH3-CH2-NH2 у CH2
будут 6 + (8+8)/2 + 1/14 = 14 + 1/4 vs 6 + (1+6+7)/2 + 5/4 = 14 + 1/4 то есть реально одинаковы.

Конечно для этого можно при переходе к следующему окружению не делить на 2, а делить на что-то близкое к 2, но иррациональное в надежде получить что-то отличное, но, имхо, криво как-то, хотя, в большинстве случаев, такой метод довольно хорошо работает и, по крайней мере, может при CH3 группе получить идентичные индексы, которые отличаются от других индексов водородов, имеющих другое окружение.
Гесс писал(а):
Вс мар 28, 2021 7:13 pm
На следующих соседях мы пойдем по уже обработанным соседям.
да, понятно, что надо только раз посещать каждый атом, в этом случае, вычислительная сложность построения такого индекса для одного атома будет порядка числа атомов в молекуле и, ИМХО, очень приемлемо.

Еще бы как-то хорошо бы было бы учесть тип связей...

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

Потом, индексы очень коррелируют с тем, что пик 1H ЯМР спектра соответствующего протона с одинаковыми индексами обычно совпадает, да и по углероду все то же самое, но, как-то не припомню в ЯМРе, чтобы кто-то такие индексы использовал, хотя мог чего-то подзабыть.

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

Re: Индекс окружения для одинаковых атомов

Сообщение amge » Пн мар 29, 2021 6:40 am

chemigor писал(а):
Вс мар 28, 2021 3:01 pm
Сам пробовал сделать так:
посчитать сумму атомных номеров, связанных на одну связь от атома,
добавить сумму атомных номеров умноженную на 0.5, атомов, которые находятся на расстоянии двух связей,
и так далее.
Легко критиковать, не предлагая ничего позитивного, но тем не менее...
Такая схема не сможет различить диастереотопные атомы.

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

Re: Индекс окружения для одинаковых атомов

Сообщение Гесс » Пн мар 29, 2021 10:06 am

А какие индексы вы получите для атомов водорода сравнивая циклопентан и малоновый нитрил NC-CH2-CN ?

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

Re: Индекс окружения для одинаковых атомов

Сообщение chemigor » Пн мар 29, 2021 2:23 pm

Спасибо большое, amge и Гесс за ответы и советы!
amge писал(а):
Пн мар 29, 2021 6:40 am
Такая схема не сможет различить диастереотопные атомы.
да, верно, тут только граф и он к любым изомерам безразличен. Даже у цис-транс изомеров тоже все индексы одинаковы будут, а у всех молекул со стереоцентрами - и подавно.
Гесс писал(а):
Пн мар 29, 2021 10:06 am
А какие индексы вы получите для атомов водорода сравнивая циклопентан и малоновый нитрил NC-CH2-CN ?
у меня они получились разными, если 0.5 на каждый следующий уровень окружения ставить, то есть в одном случае, 16, в другом - 17.

Но тут сразу возникает интересная ситуация, что у 1-азетина -CH2-CH=N-CH2- и у пропионитрила C2H5-CN будет одинаковый индекс у нескольких водородов, но это будет происходить только от того, что я не учитываю тип связей. То есть переход из 0.5 коэффициента на что-то иррациональное мне не поможет.

Я прекрасно понимаю, что охватить в общем случае любые варианты будет невозможно, но хочется охватить максимум вариантов.

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

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

Re: Индекс окружения для одинаковых атомов

Сообщение amge » Пн мар 29, 2021 3:10 pm

chemigor писал(а):
Пн мар 29, 2021 2:23 pm
amge писал(а):
Пн мар 29, 2021 6:40 am
Такая схема не сможет различить диастереотопные атомы.
да, верно, тут только граф и он к любым изомерам безразличен. Даже у цис-транс изомеров тоже все индексы одинаковы будут, а у всех молекул со стереоцентрами - и подавно.
Почему даже и подавно? Наоборот. Чтобы определить цис-транс, необходимо принимать во внимание x,y координаты на плоскости. Для определения диастереотопности этого не нужно, достаточно только графа.

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

Re: Индекс окружения для одинаковых атомов

Сообщение Гесс » Пн мар 29, 2021 3:59 pm

chemigor писал(а):
Пн мар 29, 2021 2:23 pm
Гесс писал(а):
Пн мар 29, 2021 10:06 am
А какие индексы вы получите для атомов водорода сравнивая циклопентан и малоновый нитрил NC-CH2-CN ?
у меня они получились разными, если 0.5 на каждый следующий уровень окружения ставить, то есть в одном случае, 16, в другом - 17.
да, вы правы, я просчитался по четвертой очереди у циклопентана, правда у меня получились 31.5 и 32, чтобы они стали идентичными пришлось бы иметь пентин.
amge писал(а):
Пн мар 29, 2021 3:10 pm
Чтобы определить цис-транс, необходимо принимать во внимание x,y координаты на плоскости.
х-y для графа - это будет намного сложнее.

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

Re: Индекс окружения для одинаковых атомов

Сообщение chemigor » Пн мар 29, 2021 5:04 pm

amge писал(а):
Пн мар 29, 2021 3:10 pm
Почему даже и подавно? Наоборот.
согласен, наоборот :) Не о том подумал. Спасибо!

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

Re: Индекс окружения для одинаковых атомов

Сообщение chemigor » Пн мар 29, 2021 5:09 pm

Гесс писал(а):
Пн мар 29, 2021 3:59 pm
правда у меня получились 31.5 и 32, чтобы они стали идентичными пришлось бы иметь пентин.
а Вы, наверное, по атомной массе считали, а я по номеру элемента. С атомной массой можно изотопы попутать и не одинаково посчитать.

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

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

Я планировал такие индексы для распознавания пиков в ЯМР использовать, или по крайней мере для предварительной сортировки и создания хеш таблицы по пикам.

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

Re: Индекс окружения для одинаковых атомов

Сообщение chemigor » Пн мар 29, 2021 5:17 pm

С другой стороны, если использовать дробный атомный вес атома с естественным распределением изотопов, можно избавиться от того, что N и C + H дадут одинаковый индекс, это как по аналогии с масс-спектроскопией высокого разрешения.

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

Re: Индекс окружения для одинаковых атомов

Сообщение Гесс » Пн мар 29, 2021 5:28 pm

chemigor писал(а):
Пн мар 29, 2021 5:17 pm
С другой стороны, если использовать дробный атомный вес атома с естественным распределением изотопов, можно избавиться от того, что N и C + H дадут одинаковый индекс, это как по аналогии с масс-спектроскопией высокого разрешения.
:up:

Ответить

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

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

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