GLmol - Molecular Viewer on WebGL/Javascript
GLmol とは
GLmol は、Javascript と WebGL を利用した分子構造ビューアです。Java やプラグインを使わず、ブラウザの機能だけで分子の三次元構造を表示できます。LGPL3 または MIT license のオープンソース・プログラムとして開発しています。
姉妹品として、Android 用である ESmol と NDKmol もあります。
機能
現在、以下の機能があります。他にも多くの機能が開発中です。
- PDB ファイルの読み込み
- SDF/MOL ファイル(MDL 形式)の読み込み
- ローカルにあるファイルの読み込み (File API を使用。Safari は未対応)
- RCSB PDB サーバから直接PDBファイルを読み込み
- NCBI PubChem サーバから直接SDFファイルを読み込み
- マウスによる分子の回転・平行移動・拡大縮小
- フォグとスラブ
- 各種表示方法
- 線(SDF/MOL ファイルの場合は、多重結合の表示にも対応)
- 球と線 "ball-and-stick" (SDF/MOL ファイルの場合は、多重結合の表示にも対応)
- 棒
- 球(ファンデルワールス半径または固定半径)
- 星
- 主鎖トレース
- ストランド
- リボン
- 厚いリボン
- 温度因子に合わせた太さのチューブ
- ヘリックスを円柱表示
- 上記の組み合わせ
- ベータシートの平滑化
- 核酸塩基の特殊表示
- 分子表面の計算と表示 (開発中; 別ページにて公開)
- van der Waals surface
- Molecular surface
- Solvent accessible surface
- Solvent excluded surface
- 各種着色
- 鎖ごと
- 二次構造 (SHEET/HELIXレコードに記載がある場合)
- 元素
- グラデーション
- 極性・非極性
- 温度因子
- カスタム
- 結晶学
- 単位胞表示
- パッキングの表示 (REMARKセクションに記載がある場合)
- 生物学的多量体(biological assembly)の表示 (REMARKセクションに記載がある場合)
- 透視投影あるいは正投影の切り替え
- スクリーンショット
動作環境
Firefox, Chrome, Safari, Opera の新しいバージョンで動きます。Safari
の場合は、後述のように手動で WebGL を有効にする必要があります。
Internet Explorer は WebGL をサポートしないため、残念ながら対応しません。
WebGL をサポートする Android 端末(Sony Ericsson 製の端末)でも動作します。Firefox for Android での動作には不具合があり、現在対応中です(さしあたり ESmol と NDKmol をお使いください)。WebGL を有効化したカスタムUIWebKit を使用すれば、iPad/iPhone でも動作するとのことです。
画面が黒いままで何も映らない場合は、WebGL が無効かもしれません。Safari では、環境設定の「詳細」から「開発メニュー」を表示するようにして、[開発]-[WebGLを有効にする]を選んでください。Chrome や Firefox で動かないときは、FirefoxやChromeでWebGLが動作しない理由 を参考に、強制的に WebGL を有効にできることがあります。
デモ
以下のリンクから GLmol を使用できます。
1つ前のバージョン(0.35)の GLmol も残してあります。
ダウンロード
GLmol は、以下からダウンロードできます。
Changelog
- 0.47(20120827) - Fixed loading SDF files from PubChem
- 0.46(20120725) - Supported XYZ format and deferred instantiation
for interaction with Jmol.js (thanks to Robert Hanson, Jmol
developer), Improved parsing of BIOMT record to show only the last
biological assembly
- 0.44(20120530) - Sphere radius scaling by van der Waals radius,
bug fix in multiple bond rendering, symmetry code
- 0.43(20120518) - Implemented "ball and stick" representation,
Improved multiple bond rendering in "line" and "ball and stick",
Downloader for NCBI PubChem compounds, Improved shader to support old
Intel video chips, Bug fixes.
- 0.40(20120428) - Bug fix in SDF parser and nucleotide
representation, Migrated to Three.js r49 and compacted it (350KB to
200KB), Improved lighting, Improved performance of symmetry operation,
Improved performance of cylinder rendering, Reversed spectrum color,
Implemented of "cylinder&plate", Implemented of ribbon with
thickness, Implemented beta sheet smoothing, C-alpha trace will no be
smoothened now. Unfortunately, some old video cards such as Intel
GMA950 cannot run this version.
- 0.35(20111214) - Bug fix. Supported Xperia phones (Android).
- 0.34(20111211) - Added 'strand' representation, Supported zooming by
mouse wheel, Fixed a bug with textarea in Chrome, Changed codes for
touchpanel support (experimental)
- 0.33(20111210) - Added 'star' representation and 'small sphere'
representation for non-bonded atoms, Added getNonbonded and UI for it,
Added setBackground, Added 'take screenshot' button, Refactored
onResize handler, Supported antialiasing (enabled in Chrome but
disabled in Firefox), Minor fix in loading message, Attached mouse
event handler to renderer, Refactored lighting (doubleSided issues),
Improved slab/fog/zoom adjustments, Fixed ribbon width, Supported
dotted line
- 0.30(20111130) - Fixed a bug in PDB parser (CONNECT), Fixed a bug
in SDF parser (ignore non-SDF file), Supported viewport size change,
Changed to Tab-based userinterface, Added mouse mode switch for
single-button mouse and touchpanel users, Read PDB file specified in
URL, Removed GLmol.protein.chainname (which was not used at all and
interfered with protein.a/b/c), Supported nucleic acid
representations(ribbon, ladder, stick, line), Improved Zoom, Supported
Fog and Slab, Supported drawing helix as cylinder, Enhanced PDB parser
to reads TITLE and HEADER, Added GLmol.setView and GLmol.getView,
Improved color by chain and color by spectrum to support nucleic
acids, Separated parser and buildScene (WARNING: API changed!), Added
GLmol.zoomInto (EXPERIMENTAL: must be improved), Added color by B
factor, Added tube representation (similar to 'B factor putty/ in
Pymol), Supported drawing double/triple bonds in line representation
(SDF File ONLY), Improved detection of bonds involving deuterium,
Supported reading local files (needs File API)
- 0.25(20111120) - ribbon for nucleic acids, color by chain for nucleic acids, color by polar/nonpolar, SDF/MOL format support, upgrade to Three.js r45, bug fix in subdivide, improvement of detection of bonds involving sulfer or hydrogen atoms, ignoring alternative locations (ad hoc fix)
- 0.23 - first release
マニュアル
ドキュメントはまだありません。ソースコードや例をご覧ください。内部構造が fix した時点で、ドキュメントを作成する予定です。
連絡先
ご意見・ご感想・バグ報告などは、メール(biochem_fan at users.sourceforge.jp) またはフォーラムへお気軽にどうぞ。