Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Determine if a chemical reaction is isodesmic
| ResourceFunction["IsodesmicReactionQ"][rxn] determines if rxn is an isodesmic reaction. | 
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"]](https://www.wolframcloud.com/obj/resourcesystem/images/0f0/0f071326-464f-406c-aeba-fe4ede5b9d45/03b6d610a3e19e14.png) | 
| 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|>]]](https://www.wolframcloud.com/obj/resourcesystem/images/0f0/0f071326-464f-406c-aeba-fe4ede5b9d45/72bbda50bf6f7edb.png) | 
| Out[2]= |  | 
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"]](https://www.wolframcloud.com/obj/resourcesystem/images/0f0/0f071326-464f-406c-aeba-fe4ede5b9d45/2b1d4f033092b47a.png) | 
| 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|>]]](https://www.wolframcloud.com/obj/resourcesystem/images/0f0/0f071326-464f-406c-aeba-fe4ede5b9d45/385adfc471dadad6.png) | 
| 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"]](https://www.wolframcloud.com/obj/resourcesystem/images/0f0/0f071326-464f-406c-aeba-fe4ede5b9d45/141b1e8a919e3415.png) | 
| Out[5]= |  | 
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"]]](https://www.wolframcloud.com/obj/resourcesystem/images/0f0/0f071326-464f-406c-aeba-fe4ede5b9d45/1d0223a16e93036b.png) | 
| Out[6]= |  | 
This work is licensed under a Creative Commons Attribution 4.0 International License