FSLやSPMを用いて画像の左右を反転する方法

DICOM→NIFTIに変換する際に、MRI画像の左右を反転する方法はありますか?というご質問をいただきました。

DICOM→NIFTIの際に変換する方法は私が知る限りあまりないと思いますが、NIFTI画像に対する方法はあります。

この方法を紹介します。

FSLに、”MNI152_T1_2mm_LR-masked” というファイルがあります。

画像の反転の確認にはわかりやすいファイルなので、今回はこれを使用します。

Mangoで見ると、画像に埋め込まれている”R”が実際にR側にあることに気をつけてください。

続きを読む

Print Friendly, PDF & Email

Linuxでdcmtkを利用することにより、DICOMヘッダーから被験者のID、生年月日、性別、年齢を取得できるワンライナー

ある研究データセットにおいて、被験者リストに性別や年齢の記載もれがあり、MRIのDICOMデータから取得することを考えてみました。

説明が不要な方は、dcmtkさえインストールしてあれば、次のワンライナーで得られます。

$ for f in $(ls -F | grep /); do echo $f; dcmdump $(find $f -type f | sed -n 1p) | grep -E "0010,0020|0010,0030|0010,0040|0010,1010" | awk '{ print $7, $3}' ; echo ""; done

以下、解説です。

続きを読む

Print Friendly, PDF & Email

Mozc (およびGoogle日本語) 用に作成した脳領域名の日本語変換辞書

この数日、ある総説を書いていたのですが、mozcの辞書に脳解剖の用語があまりにも入っていなくて困ったなと思いました。
オープンソースの医療辞書を探してみた所、DMiME 医学用語変換辞書ORCA projectによる医療辞書を発見しました。これらを入れてみた所、医療辞書としてはとてもいいのですが、脳解剖の用語(たとえば背外側前頭前野であったり、海馬傍回であったり)は登録されていません。
Linux界隈では、「ないものは作って共有する」のが原則ですので、とりあえず、作成してみました。
mozcはGoogle日本語のオープンソースですから、Google日本語入力でも使用できるかと思います→使用できるという報告をいただきました。

続きを読む

Print Friendly, PDF & Email

Ubuntuで有線LANで接続しようとしても、「デバイスは管理されていません」と出てしまう時の簡単な解決法

Ubuntu 18.04で経験した現象ですが、無線LANは接続できるのに、有線LANで接続しようとすると、
「デバイスは管理されていません」”device not managed” と出てしまって接続できないことがあります。

こんな感じです。

ネットを探してみるといろいろな情報が出てきますが、日本語の情報だと、「PCにあったドライバをインストールする」という情報が多いです。

しかし、これは汎用的ではありません。もっと根本的な解決法がほしいと思いました。

続きを読む

Print Friendly, PDF & Email

WindowsでのMRIcronのインストール方法

dcm2niiを使う為には、まずMRIcronをインストール必要があります。

MRIcronは、http://people.cas.sc.edu/rorden/mricron/index.htmlよりダウンロードします。

トップページ上に表示されている[Installation]をクリックして下さい。

すると、MRIcronで使用できるOS (Windows、Linux、Macの3種類で使用できます)の説明が出てきます。ご自分の作業環境にあったOSを選択し、ファイルをダウンロードして下さい。ここでは、Windowsを使用すると仮定して、説明を進めていきたいと思います。

Windowsでは、下図のように[file.win.zip]をクリックします。

ダウンロードするファイルの一覧が掲載されたページに移動しますので、ここからダウンロードを開始して下さい。

dcm2niiを使用する為には、[MRIcron/NPM/dcm2nii 2MAY2016]は必要になります。下図のように、[MRIcron/NPM/dcm2nii 2MAY2016]の横には、それぞれのOSで使用できるファイルが置いてありますので、必要なファイルにチェックを入れて、ファイル名をクリックします。

ファイルをダウンロードするにあたっての規約が表示されますので、[I Agree]をクリックします。

[ファイルを保存する]にチェックを入れて、[OK]をクリックします。

すると、下図のようにダウンロードが完了します。

ファイルが圧縮されていますので、解凍してください。Windows10では[圧縮フォルダツール]の[展開]タブ→[すべて展開]をクリックします。

すると、下図のようにファイルが解凍されます。

Print Friendly, PDF & Email

SPMの結果から閾値をこえる領域のすべての座標を求める方法

最近、ある方にこういう依頼を受けました。

「SPMの結果から閾値を超えるクラスターの全領域名が知りたい」

このためには、まず、閾値を超えるクラスターの座標を知る必要があります。
SPMの構造体には、座標がすべて入っています。

SPMで結果を出した後に、Matlabのコマンドウィンドウに以下をタイプするだけでOKです。

xSPM.XYZmm

SPMの統計結果は xSPM という構造体におさめられています。
xSPMとタイプすると構造体の内容を見ることができます。

>> xSPM

xSPM = 

  フィールドをもつ struct:

          swd: 'ワーキングディレクトリ'
        title: 'コントラストのタイトル'
            Z: [1×1102 double]
            n: 1
         STAT: 'T'
           df: [1.0000 250.0000]
      STATstr: 'T_{250}'
           Ic: 2
           Im: []
           pm: []
           Ex: []
            u: 3.1232
            k: 100
          XYZ: [3×1102 double]
        XYZmm: [3×1102 double]
            S: 70831
            R: [1 41.5028 447.2876 1.2207e+03]
         FWHM: [3.6448 3.8374 3.7707]
            M: [4×4 double]
           iM: [4×4 double]
          DIM: [3×1 double]
          VOX: [3 3 3]
         Vspm: [1×1 struct]
    thresDesc: 'p<0.001 (unc.)'
         VRpv: [1×1 struct]
           Pp: [1×116 double]
           Pc: [1×58 double]
           uc: [4.8405 Inf 62.0000 62.0000]
        units: {'mm'  'mm'  'mm'}

これを改めてみると、SPMのResultsに出てくる内容がほぼ網羅されていることがわかります。

Z: [1×1102 double] はZ値が1102個あるということです。つまり、閾値を超えるボクセルが1102ボクセルあるということがわかります。
u: 3.1232 は p<0.001, uncorrectedに相応するT値、k: 100 はextent thresholdです。
XYZ: [3×1102 double]には、ボクセルの位置が入っており、XYZmmに、そのMNI座標が入っています。

とこんな感じでいろいろな情報が入っています。

XYZmmは3×1102ですから、3行1102列の行列です。
これは扱いにくいので、転置してあげると扱いやすくなります。

>&gt; A=xSPM.XYZmm;
>&gt; A'

ans =

    -9    54    21
    -6    54    24
    -9    54    24
   -12    54    24
    -6    57    24
    -9    57    24
   -12    57    24
   -15    57    24
 (…以下、この例の場合では1102行の出力が続きます)

こうやってすべての座標を得ることができました。

SPMでは、統計の結果はデフォルトでは、8mm離れたピーク領域しか表示されませんが、このような方法を使えば自分が気になっている領域が入っているかどうかを確認できます。

Print Friendly, PDF & Email

Ubuntu 18.04 mini.iso から構築するLin4Neuro 18.04版

現在、Lin4Neuro 18.04版を開発しており、仮想マシン版は公開できているのですが、iso版はまだ公開できていません。
リマスタリングに苦労しております。

もし、WorkstationにLin4Neuroを構築したい場合、Ubuntuから公開されている mini.iso を利用することで、
(比較的容易に)構築することができます。

以下、方法を示します。なお、スクリーンショットはVirtualBoxを用いて作成したものです。
仮想マシンで試されてから実機に応用していただけたらと思います。
なお、実機の場合、ネットワークは最初は無線LANは自動で認識しませんので、有線LANでネットワークに接続してください。

続きを読む

Print Friendly, PDF & Email

FSL で imglob: command not found と出た時の対処方法

FSLをきちんとインストールしたつもりなのに、imglob, imcp, immv のいずれかを実行したり、eddy などのコマンドを実行すると、

imglob: command not found

というエラーが出ることがあります。

これは、FSLのインストールがうまくいっていないサインです。

FSLのサイトにも記載があります。

しかし、もうひと工夫必要なので記載します。

続きを読む

Print Friendly, PDF & Email

MRIcroGL および dcm2niix の MacOSでのセットアップ方法

2019.01.07 追記: MRIcroGLは開発者のChris Rorden教授のGitHubから直接ダウンロードした方がバージョンが新しいので、こちらで案内することとしました。

DICOM -> nifti ツールとして dcm2nii が有名ですが、開発者の Chris Rorden は、 dcm2nii の開発はすでに終了しており、後継の dcm2niix の開発を継続しています。
dcm2niix は dcm2nii よりも変換速度が非常に速く、BIDS形式にも対応しているなど、使い勝手も向上しています。
MRIcroGLに搭載されていますので、MRIcroGLをインストールすることで使えますが、パスの設定を通しておかないともったいないのでその方法を記載します。

続きを読む

Print Friendly, PDF & Email

dcm2niiを用いてDICOM形式をNIFTI形式へ変換する方法

しばらく前ですが、dcm2niiを用いてDICOM形式をNIFTI形式に変換する方法についてドキュメントを作成しました。ブログ形式で改めて公開します。

サンプルのDICOM画像として、1例分準備しました。こちらのDICOM画像で説明していますので、理解を深めたい方はこちら(T1.zip)からダウンロードして試してみてください。

続きを読む

Print Friendly, PDF & Email

脳画像解析のためのコマンドライン習得勉強会(2019年2月10日)

(2018.12.05 満席となりました)

脳画像解析を行っていくうえで、コマンドラインに慣れることは必須です。
しかし、コマンドラインを習得するよいテキストはなかなかありません。
このため、脳画像解析を行ううえで有用なコマンドラインを習得するための勉強会を企画しました。

  • 日時:2019年2月10日(日)9:00-17:00
  • 場所:オフィス東京(東京駅八重洲口から徒歩5分)
  • 費用:無料
  • 定員:30名(先着順)

続きを読む

Print Friendly, PDF & Email

FSLなどで生成したFA画像を、FreeSurferのSurface画像に投影する方法

FreeSurferで画像解析をしていると、「他の画像解析ソフトで解析した画像をFreeSurferで表示できないだろうか?」という疑問が湧いてきます。
今回、慶応大の上田亮先生が、その方法を見出してくださいましたので、上田先生の了解を得て、その方法を説明します。
FSLで作成したFA画像を、FreeSurferのSurface画像に投影してみます。

続きを読む

Print Friendly, PDF & Email

VirtualBoxへのLin4neuroのインストール -Mac編-

現在、Lin4NeuroはVirtualBox上で動作する仮想マシンを配布するようになりました。Macで仮想マシンをどう使うか以下に記します。

  1. Macのバージョン確認
  2. MacでVirtualBoxを動作させるには、MacOS10.8(Mountain Lion)以降である必要があります。バージョンが古い方は、まずOSのアップグレードを行ってください。

    注意点としては、MacOS 10.13(High Sierra)からセキュリティがこれまで以上に厳しくなりました。本ガイドでは、OS10.13で検証しています。セキュリティに気をつけるところは説明していますが、OS10.12(Sierra)以前では表示されない画面もありますので、ご了承ください。

    続きを読む

Print Friendly, PDF & Email

FSLの異なるバージョンのインストール

2018年10月26日、FSL 6.0.0がリリースされました。
メジャーバージョンアップなのでこれからいろいろ調べないといけませんが、
FSLのインストーラー、fslinstaller.pyをそのまま実行するとFSL 6.0.0がインストールされます。
しかし、従来のFSL 5.0.11をインストールしたい人もいます。
fslinstaller.pyのオプションで、指定できることがわかりました。
なお、fslinstaller.pyはPython2のスクリプトです。最近は、pythonとタイプするとpython3が起動する人も多いので、
python2.7 fslinstaller.py としてあげるといいでしょう。(Linuxはpython2でいいのですが、MacOSはpython2.7と明示しないとうまく動きません)

続きを読む

Print Friendly, PDF & Email

Anacondaを用いたPython 2.x系と3.x系の使い分け

先日、Python 3.x系のAnacondaをLinuxにインストールする必要がありました。
これ自体はなんら問題がなかったのですが、FreeSurferを使っている時にひとつ問題が出ました。

FreeSurferの asegstats2table と aparcstats2table はPython 2.x系で書かれているスクリプトで、Python3系では動きません。

Ubuntuの場合、デフォルトだと

python or python2 –> Python 2.x系
python3 –> Python 3.x系

となっているため、

#!/usr/bin/env python

は、通常はpython2.x系を指します。

しかし、私のように、Python3.x系のAnacondaをいれると

$ python --version

とすると

Python 3.6.5 :: Anaconda, Inc.

となり、python3.x系が呼び出されているのがわかります。

どうしたものかと思いましたが、Anacondaのサイトにきちんと答えが書いてありました。

続きを読む

Print Friendly, PDF & Email