物理学の学部から、固体中の原子は、ナノメートルのオーダーのサイズの周期的に繰り返される構造単位に秩序化され、結晶格子を形成することが知られています。
CIFは、90年代に国際結晶学連合(IUCR)によって作成されました。 CIFの基礎はSTAR(Self-Defining Text Archive and Retrieval)と呼ばれるテキストコンテナーであり、回折測定または理論計算の結果として得られた物理的特性に標準タグが付けられています。 標準タグは、ユニットセルパラメーター、その対称性、構成原子、対応する科学出版物のメタデータなどを定義します。 これらのタグは、XMLドキュメントのXSDスキーマと同様に、外部CIFディクショナリに設定されるため、CIFディクショナリのCIFドキュメントを検証し、使用可能なものに基づいて新しい物理プロパティを導出することもできます。 違いは、CIFがCIFパーサーによって無視される任意のタグを許可することです(もちろん、後で標準の一部になり、IUCR連合の決定によって新しい辞書に含めることができます)。 さらに、CIFは、たとえば、識別子によって結晶構造内の特定の原子を参照できる場合に、リレーショナルデータモデルをサポートします。 欠点は、マルチレベル階層の便利なサポートがないことです。ここでは、STARコンテナがXMLを再生します。 ちなみに、これがCIFにCML(Chemical Markup Language)と呼ばれるXMLの競合他社がある理由です。
従来、CIFファイルはデスクトップアプリケーション(Vesta、Accelrys / BIOVIA、RasMolなど多く)で開かれていましたが、この領域では、約4年前にブラウザーがデスクトップアプリケーションに対する十字軍を開始しました。 私が知っているこの旅行のオープンソースの成果は以下に集められており、それらのコードは単一のWebアプリケーションの形でリポジトリにあります 。 コードは、IE 11やモバイルSafariを含むいくつかの一般的なブラウザーでテストされました。 リポジトリの構造は次のとおりです: データフォルダーにはCIFモデルの例が含まれています(結晶化学や材料科学を扱ったことがあるなら、おそらく独自のものがあるでしょう)、 enginesフォルダーにはすべてのエンジンのJavaScriptコードが含まれ、 utilsにはブラウザーファイルダウンローダーなどの補助コードが含まれますCIFモデルのローカル処理。 したがって、Webアプリケーションを起動するには、Webサーバーのフォルダーを開き、ブラウザーで適切なアドレスに移動するだけです(または単にリポジトリーに移動します )。 すべてのファイルは静的であり、サーバー処理は提供されません。
データフォルダーの4つのモデルについて簡単に説明します。
- 吸着 .cif-ペロブスカイトへの前述の水分吸着のモデル(写真を参照)、ユニットセル、デフォルトでは各エンジンにロードされ、
- fullerene.cif- フラーレンC 60 、
- lfp.cif-リン酸鉄リチウムLiFePO 4 、リチウムイオン電池のカソード材料。 リチウムイオンに注意してください。リチウムイオンは非常に軽量で移動性が高い(そして、すべてがリチウムが周期表の3番目であるため) 3番目のリチウム電子は、バッテリーの放電または充電の結果として外部回路に出入りしますが、リチウムイオンは電解質を通過します。
- mdma.cif -3,4-メチレンジオキシ-N-メタンフェタミン塩酸塩。 その官能基は対応する効果に置き換えることができますが、新しい、したがって合法的物質が形成されます。 これはまさに合成アナログの問題です。
さて、実際には、エンジンを比較した結果。
エンジン
| バージョン
| コードの合計量(括弧内はGZip)
| レンダリング技術
| カスタマイズ
| 免許
|
---|---|---|---|---|---|
ジャスモル
| 14.2.15
| 2.1 MB(700 KB)
| キャンバス
| リッチでプログラム的、UI
| LGPL
|
ChemDoodle Webコンポーネント
| 7.0.1
| 354 KB(121 KB)
| Webgl
| 豊富なソフトウェア
| GPL v3
|
ラスモリス
| -
| 1.1 MB(462 KB)
| canvas、sdl、asm.js
| 豊富なソフトウェア
| GPL
|
Player.html
| 0.10
| 265 KB(83 KB)
| キャンバス、Three.js
| UIに制限
| MIT
|
私は、Javaアプレット、Flash、およびその他のプラグインに基づくソリューションを
JSmolは 、 Java2Scriptツールを使用してJmol Javaコードから派生します。 JSmolコードの合計量は12.7 MBで、その一部は必要に応じてダウンロードされます。 上記の表は、開始に必要な量を示しています。 機能的には、このエンジンはより有名なJavaの対応物を完全に繰り返し、最も豊富な機能セットを提供します。 巨大なサイズ(および最も遅い開始)と、外部スタック、特にく読みにくいJavaScriptを移植するコストがなければ、ここで比較を完了することができます。
ChemDoodle Web Componentsは 、独自の製品に基づいています。 これには、長所(優れたドキュメント、コードと製品全体の高品質)と短所(使用上の制限、ユーザーに関する情報を送信できないようにする)があります。 欠点には、WebGLを支持するCanvasサポートの欠如が含まれます。つまり、わずかに時代遅れの機器では動作しません。 欠陥が問題でない場合、このエンジンは勝者と呼ばれます。
RasmolJSは 、 Emscriptenを使用した古いCブラザーRasMolから派生しています。 イギリスの化学情報学ノエル・オボイルは、トランスコンパイルされたJavaScriptコードがキャンバス要素に3Dレンダリングを提供する結果として、EmscriptenがサポートするSDLライブラリに元のグラフィック機能を移植しました。 さらに、コードはasm.js標準に従って生成されますが、これは理論的にはパフォーマンスを向上させるはずです。 実際には、以前の参加者の多くの機能を欠いていることに加えて、かなり重くて遅いエンジンであることが判明しました。
Player.htmlは 、 Three.jsおよびMath.jsを使用して作成されました。 エンジンは古代のラップトップでも動作するように、可能な限り幅広い機器をサポートするだけでなく、ミニマリズムと速度に重点を置いています。 開発は比較的最近始まりましたが、機能はまだそれほど豊富ではありません。 したがって、批判や渇きに感謝します。