Làm thế nào để xác định nhóm điểm của một phân tử?


17

Cuối cùng bạn đã tìm ra cách các nguyên tử được sắp xếp không gian trên thực thể phân tử mới được phát hiện của bạn. Thông qua các phương tiện quang phổ, giờ đây bạn đang sở hữu một loạt các tọa độ nguyên tử, các loại nguyên tử, độ dài liên kết, các loại liên kết và không có gì cho phân tử của bạn. Bây giờ bạn quan tâm đến việc xác định nhóm điểm (nhóm đối xứng) của phân tử của bạn.

Đối với các phân tử đơn giản như metan ( ) hoặc benzen ( D 6 h ), việc kiểm tra trực quan để xác định nhóm điểm trong đó một phân tử là một vấn đề đơn giản. Tuy nhiên, điều này không khả thi khi phân tử hơi lớn một chút.TdD6h

Cho một phân tử được lưu trữ ở một số định dạng dữ liệu thuận tiện (* .pdb, * .mol, v.v.), làm thế nào để bạn xác định thuật toán nhóm đối xứng của phân tử?


3
Đối với những gì nó có giá trị, VMD bao gồm một plugin cho mục đích này được gọi là SymmetryTool .
Juan M. Bello-Rivas

Câu trả lời:


12

Kinh nghiệm chính của tôi là với các cấu trúc tinh thể, và chỉ có một số hữu hạn các điểm đối xứng xuất hiện trong một tinh thể. Vì vậy, thuật toán tôi sẽ sử dụng hơi khác so với những gì bạn sử dụng trong một phân tử. Nhưng, không chắc là với một phân tử lớn mà các đối xứng liên tục sẽ xuất hiện, giống như đối xứng trục trong H 2 hoặc CO 2 , vì vậy các phương pháp nên trùng lặp khá tốt. Khi xác định tính đối xứng trong một hệ thống, có hai đối xứng khác nhau, nhưng có liên quan, cần xem xét: cục bộ và toàn cầu.22

Đối xứng địa phương

Đối xứng cục bộ là đối xứng của môi trường địa phương xung quanh một điểm cụ thể. Cụ thể, tính đối xứng tại mỗi vị trí nguyên tử xác định sự phân tách nguyên tử cục bộ và ở một mức độ nào đó là môi trường hóa học, và là một nhóm nhỏ của tính đối xứng toàn cầu. Ví dụ, trong benzen đối xứng địa phương bao gồm hai máy bay phản ánh và trục ( 180 xoay đối xứng). (Rõ ràng, chỉ có hai trong số các hoạt động là cần thiết để tạo toàn bộ nhóm điểm cục bộ.)C2180

nhập mô tả hình ảnh ở đây

Từ góc độ thuật toán, những gì chúng tôi đã làm là trước tiên tìm ra các lân cận gần nhất của nguyên tử đích, sau đó liệt kê tất cả các cách chúng ta có thể xoay môi trường đó về nguyên tử trung tâm và giữ nguyên như vậy. Về mặt toán học, nó đang giải cho tất cả các ma trận trực giao, , sao choA

A(xixc)=xjxc

trong đó x j là vị trí của các nguyên tử cùng loài và x c là vị trí của trung tâm, hoặc mục tiêu, nguyên tử. Nhưng, trước tiên tôi sẽ xem xét các hình thức đơn giản hơn, như liệu mặt phẳng phản xạ có tồn tại hay không, trước khi cố gắng giải quyết cho AxixjxcA nói chung.

Một suy nghĩ khác là sử dụng ma trận động lượng góc làm máy phát quay, sau đó

A=exp(iϕn^L)

nơi nR 3 là một vector đơn vị về những vòng xoay với góc φ được thực hiện, và L = ( L x , L y , L z ) là vector của ba ma trận mômen động lượng chiều. Mộtn^R3ϕL=(Lx, Ly, Lz)A sau đó chỉ có 3 ẩn số.

Đối xứng toàn cầu

Trong đó đối xứng cục bộ xác định môi trường xung quanh một nguyên tử, đối xứng toàn cầu quy định cách các nguyên tử trao đổi với nhau. Bước đầu tiên trong việc xác định tính đối xứng toàn cầu là xác định các nguyên tử tương đương. Đầu tiên, xác định các loại và hướng tương đối với các nguyên tử lân cận gần nhất (và thứ hai gần nhất, hoặc cao hơn, nếu muốn). Hai nguyên tử sau đó tương đương nhau, nếu hàng xóm của chúng có cùng cách sắp xếp không gian. Điều này là đơn giản để tính toán.

Bước thứ hai gần giống như bước tìm thấy trong trường hợp đối xứng cục bộ, ngoại trừ trung tâm khối lượng của phân tử có khả năng là trung tâm đối xứng. Tại thời điểm này, nếu các đối xứng cục bộ đã được xác định, chỉ có thể tìm thấy một vài thao tác duy nhất để tạo toàn bộ nhóm. Ví dụ, trong cấu trúc tinh thể B20 , mỗi nguyên tử có một địa phương đối xứngC3 , và nhóm điểm toàn được tạo ra bằng cách bao gồm 2 lần ( xoay) trục vít mà biến đổi một nguyên tử vào khác. Trong benzen, hai hoạt động được yêu cầu: 6 lần ( 60 ) xoay qua trục trung tâm và một chiếc máy bay phản ánh cắt đôi một trái phiếu.18060

Chỉnh sửa : Đối với cấu trúc B20 , thay vào đó, bạn có thể sử dụng hai trong số các trục để tạo nhóm đầy đủ. Điều này sẽ cho phép bạn tránh phải tìm ra cách tự động xác định trục vít.C3

Thận trọng : Thận trọng khi sử dụng các ý tưởng trong phần đối xứng cục bộ trong phần toàn cầu, để trở thành một hoạt động đối xứng, môi trường cũng phải được chuyển đổi. Vì vậy, nếu bạn tìm thấy , từ phía trên, nó sẽ chỉ đưa ra một đối xứng ứng viên vì phép biến đổi có thể không thay đổi tương tự môi trường một cách thích hợp, và cần kiểm tra thêm. Ví dụ, nếu vòng benzen có các nguyên tử hydro dính ra khỏi mặt phẳng của vòng dọc theo một mặt, thì mặt phẳng phản xạ chia đôi liên kết carbon-carbon sẽ ổn, nhưng xoay 180 similar tương tự như vậy sẽ không liên kết với nhau. không tái tạo môi trường địa phương.A180

Chỉnh sửa - Bản dịch : Có một sự phức tạp khác mà các cuộc thảo luận ở trên về tính đối xứng cục bộ bỏ qua: bản dịch. Chính thức, hoạt động đối xứng chính xác là

A(xixc)+t=xjxc

trong đó x k , như trên và t là một bản dịch tùy ý. Trong một tinh thể đối xứng,Axkt

t=n1a1+n2a2+n3a3

ainiZt


1
@JM, tôi đã thêm một sự thận trọng về việc sử dụng các ý tưởng trong trường hợp đối xứng cục bộ một cách mù quáng trong trường hợp toàn cầu. Trong trường hợp toàn cầu, có một sự khắt khe thêm rằng môi trường địa phương cũng phải được biến đổi nhờ hoạt động đối xứng và tôi không nghĩ rằng mình đã làm rõ.
rcollyer

@JM, tôi quên bao gồm bất kỳ cuộc thảo luận nào về bản dịch và ảnh hưởng của chúng đối với các hoạt động đối xứng. Tôi đã bao gồm một phụ lục ngắn gọn.
rcollyer

Tôi hiểu rồi. Tôi đã luôn nghĩ rằng một thuật toán để làm điều này bằng cách nào đó sẽ đặt một phân tử hoặc tinh thể vào một "định hướng tiêu chuẩn" (bất cứ điều gì có thể có nghĩa) trước khi kiểm tra hàng xóm và như vậy.
JM

1
@JM, đối với một tinh thể, có hai "định hướng tiêu chuẩn:" mạng tinh thể và mạng nguyên thủy, và chúng có thể không giống nhau, giống như trong một hệ thống lập phương tập trung vào mặt . Đối với một phân tử, có lẽ tôi sẽ sử dụng tâm khối lượng làm gốc, và sau đó chéo hóa mômen quán tính để "căn chỉnh chính xác" nó. Tuy nhiên, điều đó sẽ không loại bỏ sự cần thiết của nhiều trung tâm xoay, nếu hoạt động đối xứng tổng quát hơn được yêu cầu, giống như trục vít trong tinh thể.
rcollyer

10

Có mã cũ cho mục đích được sử dụng trong một vài gói, được gọi là SYMMOL. Thuật toán mà nó sử dụng được mô tả trong bài báo sau:

T. Pilati và A. Forni, "SYMMOL: một chương trình tìm nhóm đối xứng tối đa trong cụm nguyên tử, có dung sai tiền tố" , J. Appl. Cirt. 1998. 31, 503-504.

Về cơ bản, nó xác định tâm quán tính, sau đó áp dụng các phép toán đối xứng có thể và cố gắng xác định xem một vectơ biến đổi có tồn tại để ánh xạ hình học vận hành lên bản gốc trong một dung sai cho trước hay không. Bản thân mã không còn có sẵn từ trang web của tác giả, nhưng nó có sẵn (với một tập hợp các tệp đầu vào ví dụ) ở đây .


3

Tôi rất vui khi trả lời rằng có một mã nguồn mở chất lượng cao cho việc này:

https://github.com/mcodev31/libmsym

libmsym là một thư viện C xử lý đối xứng nhóm điểm trong các phân tử. Nó có thể xác định, đối xứng và tạo ra các phân tử của bất kỳ nhóm điểm nào. Nó cũng có thể tạo ra các tổ hợp tuyến tính phù hợp đối xứng của các quỹ đạo nguyên tử cho một tập hợp con của tất cả các nhóm điểm và động lượng góc quỹ đạo (l), và quỹ đạo chiếu vào biểu diễn không thể thay đổi được với thành phần lớn.

Tôi đã điều chỉnh libmysm thành Avogadro và một bản phát hành sẽ ra mắt vào cuối tháng 8 năm 2015.

Tôi tin rằng tác giả hiện đang làm việc để hoàn thiện một bản thảo về các chi tiết. Tôi sẽ sửa lại câu trả lời này khi nó được xuất bản.


1

Nếu bạn vẫn quan tâm đến điều này, tôi có một tập lệnh python sẽ cung cấp cho bạn nhóm điểm (Abelian) (và không đối xứng) của bất kỳ phân tử nào trong phạm vi dung sai quy định.

Sự khác biệt giữa thói quen của tôi và nhiều thứ khác tôi đã thấy là định hướng ban đầu không quan trọng, giúp chạy trong kết quả tối ưu hóa hình học trong đó bạn không chỉ định một nhóm điểm ban đầu (như thường lệ, thực hiện một giả định như thế này có thể giới hạn hình học, buộc nó phải đối xứng và đưa ra trạng thái cơ bản không cân bằng.)

Nếu bạn vẫn quan tâm, hãy cho tôi biết, tôi sẽ chia sẻ nó ở đây.


Tôi chắc chắn sẽ quan tâm đến kịch bản này. Bạn có sẵn sàng biến nó thành nguồn mở (ví dụ: thông qua GitHub không?)
Geoff Hutchison

@GeoffHutchison Tôi sẽ chơi với nó, vì nó nằm trong một chương trình lớn hơn (hiện tại nó là một phần của chương trình chạy molpro tự động để thử và thu nhỏ hình học, sau đó trích xuất hình học được tạo ra và định hướng chúng). Sẽ là hợp lý đơn giản để giải nén nó và làm sạch nó một chút.
sẽ

Cảm ơn. Tôi rất vui khi dọn dẹp nó khi cần thiết. Chắc chắn có nhu cầu về loại công cụ này.
Geoff Hutchison

1

Tôi đã từng viết một tập lệnh Python nhỏ để phát hiện sự đối xứng nhóm điểm cho một phân tử. Nếu bạn quan tâm, vui lòng xem https://github.com/sunqm/pyscf/blob/master/symm/geom.py


1
Có vẻ như OP quan tâm đến cách tiếp cận hơn là chỉ mã. Sẽ rất hữu ích nếu bạn có thể mô tả cách tiếp cận của bạn chi tiết hơn.
Paul

Liên kết chết. Có thể đặt một liên kết đến bản dựng cụ thể trên github, thay vì bản gốc hiện tại
Erik Kjellgren

0

Có một số gói phần mềm, chẳng hạn như Studio Studio, có thể tự động xác định nhóm điểm của một phân tử cho bạn. Tuy nhiên, nếu bạn muốn tự mình tìm ra, có một sơ đồ đẹp sẽ đưa bạn qua quy trình. Bạn cũng có thể xem trang web đối xứng Otterbein để biết một số hướng dẫn và bản demo tương tác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.