Non-rigid Molecular Symmetry Group

The non-rigid molecular symmetry group (NRMSG) is the automorphism group of the molecular graph. It is called non-rigid because molecules generally exhibit free rotation about the single bonds of their substructures [Lon62].

The NRMSG plays an important role in isomer counting, dynamic stereochemistry, atropisomerism, and a number of spectroscopic methods.

We have used a divide-and-conquer approach here, the first division being between cyclic and acyclic molecules. The former present significant difficulties for the structural representation that we are using, and thus will not be addressed here.

By restricting our analysis to acyclic molecules, whose molecular graphs are trees, we can take advantage of wreath products.

Graph Theory

A tree is either centric (single vertex centroid) or bicentric (two adjacent vertices centroid) [Har69].

[Graphics:../Images/index_gr_187.gif]

[Graphics:../Images/index_gr_188.gif]

[Graphics:../Images/index_gr_189.gif] [Graphics:../Images/index_gr_190.gif]

Balancing a tree will root it at either the central vertex or pair of central vertices.

Examples
[Graphics:../Images/index_gr_191.gif]
[Graphics:../Images/index_gr_192.gif]
[Graphics:../Images/index_gr_193.gif]
[Graphics:../Images/index_gr_194.gif]
[Graphics:../Images/index_gr_195.gif]
[Graphics:../Images/index_gr_196.gif]
[Graphics:../Images/index_gr_197.gif]
[Graphics:../Images/index_gr_198.gif]
[Graphics:../Images/index_gr_199.gif]
[Graphics:../Images/index_gr_200.gif]

Group Theory

GroupTheory.m defines functions to construct and use groups. It is not restricted to any particular type of group element or combing operation. It uses the standard package DiscreteMath`Permutations.m for functions dealing with permutations.

[Graphics:../Images/index_gr_201.gif]
[Graphics:../Images/index_gr_202.gif]
[Graphics:../Images/index_gr_203.gif]
Permutation Groups

We will use permutations to describe the interchange of atoms (sites) under the actions of the elements of the NRMSG.

[Graphics:../Images/index_gr_204.gif]
[Graphics:../Images/index_gr_205.gif]
[Graphics:../Images/index_gr_206.gif]
[Graphics:../Images/index_gr_207.gif]

Important groups

Group sites Symbol Order
[Graphics:../Images/index_gr_208.gif] n [Graphics:../Images/index_gr_209.gif] [Graphics:../Images/index_gr_210.gif]
[Graphics:../Images/index_gr_211.gif] n [Graphics:../Images/index_gr_212.gif] [Graphics:../Images/index_gr_213.gif]
[Graphics:../Images/index_gr_214.gif] n [Graphics:../Images/index_gr_215.gif] n
[Graphics:../Images/index_gr_216.gif] n [Graphics:../Images/index_gr_217.gif] [Graphics:../Images/index_gr_218.gif]
[Graphics:../Images/index_gr_219.gif] 4 [Graphics:../Images/index_gr_220.gif] 12

Examples

[Graphics:../Images/index_gr_221.gif]
[Graphics:../Images/index_gr_222.gif] [Graphics:../Images/index_gr_223.gif] [Graphics:../Images/index_gr_224.gif] [Graphics:../Images/index_gr_225.gif]
[Graphics:../Images/index_gr_226.gif] [Graphics:../Images/index_gr_227.gif] [Graphics:../Images/index_gr_228.gif] [Graphics:../Images/index_gr_229.gif]
[Graphics:../Images/index_gr_230.gif] [Graphics:../Images/index_gr_231.gif] [Graphics:../Images/index_gr_232.gif] [Graphics:../Images/index_gr_233.gif]
[Graphics:../Images/index_gr_234.gif] [Graphics:../Images/index_gr_235.gif] [Graphics:../Images/index_gr_236.gif] [Graphics:../Images/index_gr_237.gif]
[Graphics:../Images/index_gr_238.gif] [Graphics:../Images/index_gr_239.gif] [Graphics:../Images/index_gr_240.gif] [Graphics:../Images/index_gr_241.gif]
[Graphics:../Images/index_gr_242.gif] [Graphics:../Images/index_gr_243.gif] [Graphics:../Images/index_gr_244.gif] [Graphics:../Images/index_gr_245.gif]
[Graphics:../Images/index_gr_246.gif]
[Graphics:../Images/index_gr_247.gif] [Graphics:../Images/index_gr_248.gif] [Graphics:../Images/index_gr_249.gif] [Graphics:../Images/index_gr_250.gif]
[Graphics:../Images/index_gr_251.gif] [Graphics:../Images/index_gr_252.gif] [Graphics:../Images/index_gr_253.gif] [Graphics:../Images/index_gr_254.gif]
[Graphics:../Images/index_gr_255.gif] [Graphics:../Images/index_gr_256.gif] [Graphics:../Images/index_gr_257.gif] [Graphics:../Images/index_gr_258.gif]
[Graphics:../Images/index_gr_259.gif]
[Graphics:../Images/index_gr_260.gif] [Graphics:../Images/index_gr_261.gif] [Graphics:../Images/index_gr_262.gif] [Graphics:../Images/index_gr_263.gif]
[Graphics:../Images/index_gr_264.gif]
[Graphics:../Images/index_gr_265.gif] [Graphics:../Images/index_gr_266.gif] [Graphics:../Images/index_gr_267.gif] [Graphics:../Images/index_gr_268.gif]
[Graphics:../Images/index_gr_269.gif] [Graphics:../Images/index_gr_270.gif] [Graphics:../Images/index_gr_271.gif] [Graphics:../Images/index_gr_272.gif]

We use the CircleTimes operator for group composition, which is associative (Flat). Conferring the attribute OneIdentity only applies to pattern matching, so we also supply a rule to reduce CircleTimes a --> a.

CircleTimes[a___, b_CircleTimes, c___] :=
    Flatten[Unevaluated[CircleTimes[a, b, c]], 1, CircleTimes]
CircleTimes[a_] := a

Wreath Products

Wreath products are hierarchical, or nested,  group compositions [Bal80]. Permutations within permutations, if you will.

The general form of a wreath product is [Graphics:../Images/index_gr_273.gif], where [Graphics:../Images/index_gr_274.gif] is the outer group and [Graphics:../Images/index_gr_275.gif] is the inner group. [Graphics:../Images/index_gr_276.gif] is the composition of n [Graphics:../Images/index_gr_277.gif], where n is the number of sites permuted by the outer group [Graphics:../Images/index_gr_278.gif].

Depending on the analysis, the [Graphics:../Images/index_gr_279.gif] are either [Graphics:../Images/index_gr_280.gif] (symmetric group on n sites) or [Graphics:../Images/index_gr_281.gif] (cyclic group on n sites).

The wreath product is constructed directly from the molecule structure by recursively traversing the expression.

WreathProduct[mol_Molecule, space_] :=
    wreath[BalanceMolecule[mol], space]

wreath[Molecule[l:_[__], r:_[__]], Flat] :=
    With[{orbits = Map[wreath[#, Flat]&, Split[{l, r}], {2}]},
        Apply[Sn[##]&, orbits, 1] /. List->CircleTimes]
wreath[_[a_Symbol, lig:(_[__]...)], Flat] :=
    With[{orbits = Map[wreath[#, Flat]&, Split[{lig}], {2}]},
        Apply[Sn[a][##]&, orbits, 1] /. List->CircleTimes]
wreath[_[a_Symbol], Flat] := Sn[a]

Sn[a_Sn] := a
Sn[a_CircleTimes] := a

Example

[Graphics:../Images/index_gr_282.gif]

We will use 2,2-bis(dimethylamino)-propane as our example. It has two 3-fold rotors, and two 2-fold rotors which have two 3-fold rotors within them, all arranged on a tetrahedral frame.

[Graphics:../Images/index_gr_283.gif]

[Graphics:../Images/index_gr_284.gif]
[Graphics:../Images/index_gr_285.gif]

[Graphics:../Images/index_gr_286.gif]
[Graphics:../Images/index_gr_287.gif]
[Graphics:../Images/index_gr_288.gif]
[Graphics:../Images/index_gr_289.gif]
[Graphics:../Images/index_gr_290.gif]
[Graphics:../Images/index_gr_291.gif]

The wreath product is then used to construct the factor groups of the NRMSG for the space and sites specified.

permutationGroupFactors[mol_Molecule, space_Symbol, sites:{__Symbol}] :=
    Module[{n = 0, wp, g},
        wp = Switch[space,
            Flat,
                WreathProduct[mol, Flat] /. (#1 :> ++n & ) /@
                    sites /. Sn[_Symbol] -> Sequence[],
            Achiral,
                WreathProduct[mol, Achiral] /. (#1 :> ++n & ) /@
                    sites /. {(g_)[_Symbol] :> g,
                        Cn[_Symbol] -> Sequence[]},
            Chiral,
                WreathProduct[mol, Chiral] /. (#1 :> ++n & ) /@
                    sites /. {(g_)[_Symbol] :> g,
                        Cn[_Symbol] -> Sequence[]},
            ];
        DeleteCases[(ToFactorGroup[#1, n]&) /@
            Cases[wp, (Td|Dnh|Cnv|C2v|Cs|T|Dn|C2|Cn|Sn)[__],
                {0, Infinity}],
            {Range[n]}]]

Finally the factor groups are used to generate the full NRMSG.

NRMSG[mol_Molecule, space_Symbol] :=
    NRMSG[mol, space, {H}]
NRMSG[mol_Molecule, space_Symbol, sites:{__Symbol}] :=
    With[{gen=permutationGroupFactors[mol, space, sites]},
        Flatten[Outer[Permute, Sequence@@gen, 1], Length[gen]-1]
        ]

And, for our example above:

[Graphics:../Images/index_gr_292.gif]
[Graphics:../Images/index_gr_293.gif]
[Graphics:../Images/index_gr_294.gif]
[Graphics:../Images/index_gr_295.gif]


 © 2010 Wolfram Research, Inc.  Terms of Use  Privacy Policy |
Sign up for our newsletter: