神経画像(neuroimaging)用JavaScriptライブラリのBrainBrowserがバージョン2.0をリリースした。
今年3月にオープンソースとなった同ライブラリは,サーフェスデータを視覚化するリアルタイム3DレンダリングツールのSurface Viewerと,スライス・バイ・スライスのボリュームデータ解析ツールであるVolume Viewerで構成されている。
BrainBrowserは元々,BrainBrowser氏が2010年にMcGill Center for Integrative Neuroscienceで開発したものだ。そこで開発された2つのWebベースの研究プラットフォームで,視覚化レイヤとして機能することがその目的だった。プラットフォームはいずれも大量の分散データを扱っていたため,処理結果を受け取ったユーザはデータを一度ダウンロードした上で,ローカルにインストールしたソフトウェアを使って視覚化しなければならず,ワークフローの障害になっていた。BrainBrowserはこれに対処するために開発され,その後,コードベースとAPIの変更が続けられていたものだ。
BrainBrowser 2.0リリースでは,おもな改良点としてBrainBrowser.configオブジェクトによる設定の簡略化,BrainBrowser.createTreeStore()による汎用ツリーストレージ機構の提供などの他,Surface ViewerとVolume Viewerそれぞれに特有の改善も行われている。
新リリースについてInfoQに説明してくれたメンテナンス担当の開発者であるTarek Sherif氏によると,今回のリリースで特に注目したいのは,BrainBrowserアプリのモバイルデバイスで使いやすくなった点だ。氏は言う。
ユーザからはフィードバックをもらっていますが,その中にLORISプラットフォームのユーザによる,プラットフォームをタブレットで使用できるようにしてほしいという要求があったのです。そのことと,WebGLがiOSで利用可能になったことから,BrainBrowerをもっとモバイルフレンドリなものにしようと考えました。Surface ViewerのモデルをJSONから直接ロード可能にしたことによって,他のソフトウェアからのモデルのロードもずっと簡単になっています。例えば,WebサイトにあるSurface Viewerのデモで使用しているサンプルJSONモデルは,MATLABでエクスポートしたものなのです。
リリースノートによると,BrainBrowserの最新リリースで実施された変更の中で,Surface Viewerに関連するのは次のようなものだ。
- モデルをJSONからパース可能になった。
- パースされたモデルデータが,viewer.model_dataオブジェクトで管理されるようになった。
- setTransparency()とsetWireframe()にシェイプ名の指定が不要になった(いずれもモデル全体に適用されるデフォルトが使用される)。
またVolume Viewerについては,
- パネル毎のマウスとタッチ位置がそれぞれ,panel.mouseとpanel.touchesでトラックされるようになった。
- 機能データの時間位置をキーボード(スペースで進む,シフト+スペースで戻る)で操作できるようになった。
- minc2volume-viewer.jsが方向余弦(direction cosine)を取得するようになった。
Sherif氏によると,BrainBrowserは軽量で,外部への依存を最小限とするように設計されている。Surface Viewer用のJavaScript 3Dライブラリthree.jsを除いて外部ライブラリやプラグインを必要としないことは,JavaやFlashなどのプラグイン上で動作する同種のソフトウェアに対するBrainBrowserのアドバンテージだ。
氏はまた,事前に設定された方法でデータの視覚化を行うBrainGLなどのツールとの違いとして,BrainBrowserが必要に応じて動的にデータをロードするように設計されている点に言及している。さらにParaViweWebやTissueStackのようなバックエンドサーバの必要なツールとも違って,BrainBrowserは完全なフロントエンドアプリケーションなのである。
BrainBrowserに対する評価は肯定的なものだ。神経学のコミュニティで"動的かつ視覚的に美しい方法でデータを公開できる点が評価されている"と同時に,開発者の間では,WebGLとHTML5の可能性を示す例としてBrainBrowserが受け止められている,と氏は言う。
しかしながら氏は,コミュニティの拡大を自身の重要課題と考えている,と述べている。BrainBrowserの開発はユーザニーズの拡大に強く結び付いているため,コミュニティの成長こそがプロジェクトの,延いてはコミュニティ自体の利益に繋がるのだと言う。
神経学的なデータは,さまざまな研究グループが別々のデータ形式を使用していたり,さらにはひとつの形式にもバリエーションが存在したりするように,ソフトウェアの観点からは非常に扱うことが難しいのです。BrainBrowserのデータ形式サポートはプラグインアーキテクチャを採用しているので,使用するデータ形式に対応するパーザを開発さえすれば,BrainBrowserでそれを視覚化できるようになります。
BrainBrowserプロジェクトへのコントリビュートに興味のあるInfoQ読者は,BrainBrowserのWebサイトとGitHubリポジトリを確認してみてほしい。