Como se determina o grupo de pontos de uma molécula?

17

Você finalmente conseguiu descobrir como os átomos estão organizados espacialmente em sua entidade molecular recém-descoberta. Por meio, digamos, de meios espectroscópicos, você agora possui várias coordenadas de átomos, tipos de átomos, comprimentos de ligações, tipos de ligações e outros enfeites para sua molécula. Agora você está interessado em determinar o grupo de pontos (grupo de simetria) de sua molécula.

Para moléculas simples como metano ( ) ou benzeno ( ), é uma simples questão de inspeção visual determinar o grupo de pontos ao qual uma molécula pertence. No entanto, isso não é tão viável quando a molécula está um pouco maior.D 6 hTdD6h

Dada uma molécula armazenada em algum formato de dados conveniente (* .pdb, * .mol, etc.), como você determina algoritmicamente o grupo de simetria da molécula?

JM
fonte
3
Para o que vale, o VMD inclui um plug-in para esse fim chamado SymmetryTool .
Juan M. Bello-Rivas

Respostas:

12

Minha experiência principal é com estruturas de cristal, e há apenas um número finito de simetrias de pontos que aparecem em um cristal. Então, o algoritmo que eu usaria é um pouco diferente do que você usaria em uma molécula. Mas, é improvável com uma molécula grande que as simetrias contínuas apareçam, como a simetria axial em H ou CO , portanto os métodos devem se sobrepor bastante. Ao determinar a simetria em um sistema, existem duas simetrias diferentes, mas relacionadas, a serem consideradas: local e global.222

Simetria local

Simetria local é a simetria do ambiente local em torno de um ponto específico. Em particular, a simetria em cada localização atômica determina a divisão atômica local e, em certa medida, o ambiente químico, e é um subgrupo da simetria global. Por exemplo, no benzeno, a simetria local consiste em dois planos de reflexão e um eixo ( simetria de rotação). (Obviamente, apenas duas operações são necessárias para gerar todo o grupo de pontos local.)180 C2180

insira a descrição da imagem aqui

De uma perspectiva algorítmica, o que fizemos foi primeiro encontrar os vizinhos mais próximos do átomo alvo e depois enumerar todas as maneiras pelas quais podemos girar esse ambiente em torno do átomo central e mantê-lo o mesmo. Mais matematicamente, está resolvendo todas as matrizes ortogonais, , de modo queUMA

UMA(xEu-xc)=xj-xc

onde e são as posições de átomos da mesma espécie e é a posição do átomo central ou alvo. Porém, eu examinaria formas mais simples primeiro, como se um plano de reflexão existe ou não, antes de tentar resolver o em geral. x jx cAxEuxjxcUMA

Outro pensamento é usar as matrizes de momento angular como geradores de rotação, então

UMA=exp(Euϕn^eu)

onde é um vetor de unidade sobre o qual é executada uma rotação com ângulo e é o vetor de matrizes de momento angular tridimensional. teria apenas 3 incógnitas.& Phi;G =(Lx,LY,Lz)An^R3ϕeu=(eux, euy, euz)UMA

Simetria global

Onde a simetria local determina o ambiente em torno de um único átomo, a simetria global determina como os átomos se trocam. O primeiro passo para determinar a simetria global é determinar os átomos equivalentes. Primeiro, determine os tipos e as direções relativas dos átomos do vizinho mais próximo (e do segundo mais próximo, ou mais alto, se desejado). Dois átomos são equivalentes, se seus vizinhos tiverem os mesmos arranjos espaciais. Isso é simples de calcular.

O segundo passo é aproximadamente o mesmo que o encontrado no caso de simetria local, exceto que o centro de massa da molécula é provavelmente o centro de simetria. Neste ponto, se as simetrias locais foram determinadas, apenas algumas operações exclusivas podem ser encontradas para gerar o grupo inteiro. Por exemplo, na estrutura de cristal B20 , cada átomo tem uma simetria local e o grupo de pontos completo é gerado pela inclusão de um eixo de parafuso de duas vezes ( rotação de rotação de ) que transforma um átomo em outro. No benzeno, são necessárias duas operações: uma rotação de 6 vezes ( ) através do eixo central e um plano de reflexão que corta uma ligação.C360 18060

Editar : Para a estrutura B20, você pode usar dois dos eixos , para gerar o grupo completo. Isso deve evitar que você precise descobrir uma maneira de determinar automaticamente o eixo do parafuso.C3

Cuidado : Um cuidado ao usar as idéias na seção de simetria local na seção global, para ser uma operação de simetria, o ambiente também deve ser transformado. Portanto, se você encontrar , de cima, ele fornecerá apenas uma simetria candidata, pois a transformação pode não alterar o ambiente de maneira apropriada e são necessárias verificações adicionais. Por exemplo, se o anel de benzeno tivesse átomos de hidrogênio saindo do plano do anel ao longo de um lado, o plano de reflexão que dividiria a ligação carbono-carbono seria bom, mas uma rotação de mesma forma que dividiria a ligação não seria porque não reproduziria o ambiente local.180 UMA180

Editar - Traduções : Há outra complicação que a discussão acima sobre simetria local ignora: traduções. Formalmente, a operação correta de simetria é

UMA(xEu-xc)+t=xj-xc

onde e , como acima, e é uma tradução arbitrária. Em um cristal simétrico,x k tUMAxkt

t=n1 1uma1 1+n2uma2+n3uma3

onde é uma tradução de rede primitiva e , portanto, o grupo de pontos e as traduções são completamente separáveis. Em um cristal não simétrico, pode consistir em traduções não primitivas. A diferença entre os dois é simplesmente que, para um cristal simétrico, um único centro de rotação pode ser encontrado, mas para cristais não simétricos, isso não é verdade. É provável que um sistema molecular seja "não simétrico" nesse último sentido e exija a adição de traduções para realizar plenamente o grupo.umaEunEuZt

rcollyer
fonte
11
@JM, adicionei uma cautela ao usar as idéias no caso de simetria local às cegas no caso global. No caso global, há a restrição adicional de que o ambiente local também deve ser transformado pela operação de simetria, e não acho que tenha deixado claro.
#
@JM, esqueci de incluir qualquer discussão sobre traduções e seus efeitos nas operações de simetria. Eu incluí um breve adendo.
rcollyer
Entendo. Eu sempre pensei que um algoritmo para fazer isso de alguma maneira colocaria uma molécula ou cristal em uma "orientação padrão" (o que isso pudesse significar) antes de verificar vizinhos e coisas do tipo.
JM
11
@JM, para um cristal, existem duas "orientações padrão": a rede cristalina e a rede primitiva, e elas podem não ser as mesmas, como em um sistema cúbico centrado na face . Para uma molécula, eu provavelmente usaria o centro de massa como origem e depois diagonalizaria o momento do tensor de inércia para "alinhá-lo" adequadamente. No entanto, isso não eliminaria a necessidade de múltiplos centros de rotação, se for necessária uma operação de simetria mais geral, como um eixo de parafuso em um cristal.
precisa saber é o seguinte
10

Existe um código antigo para o propósito usado em alguns pacotes, chamado SYMMOL. O algoritmo usado é descrito no seguinte artigo:

T. Pilati e A. Forni, "SYMMOL: um programa para encontrar o grupo de simetria máxima em um cluster de átomos, dada uma tolerância prefixada" , J. Appl. Cryst. 1998. 31, 503-504.

Basicamente, determina o centro de inércia, aplica possíveis operações de simetria e tenta determinar se existe um vetor de transformação para mapear a geometria operada no original dentro de uma determinada tolerância. O código em si não está mais disponível no site dos autores, mas está disponível (com um conjunto de arquivos de entrada de exemplo) aqui .

Aesin
fonte
3

Fico feliz em responder que há um código-fonte aberto de alta qualidade para isso:

https://github.com/mcodev31/libmsym

libmsym é uma biblioteca C que trata da simetria de grupos de pontos em moléculas. Pode determinar, simetrizar e gerar moléculas de qualquer grupo de pontos. Também pode gerar combinações lineares adaptadas de simetria de orbitais atômicos para um subconjunto de todos os grupos de pontos e momento angular orbital (l), e projetar orbitais na representação irredutível com o componente larges.

Adaptei o libmysm ao Avogadro e um lançamento deve ser lançado no final de agosto de 2015.

Acredito que o autor esteja atualmente trabalhando para terminar um manuscrito sobre os detalhes. Vou revisar esta resposta quando for publicada.

Geoff Hutchison
fonte
1

Se você ainda está interessado nisso, eu tenho um script python que fornecerá os átomos do grupo de pontos (abeliano) (e simetricamente não redundantes) de qualquer molécula dentro de uma tolerância especificada.

A diferença entre minha rotina e muitas outras que vi disponíveis é que a orientação inicial não é importante, tornando útil a execução nos resultados das otimizações de geometria nas quais você não especificou um grupo de pontos inicial uma suposição como essa pode limitar a geometria, forçando-a a ser simétrica e fornecendo um estado fundamental sem equilíbrio.)

Se você ainda estiver interessado, informe-me, compartilharei aqui.

vai
fonte
Eu definitivamente estaria interessado neste script. Você está disposto a fazê-lo de código aberto (por exemplo, através GitHub?)
Geoff Hutchison
@GeoffHutchison Vou brincar com ele, pois está dentro de um programa maior (atualmente faz parte de um programa que executa o molpro automaticamente para tentar minimizar a geometria e, em seguida, extrai as geometrias geradas e as orienta). Será razoavelmente simples extraí-lo e limpá-lo um pouco.
será
Obrigado. Ficaria feliz em limpá-lo conforme necessário. Definitivamente, existe uma demanda por esse tipo de ferramenta.
Geoff Hutchison
1

Certa vez, escrevi um pequeno script Python para detectar a simetria do grupo de pontos de uma molécula. Se você estiver interessado, consulte https://github.com/sunqm/pyscf/blob/master/symm/geom.py

osirpt
fonte
11
Parece que o OP está mais interessado na abordagem do que apenas no código. Seria útil se você pudesse descrever sua abordagem com mais detalhes.
Paul
Link morto. Talvez coloque um link para a compilação específica no github, em vez do mestre atual
Erik Kjellgren
0

Existem alguns pacotes de software, como o Materials Studio, que podem identificar automaticamente o grupo de pontos de uma molécula para você. No entanto, se você quiser descobrir por si mesmo, existe um bom fluxograma que o guiará pelo processo. Você também pode consultar o site de simetria da Otterbein para obter alguns tutoriais e demonstrações interativas.

Max Radin
fonte