京橋のバイオインフォマティシャンの日常

まずは、データ分析、コマンドラインのメモとして

バーチャルスライドスキャナー画像(.ndpi)からオリジナルTIFFイメージを取り出す際のTips〜ギガバイトイメージの画像解析入門〜

今回、バーチャルスライドスキャナー画像(.ndpi)の取り扱い方を取り上げる。

.ndpiという画像フォーマットは、浜松ホトニクス社が提供するHamamatsu formatの1つである。

f:id:skume:20201012001429p:plain:w500

NDPIファイルは「独自メタデータを持つシングルファイルTIFF-likeな形式」であり、一般的によく使われるTIFFとかPNGと比べて、なかなか扱いにくい形式である。

また、TIFF-like形式というのは実際、Compress TIFF 形式で格納されていて、ImageJではその形式に対応したプラグインを導入する必要がある。

今回の内容

NDPIToolsのセットアップ

f:id:skume:20201012001433p:plain:w400

NDPITools HPから、ndpi2tiff、ndpisplit、ImageJ pluginsをダウンロードして、セットアップしてみる*1

まず、Macwgetのセットアップは、以前の記事を参考のこと。

skume.hatenablog.com

また、Fiji/ImageJについては以下のURLでダウンロード・インストールしておく。

imagej.net

以下、MacOSX版とLINUX版でのセットアップについて概説する。

#MacOSX版
#Pkg installerのダウンロード
$ wget https://www.imnc.in2p3.fr/pagesperso/deroulers/software/ndpitools/download/ndpitools-1.8/macosx/ndpitools-1.8.pkg

#インストール
$ open ndpitools-1.8.pkg
$ rm -rf ndpitools-1.8.pkg
#あるいは
#ndpitools-1.8.pkgをダブルクリックして、インストールする。

#パスの確認
$ which ndpi2tiff
#/usr/local/bin/ndpi2tiff

$ which ndpisplit
#/usr/local/bin/ndpisplit 

#ImageJ pluginsのインストール
$ wget https://www.imnc.in2p3.fr/pagesperso/deroulers/software/ndpitools/download/ndpitools-1.7.2/NDPITools_.jar

#.jarファイルをFiji/ImageJのプラグインフォルダに移動させる
$ mv ./NDPITools_.jar /Applications/Fiji.app/plugins

一応、Linux版のセットアップについてもふれておく。

#Linux版のセットアップ
#ndpi2tiff
$ wget https://www.imnc.in2p3.fr/pagesperso/deroulers/software/ndpitools/download/ndpitools-1.8/lin64/ndpi2tiff
$ chmod a+x ndpi2tiff
$ sudo mv ndpi2tiff /usr/local/bin

#ndpisplit
$ wget https://www.imnc.in2p3.fr/pagesperso/deroulers/software/ndpitools/download/ndpitools-1.8/lin64/ndpisplit
$ chmod a+x ndpisplit
$ sudo mv ndpisplit /usr/local/bin

# プラグインの設定
$ wget https://www.imnc.in2p3.fr/pagesperso/deroulers/software/ndpitools/download/ndpitools-1.7.2/NDPITools_.jar
#Fiji/ImageJのプラグインフォルダに移動させる

NDPIテストファイルのダウンロード

次に、テストデータ(CMU-1.ndpi)をダウンロードして、実行例を概説する。

#フォルダ作成
$ mkdir test01

#フォルダ内に移動
$ cd test01

#テストデータのダウンロード
$ wget http://openslide.cs.cmu.edu/download/openslide-testdata/Hamamatsu/CMU-1.ndpi

ndpisplitコマンドを用いたNDPIファイルの展開

ndpisplitを使って、CMU-1.ndpiからオリジナルTIFFイメージを抽出する。

#(デフォルト: 全部出力、JPEG圧縮TIFFファイル出力)
$ ndpisplit CMU-1.ndpi

#メモリ4000MB制限、JPEG出力、x1.25の抽出、ログ出力`-K`
$ ndpisplit -m4000j75 -x1.25 -K CMU-1.ndpi

#メモリ4000MB制限、非圧縮出力、x5の抽出、ログ出力`-K`
$ ndpisplit -m4000n -x5 -K CMU-1.ndpi

Fiji/ImageJでのCompress TIFFのインポート&エクスポート

FijiでCompress TIFFを読み込むには、Pluginsメニュー > NDPITools > Open TIFF ...を選択して、出力したTIFFファイルを選択する。

f:id:skume:20201012001437p:plain:w400

CMU-1.ndpiイメージはこんな感じの画像。

f:id:skume:20201012001442p:plain:w400

次に、PNGファイルとしてエクスポートしてみる。

エクスポートしたい画像のウインドを選択した後に、Fileメニュー > Save As > PNG ...を選択して、画像を保存する。

f:id:skume:20201012001452p:plain:w300

ImageJマクロでの実行

(今後、作成予定)

まとめ

バーチャルスライド画像からのTIFF画像抽出をまとめてみた。

ただ、バーチャルスライド画像は数百MGとか1GB以上の画像データが多く、 あまりスペックが低いラップトップで扱うと、 PCがトブ時があるのでご注意あれ。

また今後、この画像解析についても扱っていきたい。

補足

Fiji/ImageJのPluginsを使った画像抽出

どうもPCに負荷がかかりそうなので、非推奨ではあるけども、 Fiji/ImageJのPluginsでも画像抽出は可能である。

Fiji PluginsでCompress TIFFを読み込むには、Pluginsメニュー > NDPITools > Custom extract to TIFF ...を選択して、NDPIファイルをを選択する。

f:id:skume:20201012001458p:plain:w400

非圧縮TIFF出力の設定は以下の通りである。

f:id:skume:20201012001503p:plain:w400

でOKを押すと、同フォルダ内にTIFFファイルが出力されるので、 その画像をFiji/ImageJのツールバーにドロップすれば、画像が開くはず。

もしJPEG圧縮TIFFファイルで出力した場合には、FijiでCompress TIFFを読み込むには、Pluginsメニュー > NDPITools > Open TIFF ...を選択して、出力したTIFFファイルを選択して開く。

参考資料

NDPITools

www.imnc.in2p3.fr

OpenSlide - Hamamatsu format

openslide.org

ndpisplit リファレンス

www.imnc.in2p3.fr

Deroulers et al., Analyzing huge pathology images with open source software, Diagnostic Pathology 8:92 (2013).

diagnosticpathology.biomedcentral.com

*1:ndpi2tiffについては、用途的にもあまり使わないと思われる。