Function Repository Resource:

IsodesmicReactionQ

Source Notebook

Determine if a chemical reaction is isodesmic

Contributed by: Max Crowder and Arun K. Sharma

ResourceFunction["IsodesmicReactionQ"][rxn]

determines if rxn is an isodesmic reaction.

Details

rxn must be given as a ChemicalReaction.
A reaction (actual or hypothetical) in which the types and counts of bonds that are made in forming the products are the same as those which are broken in the reactants is defined as isodesmic. The function returns True if the reaction is isodesmic and False otherwise.

Examples

Basic Examples (2) 

An example with aromatic rings and charged species:

In[1]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/2829c224-0603-4692-b0d2-46a1fc90d3e6"]
Out[1]=

A reaction that is not isodesmic:

In[2]:=
ResourceFunction["IsodesmicReactionQ"][
 ChemicalReaction[<|Entity["Chemical", "2Methylpropane"] -> 2, Entity["Chemical", "MolecularOxygen"] -> 13|> -> <|Entity["Chemical", "CarbonDioxide"] -> 8, Entity["Chemical", "Water"] -> 10|>]]
Out[2]=

Scope (3) 

An example with aliphatic compounds:

In[3]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/fc269db1-0f5e-43e6-be6e-3138865a5b13"]
Out[3]=

An unbalanced reaction:

In[4]:=
ResourceFunction["IsodesmicReactionQ"][
 ChemicalReaction[<|Molecule["1,3,5-trinitrobenzene"] -> 1, Molecule["Methane"] -> 3|> -> <|Molecule["Benzene"] -> 2, Molecule["Nitromethane"] -> 3|>]]
Out[4]=


 A reaction with unequal number of reactants and products that is isodesmic:

In[5]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/8b916638-b59b-4335-aa2e-fa0ddf95fc0d"]
Out[5]=

Possible Issues (1) 

All reactants and products within the ChemicalReaction must be recognized as either an Entity or Molecule classification:

In[6]:=
ResourceFunction["IsodesmicReactionQ"][
 ReactionBalance["AlPO4 + Ca(NO3)2 -> Al(NO3)3 + Ca3(PO4)2"]]
Out[6]=

Publisher

Ak kS

Version History

  • 1.1.0 – 30 January 2023
  • 1.0.0 – 14 November 2022

Source Metadata

Author Notes

Molecules within the chemical reaction must be recognized as either an Entity or Molecule classification for determination of hybridization and bond count; if this is not done the function will be unable to gather hybridization and bond count data. All subsequent computation will generate errors and an inaccurate evaluation will result.

License Information