GenIce

A swiss army knife to generate proton-disordered ice structures for GROMACS.

View the Project on GitHub vitroid/GenIce

GenIceについて

インストール

生成手順

7つのステージ

(図が必要)

プラグイン

GenIceでは、さまざまな機能をプラグインで実現しています。プラグインにはformat, lattice, molecule, loaderの4種類があり、それぞれが適切なタイミングで呼び出されます。

ユーザーが独自に作成したプラグインを利用することも容易です。

latticeプラグイン

結晶構造(単位胞の大きさ、形、分子の位置、結合)を定義するプラグインです。例えば、氷IIの構造を生成する場合には、次のようなコマンドを実行します。

% genice 2 > 2.gro

この時、GenIce内部では、lattices/2.pyプラグインが呼び出されて、水分子の配置を定義しています。GenIceには数百種類の氷の構造があらかじめlatticeプラグインとして準備されています。また、ユーザーが独自の氷の構造を定義することもできます。

moleculeプラグイン

水分子のモデルを定義するプラグインです。例えば、水分子モデルとしてTIP4P (4サイトモデル)を採用したい場合には、以下のように-wオプションで分子モデルを指定します。

% genice CS2 -w tip4p > CS2.gro

moleculeプラグインは、クラスレートハイドレートのゲスト分子を指定する場合にも呼び出されます。また、ユーザーが独自の分子 を定義することもできます。

formatプラグイン

出力形式を定義するプラグインです。例えば、水分子の原子座標ではなく、重心位置とオイラー角を得たい場合には、次のように出力形式を指定します。

% genice 3 -f euler > 3.euler

また、分子の座標を出力する代わりに、解析結果を出力するプラグインもあります。_RDFプラグインは、すべての原子種の間の動径分布関数を出力します。

% genice 5 -f _RDF > 5.rdf

ユーザーが独自の出力フォーマットや解析手法をプラグインとして実装することも可能です。

formatプラグインは、結晶構造を生成する7つのステージの各段階で呼び出され、段階的に出力データを組みたてていきます。例えば、第2ステージまでで出力データが構成しおえた場合には、第3ステージ以降の処理は行われません。それぞれのプラグインが、そのステージでどんな処理を行うかを規定しています。

loaderプラグイン

geniceがlatticeプラグインを使って結晶構造を新規に生成するのに対し、analiceは既存の座標ファイルを読みこんで、それに対して処理を行います。analiceがさまざまなフォーマットの座標ファイルを読み込むために利用するのがloaderプラグインです。

通常、analiceは読み込むファイルの拡張子を見て、自動的にプラグインの種類を選びます。例えば、拡張子が.groのファイルが指定された場合には、loaders/gro.pyプラグインが呼び出されます。-sオプションで、プラグインの種類を明示することも可能です。また、ユーザーが独自のloaderプラグインを実装することもできます。