分子可視化はデータベースやリポジトリの構築、量子・分子力学計算の初期構造の準備、リアルタイムでの軌道の座標解析において重要な役割を担っています。 分子の構造を可視化し、対話的に編集することで、シミュレーションの閾値を効果的に下げ、効率を向上させることができる。 近年のハイパフォーマンスコンピューティング(HPC)およびクラウドコンピューティングの発展により、多くのオンラインコンピューティングプラットフォームが誕生しています。 例えば、MatCloud , rescale , WebMO , MolCalc , は材料や化学の計算のためのウェブサービスを提供しています。 これらのウェブベースツールは、計算資源を遠隔操作することができ、そのアクセスの良さと互換性から非常に人気があります。 最近では、ウェブベースの 3 次元構造可視化・編集ツールを使用してモデル構造を生成し、シミュレーションの入力ファイルを準備するのが一般的です。
計算化学分野における最先端の可視化ソフトウェアは、Avogadro、Materials Studio、VESTA など、主にデスクトップ環境上で開発されています。 また、ウェブベースの可視化に対する要求が高まる中、いくつかの関連ツールが登場している。 例えば、3Dmol、JSmol、Web3DMolは強力な可視化機能を備えていますが、構造編集機能が欠けています。 また、ChemdoodleWeb , Kekule.js , JSME などのツールは、2次元(2D)構造しか編集できない。 3次元構造編集ツール(例:ChemMozart , CH5M3D )も文献で報告されている. しかし,これらのツールは有機分子モデリングに特化しており,結晶構造の処理には対応していない. また、ChemMozartはnode.jsフレームワークを用いて実装されており、単独で軽量なライブラリとして利用することはできない。
そこで、Webサーバ上で化学情報を処理するために、以下の特徴を有する高度な化学情報可視化・編集プログラムを開発した。 まず、非周期的な有機分子と結晶構造の両方を対話的に可視化、構築、編集することができる。 第二に、結晶構造のためのケムインフォマティクス・アルゴリズムが幅広く提供されている。例えば、表面の劈開、真空層の確立、スーパーセルの作成など。 第三に、JavaScriptで実装された軽量なライブラリであり、単独でのWebサービス提供や、他のWebプラットフォームへの統合が容易に行えることです。 最後に、VASP と Gaussian 用の初期入力ファイルは、ダイアログボックスとの対話によって生成できます。
実装
ほとんどの計算化学用グラフィカルユーザーインターフェース(GUI)プログラムと同様に、3DStructGen は初期分子形状の生成に焦点を当てています。 図1に示すように、分子、結晶、表面スラブの基本モジュールは、それぞれ非周期分子、周期結晶、表面スラブ系を扱うためのいくつかの手法で構成されている。 HTML5キャンバスは、3次元構造を表示し、他のすべてのモジュールを接続するための中心的なモジュールである。 マウスモジュールは、マウスによる様々なインタラクティブ操作を提供する。 IOモジュールでは、一般的な化学ファイルフォーマット(XYZ、SD、MOL、CIF)の処理方法をサポートしており、VASPやGaussianの初期入力ファイルはinterfaceモジュールで作成することができる。 エクスプローラモジュールは、ユーザが対話的に得られる情報(ファイル名、格子定数、原子距離、原子座標など)をリアルタイムで表示します。 さらに、ChemKit APIは他のケムインフォマティクスツールを統合することにより、3DStructGenの拡張機能を提供している。 1
3DStructGenのコアモジュールと機能の概要
要素、原子、分子
要素のパラメータ(e.g…, 原子番号、元素記号、原子質量、色、共有結合半径など)は、”element ()” 関数でリストとして定義される。 addElem ()” 関数でユーザが指定した元素を追加すると、対応する原子モデルがキャンバス上に可視化される。 すべての元素はVESTAプログラムと同じ色で表示される。 3DStructGenの初期化時にメタン分子がキャンバス上に表示されます。 デフォルトでは原子の大きさが共有結合半径に基づく「ボール&スティック」表現で構造を表示します。
“addAtom() “と “delAtom() “関数は、それぞれ分子中に新しい原子を追加し、既存の原子を削除するために使用されます。 デフォルトでは、八重極理論のルールに従って適切な数の水素原子が追加され、結合角はユーザーが選択した軌道混成(デフォルトでは sp3)に基づいた値が割り当てられます。
新しい原子が追加されると、結合原子の共有結合半径の和の値内で結合が作成されるようになります。 原子のペア間の結合は、ファイルに定義された、あるいは3DStructGenが計算したaddBond()関数を呼び出すことにより、マウス操作で追加することが可能です。 createBond()関数は、結合の詳細なルールを記述する。まず、結合価数モデルに基づいて結合可能な原子のリストを作成し、これらの結合可能な原子の距離を計算する。 この距離が結合原子の共有結合半径の和の0.5倍から1.2倍の間にあるとき結合が生成される。 ここで、0.5倍の距離は、閉じた原子(重なり合う原子かもしれない)間の結合を避けるために使用される。 bondMatrix ()” 関数は、結合リストを保存し、返すためのパブリックルーチンを定義している。 骨格とゲスト(溶媒分子を含む)の認識に用いるグラフラベリングアルゴリズム(図2の疑似コード)は、Cambridge structural database(CSD)データベースの中の有機金属骨格(MOF)を扱うために開発されたもので、骨格とゲスト(溶媒分子を含む)の認識に用いるグラフラベリングアルゴリズム(図2の疑似コード)については、CSDデータベースの中にある。 我々の結合法はこの課題に対して十分な結果を示し、その可視化結果は「構造の可視化」のセクションで見ることができる
構造作成時に、ユーザーが選んだ原子あるいは原子群をユーザーが指定した距離だけ上下左右に移動させることができる。 非周期的な分子に対しては、CH5M3D と同じ手法で結合長、結合角、二面体を最適化することにより、粗い形状最適化がサポートされます。 また、ChemKit APIを使用することにより、Force filed methodに基づく形状最適化もオプションで提供されています。 build crystal “のダイアログボックスをクリックすると、対称空間グループ(合計230)、格子パラメータ、原子タイプ、座標をユーザーがインタラクティブに選択・編集することができます。
スーパーセルスラブは、量子力学シミュレーションや分子動力学シミュレーションで、表面の運動学的、熱力学的、電子的特性を研究するために使用される構造モデルです。 cleaveSurf ()” 関数は、任意のブラベ格子のバルクユニットセルから、任意のミラー指数配向を持つ表面スラブを構築するアルゴリズムを示す。 2つの表面を持つスラブは、スーパーセル内の真空領域と埋め込まれる。 Sunはスラブ表面を構築するための効率的なアルゴリズムを提案し、同じ方法で与えられた表面方位にまたがる2つの基底ベクトル、 \(\varvec{v}_{1}) と \(\varvec{v}_{2}) を求めます。
ミラー指数に0がない場合は(hkl)を例に、
ミラー指数に0が1つある場合は(hk0)を例に、
ミラーインデックスに0が2つ含まれる場合、(h00)を例にとると、
単位胞からなる結晶構造において、原子の集合が格子上で周期的に3次元的に繰り返されるように配置されている場合。 displayStyle()」関数には、繰り返される原子を表示する方法がいくつか用意されており、図3には該当する画像が表示されている。 3DStructGen:
-
“Asymmetric” に記載されています。 結晶の最小サブユニットは、幾何学的配置が結晶学的対称性によって関連していない1つ以上の原子、イオン、または分子で構成され、提示されています。 このスタイルを使用すると、各原子は、対称グループの各演算子を適用して形成されたコピーと一緒に、元の位置に表示されます。
-
“In-cell”: 原子は、その座標、および対称コピーが格子セル内にあるかどうかに基づいて表示されます。
-
“Packing”: 格子セル内の完全な分子とその対称コピーが、原子の接続されたセットの幾何学的中心によって表示されます。 これは、ほとんどのタイプの結晶系の従来のセルを表示します。
上記のスタイルは、ユーザーが異なるシナリオのための所望の方法で原子を視覚化することができます。 Asymmetric” は、 特に大規模で複雑なモデルで、 すべてのコピーが見えないときに最小構造の詳細に焦点を当てるのに便利です。 Original” と “Packing” スタイルは、 結晶の対称情報を示すユニットのコピーを提供します。 インセル」スタイルは、格子セル内のすべての可能な原子を垣間見ることができ、周期系全体から格子セルを切り捨てるという実際のシーンにマッチしている
。