Wolfram Chemistry | Things to Try
Wolfram Chemistry | Things to Try
Make edits and run any piece of code by clicking inside the code and pressing .
+
Molecular and Chemical Modeling & Analysis. For students, engineers and researchers—visualize, analyze and model molecular structures, chemical reactions and more with specialized functions tightly integrated with built-in or publicly available data.
Specify Molecules
Specify Molecules
Specify a molecule using curated data: |
In[]:=
Molecule
Specify common molecules by their common names: |
In[]:=
Molecule["caffeine"]
Specify a molecule using systematic chemical names: |
In[]:=
MoleculeName["caffeine"]Molecule["1,3,7-trimethylpurine-2,6-dione"]
Specify a molecule using a SMILES string: |
In[]:=
Import molecular data from standard file formats: |
In[]:=
Import["ExampleData/caffeine.xyz"]
Specify a molecule using lists of atoms and bonds: |
In[]:=
Molecule[{"H","O","H"},{Bond[{1,2},"Single"],Bond[{2,3},"Single"]}]
Find Properties of Molecules
Find Properties of Molecules
Use |
In[]:=
MoleculeValue[Molecule["caffeine"],"ElementMassFraction"]
You can directly extract properties of molecules as well: |
In[]:=
Molecule["caffeine"]["MolarMass"]
Obtain properties that depend on specific atoms or bonds in a molecule: |
In[]:=
Molecule["water"][{"BondLength",{2,1}}]Molecule["water"][{"BondAngle",{2,1,3}}]
Obtain a list of isomers in a specified form: |
In[]:=
FindIsomers,"Entity"
Visualize Molecules
Visualize Molecules
Create a 2D representation of a molecule: |
In[]:=
MoleculePlot[Molecule["caffeine"]]
Highlight and label specified molecular patterns: |
In[]:=
MoleculePlot[Molecule["caffeine"],<|"aromatic bonds"->Bond[_,"Aromatic"],"double bonds"->Bond[_,"Double"],"carbon atoms"->Atom["C"]|>]
Create a rotatable 3D representation of a molecule: |
In[]:=
MoleculePlot3D[Molecule["caffeine"],PlotLegends->Automatic]
Balance a Chemical Reaction
Balance a Chemical Reaction
Balance an unbalanced chemical reaction: |
In[]:=
ReactionBalanceChemicalReaction
Interpret a string as a chemical formula: |
In[]:=
ReactionBalance["H2 + O2 -> H2O"]
Interpret common names of compounds to generate a balanced reaction: |
In[]:=
ReactionBalance["Hydrogen + Oxygen -> Water"]
Specify a Pattern for a Reaction
Specify a Pattern for a Reaction
A |
In[]:=
reactantpatterns={MoleculePattern[{"H","H"},{Bond[{1,2},"Single"]}],MoleculePattern[{"H","H"},{Bond[{1,2},"Single"]}],MoleculePattern[{"O","O"},{Bond[{1,2},"Double"]}]};productpatterns={MoleculePattern[{"H","O","H"},{Bond[{1,2},"Single"],Bond[{2,3},"Single"]}],MoleculePattern[{"H","O","H"},{Bond[{1,2},"Single"],Bond[{2,3},"Single"]}]};
Represent a chemical reaction using a rule for lists of patterns: |
In[]:=
PatternReaction[reactantpatterns->productpatterns]
You can also specify a chemical reaction using a SMARTS string: |
In[]:=
PatternReaction["[H][H].[H][H].[O]=[O]>>[H][O][H].[H][O][H]"]
Apply a Reaction
Apply a Reaction
Specify a |
In[]:=
reaction=PatternReaction["[H][H].[H][H].[O]=[O]>>[H][O][H].[H][O][H]"]
Create a list of molecules to be the reactants (each molecule must be explicitly present in the list): |
In[]:=
reactants=Molecule,Molecule,Molecule;
Find the molecules produced by applying a reaction to a list of reactants: |
In[]:=
products=ApplyReaction[reaction,reactants]
Quickly visualize the products and reactants in 3D: |
In[]:=
GraphicsColumn[MoleculePlot3D/@reactants]->GraphicsColumn[MoleculePlot3D/@products]