材料科学や計算化学の分野では、原子や分子の構造を可視化することが重要です。Pythonの ASE (Atomic Simulation Environment) ライブラリには、ase.visualize モジュールがあり、簡単に3Dや2Dで分子を描画できます。
この記事では、macOS環境で ase.visualize を使って原子・分子を可視化する方法を解説します
1. ASE のインストール
まず、ASE ライブラリをインストールします。macOSにはPythonが標準搭載されていますが、pip を使って ASE を導入しましょう。
Homebrew と Python 環境の準備
もし pip がインストールされていない場合は、以下のコマンドでHomebrewとPythonをセットアップします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install python3
ASE のインストール
次に、以下のコマンドで ASE をインストールします。
python3 -m pip install ase pyqt6 matplotlib
💡 pyqt6 は ase.gui を使うために必要です。
💡 matplotlib は 2D プロットを行う際に使用します。
2. ase.visualize.view() を使って3D可視化
ase.visualize.view() を使うと、分子の3D構造をインタラクティブに表示できます。
水分子(H₂O)の3D表示
以下のPythonスクリプトを作成し、実行すると ASE GUI ウィンドウが開いて、水分子が表示されます。
from ase import Atoms from ase.visualize import view # H2O 分子を作成 h2o = Atoms('H2O', positions=[(0, 0, 0), (0.76, 0, 0), (0.38, 0.65, 0)]) # 可視化 view(h2o)
3Dビューアの操作方法
- マウス左クリック: 分子を回転
- マウス右クリック: ズームイン・アウト
- マウスホイール: 拡大・縮小
3. ase.visualize.plot() を使った2D可視化
次に、Matplotlibを使って2Dプロットを作成してみましょう。
二酸化炭素(CO₂)分子を2D描画
ase.visualize.plot() を使うと、分子構造をMatplotlib上にプロットできます。
import matplotlib.pyplot as plt from ase.build import molecule from ase.visualize import plot # CO2 分子の作成 co2 = molecule('CO2') # 2Dプロット fig, ax = plt.subplots() plot.plot_atoms(co2, ax=ax) plt.show()
🎨 Matplotlibのウィンドウが開き、CO₂の分子構造が2Dで表示されます!
4. 外部ツール (VMD, Avogadro) での可視化
ASEを使えば、XYZ 形式で保存して、他の可視化ソフトウェア(VMD, Avogadro)でも開けます。
from ase.io import write # CO2 分子を作成 co2 = molecule('CO2') # XYZ形式で保存 write('co2.xyz', co2)
XYZ形式で保存
5. 結晶構造の3D表示
ase.build.bulk() を使うと、結晶構造の作成も簡単です。
from ase.build import bulk from ase.visualize import view # アルミニウムの面心立方(FCC)結晶 al_bulk = bulk('Al', 'fcc', a=4.05) # 3D表示 view(al_bulk)
6. まとめ
ase.visualize を使うことで、macOS環境で原子や分子を直感的に可視化できます。
| 方法 | 使い方 | メリット |
|---|---|---|
view() |
ase.gui で3D表示 |
直感的な操作が可能 |
plot() |
Matplotlibで2D描画 | 画像として保存しやすい |
write() & VMD |
.xyz 形式で保存してVMDで開く |
高度な可視化が可能 |
さいごに
ASE の ase.visualize を使うと、Pythonだけで分子や結晶を手軽に可視化できます。
macOS環境でも問題なく動作し、ase.gui を使えば3Dで直感的に分子を操作可能です。

