Avogadro: an advanced semantic chemical editor, visualization, and analysis platform

The graphical user interface

ほとんどの人が最初に見るのは、図4に示すような、メイン Avogadro アプリケーションウィンドウであるでしょう。 Apple Mac OS X と Microsoft Windows 用のバイナリインストーラーと、主要な Linux ディストリビューション用のパッケージが提供されています。 つまり、Avogadro はほとんどのオペレーティングシステムに非常に簡単にインストールできます。 最新のソースコードのコンパイル方法については、メインサイトにて簡単に説明されていますので、冒険好きな方や、まだサポートされていないオペレーティングシステムをお使いの方は、そちらをご覧ください。

Figure 4
figure4

Avogadro の GUI (Graphical User Interface)。 Mac OS X 上で撮影、分子の編集インターフェイスを示す。

Qt ツールキットは、Linux、Apple Mac OS X、Microsoft Windows という、サポートする 3 大OS上で Avogadro にネイティブな外観と感触をもたらしています。 分子ビルダーおよびビューアーに期待される基本的な機能は、いくつかのあまり一般的でない機能とともに実装されています。 新規ユーザがAvogadroをインストールし、数分で最初の分子を構築するのは非常に簡単である。 Open Babelライブラリのおかげで、Avogadroは一般的に使用されている化学ファイル・フォーマットの大部分をサポートしています。 この機能の大部分はプラグイン・ライターに提供されるインターフェースを用いて書かれており、実行時にロードされます。

意味化学

Avogadro は、非常に早い段階からデフォルトのファイル形式として CML を使用してきました。 CMLフォーマットは、一般的に使用されている他のフォーマットと比較して、フォーマットの拡張性など、多くの利点があります。 これにより、Avogadro や他のプログラムは、古いバージョンの Avogadro でも読めるようにしながら、高度なセマンティック認識エディターに必要な新しい情報や機能を後から追加することができ、将来を見据えることができます。 量子コードの出力をより大量に読み込むために Avogadro を拡張する場合、量子コード出力の理解と意味付けに重要な開発リソースを割く必要がありました。 この作業はプラグインとして開発されましたが、後にOpenQubeと呼ばれる独立した小さなライブラリに分割されました。 最近では、Quixoteプロジェクト、JUMBO-Converters、Semantic Physical Scienceワークショップによって、量子コードを拡張し、量子コードからより多くのデータを直接出力するための作業が大量に行われました。 CML は拡張可能なので、分子構造データのために既存の規約を再利用し、追加の量子データのために新しい規約を追加することが可能です。

分子を構築する: 原子ごとに

図 4 のようなウィンドウが Avogadro を開いた後に表示されます。 デフォルトでは、描画ツールが選択されています。 ディスプレイの黒い部分を左クリックするだけで、炭素原子を描くことができる。

小分子を描くための直感的なツールを作るために、多くの努力が払われた。 一般的な化学元素はドロップダウン リストから選択でき、周期表を表示して一般的でない元素を選択することも可能です。 既存の原子をクリックすると現在選択されている元素に変わり、ドラッグすると前の元素に戻り、元の原子に結合した新しい原子が描かれます。 結合を左クリックすると、結合の順番がシングル、ダブル、トリプルに切り替わります。 たとえば、原子記号 (たとえば、コバルトの場合は「C-o」) を入力すると選択した元素が変わり、数字「1」「2」「3」を入力すると結合順序が変わります。

原子または結合を右クリックすると、それらが削除されます。 Adjust Hydrogens」ボックスがチェックされている場合、各原子に結合された水素の数は、価数を満たすように自動的に調整されます。

描画ツールに加え、既存の分子の原子の位置を調整するための2つのツールがあります。 atom centric manipulate” ツールは、原子または選択した原子のグループを移動するために使用できます。 ボンドセントリックマニピュレート」ツールは、結合を選択し、その結合を基準にすべての原子の位置を様々な方法で調整します(結合長、結合角、二面角の変更など)。

分子構造が完成したら、力場の拡張機能を使用して、ジオメトリー最適化を実行することができます。 Extensions” と “Optimize Geometry” をクリックすると、分子に対して高速な幾何学的最適化が実行されます。 力場と計算パラメータは調整可能ですが、 ほとんどの分子ではデフォルトで十分です。 このワークフローは、量子計算の入力として使用する小さな分子構造、または出版品質の図を構築する場合に典型的です。

もう一つの方法は、「自動最適化」ツールを描画ツールと組み合わせることです。 これは、バックグラウンドでジオメトリが常に最小化されている間に分子を彫刻するユニークな方法を提示します。

分子の特性に関する情報を提供し、分子内の原子のデカルト座標などのパラメータを正確に変更するために、いくつかのダイアログが実装されています。

分子の構築:フラグメントから

原子ごとに分子を構築することに加えて、ユーザーは図5に示すように、一般的な分子、リガンド、またはアミノ酸配列の構築済みのフラグメントを挿入することができます。

Figure 5
figure5

作成済のフラグメントの挿入のダイアログです。

ユーザーは分子に対して SMILES 文字列を挿入することもできます。

量子コードの入力準備

ユーザーが GAMESS-US, NWChem, Gaussian, Q-Chem, Molpro, MOPAC200x などの一般的な量子コード用の入力ファイルを準備できるように、いくつかの拡張機能が Avogadro で開発されました。

Figure 6
figure6

Dialog for generating input for quantum codes.The graphical Dialogs present the features required to run basic quantum calculations; some examples are shown in Figure 6.

DIALOG は量子コードのための入力を生成するダイアログです。 Q-Chem、NWChem、MolproおよびMOPAC200xの入力を生成するためのダイアログ。

各ダイアログの下部にある入力ファイルのプレビューは、オプションが変更されると、更新されるようになっています。 この方法は、量子コードの新しいユーザが、異なるコードの入力ファイルの構文を学習し、学習しながら有用な入力ファイルを素早く生成するのに役立ちます。 また,入力ファイルを保存して量子コードに送信する前に,ダイアログ上で入力ファイルを手動で編集することも可能です. MOPAC拡張機能は、ユーザーのコンピュータにMOPAC200xプログラムがあれば、それを直接実行し、計算が完了したら出力ファイルをAvogadroに再ロードすることもできます。 この機能は、Avogadro の将来のバージョンで他の量子コードに拡張される予定です。

GAMESS-USプラグインは、最も高度な開発の 1 つで、他のほとんどの入力デッキ生成ツールにある基本ダイアログと、より特殊で複雑な計算タイプの多くを公開する詳細ダイアログを備えています。 上級ダイアログに加えて、入力デッキはインラインで編集でき、ソフトウェア開発者向けの多くの一般的なエディタで使用されているシンタックスハイライト(図7)を備えています。 この機能は、キーワードの単純なタイプミスや、GAMESS-USで読み込む際に手編集の入力デッキを失敗させる原因となる、見つけにくい空白のエラーを表示することができます。

Figure 7
figure7

The GAMESS-US input deck generator. この入力ジェネレーターには、高度なパネルと構文強調表示があります。

位置合わせと測定

Avogadro 標準配布に含まれる特殊ツールの 1 つは、位置合わせツールです。 このマウスツールは、1 つの原子を選択した場合は座標原点に、2 つの原子を選択した場合は指定した軸に沿って、分子構造のアライメントを容易にします。 アラインメントツールは、測定、選択、操作ツールと組み合わせて、分子の位置と向きが重要な量子コードの入力を作成することができます。 この例として、分子に外部電場を印加する計算があります。 このような計算では、分子の配列が大きな影響を与えることがあります。

Figure 8
figure8

The measurement tool.は左下に見える alignment tool configuration dialog と共に動作中の測定ツールの図を示しています。 結合角度と長さを測定するために使用されている測定ツール (Linux で KDE 4)

特定のタスク用にもっと複雑なアライメント ツールを作成することも可能でしょう。 このアライメント ツールは、特定の研究プロジェクトのために、わずか数時間で作成されました。 これは、グラフィカルな計算化学ツールを使用して研究を行うために、拡張性が非常に重要であった典型的な例です。 分子構造を軸に合わせるためだけに新しいアプリケーションを作成することは投資に値しないでしょうが、拡張可能なプロジェクト用のプラグインを作成することは無理なことではありません。

視覚化

アボガドロ アプリケーションでは、分子表現を画面にインタラクティブに表示するために OpenGL を使用しています。 OpenGL は、ハードウェア アクセラレーション グラフィックスを使用して 3 次元画像をレンダリングするための高レベルでクロスプラットフォームな API を提供します。 OpenGL 1.1以下はレンダリングコードのほとんどに使用されており、 Avogadroは古いコンピュータシステムや、最新のアクセラレーショングラフィックスを持たないものでも使用することができます。

標準的な表現

化学では、分子構造のいくつかの標準的な表現があり、もともとは物理モデルで可能な表現に基づいています。 Avogadro アプリケーションでは、図 2 に示すこれらの表現のそれぞれをプラグインとして実装しています。

また、リング レンダリングとボールとスティック (図 2 (d)) や、半透明のファンデルワールス空間充填表現とスティック表現など、複数の表現を組み合わせて、分子のバックボーンを明らかにすることもできます (図 2 (f))。

量子計算と電子構造

量子コードはもともとラインプリンタ用に開発されたもので、残念ながら標準のログ ファイルはその後ほとんど変わっていないようです。 他のコードで使用するため、また特に可視化や解析のために開発されたフォーマットがいくつかありますが、計算量子化学のコミュニティでは標準的なファイルフォーマットについてほとんど合意が得られていません。

最初に、Gaussian cube ファイルのサポートが Open Babel に追加され、拡張されました。 このフォーマットは、原子座標とスカラー値の 1 つまたは複数の規則的に間隔をあけたグリッドを提供します。 これは読み込むことができ、例えば電子密度の値で等値面の三角メッシュを計算するために、マーチングキューブアルゴリズムのような技術を使用することができます。

最初の形式は、開発時にある程度文書化されていましたが、Gaussian フォーマットのチェックポイント形式です。 この形式は、プログラムの実行時に生成されるログ ファイルよりも解析がはるかに簡単で、空間の任意の点における分子軌道または電子密度のスカラー値を計算するために必要なすべての詳細を提供します。 ガウス型軌道のクラス構造が開発されると、 Q-Chem、 GAMESS-US、 NWChem、 Molproなど、 他の一般的な出力ファイル形式を読み込むためにアプローチが拡張されました。 MOPAC200x のサポートは、 AUX フォーマットとそのコードで使用される Slater 型軌道のサポートとともに、 後に追加されました。

このプラグインは、利用可能なすべてのプロセッサー コアを使用するために、QtConcurrent が提供するマップ リダクション手法を利用するように開発されました。 これは、グリッド内の各ポイントが他のすべてのポイントから独立して計算できるため、ほぼ線形スケーリングを提供します。 分子軌道を計算するための別のアプローチは、2つ目のプラグインで開発されましたが、これはその後、「OpenQube」という別のプロジェクトに分割されました。 OpenQube」ライブラリは、2011年のGoogle Summer of Code期間中にVTKのオプションのバックエンドとして追加され、複数の出力ファイル形式とキューブファイルの計算をサポートし、後により高度なデータパイプラインに供給できるようになりました。

Figure 9
figure 9

Molecular Orbitals and surfaces. 分子軌道等値面 (左) と電子密度にマッピングされた静電表面積 (右) のレンダリング

量子出力用に標準 API によるクラス階層が提供されます。 新しいコードのサポートを追加するには、新しいパーサーを開発し、ガウスまたはスレーターセットが正しい順序と期待される正規化スキームで入力されることを確認する必要がありました。 s、p、およびdタイプのガウス軌道がサポートされており、これらの高次軌道を使用する計算の増加に対応するために、fおよびgのサポートが計画されています。 EMSLがホストするBasis Set Exchangeは、一般的に使用されている基底セットへのアクセスを提供しますが、現在のところ、これらの基底セットは通常、出力ファイルから直接読み込まれるようになっています。 この種の出力に意味付けをするための関連プロジェクトがいくつかあり、JUMBO-ConvertersプロジェクトやQuixoteなどがあります。 将来的には、より多くのコードがセマンティック出力を採用し、複数のコード間でのデータ交換、検証、解析が容易になるように、共通のフォーマットを使用することが期待されています。 最近の会議では、いくつかの計算化学コードがCMLを出力するためにFoXを使い始めたことが話題となりました。 CML出力を読み込むコードの開発が始まっており、コードから直接、あるいはOpen BabelやJUMBO-Convertersを使って他のフォーマットに変換したものを読み込んでいます。 CMLに十分な意味構造を追加でき、コンバータが十分広い範囲の出力をサポートできれば、OpenQubeに存在する解析コードのほとんどを置き換えることができます。 意味的な意味は、ログ ファイルから抽出するのが最も難しいものの 1 つであり、コミュニティとして一緒になることは、Avogadro のようなプロジェクトが、これらのコードの出力からより多くの意味を導き出すのに役立つでしょう。 この情報を処理し、レンダリングするために2つのプラグインが存在します。 1 つは、生体分子のバックボーン原子間の単純なチューブをレンダリングするプラグインです。 もう1つは、より高度なプラグインで、アルファ・ヘリックスとベータ・シートのメッシュを計算します。 最初のプラグインははるかに高速ですが、高度なプラグインは現場で期待される出力をより正確に生成します。

GLSL 、新しい視覚化

GLSL (OpenGL Shader Language) は、グラフィックス カード上で実行するコードを開発するために使用できる C ライクの構文で、OpenGL 2.0 仕様に含まれています。 これは、ゲーム業界や、データの可視化の多くの分野で大きな効果を発揮してきました。 たとえば、QuteMol は、画像に深度を加えるアンビエント オクルージョンのような機能のサポートを追加しました。 ユーザーのグラフィック カードが有能であれば、これらのプログラムは実行時にロードされ、構造を視覚化するのに非常に効果的に使用されることができます。 これらの中には、表示面に直交するエッジのみを表示する等値面レンダリングなどの要約技術も含まれており、分子と電子の両方の構造をよりよく表示することができる(図10)。

Figure 10
figure10

GLSL シェーダーを使って分子軌道をレンダリングします。 表面のエッジを強調するために 2 つの GLSL シェーダーを使用した、分子軌道等値面のレンダリング。 X 線効果 (左) と、正と負の分子軌道形状を示す赤と青 (右)。

レイトレーシング

Avogadro ではペインター抽象化を使用して、開発者が新しいディスプレイタイプをはるかに容易に追加できるようにします。 また、レンダラーを抽象化することにより、別のバックエンドのサポートを追加することが可能になります。 現在、OpenGLとPOV-Rayのみをサポートしています。 この抽象化により、レイトレーサーで利用可能な陰面を使用して、分子構造を非常に高い透明度でレンダリングすることができ、標準のOpenGLレンダリング画像に見られるような三角形のアーチファクトは一切ありません。

Figure 11
figure11

Ray-traced HOMO isosurface of varying cube density. 低密度 (左) と高密度 (右) のキューブを使用した POV-Ray による分子軌道等値面のレンダリング

この機能は、基本クラスを継承した追加の画家クラスと、ユーザーが基本レンダリング コントロールを編集できるダイアログによって、拡張モジュールとして実装されています。 POV-Ray 入力ファイルを保持して編集し、より複雑な画像を作成したり、必要に応じてレンダリング プロセスをはるかに細かく制御することもできます。

Avogadro ライブラリの使用

最初の使用例は Avogadro アプリケーションで、KDE ソフトウェア コレクションに属する Kalzium周期表プログラムがそれに密接に従っていました。 この最初の作業は、2007 年の Google Summer of Code プログラムによって一部資金提供され、また、Kalzium および分子構造の一般的な視覚化および編集をサポートするために、Avogadro ライブラリにいくつかの他の機能を追加する結果となりました (図 12)。

Figure 12
figure12

KDE の Kalzium アプリケーションが分子構造を描画するために Avogadro を使用している様子。

Q-Chem パッケージは Avogadro を中心に “QUI – The Q-Chem User Interface” を開発しており、もともとは Avogadro 拡張として開発されたものである。 これは、Avogadro で開発された入力ジェネレーターをさらに進化させたもので、より緊密に統合されています。

Packmol

Packmol は、分子力学やその他のシミュレーションのために、分子の初期「パック」構成を作成するために設計されたサードパーティ製パッケージです。 例えば、タンパク質を溶媒で囲む、溶媒混合、脂質二重層、球状ミセル、対イオンを置く、ナノ粒子にリガンドを追加する、などです。 一般的に、ユーザーは長い間シミュレーションを行い、適切な密度、溶媒分子間の短距離および長距離相互作用を確保した、平衡化された「溶媒ボックス」を持っている場合があります。 このようなソルベントボックスを使用すると、タンパク質などの溶質分子を、図13に示すような、ほぼ正しい初期構造に配置することができます。 溶質がボックス内に追加され、重なり合う原子を持つ溶媒分子が削除される。 これらのユーティリティで十分な場合もありますが、複雑な入力ファイルを作成することは必ずしも容易ではありません。 より複雑な系では、Packmolは定義された密度、形状(球、箱など)、配置する分子に基づいて初期設定を作成することができます。 Avogadro の開発者は、与えられた体積内の分子の数の推定を含む Packmol の使用を容易にするために、外部プラグインを書きました。

Figure 13
figure13

PackMol 拡張によって生成される PackMol 脂質層。

このプラグインは将来のバージョンでは予定されていますが、現在Avogadroでは標準機能として配布されていません。 これは、Packmol が必要とする PDB 形式でのファイルの保存、入力ファイルの生成、視覚化、分析、およびさらなるシミュレーションのための出力の読み込みなど、Avogadro がテキスト指向のパッケージ (Packmol) でいかにワークフローを促進できるかの例として役立ちます。

XtalOpt

XtalOpt ソフトウェアパッケージは Avogadro に対する第三者の C++ 拡張として実装されており、libavogadro API が大いに利用されました。 この拡張機能は、結晶構造予測用に調整された進化的アルゴリズムを実装しています。 XtalOpt開発チームがAvogadroをプラットフォームとして選んだ理由は、そのオープンソースライセンス、よく設計されたAPI、強力な可視化ツール、および直感的なユーザーインターフェイスにあります。 XtalOptはダイアログウィンドウとして存在し(図14)、進化する候補構造を視覚化するためにAvogadroのメインウィンドウを使用します。 APIはXtalOptのニーズによく合っており、ユーザーが検索中に生成された構造を表示、編集、およびエクスポートできるシンプルなメカニズムを提供します。 Avogadro とその依存関係のクロスプラットフォーム機能を利用して、XtalOpt は Linux、Windows、および Mac で利用できます。

Figure 14
figure 14

The XtalOpt extension. XtalOptエクステンションは、TiO2スーパーセルの安定性と探索の進捗のプロットを表示します。

div

コメントを残す

メールアドレスが公開されることはありません。