Вам удалось наконец выяснить, как атомы пространственно расположены на вашей недавно обнаруженной молекулярной сущности. С помощью, скажем, спектроскопических средств вы теперь обладаете множеством координат атомов, типов атомов, длин связей, типов связей и тому подобного для вашей молекулы. Теперь вы заинтересованы в определении точечной группы (группы симметрии) вашей молекулы.
Для простых молекул, таких как метан ( ) или бензол ( ), достаточно просто визуально точечную группу, к которой принадлежит молекула. Тем не менее, это не так возможно, когда молекула немного на большой стороне.
Учитывая, что молекула хранится в каком-то удобном формате данных (* .pdb, * .mol и т. Д.), Как вы алгоритмически определяете группу симметрии молекулы?
Ответы:
Мой основной опыт связан с кристаллическими структурами, и в кристалле обнаруживается только конечное число точечных симметрий . Итак, алгоритм, который я бы использовал, немного отличается от того, что вы бы использовали в молекуле. Но маловероятно, что с большой молекулой появятся непрерывные симметрии, такие как осевая симметрия в H или CO , поэтому методы должны перекрываться достаточно хорошо. При определении симметрии в системе необходимо учитывать две разные, но взаимосвязанные симметрии: локальную и глобальную.22 2
Локальная симметрия
Локальная симметрия - это симметрия локальной среды вокруг определенной точки. В частности, симметрия в каждом атомном местоположении определяет локальное атомное расщепление и, в некоторой степени, химическую среду и является подгруппой глобальной симметрии. Например, в бензоле локальная симметрия состоит из двух плоскостей отражения и оси ( симметрия вращения). (Очевидно, что только две из этих операций необходимы для генерации всей локальной группы точек.)180 ∘С2 180∘
С алгоритмической точки зрения мы сначала нашли ближайших соседей целевого атома, а затем перечислили все способы, которыми мы можем вращать эту среду вокруг центрального атома и оставить ее неизменной. Более математически это решение для всех ортогональных матриц, , такое, чтоA
где и - положения атомов одного и того же вида, а - положение центрального или целевого атома. Но я бы сначала посмотрел на более простые формы, например, существует ли плоскость отражения, прежде чем пытаться найти в целом. → x j → x cAИкс⃗ я Икс⃗ J Икс⃗ с A
Другая мысль состоит в том, чтобы использовать матрицы угловых моментов в качестве генераторов вращения, а затем
где - это единичный вектор, относительно которого выполняется вращение с углом , и - это вектор трехмерных матриц угловых моментов. будет иметь только 3 неизвестных.ф → L =(Lх,лу,Лг)N^∈ R3 φ L⃗ = ( LИкс, ЛY, ЛZ) A
Глобальная симметрия
Там, где локальная симметрия определяет среду вокруг одного атома, глобальная симметрия диктует, как атомы обмениваются друг с другом. Первым шагом в определении глобальной симметрии является определение эквивалентных атомов. Сначала определите типы и относительные направления к ближайшему соседнему (и второму ближайшему или более высокому, если это необходимо) атомам. Два атома тогда эквивалентны, если их соседи имеют одинаковое пространственное расположение. Это просто рассчитать.
Второй шаг примерно такой же, как и в случае локальной симметрии, за исключением того, что центр масс молекулы, вероятно, является центром симметрии. На этом этапе, если локальные симметрии были определены, может потребоваться только несколько уникальных операций для генерации всей группы. Например, в кристаллической структуре B20 каждый атом имеет локальную симметрию , и полная точечная группа генерируется путем включения 2-кратной ( вращение) винтовой оси, которая превращает один атом в другой. В бензоле требуются две операции: 6-кратное ( ) вращение по центральной оси и плоскость отражения, разделяющая связь.С3 180∘ 60∘
Редактировать : Для структуры B20 вы можете использовать две оси , вместо этого, чтобы сгенерировать полную группу. Это должно позволить вам избежать необходимости определять способ автоматического определения оси винта.С3
Осторожно : предостережение об использовании идей в разделе локальной симметрии в глобальном разделе, чтобы быть операцией симметрии, среда также должна быть преобразована. Таким образом, если вы найдете сверху, он даст только симметрию кандидата, так как преобразование может не соответствующим образом изменить среду, и необходимы дальнейшие проверки. Например, если бы бензольное кольцо имело атомы водорода, торчащие из плоскости кольца вдоль одной стороны, то плоскость отражения, разделяющая углерод-углеродную связь, была бы хорошей, но вращение на аналогично делившее эту связь, не было бы, потому что это не будет воспроизводить местную среду.A 180∘
Правка - Переводы : есть еще одно осложнение, которое игнорирует вышеупомянутое обсуждение локальной симметрии: переводы. Формально правильная операция симметрии
где и , как указано выше, и - произвольный перевод. В симморфном кристаллеA Икс⃗ К T⃗
где - примитивная трансляция решетки, а , поэтому точечная группа и трансляции полностью отделимы. В несиморфном кристалле может состоять из не примитивных трансляций. Разница между ними заключается просто в том, что для симморфного кристалла можно найти единственный центр вращения, но для несиморфных кристаллов это не так. Молекулярная система, вероятно, будет «несиморфной» в этом последнем смысле и потребует добавления переводов для полной реализации группы.a⃗ я Nя∈ Z T⃗
источник
Для этой цели существует старый код, который используется в нескольких пакетах и называется SYMMOL. Используемый алгоритм описан в следующей статье:
По сути, он определяет центр инерции, затем применяет возможные операции симметрии и пытается определить, существует ли вектор преобразования для отображения управляемой геометрии на оригинал в пределах заданного допуска. Сам код больше не доступен с сайта авторов, но он доступен (с набором примеров входных файлов) здесь .
источник
Я рад ответить, что для этого есть высококачественный открытый исходный код:
https://github.com/mcodev31/libmsym
Я адаптировал libmysm в Avogadro, и релиз должен выйти позже, в августе 2015 года.
Я полагаю, что автор в настоящее время работает над завершением рукописи о деталях. Я уточню этот ответ, когда он будет опубликован.
источник
Если вы все еще заинтересованы в этом, у меня есть скрипт на python, который даст вам (абелеву) точечную группу (и симметрично не избыточные) атомы любой молекулы в пределах указанного допуска.
Разница между моей рутиной и многими другими, которые я видел доступными, заключается в том, что начальная ориентация не важна, поэтому полезно использовать результаты оптимизации геометрии, когда вы не указали начальную группу точек (как часто, предположение, подобное этому, может ограничить геометрию, придать ей симметрию и дать неравновесное основное состояние.)
Если вы все еще заинтересованы, дайте мне знать, я поделюсь этим здесь.
источник
Однажды я написал небольшой скрипт на Python для определения симметрии точечной группы для молекулы. Если вы заинтересованы, пожалуйста, смотрите https://github.com/sunqm/pyscf/blob/master/symm/geom.py
источник
Есть несколько программных пакетов, таких как Materials Studio, которые могут автоматически идентифицировать точечную группу молекулы для вас. Однако, если вы хотите понять это самостоятельно, есть хорошая блок-схема , которая проведет вас через весь процесс. Вы также можете заглянуть на сайт симметрии Оттербейна с некоторыми учебными пособиями и интерактивными демонстрациями.
источник