Bir molekülün nokta grubunu nasıl belirler?


18

Sonunda yeni keşfedilen moleküler varlığınızda atomların mekansal olarak nasıl düzenlendiğini bulmayı başardınız. Örneğin, spektroskopik yollarla, bir grup atom koordinatlarına, atom tiplerine, bağ uzunluklarına, bağ tiplerine ve molekülünüz için bir şeye sahip olursunuz. Artık molekülünüzün nokta grubunu (simetri grubu) belirlemekle ilgileniyorsunuz.

Metan (gibi basit moleküller için Td ) ya da benzen ( D6h ), bu bir molekül ait olduğu nokta grubunu belirlemek için görsel teftiş basit bir konudur. Bununla birlikte, molekül biraz büyük tarafta olduğunda bu mümkün değildir.

Bazı uygun veri formatlarında (* .pdb, * .mol ​​vb.) Saklanan bir molekül göz önüne alındığında, molekülün simetri grubunu algoritmik olarak nasıl belirliyorsunuz?


3
Değer için VMD, bu amaçla SymmetryTool adı verilen bir eklenti içerir .
Juan M. Bello-Rivas

Yanıtlar:


13

Birincil deneyimim kristal yapılarla ilgili ve bir kristalde sadece sınırlı sayıda nokta simetrisi var. Yani, kullanacağım algoritma bir molekülde kullanacağınızdan biraz farklı. Ancak, sürekli simetrileri H eksenel simetri gibi görünür olacağı büyük bir molekül ile mümkün değildir 2 ya da CO 222 yöntemler çok iyi üst üste bu yüzden,. Bir sistemdeki simetriyi belirlerken, dikkate alınması gereken iki farklı, ancak ilişkili simetri vardır: yerel ve küresel.

Yerel Simetri

Yerel simetri, belirli bir nokta etrafındaki yerel çevrenin simetrisidir. Özellikle, her atomik lokasyondaki simetri, yerel atomik bölünmeyi ve bir dereceye kadar kimyasal ortamı belirler ve küresel simetrinin bir alt grubudur. Örneğin, benzen içinde yerel simetri iki yansıma düzlem ve bilinen bileşimde bir eksenine ( 180 dönüş simetri). (Açıkçası, tüm yerel nokta grubunu oluşturmak için sadece iki işlem gereklidir.)C2180

enter image description here

Algoritmik bir perspektiften, yaptığımız şey önce hedef atomun en yakın komşularını bulmak ve daha sonra bu ortamı merkezi atom hakkında döndürmek ve aynı kalmasını sağlamak için tüm yolları numaralandırmaktır. Daha matematiksel olarak, tüm ortogonal matrisler için çözme edilir yani, böyleA

A(xixc)=xjxc

burada ve x j aynı türün atomlarının konumlarıdır ve x c merkezi veya hedef atomun konumudur. Ancak, genel olarak A'yı çözmeye çalışmadan önce, önce bir yansıma düzleminin olup olmadığı gibi daha basit biçimlere bakarım . xixjxcA

Başka bir düşünce, açısal momentum matrislerini rotasyon jeneratörleri olarak kullanmaktır,

A=exp(iϕn^L)

burada n,R 3 bir açı ile dönmesi hangi bir birim vektör φ gerçekleştirilir ve L = ( L x , L , Y , L , Z ) , üç boyutlu bir açısal momentum matrislerin vektörüdür. A daha sonra sadece 3 bilinmeyen olurdu.n^R3ϕL=(Lx, Ly, Lz)A

Global Simetri

Yerel simetri, tek bir atom çevresindeki ortamı belirlediğinde, küresel simetri, atomların birbirleriyle nasıl değiştiklerini belirler. Global simetriyi belirlemenin ilk adımı eşdeğer atomları belirlemektir. İlk olarak, en yakın komşu (ve istenirse en yakın ikinci veya daha yüksek) atomların tiplerini ve bağıl yönlerini belirleyin. Komşuları aynı uzamsal düzenlemelere sahipse, iki atom eşdeğerdir. Bunu hesaplamak kolaydır.

İkinci adım, molekülün kütle merkezinin muhtemelen simetri merkezi olması haricinde, yerel simetri durumunda bulunanla kabaca aynıdır. Bu noktada, yerel simetriler belirlenmişse, tüm grubu oluşturmak için sadece birkaç benzersiz işlemin bulunması gerekebilir. Örneğin, B20 kristal yapısı , her bir atom, yerel olan simetriC3 ve tam bir nokta grubu, bir 2-kat (içerecek şekilde oluşturulur dönme) vida ekseni başka bir bir atom dönüştürür. Benzende iki işlem gereklidir: merkezi eksende 6 kat ( 60 ) dönüş ve bir bağı ikiye bölen bir yansıma düzlemi.18060

Düzenleme : B20 yapısı için, iki kullanabilirsiniz tam grubunu oluşturmak için, bunun yerine, eksenleri. Bu, vida eksenini otomatik olarak belirlemenin bir yolunu bulmaktan kaçınmanıza izin vermelidir.C3

Dikkat : Simetri operasyonu için küresel bölümdeki yerel simetri bölümündeki fikirlerin kullanılmasına dikkat edilmesi için çevrenin de dönüştürülmesi gerekir. Yani, bulursanız , yukarıdan, sadece bir aday simetri verecektir, çünkü dönüşüm ortamı benzer şekilde değiştirmeyebilir ve daha fazla kontrol gereklidir. Örneğin, benzen halkası halkanın düzleminden bir tarafı boyunca yapışan hidrojen atomlarına sahip olsaydı, o zaman karbon-karbon bağı kesen yansıma düzlemi iyi olurdu, ama benzer şekilde bağı ikiye bölen 180 rotasyon, yerel ortamı yeniden üretmez.A180

Düzenle - Çeviriler : Yukarıdaki yerel simetri tartışmasının göz ardı ettiği bir başka komplikasyon daha var: çeviriler. Resmi olarak, doğru simetri işlemi

A(xixc)+t=xjxc

buradaki ve x k , yukarıdaki gibi ve t isteğe bağlı bir çeviridir. Simorfik bir kristalde,Axkt

t=n1a1+n2a2+n3a3

ainiZt


1
@JM, yerel simetri olayındaki fikirleri küresel olayda körü körüne kullanma konusunda bir uyarı ekledim. Küresel durumda, yerel ortamın simetri operasyonu tarafından da dönüştürülmesi gerektiği konusunda ek bir darlık var ve bunu netleştirdiğimi sanmıyorum.
rcollyer

@JM, çeviriler ve bunların simetri işlemleri üzerindeki etkileri üzerine herhangi bir tartışma eklemeyi unuttum. Kısa bir zeyilname ekledim.
rcollyer

Anlıyorum. Bunu yapmak için bir algoritmanın komşuları ve benzerlerini kontrol etmeden önce bir şekilde bir molekülü ya da kristali "standart bir yönelime" (ne anlama gelirse gelsin) sokacağını düşünmüştüm.
JM

1
@JM, bir kristal için, iki "standart yönelim" vardır: kristal kafes ve ilkel kafes, ve bunlar yüz merkezli bir kübik sistemde olduğu gibi aynı olmayabilir . Bir molekül için, muhtemelen kütle merkezini başlangıç ​​noktası olarak kullanırım ve sonra atalet tensörünün momentini "düzgün şekilde hizalamak" için köşegenleştirirdim. Bununla birlikte, daha genel simetri operasyonu gerekiyorsa, bir kristalde vida ekseni gibi çoklu dönüş merkezlerine olan ihtiyacı ortadan kaldırmaz.
rcollyer

11

Birkaç pakette kullanılan, SYMMOL adı verilen eski bir kod vardır. Kullandığı algoritma aşağıdaki makalede açıklanmıştır:

T. Pilati ve A. Forni, "SYMMOL: önceden belirlenmiş bir tolerans verildiğinde bir atom kümesindeki maksimum simetri grubunu bulmak için bir program" , J. Appl. Cryst. 1998. 31, 503-504'te açıklanmaktadır.

Temel olarak, atalet merkezini belirler, daha sonra olası simetri işlemlerini uygular ve belirli bir tolerans dahilinde işletilen geometrinin orijinalle eşlenmesi için bir dönüşüm vektörünün var olup olmadığını belirlemeye çalışır. Kodunun kendisi artık yazarların sitesinden edinilebilir, ancak (örneğin bir dizi girdi dosyaları ile birlikte) kullanılabilir burada .


3

Bunun için yüksek kaliteli bir açık kaynak kodu bulunduğunu yanıtlamaktan mutluluk duyuyorum:

https://github.com/mcodev31/libmsym

libmsym, moleküllerde nokta grubu simetrisi ile ilgilenen bir C kütüphanesidir. Herhangi bir nokta grubunun moleküllerini belirleyebilir, simetize edebilir ve üretebilir. Ayrıca, tüm nokta gruplarının ve yörünge açısal momentumunun (l) bir alt kümesi için atomik orbitallerin simetriye uyarlanmış doğrusal kombinasyonlarını üretebilir ve orbitalleri larges bileşeniyle indirgenemez temsile yansıtabilir.

Libmysm'i Avogadro'ya uyarladım ve Ağustos 2015'te daha sonra yayınlanacak.

Yazarın şu anda ayrıntılar hakkında bir makaleyi bitirmeye çalıştığına inanıyorum. Bu yanıtı yayınlandığında gözden geçireceğim.


1

Hala bununla ilgileniyorsanız, size belirli bir tolerans dahilindeki herhangi bir molekülün (Abelian) nokta grubu (ve simetrik olarak gereksiz olmayan) atomlarını verecek bir python betiğim var.

Rutin ve uygun gördüğüm diğer pek çok şey arasındaki fark, başlangıç ​​yönünün önemli olmamasıdır, bu da bir başlangıç ​​noktası grubu belirtmediğiniz geometri optimizasyonlarının sonuçlarında çalışmayı yararlı kılar (sıklıkla, böyle bir varsayım geometriyi sınırlandırabilir, simetrik olmaya zorlar ve denge olmayan zemin durumu verir.)

Hâlâ ilgileniyorsanız, bana bildirin, burada paylaşacağım.


Bu senaryo ile kesinlikle ilgilenirim. Açık kaynak yapmak istiyor musunuz (örneğin, GitHub aracılığıyla)
Geoff Hutchison

@GeoffHutchison Daha büyük bir programın içinde olduğu için onunla bir oyun oynayacağım (şu anda geometriyi en aza indirgemek ve daha sonra oluşturulan geometrileri çıkarmak ve yönlendirmek için molpro'yu otomatik olarak çalıştıran bir programın parçası). Çıkarmak ve biraz temizlemek oldukça basit olacaktır.
will

Teşekkürler. Gerektiği gibi temizlemekten mutluluk duyarım. Bu tür araçlara kesinlikle bir talep var.
Geoff Hutchison

1

Bir keresinde bir molekülün nokta grubu simetrisini tespit etmek için küçük bir Python betiği yazdım. İlgileniyorsanız, lütfen https://github.com/sunqm/pyscf/blob/master/symm/geom.py adresine bakın.


1
OP'nin sadece koddan çok yaklaşıma ilgi duyduğu anlaşılıyor. Yaklaşımınızı daha ayrıntılı olarak açıklamanız yararlı olacaktır.
Paul

Ölü bağlantı. Belki şu anki usta yerine github'daki belirli yapıya bir bağlantı koydu
Erik Kjellgren

0

Bir molekülün nokta grubunu sizin için otomatik olarak tanımlayabilen Materials Studio gibi bazı yazılım paketleri vardır. Ancak bunu kendiniz anlamak istiyorsanız, süreç boyunca size yol gösterecek güzel bir akış şeması vardır. Bazı öğreticiler ve etkileşimli demolar için Otterbein simetri web sitesine de bakabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.