Come si determina il gruppo di punti di una molecola?


18

Sei riuscito a scoprire finalmente come gli atomi sono disposti spazialmente sulla tua entità molecolare appena scoperta. Attraverso, diciamo, mezzi spettroscopici, ora sei in possesso di un gruppo di coordinate atomiche, tipi di atomi, lunghezze di legame, tipi di legame e quant'altro per la tua molecola. Ora sei interessato a determinare il gruppo di punti (gruppo di simmetria) della tua molecola.

Per molecole semplici come metano ( ) o benzene ( ), è una semplice questione di ispezione visiva per determinare il gruppo di punti a cui appartiene una molecola. Tuttavia, questo non è così fattibile quando la molecola è un po 'grande.D 6 hTdD6h

Data una molecola memorizzata in un comodo formato di dati (* .pdb, * .mol, ecc.), Come si determina algoritmicamente il gruppo di simmetria della molecola?


3
Per quello che vale, VMD include un plugin per questo scopo chiamato SymmetryTool .
Juan M. Bello-Rivas,

Risposte:


13

La mia esperienza primaria è con le strutture cristalline e c'è solo un numero finito di simmetrie di punti che si presentano in un cristallo. Quindi, l'algoritmo che userei è leggermente diverso da quello che useresti in una molecola. Ma è improbabile con una grande molecola che vengano mostrate le simmetrie continue, come la simmetria assiale in H 2 o CO 2 , quindi i metodi dovrebbero sovrapporsi abbastanza bene. Quando si determina la simmetria in un sistema, ci sono due simmetrie diverse, ma correlate, da considerare: locale e globale.22

Simmetria locale

La simmetria locale è la simmetria dell'ambiente locale attorno a un punto specifico. In particolare, la simmetria in ciascuna posizione atomica determina la divisione atomica locale e in una certa misura l'ambiente chimico ed è un sottogruppo della simmetria globale. Ad esempio, in benzene simmetria locale è costituito da due piani di riflessione e asse ( 180 rotazione simmetria). (Ovviamente, solo due delle operazioni sono necessarie per generare l'intero gruppo di punti locale.)C2180

inserisci qui la descrizione dell'immagine

Da una prospettiva algoritmica, ciò che abbiamo fatto è prima trovare i vicini più vicini dell'atomo bersaglio, quindi elencare tutti i modi in cui possiamo ruotare quell'ambiente intorno all'atomo centrale e farlo rimanere lo stesso. Più matematicamente, sta risolvendo per tutte le matrici ortogonali, , taleUN

UN(Xio-Xc)=Xj-Xc

dove e x j sono le posizioni degli atomi della stessa specie e x c è la posizione dell'atomo centrale o bersaglio. Ma prima esaminerei le forme più semplici, come se esistesse o meno un piano di riflessione, prima di provare a risolvere A in generale. XioXjXcUN

Un altro pensiero è quello di usare le matrici del momento angolare come generatori di rotazione, quindi

UN=exp(ioφn^L)

dove nR 3 è un vettore unitario di cui una rotazione con un angolo φ viene eseguita, e L = ( L x , L y , L z ) è il vettore delle matrici tridimensionali momento angolare. A avrebbe quindi solo 3 incognite.n^R3ϕL=(Lx, Ly, Lz)A

Simmetria globale

Laddove la simmetria locale determina l'ambiente attorno a un singolo atomo, la simmetria globale determina il modo in cui gli atomi si scambiano tra loro. Il primo passo per determinare la simmetria globale è determinare gli atomi equivalenti. Innanzitutto, determinare i tipi di e le relative direzioni verso gli atomi più vicini (e il secondo più vicino, o più alto, se desiderato). Due atomi sono quindi equivalenti, se i loro vicini hanno le stesse disposizioni spaziali. Questo è semplice da calcolare.

Il secondo passo è approssimativamente lo stesso di quello trovato nel caso di simmetria locale, tranne per il fatto che il centro di massa della molecola è probabilmente il centro di simmetria. A questo punto, se sono state determinate le simmetrie locali, potrebbe essere necessario trovare solo alcune operazioni uniche per generare l'intero gruppo. Ad esempio, nella struttura cristallina B20 , ogni atomo ha un locale simmetriaC3 , e il gruppo di punti completo è generato includendo un 2 volte ( rotazione) dell'asse della vite che trasforma un atomo in un altro. Nel benzene sono necessarie due operazioni: una rotazione di 6 volte ( 60 ) attraverso l'asse centrale e un piano di riflessione che taglia in due un legame.18060

Modifica : per la struttura B20, è possibile utilizzare due assi , invece, per generare l'intero gruppo. Ciò dovrebbe consentire di evitare di dover escogitare un modo per determinare automaticamente l'asse della vite.C3

Attenzione : un avvertimento sull'uso delle idee nella sezione di simmetria locale nella sezione globale, per essere un'operazione di simmetria, anche l'ambiente deve essere trasformato. Pertanto, se si trova , dall'alto, si otterrà solo una simmetria del candidato poiché la trasformazione potrebbe non modificare in modo simile l'ambiente in modo appropriato e sono necessari ulteriori controlli. Ad esempio, se l'anello benzenico avesse atomi di idrogeno che sporgono dal piano dell'anello lungo un lato, il piano di riflessione che taglia in due il legame carbonio-carbonio andrebbe bene, ma una rotazione di 180 similar che taglia in due lo stesso modo in entrambi i casi non lo farebbe perché non lo farebbe non riprodurre l'ambiente locale.UN180

Modifica - Traduzioni : c'è un'altra complicazione che la discussione sopra sulla simmetria locale ignora: le traduzioni. Formalmente, l'operazione di simmetria corretta è

UN(Xio-Xc)+t=Xj-Xc

dove e x k , come sopra, e t è una traduzione arbitraria. In un cristallo simmorfico,UNXKt

t=n1un'1+n2un'2+n3un'3

un'ionioZt


1
@JM, ho aggiunto un avvertimento sull'uso cieco delle idee nel caso di simmetria locale nel caso globale. Nel caso globale, c'è l'ulteriore limitazione che anche l'ambiente locale deve essere trasformato dall'operazione di simmetria e non credo di averlo chiarito.
rcollyer,

@JM, ho dimenticato di includere qualsiasi discussione sulle traduzioni e il loro effetto sulle operazioni di simmetria. Ho incluso un breve addendum.
rcollyer,

Vedo. Ho sempre pensato che un algoritmo per fare questo avrebbe in qualche modo messo una molecola o un cristallo in un "orientamento standard" (qualunque cosa ciò significhi) prima di controllare i vicini e simili.
JM,

1
@JM, per un cristallo, ci sono due "orientamenti standard": il reticolo cristallino e il reticolo primitivo, e potrebbero non essere gli stessi, come in un sistema cubico centrato sulla faccia . Per una molecola, probabilmente userei il centro di massa come origine, e quindi diagonalizzerei il momento del tensore d'inerzia per "allinearlo correttamente". Ciò, tuttavia, non eliminerebbe la necessità di più centri di rotazione, se è richiesta un'operazione di simmetria più generale, come un asse di vite in un cristallo.
rcollyer,

11

C'è un vecchio codice per lo scopo che viene utilizzato in alcuni pacchetti, chiamato SYMMOL. L'algoritmo che utilizza è descritto nel seguente documento:

T. Pilati e A. Forni, "SYMMOL: un programma per trovare il gruppo di massima simmetria in un cluster di atomi, data una tolleranza prefissata" , J. Appl. Crisalide. 1998. 31, 503-504.

Fondamentalmente, determina il centro di inerzia, quindi applica possibili operazioni di simmetria e tenta di determinare se esiste un vettore di trasformazione per mappare la geometria operata sull'originale entro una determinata tolleranza. Il codice stesso non è più disponibile dal sito degli autori, ma è disponibile (con una serie di file di input di esempio) qui .


3

Sono felice di rispondere che esiste un codice open source di alta qualità per questo:

https://github.com/mcodev31/libmsym

libmsym è una libreria C che si occupa della simmetria dei gruppi di punti nelle molecole. Può determinare, simmetrizzare e generare molecole di qualsiasi gruppo di punti. Può anche generare combinazioni lineari adattate di simmetria di orbitali atomici per un sottoinsieme di tutti i gruppi di punti e il momento angolare orbitale (l) e proiettare gli orbitali nella rappresentazione irriducibile con la componente larges.

Ho adattato il libmysm in Avogadro e una versione dovrebbe uscire più tardi nell'agosto 2015.

Credo che l'autore stia attualmente lavorando per finire un manoscritto sui dettagli. Revisionerò questa risposta quando verrà pubblicata.


1

Se sei ancora interessato a questo, ho uno script Python che ti fornirà gli atomi (abeliani) del gruppo di punti (e simmetricamente non ridondanti) di qualsiasi molecola entro una tolleranza specificata.

La differenza tra la mia routine e molte altre che ho visto disponibile è che l'orientamento iniziale non è importante, rendendoti utile eseguire i risultati delle ottimizzazioni della geometria in cui non hai specificato un gruppo di punti iniziale (come spesso, rendendo un'ipotesi come questa può limitare la geometria, costringendola a essere simmetrica e dando uno stato fondamentale di non equilibrio.)

Se sei ancora interessato, fammi sapere, lo condividerò qui.


Sarei sicuramente interessato a questo script. Sei disposto a renderlo open source (ad esempio, tramite GitHub?)
Geoff Hutchison,

@GeoffHutchison Ci divertirò, dato che è all'interno di un programma più grande (attualmente fa parte di un programma che esegue automaticamente molpro per cercare di minimizzare la geometria, quindi estrae le geometrie generate e le orienta). Sarà ragionevolmente semplice estrarlo e ripulirlo un po '.
sarà il

Grazie. Sarei felice di ripulirlo, se necessario. C'è sicuramente una richiesta per questo tipo di strumento.
Geoff Hutchison,

1

Una volta ho scritto una piccola sceneggiatura di Python per rilevare la simmetria del gruppo di punti per una molecola. Se sei interessato, consulta https://github.com/sunqm/pyscf/blob/master/symm/geom.py


1
Sembra che l'OP sia più interessato all'approccio che non solo al codice. Sarebbe utile se potessi descrivere il tuo approccio in modo più dettagliato.
Paul

Collegamento morto. Forse metti un link alla build specifica su github, invece dell'attuale master
Erik Kjellgren,

0

Esistono alcuni pacchetti software, come Materials Studio, che possono identificare automaticamente il gruppo di punti di una molecola per te. Tuttavia, se vuoi capirlo da solo, c'è un bel diagramma di flusso che ti guiderà attraverso il processo. Puoi anche consultare il sito Web di simmetria di Otterbein per alcuni tutorial e demo interattive.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.