Function Repository Resource:

CoordinationMoleculeStereochemistry

Source Notebook

Determine the configuration of stereoisomers

Contributed by: William Choi-Kim

ResourceFunction["CoordinationMoleculeStereochemistry"][mol]

determines whether the stereoisomer mol is "cis", "trans", "fac" or "mer".

Details and Options

The input mol must be a coordination complex as a Molecule.
Coordination complexes (coordination molecules) are molecules with ligands bonded to a central atom.
ResourceFunction["CoordinationMoleculeStereochemistry"] accepts the option "LabelPseudoSymmetric" which can be True or False. When set to True, ResourceFunction["CoordinationMoleculeStereochemistry"] identifies the stereoisomer type of mol even if mol is pseudo-symmetric.
Geometric square-planar molecules can be "cis" or "trans".
Geometric octahedral molecules can be "cis", "trans", "fac", or "mer".
In a molecule, the functional groups (atoms coming out from the central metal ion) define the stereoisomer type of a molecule:
cisfunctional groups are on the same side of a plane
transfunctional groups are on opposite sides of a plane
facfunctional groups occupy a face of an octahedron
merfunctional groups and metal ion are on one plane
"cis" and "trans" molecules both involve two central-adjacent functional groups, while "fac" and "mer" involve three.
The internal geometry of optical isomers can be described as left- or right- handed —"lambda" or "delta" — defining the chirality of the molecule.

Examples

Basic Examples (12) 

Identify a"cis" square-planar molecule, with same-element atoms next to each other::

In[1]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/c38aff0e-381f-4703-9623-f90dd81242f2"]
Out[2]=
In[3]:=
ResourceFunction["CoordinationMoleculeStereochemistry"][cisSqPlanar]
Out[3]=

Identifying "trans" square-planar molecules, with same-element atoms across from each other:

In[4]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/8b7226dd-db3d-4984-9998-6d04cd148274"]
Out[5]=
In[6]:=
ResourceFunction["CoordinationMoleculeStereochemistry"][transSqPlanar]
Out[6]=

Identifying "cis" octahedral molecules, with a same-element pair in a 90 degree angle:

In[7]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/c438091e-eea6-41c9-8a16-56642a8351cb"]
Out[8]=
In[9]:=
ResourceFunction["CoordinationMoleculeStereochemistry"][cisOctahedral]
Out[9]=

Identifying "trans" octahedral molecules, with a same-element pair opposite each other:

In[10]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/abae2437-898a-40a6-a44e-27f05ef1ed67"]
Out[11]=
In[12]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][transOctahedral]
Out[12]=

Identifying "fac" octahedral molecules, with three same-element atoms forming a face:

In[13]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/8a817c13-52eb-4c2e-95a7-db0b2d8d760b"]
Out[14]=
In[15]:=
ResourceFunction["CoordinationMoleculeStereochemistry"][facOctahedral]
Out[15]=

Identifying "mer" octahedral molecules, with three same-element atoms and the central atom forming a plane:

In[16]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/a87c0f22-56bb-4b36-b4bc-b71f54d255d2"]
Out[17]=
In[18]:=
ResourceFunction["CoordinationMoleculeStereochemistry"][merOctahedral]
Out[18]=

Passing molecules that can't be labeled — that is, molecules that aren't "cis", "trans", "fac", or "mer" — gives you Missing["NotApplicable"]:

In[19]:=
missingSqPlanar = Molecule[{"F", "Xe", "F", "F", "F"}, {
Bond[{1, 2}, "Single"], 
Bond[{2, 3}, "Single"], 
Bond[{2, 4}, "Single"], 
Bond[{2, 5}, "Single"]}, {AtomCoordinates -> QuantityArray[
StructuredArray`StructuredData[{5, 3}, {{{-1.9203440781716368`, -0.00020447666174505663`, 0.2491154580653996}, {0.000020308462388228532`, 0.00003493564780035485, 0.24881110716492194`}, {
        0.0003201650326992592, -1.3578246300191237`, 1.606708105251621}, {1.9200783914456754`, 0.0002795748233125339, 0.24920407308871928`}, {-0.0002795403776389982, 1.3578594957792525`, -1.1090508844212998`}}, "Angstroms", {{
        1}, {2}}}]]}];
MoleculePlot3D[missingSqPlanar]
Out[20]=
In[21]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][missingSqPlanar]
Out[21]=

The same is true for octahedral molecules:

In[22]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/50224f22-bd3f-4254-bc19-9b3b465252f3"]
Out[23]=
In[24]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][missingOctahedral]
Out[24]=

CoordinationMoleculeStereochemistry can handle molecules with polyatomic ligands — central adjacent groups of atoms, rather than singular atoms — as well:

In[25]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/e9d2b5c8-1d1e-455e-9e5a-086d488e13b5"]
Out[26]=
In[27]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][transPolyatomic]
Out[27]=

Delta molecules — right-handed molecules, so-called because of the direction in which they turn plane-polarized light — are classified as such:

In[28]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/ba32fc26-f4c6-476d-ad69-0dc91d69d8d4"]
Out[29]=
In[30]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][deltaIronOxalate]
Out[30]=

Lambda molecules — left-handed, named similarly for how they turn light — are classified as such:

In[31]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/564ad1e8-dcce-4956-afeb-3a0bb9c407dd"]
Out[32]=
In[33]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][lambdaIronOxalate]
Out[33]=

Molecules that are neither lambda nor delta isotopes are labeled Missing["NotApplicable"]:

In[34]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/c32e0b5d-b550-47f9-9c43-8602bd9f1a14"]
Out[35]=
In[36]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][missingIronOxalate]
Out[36]=

Options (4) 

LabelPseudoSymmetric (4) 

Pseudo-symmetric molecules — molecules whose central-adjacent atoms taken alone can be identified, but not the molecule as a whole — are usually labeled Missing["NotApplicable"]:

In[37]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/9be9246c-9fe3-4442-9b3a-0c6cae581e5c"]
Out[38]=
In[39]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][pseudosymmetric]
Out[39]=

Set "LabelPseudoSymmetric" to True to label pseudo-symmetric octahedral molecules:

In[40]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][pseudosymmetric, "LabelPseudoSymmetric" -> True]
Out[40]=

The same is true of optical isomers — pseudo-symmetric isomers are usually labeled Missing["NotApplicable"]:

In[41]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/dbba327a-4e88-4a81-ac8a-39292bec7254"]
Out[42]=
In[43]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][pseudosymmetricIronOxalate]
Out[43]=

Set "LabelPseudoSymmetric" to True to label pseudo-symmetric optical isomers:

In[44]:=
ResourceFunction[
 "CoordinationMoleculeStereochemistry"][pseudosymmetricIronOxalate, "LabelPseudoSymmetric" -> True]
Out[44]=

Publisher

William Choi-Kim

Requirements

Wolfram Language 13.0 (December 2021) or above

Version History

  • 1.0.0 – 26 July 2024

Source Metadata

Related Resources

Author Notes

This submission is an outcome of the author's 2024 WSRP project.

License Information