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 h
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?
Respostas:
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.22 2
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 ∘C2 180∘
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
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 j → x cAx⃗ Eu x⃗ j x⃗ c UMA
Outro pensamento é usar as matrizes de momento angular como geradores de rotação, então
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⃗ = ( Lx, L y, L z) 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.C3 60 ∘180∘ 60∘
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 ∘UMA 180∘
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 é
onde e , como acima, e é uma tradução arbitrária. Em um cristal simétrico,→ x k → tUMA x⃗ k t⃗
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.uma⃗ Eu nEu∈ Z t⃗
fonte
Existe um código antigo para o propósito usado em alguns pacotes, chamado SYMMOL. O algoritmo usado é descrito no seguinte artigo:
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 .
fonte
Fico feliz em responder que há um código-fonte aberto de alta qualidade para isso:
https://github.com/mcodev31/libmsym
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.
fonte
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.
fonte
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
fonte
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.
fonte