Як можна визначити точкову групу молекули?


18

Вам вдалося нарешті з'ясувати, як атоми просторово розташовані на нововиявленому молекулярному утворенні. Через, скажімо, спектроскопічні засоби, ви зараз маєте купу координат атомів, типів атомів, довжини зв’язків, типів зв’язків і чогось іншого для вашої молекули. Тепер ви зацікавлені у визначенні групи точок (групи симетрії) вашої молекули.

Для простих молекул, таких як метан ( Тг ) або бензол ( D6год ), просте візуальне огляду визначити групу точок, до якої належить молекула. Однак це не так можливо, коли молекула трохи на великій стороні.

З огляду на молекулу, що зберігається у зручному форматі даних (* .pdb, * .mol ​​тощо), як алгоритмічно визначити групу симетрії молекули?


3
Для чого це варто, VMD включає плагін для цієї мети під назвою SymmetryTool .
Хуан М. Белло-Рівас

Відповіді:


13

Мій основний досвід - із кристалічними структурами, і є лише кінцева кількість точкових симетрій, які виявляються в кристалі. Отже, алгоритм, який я використовував би, дещо відрізняється від того, який ви використовували б у молекулі. Але навряд чи з великою молекулою виявляться неперервні симетрії, як осьова симетрія в H 2 або CO 2 , тому методи повинні досить добре збігатися. При визначенні симетрії в системі слід враховувати дві різні, але пов'язані між собою, симетрії: локальну та глобальну.22

Локальна симетрія

Локальна симетрія - це симетрія місцевого середовища навколо певної точки. Зокрема, симетрія в кожному атомному місці визначає локальне розщеплення атомів і певною мірою хімічне середовище і є підгрупою глобальної симетрії. Наприклад, у бензолі локальна симетрія складається з двох площин відображення та осі ( симетрія обертання 180 ). (Очевидно, що для створення всієї локальної точкової групи необхідні лише дві операції.)C2180

введіть тут опис зображення

З алгоритмічної точки зору, що ми зробили, ми спочатку знаходимо найближчих сусідів атома-мішені, а потім перераховуємо всі способи, як ми можемо обертати це середовище щодо центрального атома і залишати його таким же. Більш математично це рішення для всіх ортогональних матриць, , таких, щоA

А(хi-хc)=хj-хc

хiхjхcА

Іншою думкою є використання матриць імпульсу кута як генераторів обертання

А=досвід(iϕн^L)

н^R3ϕL=(Lх, Lу, Lz)А

Глобальна симетрія

Там, де локальна симетрія визначає середовище навколо одного атома, глобальна симетрія диктує, як атоми обмінюються один з одним. Перший крок у визначенні глобальної симетрії - визначення еквівалентних атомів. По-перше, визначте типи та відносні напрямки до найближчого сусіднього (і другого найближчого, або вище, за бажанням) атомів. Тоді два атоми еквівалентні, якщо їхні сусіди мають однакові просторові розташування. Це просто вирахувати.

С318060

С3

А180

Редагувати - Переклади : Є ще одне ускладнення, що вищезгадане обговорення локальної симетрії ігнорує: переклади. Формально правильна операція симетрії

А(хi-хc)+т=хj-хc

Ахкт

т=н1а1+н2а2+н3а3

аiнiZт


1
@JM, я додав обережності щодо використання ідей у ​​випадку локальної симетрії сліпо в глобальному випадку. У глобальному випадку існує додаткове обмеження, що місцеве середовище також повинно бути перетворене операцією симетрії, і я не думаю, що я це зрозумів.
rcollyer

@ JM, я забув включити будь-яку дискусію про переклади та їх вплив на операції симетрії. Я включив короткий додаток.
rcollyer

Я бачу. Я завжди думав, що алгоритм цього може якось поставити молекулу чи кристал у "стандартну орієнтацію" (що б це не означало) перед тим, як перевірити сусідів тощо.
JM

1
@JM, для кристала існують дві "стандартні орієнтації:" кристалічна решітка та примітивна решітка, і вони можуть бути не однаковими, як у кутовій системі, орієнтованій на обличчя . Для молекули я б, ймовірно, використовував центр маси як джерело, а потім діагоналізував момент інерційного тензора, щоб "правильно вирівняти" його. Однак це не позбавить потреби в декількох центрах обертання, якщо потрібна більш загальна операція симетрії, як вісь гвинта в кристалі.
rcollyer

11

Існує старий код для цілі, який використовується в декількох пакетах, який називається SYMMOL. Алгоритм, який він використовує, описаний у наступній роботі:

Т. Пілаті та А. Форні, "SYMMOL: програма для пошуку групи максимальної симетрії в кластері атомів із заданим допуском" , Дж. Аппл. Кристал. 1998. 31, 503-504.

В основному, він визначає центр інерції, потім застосовує можливі операції симетрії та намагається визначити, чи існує вектор перетворення для відображення керованої геометрії на оригінал у заданому допуску. Сам код більше не доступний на сайті авторів, але він доступний (із набором прикладних вхідних файлів) тут .


3

Я радий відповісти, що для цього є високоякісний відкритий код:

https://github.com/mcodev31/libmsym

libmsym - це бібліотека С, що займається симетрією точкових груп у молекулах. Він може визначати, симетризувати та генерувати молекули будь-якої точкової групи. Він також може генерувати симетричні лінійні комбінації атомних орбіталей для підмножини всіх точкових груп та орбітального імпульсу кута (l), а також проектувати орбіталі на непридатне представлення з великою складовою.

Я адаптував лібмізм до Avogadro, а реліз повинен вийти пізніше в серпні 2015 року.

Я вважаю, що автор зараз працює над доробком рукопису про деталі. Я перегляну цю відповідь, коли вона буде опублікована.


1

Якщо ви все ще цікавитесь цим, у мене є сценарій пітона, який дасть вам (абелеві) точкові групи (і симетрично не надлишкові) атоми будь-якої молекули в межах заданого допуску.

Різниця між моєю рутиною та багатьма іншими людьми, яких я бачив доступними, полягає в тому, що початкова орієнтація не є важливою, що робить корисним запуск результатів оптимізацій геометрії, де ви не вказали початкову групу точок (як часто, роблячи таке припущення може обмежувати геометрію, примушуючи її бути симетричною та надавати нерівноважному основний стан.)

Якщо ви все ще зацікавлені, дайте мені знати, я поділюся тут.


Мені напевно був би цікавий цей сценарій. Чи готові ви зробити це з відкритим кодом (наприклад, через GitHub?)
Джефф Хатчісон

@GeoffHutchison У мене з цим пограють, оскільки це всередині більшої програми (на даний момент це частина програми, яка автоматично запускає molpro, щоб спробувати і мінімізувати геометрію, а потім витягує створені геометрії та орієнтує їх). Буде досить просто витягнути його і трохи очистити.
буде

Спасибі. Я був би радий прибирати його за потребою. Однозначно є попит на такий інструмент.
Джефф Хатчісон

1

Я колись написав невеликий сценарій Python, щоб виявити симетричність точкової групи для молекули. Якщо вас цікавить, перегляньте https://github.com/sunqm/pyscf/blob/master/symm/geom.py


1
Здається, що ОП більше цікавиться підходом, ніж просто кодом. Було б корисно, якщо ви могли б детальніше описати свій підхід.
Пол

Мертве посилання. Можливо, покладіть посилання на конкретну збірку на github замість нинішнього майстра
Ерік Келлгрен

0

Існують деякі програмні пакети, такі як Матеріали студії, які можуть автоматично визначити точкову групу молекули для вас. Однак якщо ви хочете розібратися в цьому самостійно, є приємна блок-схема, яка проведе вас через процес. Ви також можете подивитися на веб-сайті симетрії Otterbein для деяких навчальних посібників та інтерактивних демонстрацій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.