本日、第19回ヒト脳機能マッピング学会で発表したのですが、ブログのタイトル通り、シーケンスを自動判別し、ファイル名を自動でリネームするDICOM→NIFTI変換スクリプトを書いてみました。
MacおよびLinuxに対応しています。
必要なソフトウェアは以下の2つです。
- MRIcron
- FSL
パスが通っていることが必要です。
FSLも同様にパスが通っていることが必要です。
このスクリプトは以下から入手可能です。(右クリックで「名前をつけて保存」で保存できます。)
https://raw.githubusercontent.com/kytk/shellscripts/master/ren-dcmcnv.sh
- インストール
- 使い方
- フォルダの準備
- スクリプトの実行
- スクリプトが行うこと
- ワーキングディレクトリに “DICOM”, “nifti” ディ
レクトリを作成します。 - wd内にできたDICOMディレクトリに移動します。
- DICOM ディレクトリ内で dcm2nii を実行し、NIFTIファ
イルを生成します。 - fslhd を用いてNIFTIファイルのヘッダー情報を取得します。
- 以下のルールに基づき、3次元T1強調画像、fMRI画像、DTI画像を判別します。
- 3次元T1MRI: 画像の第2次元≧256, 第3次元>100, TE<6msec; (V_)
- fMRI: 画像の第4次元>100; (F_)
- DTI: 画像の第4次元が8以上100 未満 (D_)
- ディレクトリ名を取得し、ファイル名のベースとし、それぞれの接頭辞に識別記号を付加します。
- 変換したファイルをniftiディレクトリに移動します。
インストールですが、パスが通っているディレクトリに保存していただくだけです。
使い方はとてもシンプルです。
最初に、作業用フォルダを準備します。その中に、各被験者のフォルダを準備します。フォルダ名がとても重要です。このスクリプトはフォルダ名をファイル名のベースに使うからです。
たとえば、被験者IDがsubj01ならば、フォルダ名をsubj01とします。その中にその被験者のDICOMファイルをすべて放り込みます。(ディレクトリ構造になっていてもなっていなくてもかまいません)
ターミナルを起動し、作業用フォルダに移動します。
そして、以下をタイプします。
$ ren-dcmcnv.sh
これだけです。
スクリプトは以下のことを行います。フォルダ=ディレクトリです。
よかったら試してみてください。
いつも大変便利に利用させていただいております。
久しぶりに使用させていただこうと思いましたが、dcm2niiがうまく動作せず、dcm2niixに書き換えることで問題なく使用できました。
おそらくOSアップデートの影響(Catalina)と思います。
自分への忘備録を兼ねてコメントさせていただきました。
ご報告ありがとうございます。
たしかにcatalinaの影響があるかもしれませんね。
ご対応ありがとうございます。
当方のmacでも無事に動作確認できました。
先生のHPにはいつもお世話になっております。
今後ともよろしくお願いします。
動作検証をありがとうございました。
無事に動作したようでよかったです。
今後も何か気になることがありましたら教えてください。
よろしくお願いします。
いつもたいへんお世話になっております。
上記スクリプトを利用させてもらおうとしましたが、
./ren-dcmcnv.sh: line 31: /dev/fd/62: cannot overwrite existing file
となって、うまく使用できません。
set -Ceuをラインアウトすれば先に進むのですが、
macではlsコマンドで–ignoreオプションは使えないようです。
対策ありますでしょうか。よろしくお願いいたします。
どうもありがとうございます。
まだ、私の方でMacの検証ができていませんでしたので、
この際、検証させていただきます。
数日お待ちください。どうぞよろしくお願いします。
kojimaさん
スクリプトを書き換えました。
私のMacBookProで動作を確認しましたので、大丈夫かと思います。
試していただけませんか。
どうぞよろしくお願いします。