2015/07/16 Brain Atlas Hackathon 2015 神経細胞形態抽出を中心とした Vaa3Dによる画像処理とプラグイン開発 宮本 大輔 IVBPF(無脊椎動物脳プラットフォーム) 東京大学 先端科学技術研究センター 1. 目的 ・ 三次元の画像データを処理したい ・ 特に,画像から神経細胞形態を再構築したい ・ できればフリーソフト(かつオープンソース)で... IVB-PF(無脊椎動物脳プラットフォーム) カイコガ側副葉領域標準脳 1.2 ImageJ/Fijiの問題点 ・ 3D Viewerが弱い! ・ 神経科学に特化しているわけではない ・ 神経細胞の数値的表現形式(SWCなど)に 対応していない ・ Java/Java3D 2.1 Vaa3Dとは? ・2006年〜 ・C++ベース ・オープンソース MITライセンス ・マルチプラットフォーム Win/Mac/Linux (Qt4 + OpenGL) Hanchuan Peng, Ph.D. (Allen Institute for Brain Science) http://alleninstitute.org/our-institute/ourteam/profiles/hanchuan-peng/ 2.2 Vaa3Dの利点 ・ 幅広いデータフォーマットへの対応 ・ 5次元データ(xyztc)まで扱うことが可能 ・ 神経科学向けの様々な機能 ・ 新機能の実装が早い ・ BigNeuronプロジェクトに向けて 様々な細胞形態抽出アルゴリズムが実装 2.3 Vaa3Dの欠点 ・ マニュアルが少ない(日本語は皆無) ・ プラグイン開発がC++のみ ・ Qt4.7.1 という特定バージョンに依存 3.1 BigNeuron Hackathon BigNeuron : 神経細胞の大規模形態抽出プロジェクト (https://www.linkedin.com/pulse/bigneuron-beijing-hackathon-hanchuan-peng) 2015年3月16〜20日に北京でハッカソンが開催 参加者は25名程度 日本からの参加者は2名 3.2 ハッカソンの進め方 ・ 初日:環境構築,やりたいことを述べる ・ 2日目〜4日目:ひたすらプログラミング ・ 5日目:成果発表 グループ分けなどもなく,比較的スパルタな感じ 中国ならではの問題も... ただし,Vaa3Dの開発者や, その他の様々な知識・技術を持っているヒトに 直接話を聞きながらプログラミングができる. 4. Vaa3Dデモ 画像の読込みと三面図表示 3D/5D表示 バーチャルフィンガー 神経細胞形態抽出 プラグイン作成 巨大データの動的読込み 細かい説明は割愛しておりますので, 興味のある方は https://code.google.com/p/vaa3d/ または,私の方まで聞きに来てください 4.1 Vaa3Dインストール http://www.vaa3d.org から,ダウンロードするだけ 今回紹介するテストデータのいくつかもここからDL可 4.2 画像の読込み File->OpenImage.. または ドラッグ&ドロップ 4.3 3D表示 右下の”See in 3D”ボタンを押すことで 3D Viewが表示される See in 3D ボタン 4.4 メッシュの作成 Surf/ObjectタブのLoad and Save Surfからメッシュを 作成することができる 1. Surf/Objectタブ 2. Load and Save Surf → Create Surf 4.5 オブジェクトマネージャ Object Managerにより,メッシュの色や 各種情報を変更できる Object Manager 4.6 5D情報の取り扱い File → Import で連番Tiffなどを読込み可能 読込んだ後, 3D Viewを立ち上げ 時刻のスライドバーが表示される 使用サンプル: http://penglab.janelia.org/proj/v3d/TwoColorCelegansWiggling.zip 4.7 SWC形式の読込み 画像の読込みと同様に,File → Open.. または,ドラッグ&ドロップで表示可能 Object Managerから,表示形式も変更できる (SWC:神経細胞形態のシリンダーによる表現形式の一つ) 5.1 3次元上の点の選択(Virtual Finger) 3D View上で右クリックし, ”2-right-click to define a marker”を選択 別の角度からのクリックにより,3次元空間上の一点を指定 マーカー 5.2 マーカーを用いた形態抽出 Advanced->3D tracing->trace from one landmark to all others 5.3 自動形態抽出 Advanced->3D tracing->auto tracing 5.3 その他の形態抽出 今回紹介した手法の他にも, 様々なグループによる様々な抽出プラグインが実装されている 様々なアルゴリズムを同一環境で比較し より良い形態抽出を目指す 6.1 プラグイン作成 Plug-in Creator Plug-in により,プラグインの テンプレートを生成することができる ※プラグインの開発にはQt4開発環境と Vaa3Dのソースコードからのビルドが必要となります. https://code.google.com/p/vaa3d/wiki/BuildVaa3D 6.2 プラグイン作成の流れ 1. Plug-in Creatorにより,テンプレートを生成 2. 生成したフォルダに移動し,qmake,makeを行う 3. Vaa3DのPlug-inメニューから,Re-Scan All Plug-insを実行 4. 生成されたファイルを編集 5. make 6. 3〜5を繰り返す 6.3 閾値プラグイン if (menu_name == tr("menu1")){ v3d_msg("To be implemented."); v3dhandle curwin = callback.currentImageWindow(); Image4DSimple *image = callback.getImage(curwin); if (! image){ v3d_msg("no image"); return; } unsigned char* data1d = image->getRawData(); V3DLONG N = image->getTotalBytes(); bool ok; int threshold = QInputDialog::getInteger(parent, tr("Threshold"), tr("Enter threshold:"), 100, 0, 255, 1, &ok); if (ok){ for (V3DLONG i = 0; i < N; i++){ if (data1d[i] <= threshold){ data1d[i] = 0; }else{ data1d[i] = 255; } } v3dhandle newwin = callback.newImageWindow(); image->setData(data1d, image->getXDim(), image->getYDim(), image->getZDim(), 1, image->getDatatype()); callback.setImage(newwin, image); callback.updateImageWindow(newwin); } } 6.3 閾値プラグイン(結果) 7. 3次元画像の動的読込み(TeraFly) 事前にTiffファイルをタイル状に保存しておくことにより, 非常に巨大な3D画像を動的に扱う事ができる 主な資料 http://home.penglab.com/proj/vaa3d/ https://code.google.com/p/vaa3d/ https://en.wikipedia.org/wiki/Vaa3D Eliceiri et al., “Biological imaging software tools”, Nat. Methods, 2012. Peng et al., “Virtual finger boosts three-dimensional imaging and microsurgery as well as terabyte volume image visualization and analysis”, Nat. Comm, 2014. Peng et al., “Extensible visualization and analysis for multidimensional images using Vaa3D”, Nat. Protocols, 2014. ←今回は主にこれを参考にした. Bria et al., “An open-source Vaa3D plugin for real-time 3D visualization of Terabyte-sized volumetric images”, ISBI-2015, 2015. Enjoy Your Vaa3D Life ! 5. What I have to do next ?
© Copyright 2024 ExpyDoc