複数の PNG 画像を作成して、これを GIF 動画にする

PyMOL で動画作成

PyMOL を利用して動画を作成するとき、msetmplay などのコマンドを利用する。これらのコマンドを実行すると、PNG ファイルが生成される。PNG ファイルを imagemagick 中の convert コマンドを利用して GIF 動画を作成する。

次のスクリプトは 3KDS.pdb ファイルを読み込んで、30 枚の PNG 画像を作成するものである。スクリプト実行後に、ディレクトリに frame_*.png の名前の画像が 30 枚できる。

import time
import pymol

# PDB ファイルの設定
pdb_file = './3KDS.pdb'               # PDB ファイルへのパス
pdb_model = '3KDS'                    # モデル名は任意

# PyMOL 起動
pymol_argv = ['pymol', '-xiq']        # PyMOL 環境変数設定
pymol.finish_launching()              # PyMOL 起動
pymol.cmd.load(pdb_file, pdb_model)   # PDB ファイル読み込み

# 立体構造を調整
pymol.cmd.hide('lines', pdb_model)    # lines 構造を非表示
pymol.cmd.show('cartoon', pdb_model)  # cartoon 構造を表示
pymol.cmd.do('zoom center, 80')       # 拡大
pymol.cmd.util.cbc(pdb_model)         # チェーン毎に色を付ける

# 動画作成
pymol.cmd.do('mset 1 x30')
pymol.cmd.do('mplay')
pymol.cmd.do('util.mroll 1, 30')
pymol.cmd.do('mpng frame_')
time.sleep(10)

# PyMOL 終了
pymol.cmd.refresh()
pymol.cmd.quit()

最後に、PNG 画像を GIF 動画に変更する際に convert コマンドを利用する。

convert -loop 0 ./frame_*.png movie.gif

convert コマンドがない場合は、imagemagick をインストールすればよい。

sudo apt-get install imagemagick
PyMOLで作成したGIF動画