Wolfram化学 | 試してみよう

コードはどれも,コード内をクリックしてから,編集したり,
+
を押して実行したりできます.
分子構造と化学反応のモデル化と分析 学生からエンジニア,研究者まで広く利用できます.組込みデータあるいは公的に利用可能なデータと緊密に統合された専門の関数で,分子構造や化学反応等の可視化,分析,モデル化が行えます.

分子を指定する

精選データを用いて分子を指定する:
実行
In[]:=
Molecule
caffeine
CHEMICAL

よく使われる分子は,その一般的な名前で指定することができる:
実行
In[]:=
Molecule["caffeine"]
系統的な化学名を用いて分子を指定する:
実行
In[]:=
MoleculeName["caffeine"]​​Molecule["1,3,7-trimethylpurine-2,6-dione"]
SMILES文字列を用いて分子を指定する:
実行
In[]:=
caffeine
CHEMICAL
["SMILES"]​​Molecule["CN1C=NC2=C1C(=O)N(C(=O)N2C)C"]
標準ファイル形式から分子データをインポートする:
実行
In[]:=
Import["ExampleData/caffeine.xyz"]
原子と結合のリストを用いて分子を指定する:
実行
In[]:=
Molecule[{"H","O","H"},{Bond[{1,2},"Single"],Bond[{2,3},"Single"]}]

分子の特性を求める

MoleculeValue
を使って,特定の分子の特性を取得する:
実行
In[]:=
MoleculeValue[Molecule["caffeine"],"ElementMassFraction"]
分子の特性は直接抽出することもできる:
実行
In[]:=
Molecule["caffeine"]["MolarMass"]
分子内の特定の原子または結合に依存する特性を取得する:
実行
In[]:=
Molecule["water"][{"BondLength",{2,1}}]​​Molecule["water"][{"BondAngle",{2,1,3}}]
指定した形式で異性体のリストを取得する:
実行
In[]:=
FindIsomers
C
8
H
10
N
4
O
2
,"Entity"

分子を可視化する

分子の2D表現を作成する:
実行
In[]:=
MoleculePlot[Molecule["caffeine"]]
指定された分子パターンをハイライトし,ラベル付けする:
実行
In[]:=
MoleculePlot[​​Molecule["caffeine"],​​<|​​"aromatic bonds"->Bond[_,"Aromatic"],​​"double bonds"->Bond[_,"Double"],​​"carbon atoms"->Atom["C"]​​|>​​]
分子の回転可能な3D表現を作成する:
実行
In[]:=
MoleculePlot3D[Molecule["caffeine"],PlotLegends->Automatic]

化学反応式のバランスをとる

バランスのとれていない化学反応式のバランスをとる:
実行
In[]:=
ReactionBalanceChemicalReaction
H
2
+
O
2
⟶
H
2
O

文字列を化学式として解釈する:
実行
In[]:=
ReactionBalance["H2 + O2 -> H2O"]
化合物の一般的な名前を解釈し,バランスのとれた反応式を生成する:
実行
In[]:=
ReactionBalance["Hydrogen + Oxygen -> Water"]

反応のパターンを指定する

PatternReaction
は,化学反応を反応物の集合に適用するために用いられるものである.分子パターンは,分子を指定するのとほぼ同様の方法で指定することができる:
実行
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"]}]​​};
パターンのリストの規則を用いて化学反応を表現する:
実行
In[]:=
PatternReaction[reactantpatterns->productpatterns]
化学反応は,SMARTS文字列を用いて指定することもできる:
実行
In[]:=
PatternReaction["[H][H].[H][H].[O]=[O]>>[H][O][H].[H][O][H]"]

反応を適用する

PatternReaction
を指定する:
実行
In[]:=
reaction=PatternReaction["[H][H].[H][H].[O]=[O]>>[H][O][H].[H][O][H]"]
反応物となる分子のリストを作成する(各分子はリスト内に明示的に含める必要がある):
実行
In[]:=
reactants=Molecule
Formula:
H
2
Atoms: 2 Bonds: 1
,Molecule
Formula:
H
2
Atoms: 2 Bonds: 1
,Molecule
Formula:
O
2
Atoms: 2 Bonds: 1
;
反応を反応物のリストに適用することによって,生成される分子を求める:
実行
In[]:=
products=ApplyReaction[reaction,reactants]
3Dで生成物および反応物を迅速に可視化する:
実行
In[]:=
GraphicsColumn[MoleculePlot3D/@reactants]->GraphicsColumn[MoleculePlot3D/@products]