NDP.view2
Digital pathologyで特に重要なバーチャルスライド技術のうち、大きなシェアを占めるのが浜松ホトニクスの Nano Zoomerシリーズである。LinuxではQuPathがあり高度な拡張性を備えるものの、.ndpi
ファイルを閲覧するだけに限っては謹製のHamamatsu NDP.view2のほうが動作が軽快で操作感に優れる。Hamamatsu NDP.view2をLinuxでWindowsと遜色なく動作するためのTipsを共有する。
NDP.view2 on Linux
NDP.view2をダウンロード・インストール
NDP.view2 画像閲覧ソフトウエア U12388-01 | 浜松ホトニクス から Windows版をダウンロードし、Wineで実行する。
$ wine NDP.view\ 2.9.29\ RUO\ Setup.exe
フォントの設定
デフォルトでは文字が表示されないのでフォントをWineプレフィクスにインストールする。
$ winetricks -q allfonts
時間はかかるがこれで日本語もまるっと表示できるようになる。
Windowsからフォントを持ってくる
Winetricksで持ってくるのが説明的にもシンプルだが、要は、$WINEPREFIX/drive_c/windows/Fonts
に .ttf
ファイル等を並べれば読み取ってくれる。
自分はWindowsから持ってきたフォントをSyncthingで持ち歩いているので、
$ rm -r ~/.wine/drive_c/windows/Fonts
$ ln -s ~/Sync/Fonts/msfonts_win11 ~/.wine/drive_c/windows/Fonts
もとのフォントのディレクトリを消して(デフォルトでは空なので)、シンボリックリンクを貼っている。
起動スクリプトを作る
引数に .ndpi
を与えたら、それを開くようにスクリプトを作成する。パスは /path/to/bin/NDPView2
と想定する。
#!/usr/bin/bash
export WINEARCH=win64
export WINEPREFIX="PATH TO YOUR PREFIX"
# 以下はお好みで
export LANG=ja_JP.utf-8
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd32.json
if [ -n "$1" ]; then
p=$(winepath -w $1)
else
p=""
fi
wine $WINEPREFIX/drive_c/Program\ Files/Hamamatsu/NDP.view\ 2/NDPView2.exe $p
ただパスを与えるだけではファイルの場所によって開けないことがある。なので、Wine内部のドライブレターを考慮したパスに変換してからEXEに与えるようにする。
winepath
でLinuxとWineのパスを相互に変換できるので、これを使っている。デフォルトでは Wine→Linuxで、 -w
を指定すると Linux→Wineの変換となる。
// ホーム以下
$ winepath -w ~/Documents
Z:\home\user\Documents
// Wineプレフィクスは C:\に対応する
$ winepath -w ~/.wine
C:\
// 外部メディアはD:\など別デバイスとしてドライブレターが与えられる
// デフォルトだとここのマッピングが不正になりファイルを開けなくなる
$ winepath -w /run/media/user/USB/
D:\
外部メディアはC:\
ではなく、D:\
などWineの中からは別ドライブとして開かないと行けないので、この変換が必要になる。
$WINEPREFIX/drive_c
配下は C:\
としたり、外部メディアのドライブレターを補ったりしてくれる。バーチャルスライドデータは外付けHDDなどで輸送することが多いので必須の操作である。
デスクトップエントリを作成する
Linuxネイティブアプリと同じような振る舞いになるようにする。~/.local/share/applications/NDPView2.desktop
のようなファイルを作り以下のようにする。
[Desktop Entry]
Name=NDP.view 2(Wine)
Exec=env WINEPREFIX="/home/ken/Games/ndp" /home/ken/.bin/NDPView2 %f
Type=Application
StartupNotify=true
Icon=53E8_NDPView2.0
StartupWMClass=ndpview2.exe
MimeType=application/x-ndpi;
Categories=Graphics;Viewer;
ファイルを開く操作だと、 %f
にLinuxのパスが入ってくる。直接アプリを起動するときには何も入ってこない。Icon
は適宜のWineから自動生成されたファイルをなどを参考にしたり、/home/ken/.local/share/icons/hicolor
の中から探すといい。
.ndpi
との関連付け
~/.local/share/mime/packages/x-ndpi.xml
を作って
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-ndpi">
<comment>NanoZoomer Digital Pathology Image</comment>
<glob pattern="*.ndpi"/>
</mime-type>
</mime-info>
以下を実行する。
$ update-mime-database ~/.local/share/mime
$ $update-desktop-database ~/.local/share/applications
これで.ndpi
をNDP.view2でちゃんと開けるようになる。
デフォルトの`.ndpi`ファイルとの関連付け
デフォルトで .ndpi
ファイルに関連したものとし、wine-extension-ndpi.desktop
というようなファイルが生成されるが、実行するコマンドは
Exec=env WINEPREFIX="/home/[user name]/.wine" wine start /ProgIDOpen Hamamatsu.NDP.view\\ 2.ndpi %f
のようにパス変換を行っていないので、外部HDDなどから開こうとすると失敗する。 なので、前述のようにスクリプトを書いて自分でデスクトップエントリを用意したほうが良いとなるわけである。
注意!:DXVKを使うとCPU使用率が高くなる
注意点として、よかれと思ってDXVKをWineプレフィクスにインストールすると、動作時に特定のsingle CPUの使用率が100%に張り付いてしまう。おそらくシェーダーのコンパイルなどをしてるのだろうが、無くても動作環境は全く変わらないので導入しないことを推奨する。