第1回 IMU脳画像解析セミナー「VBM/ROI解析を極める」@岩手

友人の山下典生先生が、2014年8月31日に『第1回 IMU脳画像解析セミナー「VBM/ROI解析を極める」』を開催します。

SPMでのVBMだけでなく、3D-SlicerやITK-SNAPも利用するとのこと。とても楽しみです。
早速申し込みしました。

関心のある方はこちらをごらんください。

VBMでの全脳容積(Total Brain Volume; TBV)の求め方

「すぐできるVBM」に、全脳容積の求め方を記載していませんでした…。

以下の方法で、求めることができます。

必要なものは以下のとおりです。

  • get_totals.m
  • 容積を簡便に求めることができるスクリプトは、Ged Ridgway氏によるget_totals.mです。右クリックで「名前をつけて保存」とし、SPMのディレクトリに保存してください。

  • 灰白質画像と白質画像
  • Segmentで最初に作られる画像であるc1*.niiとc2*.niiを準備します。ここで*はワイルドカードを意味し、「c1からはじまり、そのあとは何でもOKで、最後は.niiで終わる」という意味です。c1画像は厳密には確率画像なのですが、標準化前のこの画像のボクセル値は、ほぼ容積とイコールであると考えられています。

それでは実際にやっていきましょう。

まずは、灰白質の容積を求めます。Matlabのコマンドウィンドウから以下のようにタイプします。

gmv = get_totals

(gmvは変数名なので、gray_matterでも、gmでもかまいません)
そうすると、ファイルを選択するダイアログがあらわれます。ここで、容積を求めたいc1画像を指定してください。ここでは、ためしに5つのファイルを選びました。そうすると、以下のような表示になると思います。(もちろん、数字は選択した画像で変わります)

gmv =
640.9410
664.4302
617.7647
874.1366
670.1864

次に、白質の容積を求めます。Matlabのコマンドウィンドウから以下のようにタイプします。

wmv = get_totals

同様に、ファイルを選択するダイアログがあらわれますので、容積を求めたいc2画像を指定します。重要なのは、c1画像と同じ順番で選択してください。以下のような表示になると思います。

wmv =
431.9188
463.1192
418.5571
572.9889
488.4050

そうしたら、2つを足して全脳容積を求めましょう。

tbv = gmv + wmv

tbv =
1.0e+03 *
1.0729
1.1275
1.0363
1.4471
1.1586

これは、1.0×10^3(すなわち1000)にそれ以下の数字をかけたものということです。つまり、

tbv =
1072.9
1127.5
1036.3
1447.1
1158.6

ということになります。

これを選択してコピーしても使えますが、ファイルに書き出しましょう。
コンマ区切りファイルというものに出力することができます。
出力ファイル名をtotal_brain_volume.csvとします。

csvwrite('total_brain_volume.csv',tbv)

csvwriteの書式は csvwrite(出力ファイル名, 変数名) となります。
変数tbvの内容をtotal_brain_volume.csvに出力したいので、上記のようになります。
そうすると、ワーキングディレクトリにtotal_barin_volume.csvが生成され、Excelのような表計算ソフトでも、テキストエディタでも開くことができます。

最後に少し応用しましょう。灰白質容積(GMV), 白質容積(WMV), 全脳容積(TBV)をすべてCSVファイルに出力したいとしましょう。

その場合は、まず、すべての情報をひとつの変数volumesにまとめます。
Matlabのコマンドウィンドウから次のようにタイプしてください。

volumes = [gmv wmv tbv]

そうすると下記のようになります。

volumes =
1.0e+03 *
0.6409 0.4319 1.0729
0.6644 0.4631 1.1275
0.6178 0.4186 1.0363
0.8741 0.5730 1.4471
0.6702 0.4884 1.1586

左からgmv, wmv, tbvという順番になっています。

これを、先程と同じようにしてCSVファイルに保存します。ファイル名をvolumes.csvとします。

csvwrite('volumes.csv',volumes)

このようにして、脳容積の情報を保存できます。

SPMでの「1対多」の解析

臨床では、1人の症例で健常者と比較して容積低下部位を求めたいことがあります。
SPMでどのようにするかというと、シンプルです。

  • DesignはTwo sample t-testを用います
  • Group 1に1例のみ選びます
  • Group 2に健常者の複数の画像を指定します
  • IndependenceはYesを選びます
  • (ここがキモ)VarianceはEqualを選びます。もし、Unequalにするとエラーとなります。1例では分散を計算することができないからです。

そうすると、Design matrixを作るための設定画面は下図のようになるはずです。

SingleCase

これを普通にEstimateして、Contrast managerで症例の容積が低下している領域を求めたかったら、[-1 1]とすれば大丈夫です。

Twitterで疑問を投げかけてくださった@silverjet_jpさん、ありがとうございました。

MRIConvertやdcm2niiを用いたDICOM→NIFTI変換の方法

画像解析のためには、DICOM画像をNIFTI画像に変換する必要があります。
主に使われるソフトウェアとして、MRI Convertとdcm2niiがあります。
開発者からスクリーンショットを使ってよいという許可をいただきましたので、
MRI Convertおよびdcm2niiの使用方法をPDFで公開します。

MRIConvertの使用方法(PDF)
dcm2niiの使用方法(PDF)

Flexible factorial designを用いたVBMの縦断解析

様々な方々から「2群の縦断解析をしたいんだけれども、どうすればいいの?」と質問されてきて、その都度、きちんとした答えをできずにいました。
ちょうど、今日、ある方から質問をうけたので、これを機にまとめてみることにします。

一言で言うならば「Flexible factorial modelを使うといいよ」となります。しかし、これはそんな簡単ではありません。
以下にその方法をまとめます。

根拠となっている資料として、”Contrast weights in flexible factorial design with multiple groups of subjects“を挙げます。これは、SPMのML上で流れたドキュメントで、Flexible factorial designにおけるコントラストを様々な条件から検討しています。このドキュメントの他にも、SPM-ML上の議論も参考にしています。できるだけ正確を期していますが、間違っている可能性もゼロではありませんので、もし間違いを見つけた方がいらっしゃったらぜひご指摘ください。

例として、以下のような状況を想定します。上述のContrast weights in flexible factorial design with multiple groups of subjectsでとりあげられている状況と同じ状況です。

  • 被験者は11人。6人(Subject1(S1)-S6)がグループ1、5人(S7-S11)がグループ2
  • それぞれ3回MRIを撮像。従って、11×3=33の画像があることになる

以下、SPM12bのスクリーンショットを用いながら説明します。基本的にSPM8でも同じです。
SPMのメニューから”Basic models”をクリックします。

  1. Design matrixの作成
    • Flexible factorialの指定とFactorの設定
      flex_fact_01

      まずは、DesignでFlexible factorialを指定します。その後、Factorを指定します。今、指定すべきFactorは3つです。各々に対してindependenceとvarianceを指定します。

      • subject
      • これは必ず入れないといけないとのことです。independenceはyes, varianceはequalとなります。

      • group
      • 次はgroupです。これはindependenceはyes, varianceはunequalとなります。

      • time
      • 縦断解析ですので、timeが入ります。これはindependenceはno, varianceはequalとなります。

        すぐに見直すことができるように表にしておきます。

        factor independence variance
        subject yes equal
        group yes unequal
        time no equal
    • subjectの指定
    • flex_fact_02

      Specify Subjects or all Scans & Factorsで、”Subjects”を選択します(all Scans & Factorsもいけそうなのですが、Design matrixがやや異なるので、ここは無難にSubjectsとします)。そして、Subjectsに、Subject 1のtime 1, 2, 3の3つのファイルを指定します。

    • Conditionsの指定
    • flex_fact_03

      Conditionは行列で指定します。行は画像の順番です。列は指定したFactorの順番です。Factor1のSubjectは今、ひとつひとつ指定することで考慮されていますので、groupとtimeを指定します。被験者1-6(S1-S6)はグループ1, S7-S11はグループ2ですので、S1-S6のconditionは次のようになります。

      1 1
      1 2
      1 3

      同様に、S7-S11のconditionは次のようになります。

      2 1
      2 2
      2 3

    • Main effectsとInteractionの指定
    • flex_fact_04

      その後、Main effects(主効果)とInteraction(交互作用)の指定をします。

      subject, group, timeの主効果を見るために、Main effectとしてFactor 1, 2, 3をそれぞれ指定します。
      さらに、group x timeの交互作用もみたいので、Interactionとして、2 3とします。(Factor2がgroup, Factor 3がtimeだからです)

      それ以降の設定(mask, global normalization)は通常のVBMと同様です。

      この設定を適当な名前(flex_fact_design_matrix)で保存し、実行して、次のようなDesign matrixが得られたらOKです。

      design_matrix

      ここで気を付けなくてはいけないのは、Subjectは最初に指定しても、Design matrix上では最後に来ることです。
      最初の2列(赤)がgroupの主効果, 次の3列(黄緑)がtimeの主効果, 次の6列(青)がgroup x timeの交互作用, 最後の11列(紫)がsubjectの主効果となっています。

      ここまでできたらEstimateしてください。

  2. Flexible factorial designのコントラスト
  3. Design matrixの設定もややこしいのですが、コントラストはもっとややこしいことになっています。ここは上述の”Contrast weights in flexible factorial design with multiple groups of subjects”に従って説明します。

    今、Design matrixの各列の要素を列挙すると以下のようになっています。

    G1 G2 T1 T2 T3 G1T1 G1T2 G1T3 G2T1 G2T2 G2T3 S1 S2 S6 S7 S8 S11

    ここでGはgroup, Tはtime, Sはsubjectを意味します。
    これを見ると、Interactionの中にgroupとtimeの要素が入っていることがわかります。コントラスト作成の際には、ここのところに気をつける必要があります。nの数によってコントラストに重みづけをしなければならないからです。

    • groupの主効果
    • G1 G2 T1 T2 T3 G1T1 G1T2 G1T3 G2T1 G2T2 G2T3 S1 S2 S6 S7 S8 S11
      1 -1 0 0 0 1/3 1/3 1/3 -1/3 -1/3 -1/3 1/6 1/6 1/6 -1/5 -1/5 -1/5

      ここでG1T1, G1T2, G1T3は皆等分なので、シンプルに3で割っただけです。G2T1なども同様に-1/3となります。S1-S6, S7-S11は人数にあわせて1/6と-1/5となっています。

      ただ、これをひたすらSPMに打つのは非常に苦痛ですね。ここで、Matlabの便利な機能を使います。
      Matlabでは、1がn個続く時は、 ones(1,n) とします。
      これは応用が効いて、もし、1/3がn個続く時は、 ones(1,n)/3 とします。
      -1/4がn個続く時は、-ones(1,n)/4 となります。
      そして、ゼロがn個続くときは zeros(1,n) となります。

      従って、今の場合は、以下のように書くことができます。私はこれをSPMのcontrast managerに入力しています。

      1 -1 zeros(1,3) ones(1,3)/3 -ones(1,3)/3 ones(1,6)/6 -ones(1,5)/5

      すると、下図に示すようなコントラストになるはずです。

      main_fx_group_contrast

    • timeの主効果
    • G1 G2 T1 T2 T3 G1T1 G1T2 G1T3 G2T1 G2T2 G2T3 S1 S2 S6 S7 S8 S11
      0 0 1 0 -1 6/11 0 -6/11 5/11 0 -5/11 0 0 0 0 0 0

      timeの主効果は、経時的にvolumeが小さくなると仮定して、[1 0 -1]と考えています。G1T1, G1T2, G1T3に関しては、今はT1がG1とG2で不均等になっていますので、その比率を考慮して、G1T1, G1T2, G1T3に関しては、6/11×[1 0 -1], G2T1, G2T2, G2T3に関しては、5/11×[1 0 -1]となっています。そして、subjectのfactorに関してはこの中に3つの時系列をすべて包含していますので、コントラストに影響しませんので、すべて0となります。

      これも先ほどと同様にonesとzerosを上手に使って書いてみましょう。以下をcontrast managerに入力します。

      zeros(1,2) [1 0 -1] 6/11*[1 0 -1] 5/11*[1 0 -1] zeors(1,11)

      すると、コントラストは下図のようになるはずです。

      main_fx_time_contrast

    • group x timeの交互作用
    • G1 G2 T1 T2 T3 G1T1 G1T2 G1T3 G2T1 G2T2 G2T3 S1 S2 S6 S7 S8 S11
      0 0 0 0 0 1 0 -1 -1 0 1 0 0 0 0 0 0

      交互作用で用いられる項目は、GxTxのみです。これも次のように書きなおすことができます。

      zeros(1,2) zeros(1,3) [1 0 -1] [-1 0 1] zeros(1,11)

      コントラストは下図のようになります。

      interaction_contrast

    これでひと通り検定することができるはずです。
    いざまとめてみると、結構すっきりした感じになりました。
    縦断データをお持ちの方は、是非トライしてみてください。VBMだけでなく、脳血流SPECTなどにも応用可能です。

Linuxでファイル名の前後に文字を追加したい時の簡単な方法

ある方に、

「ファイル名の最初に一括でzとつけたいのだけれども、どうしたらよいだろうか?」

と質問されました。

たとえば、

001.jpg 002.jpg 003.jpg 004.jpg

をすべて

z001.jpg z002.jpg z003.jpg z004.jpg

としたいというような時です。

ここで、Linuxではrenameというコマンドを使います。

renameは以下の書式を知っていれば応用が効きます。

rename 's/置換前文字列/置換後文字列/' ファイル名

この、’s/before/after/’はsedでの置換と同じ書式です。sはsubstituteの略です。

でも、今は置換ではなく、文字列を追加したいわけです。

こういう時、Linuxはたいしたもんだなと思うのですが、ファイルの頭は^という特殊文字で表現されます。
そして、ファイルの最後は$で表現されます。(正規表現ですね)

なので、今、ファイル名にzを追加したい時は、

「^をzに置換」してあげると考えるわけです。

したがって、以下のようになります。

rename 's/^/z/' 00*.jpg

もし、ファイル名の最後に.oldをつけたかったら以下のようになります。

rename 's/$/.old/' 00*.jpg

^と$についての知識がちょっとあるだけで、ずいぶん楽になりますね。

iTunes Matchがフリーズする(終わらない、止まる)時の対処法:アップロードのスピードを絞ってみる

iTunes Matchが日本でもはじまりました。
しかし、多くの方がうまくいかずに苦しんでいます。私もその一人。

ネットには様々な情報が流れていますが、ステップ1、2で今まで一番うまくいったのは、

  • 一度「停止」して、iTunesのメニューの「Store」→「iTunes Matchをアップデートする」
  • サインアウトして、再度サインして再トライ

の2つでした。しかし、それでもステップ3で途中で止まってしまって先に行けないという現象に遭遇していました。

そこで、なぜ、上記の2つが有効なのか考えました。

基本的に、ネットワーク関連でうまくいかないときに一度止めて再度トライするとうまくいくことがあるというのは、基本的に情報のアップロードがうまくいっておらず、一度停止してリトライすることで新たにサーバーへの接続がなされるからということが多いからと思います(確証がないので断定しません)。サービス開始直後でアクセスが多いこともあると思いますが、おそらく、データのアップロードで情報がオーバーフローしているのではないか?と思いました。

そこで、帯域制限をしたらうまくいったという報告をしている人がいないかと思ったら、いらっしゃいました。

をぢの日記−意外な方法で、Music Matchが終わらない件が解決した

そこに以下のような記載があります。

iTunes Matchがアップロード帯域を使い果たしてしまい、そのためにiTunes自体がiTunesサーバにアクセスできず、 自己破綻してハングしているという説らしい。Apple Support Communityにも同様の投稿があった

私の推測は大きく間違っていないようです。
そこで、早速、私が音楽の管理のために使っているMac Book Proに、(一度、iTunes Matchを停止してから)上記サイトでも紹介されているSpeedLimitを導入してみました。

ちなみに、ダウンロードして普通にダブルクリックすると「セキュリティ上あけられません」などと言われると思いますので、
Finderを開き、ダウンロードフォルダに行ってから、右クリックで「開く」とするとインストールできます。

インストール後、環境設定に入りますので、立ち上げます。
そこで、Port80と443を選び、Speedを768k(DSL)を選び、”Slow Down”としました。私が現在使っている環境はネットワークがそこまで速くなかったからです。

speedlimiter01

speedlimiter02

この設定をして、再度iTunes Matchを走らせたところ、一度だけネットワークエラーで止まりましたが、その1回だけで結果的には丸2日間かけて3500曲のアップロードが完了しました。それまではせいぜい1時間以内で止まっていたことを考えると、帯域制限がいい方向に動いてくれているということになります。また、私はステップ3に行ってからこの方法を試したのでステップ1および2に及ぼす影響はよくわかりませんが、おそらくよい方向に働くのではないかと思います。

ということで、iTunes Matchで苦しんでいる方は、ネットワークの帯域を少し絞ってみるのがよいかもしれません。

すぐできるVBM: 精神・神経疾患の脳画像解析 SPM12対応

VBM_textbook

ついにできました!VBMの教科書です。
薄い本(150ページ弱です)ですが、VBMについての基礎知識がぎっちり詰まっています。

この本のいいところは、以下のようなところです。

  • 日本初の形態MRIの解析法であるVoxel-based morphometry (VBM)の方法を丁寧に紹介した本です。VBMだけを取り上げた本は世界にもないので、ある意味世界初です。
  • これから正式版が公開されるSPM12をもとに解説しています。SPMは4年ごとにアップデートされますが、ここ最近は正式版の公開は遅れています。2014年なのにまだSPM12の正式版がリリースされていないわけですから。したがって、今購入していただければ、最低でも5年間は使えます。SPMの使い方の基本も説明していますので、これからSPMを使ってみたいという方にもオススメです。
  • サンプルデータがついています。自分のデータセットがなくても、灰白質の抽出(Segmentation)から統計解析まで実際に行なってみることができます。
  • スクリーンショットが豊富です。すべて私が自分でスクリーンショットをとっているので、大きな間違いはないはずです。
  • 動作検証をWindowsとMacで行なっています(Linuxでも行なっています)。なので、WindowsユーザーでもMacユーザーでもきちんとできます。
  • VBMを応用した認知症診断補助ソフトウェアVSRADについても開発者の松田先生自らの解説が書かれています。

構成は以下の通りになっています。

第1章 はじめに
第2章 画像解析の準備
2.1 画像解析に必要なコンピュータのスペック
2.2 画像のファイル形式
2.3  画像解析の一連の流れ
2.4  SPMのインストール
2.5  サンプルデータ

第3章 SPMの動作の基本
3.1  SPMのウィンドウ構成
3.2  作業ディレクトリの設定
3.3  画像の表示
3.4  AC-PC位置合わせ
3.5  MATLABスクリプトを用いた半自動AC-PC補正プログラム

第4章 VBMの概要と前処理
4.1  VBMとは
4.2  分割化
4.3  DARTEL
4.4  バッチ(Batch)処理

第5章 統計モデルと結果表示
5.1  事前準備
5.2  群間比較(two-sample t-test)
5.3  相関解析
5.4  要因の分散分析

第6章 VBMの臨床への応用
6.1  VSRAD®
6.2  J-ADNI
6.3  VSRAD®の臨床応用例

ちなみに、総ページのだいたい半分が第5章に割かれています。VBMの前処理についての情報はそれなりにあるのですが、統計処理のところについての説明は非常に少ないので、統計処理について重点を置いています。

値段が5000円+消費税8%で5400円となっていますが、ここまで情報が詰め込まれているVBMの解説書はありませんので、形態MRI解析を志していて英語の文献を読むだけの気力がない方にはお手頃だと思います。(実は英語でもVBMの統計の部分の情報は系統的なものは少ないです…)

Amazonでも購入いただけます。リンクは下記。

Xubuntu12.04で問題なく動く無線LAN子機WN-G300U

Linuxでつまずきのひとつになるものに無線LAN子機があげられると思います。ネットを探しても情報は限られている印象があります。
動作するものとしないものとあり、動作しないといろいろ設定に苦しんでしまうというところがあります。私自身も以前かなり苦しんでいましたがうまくいかずにあきらめてしまっていました。

今回、オフィスの引越しに伴って自分の机がルーターから離れてしまったため、必要に駆られてXubuntuでも動作する無線LAN子機を探すことにしました。

ググったところ、こちらの記事を見つけました。Linux MintにI-O DATAのWN-G300Uシリーズが「何もせず」に動作したとのこと。

早速入手しました。

製品ホームページはこちら。2014年4月現在Amazonでは1763円で入手可能です。

それで、結果はどうかというと、

【何もせずに】動作しました!

USBにWN-G300を挿した状態でXubuntuを起動し、ネットワークのアイコンをクリックしたところ、普通にWi-fiのSSIDの一覧が表示され、自分がつなげたいSSIDを選択し、パスフレーズを入力するとあっさり接続です。

発売が2010年の機種ですが、現行で販売されていますので、Xubuntuで無駄な労力なくデスクトップで無線LAN環境を構築したい方にはおすすめの一品です。

UbuntuへのConnectome mapperのインストール方法

Connectomeに関心が集まっている昨今、様々なソフトウェアが発表されています。
 それらの中にConnectome Mapping Toolkitがあります。Connectome Mapperがその根幹をなすものですが、Connectome mapperを動かすためには、

  • Diffusion Toolkit
  • Freesurfer
  • FSL
  • MRTrix
  • Camino
  • Camino-Trackvis
  • MITK
  • Nipype

を事前に準備しなくてはならず、そのうえでConnectome mapperを入れないといけません。

結構大変な作業です。

順天堂放射線科の神谷先生と情報交換をしながら、Ubuntuにこれらのソフトをいれ、Connectome mapperを起動させる手順書を作成しました。

悩んでいる人は試してみる価値があると思いますので、試してみてください。

PDFはこちらからダウンロードできます。

なお、Lin4Neuroの最新版(20140313)には、FreesurferとDiffusion Toolkitを除くこれらのソフトのすべてが入っています。めんどくさがりの方は、最新版のLin4Neuroを使用することをおすすめします。

Update of Lin4Neuro (13 March 2014)

I updated Lin4Neuro.
This time quite a few changes were made.

  • Many unnecessary software packages and fonts were uninstalled.
  • Connectome mapper was introduced. However, due to filesize and their licenses, freesurfer and Diffusion toolkit are not installed. I wrote a step-by-step guide how to install freesurfer and Diffusion toolkit on Lin4Neuro (the PDF file is found on the desktop), so afer you install these two software packages, you are ready to run Connectome mapper.
  • Kernel was updated to 3.5.

You can download the latest Lin4Neuro from here.

FSLユーザーのためのシェルスクリプトチュートリアル

FSLを開発しているFMRIBグループは、FSL courseのスライドおよびデータセットを公開してくださっています。ここで勉強しているときに、さりげなくシェルスクリプトのチュートリアルもあることが気になっていました。

先日、時間をとってこのチュートリアルを丁寧に見ていったところ、非常に勉強になることが多く、シェルスクリプトの理解が深まりました。FSLユーザーのみならず、脳画像解析でUNIX系のOS(Macも含む)を使う方々にとって有益な情報が多いと思いましたので、日本語にしておきたいと思い、FMRIBのSteve Smith教授の承諾を得て、このチュートリアルを翻訳させていただきました。

オリジナルのサイト自体は、スライド形式になっており、レクチャーと演習部分にわかれています。しかし、翻訳していく段階でこれを完全に模倣するよりは、レクチャーと演習をそれぞれ別の媒体として準備するのも勉強するのには都合がいいかもと考え、それぞれ別のPDFを準備しました。

関心のある方は、以下のリンクからPDFをご覧いただけたらと思います。

FSL course: シェルスクリプト
FSL course: シェルスクリプト演習

ファイル/ディレクトリ名に空白が入っているファイル/ディレクトリの空白を下線_に置換するワンライナー

ある方とやりとりしているなかで、Linuxにおいて、ファイル名に空白が入っているときにその空白を_に変換するスクリプトを紹介していただきました。

そういうのを知っているのは大事だなと思いまして、シンプルな方法がないかなと考えました。

そうしたら、renameを使えば比較的簡単に達成できることに気づきました。

以下は、カレントディレクトリ内にあるファイル/サブディレクトリ名に空白が入っているものを探し出し、空白を_に変換します。

$ find . -name "* *" | rename 's/ /_/g'

これを使えば空白の問題からおさらばできますね。

ちなみにrenameはsedと同じフォーマットでファイル名の一部を変更できます。

‘s/変換前の文字列/変換後の文字列/g’ で最後のgがあるとそのファイル名で合致するパターンすべてに対して変換してくれます。gがないと最初のパターンだけで置換を行います。

いろいろ教えてくれる方がいるのはとてもありがたいですね。

FSLViewで画像が正しい向きで表示されない時

FSLViewで画像を表示すると、思ったような向きで表示されないときがあります。
下に例を示します。

fslview01

ここでは、上にある水平断、冠状断が角度が変になってしまっています。

しかし、よくみると、FSLViewは画像の前後をきちんと認識しています。
画像のまわりにあるアルファベットはそれぞれ

A: anterior
P: posterior
L: left
R: right
I: inferior
S: superior

を意味しますが、正しくなっています。

それでは、「正しく」表示するにはどうしたらよいでしょうか。
続きを読む

SPMで画像の中心を原点に設定するスクリプト

岩手医大の山下典生先生スクリプト第2弾です。
NIfTI画像を扱っていると、ときどき画像の原点(Origin)が変なところに設定されているケースに遭遇することがあります。このスクリプトは、SPMで、NIfTI画像の原点を、画像の中心に設定するスクリプトです。多くの画像の原点が変なところになっているような時に役立つと思います。
使い方は簡単です。

  1. setorigin_center.mをダウンロード(右クリックで名前をつけてリンク先を保存)し、SPMのフォルダに入れます。
  2. Matlabのコマンドウィンドウから、以下のようにタイプします。
  3. >>setorigin_center

  4. 画像選択のウィンドウが開きますので、原点を画像の中心にセットしたい画像を選択してください。

これだけです。
実際に手元にあったデータでやってみました。
左側が設定前です。原点がかなり後ろに設定されています。
右側がスクリプトを走らせた後です。この場合は、幸運にも画像の中心がちょうどACと合致しています。ここから微調整でAC-PCを設定した方がずっと楽ですよね。

setorigin_screenshot

How to enable users to automount CD-ROM or USB in XFCE

I’m trying to install XFCE with ubuntu minimal iso (mini.iso).

With default settings, users are not able to mount CD-ROM or USB.

In order to change this, edit the following;

/usr/share/polkit-1/actions/org.freedesktop.udisks.policy

In the section “Mount a device”, change “allowed_any” and “allow_inactive” to “yes”.

<xmp>
  <action id="org.freedesktop.udisks.filesystem-mount">
    <description>Mount a device</description>
    <defaults>
      <allow_any><strong>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
</xmp>

XubuntuでPlayOnLinux経由でMS Office 2010をインストールし、日本語入力を問題なくする方法

Ubuntuにしてたいていは満足なのですが、職場で利用となると足かせになるのがOfficeの問題です。LibreOfficeでたいていは間に合うのですが、Wordの校閲機能やPowerpointのレイアウトの問題などはいかんともしがたい問題です。これは少しずつストレスになっていきます。

Wine経由でMS Office 2010をインストールできると聞いていましたが、試してみてもエラーが多い状態でした。

その後、調べていたら、PlayOnLinuxを使うとあっさりいけるよという書き込みを複数見ました。やってみたらすんなりできました。

しかし、日本語を入力すると、入力しているのに消えてしまうという問題がありました。これもいろいろ調べて、対処をしてみたのですが、うまく動かず…。
でも、よく考えてみたら、PlayOnLinux経由なのだから、設定ファイルが別なのではないか?と思ったところ、それがあたりでした。

以下に方法をまとめます。

  1. ベースのOS
  2. Xubuntu 12.04です。

  3. MS Officeのバージョン
  4. Office 2010の32bitを準備します。Office 2013は動作しません。また、Office 2010の64bit版も動作しません。

  5. Wineのインストール
  6. PlayOnLinuxはWineのフロントエンドなのでWineが必要です。オフィシャルのWineはバージョンが若干古いので、私は下記でWine-teamのPPAからWineをインストールしました。これでwine 1.6がインストールされます。これを書いている時点での最新版は1.7ですが、1.6で一連の流れに問題はありませんでした。

    sudo add-apt-repository ppa:ubuntu-wine/ppa
    sudo apt-get update
    sudo apt-get install wine
    
  7. PlayOnLinuxのインストール
  8. PlayOnLinux(POL)もUbuntuのデフォルト(4.0.14)では、Office 2010のインストールに対応していません。なので、POLのサイトから、最新版(4.2.2)をダウンロードします。
    詳細はhttp://www.playonlinux.com/en/download.htmlに記載してありますが、とりあえず、12.04の場合は下記のとおりです。

    wget -q "http://deb.playonlinux.com/public.gpg" -O- | sudo apt-key add -
    sudo wget http://deb.playonlinux.com/playonlinux_precise.list -O /etc/apt/sources.list.d/playonlinux.list
    sudo apt-get update
    sudo apt-get install playonlinux
    
  9. PlayOnLinuxの起動
  10. メニューのゲーム→PlayOnLinuxでPlayOnLinuxが起動します。
    そこで、「インストール」をクリックします。

    そうすると、下図のようになりますので、SearchからOffice 2010と入れると候補が出てきますので、選択し、右下の「インストール」をクリックします。

    POL_install01

    その後は私は既にインストールしてしまったので、スクリーンショットは示せませんが、指示された通りに従っていけば、必要なファイルなどを全部ダウンロードしてくれます。なお、インストールする場所は変更するとうまくいかないということですので、とりあえずデフォルトのまま入れてしまうのが無難なようです。

    ひと通り終わると、以下のようになります。

    POL_install02

    これでインストールは完了です。これまでの苦労は何だったんだろうと思うぐらい簡単でした。

  11. 日本語入力の設定
  12. しかし、このままだと、日本語入力の問題があります。様々なサイトが、

    ~/.wine/user.regに

    [Software\\Wine\\X11 Driver]
    “Inputstyle”=”offthespot”

    のように記載しなさい

    と書いてあります。しかし、POLを使用した場合は、それではうまくいきません。

    Officeの日本語設定は、ホームディレクトリの下の以下の場所にあります。

    ~/.PlayOnLinux/wineprefix/Office2010/user.reg

    したがって、適当なエディタでこのファイルを開けます。今はLeafpadにしましょう。(なんでもいいですが)

    leafpad ~/.PlayOnLinux/wineprefix/Office2010/user.reg
    

    そして、このファイルの一番下に以下の記述を追加します。

    [Software\\Wine\\X11 Driver]
    "InputStyle"="root"
    

    (環境によってはバックスラッシュは¥に見えると思います)

    その後、その後、POLを再起動すると、ファイルの設定を読み込み直します。

    これで日本語をうつと、インライン変換まではいかないのですが、日本語変換が画面の左下の方にあらわれ、確定した文字がきちんと表示されます。

これでさらによい環境ができあがりました。

SPM8でSPECT/PET画像を一括で解剖学的標準化するスクリプト

SPMでSPECT画像やPET画像を標準化するとき、Normalise (Est & Write)から行います。しかし、この時、Source ImageとImages to Writeにいちいち画像ファイルを指定せねばならず、苦痛を伴います。

私の友人の岩手医大の山下典生先生が、この問題を解決するスクリプトを書いて下さいました。

使い方はいたって簡単です。

  1. fy_normalise.mをダウンロード(右クリックで名前をつけてリンク先を保存)し、SPMのフォルダの中に保存します。
  2. Matlabから以下のようにタイプします。
  3. fy_normalise
    
  4. すると画像を選択するダイアログが出現しますので、標準化したいファイルを選択します。
  5. 次に、ディレクトリを聞かれますので、設定ファイルを保存したいディレクトリを指定します。
  6. そうすると、保存先にspm_normalise_20140117_1621112.matのようなファイルが保存されます。
  7. 次に、SPMのBatchを起動し、ファイルを開くから先ほど保存したmatファイルをしてします。
  8. そうすると、Subjectが指定された状態になります。
  9. パラメータを確認し、大丈夫であることを確認したら、実行すれば解剖学的標準化がはじまります。

非常に便利なので、関心のある方はどうぞお使いください。なお、fy_normalise(”,1)とすると、一度に標準化を走らせることもできますが、設定ミスで後悔しないように、設定を確認してから走らせることをお勧めします。

山下先生、ありがとうございました!

Make battery-life of Ubuntu 12.04 longer on ThinkPad T430s

It’s been months since I swithed completely to Xubuntu 12.04 from MS Windows on my ThinkPad T430s. Basically I’m satisfied with Xubuntu 12.04, but there are some points which need tweaks. They are…

  • Battery Life
  • Somehow battery on ThinkPad T430s lasts only around 2hours on Xubuntu, which is much shorter than Windows.

  • Projector
  • XFCE is not so good at dealing with projectors or external monitors. I’m still struggling with this matter, so I don’t make any comments now.

As of battery life, I found a very good tool, which is TLP.

By installing TLP, the battery life gets longer by one hour without any modification, which is great.

You can find how to install TLP here.

Update of Lin4Neuro (28 Dec 2013)

Lin4Neuro was updated. Some changes are…

  • Kernel was updated to 3.5.0-44-generic.
  • FSL was updated to 5.0.6.
  • Ginkgo CADx was updated to 3.6.0.
  • MINC toolkit was updated to 1.0.01
  • MITK was updated to 2013.12.00.
  • Slicer was updated to 4.3.1.
  • LibreOffice was updated to 4.1.4.2

You can download the latest Lin4Neuro from here.

Now I’m focusing on the 64bit version of Lin4Neuro, so I suspend updating 32bit version. One of the task is to make the UEFI-compatible L4N. I hope it will be possible to boot from UEFI on the next update.