2019.01.07 追記: MRIcroGLは開発者のChris Rorden教授のGitHubから直接ダウンロードした方がバージョンが新しいので、こちらで案内することとしました。
DICOM -> nifti ツールとして dcm2nii が有名ですが、開発者の Chris Rorden は、 dcm2nii の開発はすでに終了しており、後継の dcm2niix の開発を継続しています。
dcm2niix は dcm2nii よりも変換速度が非常に速く、BIDS形式にも対応しているなど、使い勝手も向上しています。
MRIcroGLに搭載されていますので、MRIcroGLをインストールすることで使えますが、パスの設定を通しておかないともったいないのでその方法を記載します。
- MRIcroGLのインストールファイルのダウンロード
- インストール
- セキュリティ
- dcm2niixのパス設定
- ターミナルの再起動
- dcm2niix の起動
MRIcroGLはこちらのページから入手できます。
MRIcroGL12_macOS.dmg がインストールファイルです。
MRIcroGL12_macOS.dmg を開くと、MRIcroGL および MRIcroMTL のアイコンが現れます。
この違いですが、本家のサイトには以下のように記されています。
MacOS version includes two versions: MRIcroGL uses OpenGL for rendering, MRIcroMTL uses Apple’s Metal for rendering.
ここでは MRIcroGL をApplicationにドラッグ&ドロップします。
基本、インストールはこれで終わりです。
近年のMacOSはセキュリティに厳しくなっています。
MRIcroGLを最初に起動する際には工夫が必要です。
まず、アプリケーション -> MRIcroGL とクリックします。
そうすると、以下の画面が出て起動できません。
ここで、MacOSのシステム環境設定に移動します。
「セキュリティとプライバシー」をクリックします。
そうすると、下図のようになりますので、「このまま開く」をクリックします。
さらに確認がでますので、「開く」をクリックします。
これでようやく、MRIcroGL が起動します。起動時は何も表示されませんが、”File” -> “Open Standard” -> mni152 を選択することにより、下図のような表示を得ることができます。
さて、これからが本題です。dcm2niix へのパスの設定を行います。
dcm2niix のパスは、上に記した方法でインストールしたならば、 /Applications/MRIcroGL.app/Contents/Resources/dcm2niix となります。
これをパスに追加します。
以下の内容をそのままコピペでターミナルに貼り付けていただければパスの設定ができます。
echo '' >> ~/.bash_profile echo '#MRIcroGL' >> ~/.bash_profile echo 'PATH=$PATH:/Applications/MRIcroGL.app/Contents/Resources' >> ~/.bash_profile
これを簡単に解説します。
echo ” >> ~/.bash_profile
空白行を ホームディレクトリの下にある .bash_profile に追加します。
空白行を追加する理由は、上に何か記載があったときに、空白行がないとわかりにくいからです。
echo ‘#MRIcroGL’ >> ~/.bash_profile
これは、コメントとして #MRIcroGL という文字を .bash_profile に追加しています。
echo ‘PATH=$PATH:/Applications/MRIcroGL.app/Contents/Resources’ >> ~/.bash_profile
ここが一番大事なところで、
PATH=$PATH:/Applications/MRIcroGL.app/Contents/Resources
という一文を .bash_profile に追加しています。
今、気をつけないといけないのは、 echo のあとは、すべてシングルクォーテーションであり、ダブルクォーテーションではないということです。
シングルクォーテーションは、変数を展開しません。 $PATH は $PATH のままです。
一方、ダブルクォーテーションは、変数を展開してしまいます。
echo “$PATH” とすると、設定されているパスが表示されます。
今はそれはしたくないので、シングルクォーテーションにしています。
この変更を有効にするには、ターミナルを一度終了し、再度ターミナルを起動します。
ターミナルから以下をタイプしてください。
dcm2niix
そうすると、以下のような表示になるはずです。dcm2niix のヘルプが表示されます。
Compression will be faster with 'pigz' installed http://macappstore.org/pigz/ Chris Rorden's dcm2niiX version v1.0.20181218 GCC8.2.0 (64-bit MacOS) usage: dcm2niix [options] <in_folder> Options :(以下省略)
これで、dcm2niix のパスが通ったことがわかります。
早速のご返信ありがとうございます。
・macOSは10.13.6です
・MRIcroGLは特に問題なく起動でき、v1.0.20180623です
もう一度再度ダウンロードし直してみましたが、やはり同じエラーでした。。。
小島先生
そうでしたか…。
libstdc++.6.dylibはシステムのどこかにありますか?
小島先生
今、以下を発見しました。
https://github.com/rordenlab/dcm2niix/releases
dcm2niix だけコマンドライン版がアップデートされているようです。
こちらを使うといかがでしょうか?
根本先生
libstdc++.6.dylibは先生と同じく/usr/lib/にありました。
教えていただいたgithubから直接ダウンロードしたものはエラー出現ありませんでした。
また、MRIcroGLフォルダ内で既存のdcm2niixと置換しても問題なく使用できました。
ありがとうございました。
(なお、githubからですとdcm2niibatchというものも含まれていました。yamlファイルを直接利用できるようです。)
よかったです。
たまたま、そのバージョンが何か不具合があったと考えるのがよさそうですね。
dcm2niixは着々と更新されているので、定期的にアップグレードしていく方がよさそうです。
いつも大変参考にさせていただいております。
dcm2niixのパス設定をしても、
dyld: Library not loaded: /usr/local/lib/libstdc++.6.dylib
Referenced from: /Applications/MRIcroGL/dcm2niix
Reason: image not found
Abort trap: 6
となり、うまく起動できませんでした。
しかしhomebrew使用すると(brew install dcm2niix)、問題なく起動できます。
この違いについて、もしご存知でしたら教えてください。
よろしくお願いいたします。
情報をありがとうございます。
brewでインストールできることを知りませんでした…。
私が検証したのは、MacOS 10.14.1 です。
まず、libstdc++.6.dylib を探してみました。
$ sudo find /usr -name libstdc++.6.dylib
/usr/lib/libstdc++.6.dylib
となりました。
のせていただいたエラーは、/usr/local/lib/libstdc++.6.dylib
を探しにいっていますね。
そこら辺に問題がある気がします。
後ほど、もう1台のMacで検証してみます。
小島先生
今、MacOS 10.13.6 で検証しましたが、問題なく起動してしまいました…。
いくつか教えてください。
– macOS のバージョンはいくつですか?
– MRIcroGL 自体は起動しますか?
– MRIcroGL のバージョンはいくつですか?
homebrew との違いですが、homebrew は以下のリンクの formula に従ってインストールします。
これを確認したところ、ソースをダウンロードしてきてコンパイルするようです。
私がブログで書いた方法は、既にコンパイルされたバイナリを配置するだけですので、
これがうまくいかない場合は、homebrew 経由でインストールというのは悪くない方法ではないでしょうか。