Ubuntu 16.04への MRtrix3 インストールスクリプト

先日、ABiSチュートリアルで順天堂大学の鎌形先生から、FSL, FreeSurfer, MRtrix3を組み合わせたコネクトーム解析の素晴らしい講義を聞く機会がありました。

MRtrix3はインストールしなきゃと思いつつできていませんでしたが、せっかくですから、モチベーションが高いうちにインストールしようと思い、Ubuntu 16.04へのインストールを行いました。

http://mrtrix.readthedocs.io/en/latest/installation/linux_install.html

こちらに説明がありますが、これをまとめてみました。

関心のある方はこちらからダウンロードしてみてください。(右クリック→名前をつけて保存)

保存した後、

$ chmod 755 mrtrix3_installer_ubuntu1604.sh
$ ./mrtrix3_installer_ubuntu1604.sh

でインストールができます。

ちなみに、上記スクリプトは以下のようになっています。
GitHubからダウンロードし、コンパイルし、.bashrcにパスを通すというシンプルなことをやっています。

#!/bin/bash
#Script to setup mrtrix3 for Ubuntu 16.04

#Install prerequisite packages
sudo apt-get install git g++ python libgsl0-dev zlib1g-dev libqt4-opengl-dev libgl1-mesa-dev libqt5svg5* libeigen3-dev

#Download MRtrix3 source
if [ ! -e $HOME/git ]; then
 mkdir $HOME/git
fi

cd $HOME/git
git clone https://github.com/MRtrix3/mrtrix3.git

#Configuration and build
cd mrtrix3
./configure
./build

#.bashrc
echo >> $HOME/.bashrc
echo "#MRtrix3" >> $HOME/.bashrc
echo 'export PATH=$PATH:$HOME/git/mrtrix3/bin:$HOME/git/mrtrix3/scripts' >> $HOME/.bashrc

How to make a UEFI-based bootable USB stick with Ubuntu mini.iso

Ubuntu mini.iso is useful when we want to build a system with minimal packages.
It is useful to make a bootable USB stick.
Below is how to make UEFI-based bootable USB stick with Ubuntu mini.iso.

Required package: 7-zip

You can get 7-zip with the following command;

sudo apt install p7zip-full

Now we will use “7z” command.
Two options are needed. “x” for extract and “-o” to specify output directory. If the directory doesn’t exist, 7z creates automatically.

  1. Extract iso image into a directory
  2. Now I want to extract images into “usbdisk” directory.

    7z x -ousbdisk mini.iso
    

    This will make “usbdisk” directory and extract into the directory. Note that no space is allowed between “-o” and target directory. I tried space or quotation, without success.

  3. Extract efi.image under boot/grub
  4. One more thing. In order to make the USB stick bootable with UEFI, we need to extract efi.img under boot/grub. This can be easily done with the following command. (You don’t have to change directory.)

    7z x -ousbdisk usbdisk/boot/grub/efi.img
    

    This command will extract efi.img, which will be “efi” directory under which bootx64.efi and grubx64.efi exist into the usbdisk directory.

  5. Copy the contents under “usbdisk” to USB stick
  6. Finally we just copy the contents under usbdisk to a USB.

That’s it. Now try to boot from USB disk.

Install igraph in R-studio on Ubuntu 16.04

I tried to install igraph simply by running install.packages(‘igraph’), which resulted in compile error.
Gathering information scatterd on websites, I came to the conclusion.

My Circumstance is as follows;

Ubuntu
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial

$ uname -a
Linux vincent 4.10.0-42-generic #46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

R-studio
Version 1.1.383

sudo apt update
sudo apt install libssl-dev libcurl4-openssl-dev libxml2-dev

Then running install.packages(‘igraph’) in R-studio succeeded without error.

CONNチュートリアル 15: Second-level Analysis 群間比較

多くの方から、”Second-level Analysis”のチュートリアルを執筆するように言われていましたが、なかなか時間がとれなかったのでそのままになっていました。
ようやく、時間がとれたので second-level analysis にいきます。

First-level analysisで Done と押すと、以下のような画面になるはずです。

ここで、大事なのは、画面中央の “Subject effects” と “Between-subjects contrast” です。

CONNがすごいのが、SPMで設定するコントラストを自動で考えてくれるところです。

それでは、2群間の比較から行きましょう。

健常者より統合失調症でfunctional connectivityが落ちているところをまず探したいと思います。
年齢と性別は共変量として扱いましょう。

まずは、”Subjects effect” のところで、シフトキーを押しながら、

control
patients
age
gender

の4つを選択します。

次に、Between-subject contrastsで、”Any effects of interest” のところをクリックして、”control > patients”を選択します。

そうすると、上のコントラストが自動で [1 -1 0 0] となります。

つまり、SPMで自分で設定しなければいけないコントラストを、CONNは自動で設定してくれるのです。

そうすると、画面下に、統計の表があらわれます。

ただ、これは味気ないので、もう少しファンシーな結果を見ましょう。
画面左下にある “Results explorer” をクリックしてください。

これを見ていきます。

  • Define connectivity matrix
  • これは、connectivityの行列のサイズを示します。今は、164のROIを使っているとわかります。

  • Select seed ROI(s)
  • これは、左側にある図の seed がどれかを示します。今は、右前頭極がシードになっています。左側の絵が真っ黒ということは、右前頭極と相関をきたす領域で、統合失調症が健常者より落ちているconnectivityはなかったということになります。ちなみに、seedは、ひとつずつ変更していくと、左の絵が変わりますし、CtrlキーやShiftキーを使って複数選ぶことも可能です。下の”Select all”を選ぶと、ROIをすべて選ぶことになります。あたりをつけるために、やってみるといいと思います。今の場合でやった結果を下に示します。

  • Define thresholds
  • ここで統計の閾値を設定します。今は、FDRで多重比較補正をかけて p<0.05 となります。 閾値を変更したかったらここで変更します。

  • 統計結果
  • その下にあるのは、統計結果です。領域が出ているところを選択すると、左側でどのconnectivityかを示してくれます。

表示も変えてみましょう。

メニューの View -> axial view を選んでください。

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

きれいですね。

coronal, sagittalも同様です。

そして、3d viewを選択すると、以下のようになります。

これも素敵ですね。

こんな感じで結果を表示できます。

SPM12のアップデート (version 7219) がリリースされました

SPM12のアップデートのリリースが先ほどされました。

様々なバグ修正が行われています。
アップデートのREADMEを見ると、自分的に興味深いことを発見しました。
コマンドラインでですが、octaveでの動作ができるようにいろいろ試みられているようです。
バッチ処理などにmatlabなしでoctaveだけでできたら、応用範囲が一気に広がります。

すでにSPM12をインストールしている方々でしたら、アップデートは、Matlabから下記のコマンドを打てば自動でできます。

spm_update update

お試しあれ。

Ubuntu 16.04+fcitx+mozcで、viでインサートモードになる時は、mozcは起動させず、作業後にESCを押した時には、自動でmozcをOFFにする設定

私は、Ubuntu 16.04 (をカスタマイズしたLin4Neuro 16.04)でfcitx+mozcで日本語入力を行っています。
エディタはvimを利用しています。

多くの方がネットに記載されていますので、詳細は書きませんが、私がvimで日本語文書を書くとき、

  • 日本語で入力している時、入力が終わった後、ESCキーを押しても日本語入力の状態のままなので、一度mozcを切ってからでないと、ノーマルモードになれない。

という問題がありました。

この点に関して、私がよく参考にさせていただいている「いくやの斬鉄日記」にまさにこれに関する記事があり、中国語ですが、この問題を解決する .vimrc に記載する設定のリンクが紹介されていました。

早速、以下を ~/.vimrc に記載しました。(中国語のコメントは、英語に変換してあります)

"##### auto fcitx  ###########
let g:input_toggle = 1
function! Fcitx2en()
   let s:input_status = system("fcitx-remote")
   if s:input_status == 2
      let g:input_toggle = 1
      let l:a = system("fcitx-remote -c")
   endif
endfunction

function! Fcitx2zh()
   let s:input_status = system("fcitx-remote")
   if s:input_status != 2 && g:input_toggle == 1
      let l:a = system("fcitx-remote -o")
      let g:input_toggle = 0
   endif
endfunction

set ttimeoutlen=150
"Leave Insert mode
autocmd InsertLeave * call Fcitx2en()
"Enter Insert mode
autocmd InsertEnter * call Fcitx2zh()
"##### auto fcitx end ######

これでvimを起動したところ、日本語でいろいろ書いた後に、ESCを押してノーマルモードに戻ると、自動でmozcがoffになりました。やった!という感じです。

しかし、もう少し使っていて、不便に感じることがありました。それは、vimを起動して最初の挿入モードになるときに必ず mozc が立ち上がってしまうことです。日本語の文章を書くときはいいのですが、スクリプトを書くときは邪魔になります。ここは自動じゃないほうがいいなと思いました。

で、上の記載をよくよく見ると

Fcitx2en() というファンクションと
Fcitx2zh() というファンクションがあり、

前者はESCが押された時に自動でinput method (IM)をoffにする機能であり
後者は挿入モードになった時に自動でIMをonにする機能のようです。

私は後者の機能がいらないんだと気づきました。

なので、以下のように、Fcitx2zh()のところを削除しました。

"##### auto fcitx  ###########
let g:input_toggle = 1
function! Fcitx2en()
   let s:input_status = system("fcitx-remote")
   if s:input_status == 2
      let g:input_toggle = 1
      let l:a = system("fcitx-remote -c")
   endif
endfunction

set ttimeoutlen=150
"Leave Insert mode
autocmd InsertLeave * call Fcitx2en()
"##### auto fcitx end ######

こうしたところ、私の期待していたように

  • vimでノーマルモード→挿入モードになった時にはIMは起動しない
  • 必要時に手動でIMを起動
  • ESCを押すと自動でIMをoff

となりました。

これでvimがさらに便利になりました。
自分の備忘録として記載しておきます。

Ubuntu14.04, 16.04へのFreeSurfer 6.0のインストール

2014年12月にFreeSurfer 5.3のインストールの方法を記載しましたが、しばらく時間が経ちました。最近、FreeSurfer 6.0がリリースされましたので、コピペでもいけるぐらいにまとめてみます。

英語でのFreesurferをLinuxにインストールするときの具体的な方法は、
こちらに書いてあります。以下は英語を読むのがつらい方のためです。

なお、楽をしたい人は、一番最後にある【楽をするためのスクリプト】をご覧ください。

続きを読む

macOS (El Captain以降) へのFreeSurfer 6.0のインストール

2018.09.12追記:license.txtの扱いが少し変わったので、修正いたしました。また、High Sierraでもインストールを確認できています。

FreeSurferのMacへのインストールについては、本家のサイトにもstep-by-stepのわかりやすいインストラクションがありますが、ターミナルやFinderの設定も含めて示したいと思います。

続きを読む

FreeSurfer v6.0 勉強会を開催します (2017年12月2日)

※2017年9月15日0:00現在、50名を超える申し込みがありましたので、申し込みは終了いたしました。

これまでVBMチュートリアルを行なってきていますが、受講者のアンケートで、「FreeSurferの勉強をしたい」という意見が一定程度ありました。

構造画像解析において、FreeSurferは通らなければいけないところかと思います。

しかし、日本語でのチュートリアルは過去に2011年に慶應大学の先生方が講習会を開かれていらっしゃいますが、その後、開かれていません。

一定のニーズがあると思いますので、岩手医科大学の山下典生先生の協力を得て、FreeSurferの勉強会を企画しました。

この企画はあくまでも個人的なものであり、研究費の支援などはなく、有料会議室を借りてもいますので、有料講習会とさせていただきます。(その分の学びがあるように準備します!)

これまでに開催してきたチュートリアルのように、ご自身のパソコンを持ち込んでいただき、FreeSurferにじっくり触れていただきます。

想定している対象者は、FreeSurferの経験がまだ少ない方です。全く経験がない方もOKです。また、recon-allはやったことがあるけれども、マニュアル修正をやったことがない方はとてもいい経験になると思います。これらの経験がある中級者以上の方には物足りないかと思います。

もちろん、事前サポートもさせていただきます。FreeSurferだけでなく、他にも必要なソフトなどもありますので、前もって万全な体制を整えて勉強会に臨めるようにサポートさせていただきます。それだけでも、今後の研究をする準備になるかと思います。

日程及び場所は以下になります。

  • 日程:2017年12月2日 10:00-18:00
  • 場所:NATULUCK五反田東口駅前店会議室
  •    五反田駅東口徒歩2分
       東京都品川区東五反田5-27-10 第1野村ビル 5階
       Googleマップはこちら

  • 講師
  • 根本清貴(筑波大学医学医療系精神医学)
    山下典生(岩手医科大学医歯薬総合研究所超高磁場MRI診断・病態研究部門)

  • セミナー内容(予定)
  • ・個人解析(recon-all)の方法、及び多数例解析のための工夫
    ・個人解析結果の見方、様々な出力ファイルの意義
    ・個人解析結果のマニュアル修正
    ・GUIを用いた基本的なグループ解析

  • 定員:40名程度(先着順)
  • 参加費:1万円
  • 申し込み方法
  • 定員に達したため、締め切りました。

再帰的にファイル名やディレクトリ名にある半角スペースをアンダースコア ( _ )で置き換えるスクリプト: Linux & Mac 対応

シェルスクリプトで作業を自動化しようとするとき、ファイル名やディレクトリ名に半角スペースが入っていると、エラーとなります。
この半角スペースを全部アンダースコア( _ ) で置き換えてあげたいと思いました。
それも、カレントディレクトリだけではなく、再帰的にサブディレクトリにあるものもすべてです。
やっぱり楽したいですから…。特に画像解析をやる場合、DICOMのディレクトリ構造は、かなり奥深くにいくので、再帰的にいけると楽になります。

スマートでないかもしれませんが、以下のようなスクリプトを書いてみました。

replace-space-underscore.shのダウンロード(右クリックで名前をつけて保存)

思考過程を書いていこうと思います。

続きを読む

bashのtips: 直前の引数を利用したいときは !$ もしくは Esc + .

私はこんな作業をよくします。

  • あるファイルをディレクトリAにコピー
  • ディレクトリAに移動

この際

$ cp something /path/to/A
$ cd /path/to/A

とするわけですが、この /path/to/A を2回うつのはめんどくさいので、簡単な方法がないかを調べてみると、

!$

という特殊変数があることがわかりました。
しかし、しょっちゅう忘れるので、覚え方を考えてみました。

bashでは、履歴を知りたいときに、!を使います。
たとえば

$ history

でコマンド履歴を調べ、その1457番目のコマンドを再度実行したいときは

$ !1457

とすればいいわけですね。

で、$ですが、正規表現において、$は「行の最後」を意味します。

この2つを組み合わせれば

「履歴において一番最後のもの」

と考えれば、 !$

は覚えやすいなと思いました。

自分の思考過程を備忘録として書いておきます。

<29/July/2020 追記>
コメントに Esc + . でもいけるというご指摘をいただきました。

これは、viの動作をイメージすると覚えやすいですね。
vi は コマンドモードで、. は繰り返しになるわけですので、
bashでEscでviのコマンドモードに入ったような感じになって、.で前回の引数の繰り返しというイメージで覚えたらいけそうです。

SPM12でのもうひとつのRender

すぐできるVBMで、一般的なRenderにつれて触れていますが、最近、SPMに、もうひとつのRender機能があることを発見しました。

SPMで統計結果を出した後、左下のウィンドウから overlays… Render を選択するところまでは同じですが、

ファイルを選ぶ際に、SPM12のフォルダの”rend”ではなく、”canonical”フォルダにある”cortex*.gii”を選択します。

すると、下のようなRenderファイルが得られます。

これはマウスでくるくる回せます。

また、内側を見せたい場合は、右クリックして、Connected Componentsのうちのどちらかのチェックを外します。

そうすると、内側を見ることができるようになります。

きれいな結果なので、論文に使えると思います。

レビー小体型認知症(DLB)の診断基準(2017年版)

このブログでは臨床的なことはあまり書かないのですが、先日、2017年版のレビー小体型認知症(DLB)の診断基準がNeurologyで公開されました。
読んでみて、とても勉強になる診断基準だなと感じましたので、自分なりに翻訳してみました。なお、現時点で正式な日本語版は公開されていません。あくまでも私が理解しやすいように、訳は逐語訳ではなく、若干意訳されています。(逐語訳って変な日本語になるのであんまり好きではないんです…)

==========
DLBの診断に必須なものは、認知症であることである。
すなわち、進行性の認知機能低下があり、そのために社会活動、職業、日常生活に支障が出ている。
初期には明らかな記憶障害や持続する記憶障害は認められないかもしれないが、病状の進行によって明らかになってくる。
注意、実行機能、視空間認知機能は特に障害されやすく、早期から起こる。

中核的な臨床兆候(最初の3つは初期に起こりやすく、その後も認められる)

  • 動揺性の認知機能:特に注意・集中力(or 覚醒状態?)が動揺しやすい
  • 繰り返し起こる幻視:典型的にははっきりとした形を呈しており、見えているものについて詳しく述べることができる
  • REM睡眠行動障害:認知機能低下の前に認められる
  • 1つ以上のパーキンソン症状:寡動、安静時振戦、固縮

支持的兆候

  • 抗精神病薬に対する過度な過敏性
  • 姿勢反射障害
  • 繰り返す転倒
  • 失神や一過性に応答が悪くなったエピソード
  • 重度な自律神経失調症状:便秘、起立性低血圧、尿失禁
  • 過眠
  • 嗅覚障害
  • 幻視以外の幻覚
  • 体系的な妄想
  • アパシー
  • 不安
  • うつ

DLBを示唆する(Indicative)バイオマーカー

  • SPECTやPET: 基底核でのドパミントランスポーターの取り込み低下
  • 123I-MIBG心筋シンチグラフィ: 取り込み低下
  • ポリソムノグラフィ: アトニー(筋弛緩)がないREM睡眠

DLBを支持(Supportive)する(DLBとして矛盾しない)バイオマーカー

  • CT/MRI: 側頭葉内側が相対的に保たれる
  • SPECT/PET: 後頭葉における血流低下や代謝低下
  • FDG-PET: cingulate island sign (CIS) (帯状回の一部が島状に保たれる)
  • EEG: 後頭葉で目立つ周期的にpre-alphaからtheta帯域で変動する徐波

Probable DLBは以下の条件(のどちらか)を満たす時に診断される

  1. 中核的な臨床症状が2つ以上あること。DLBを示唆するバイオマーカーはあってもなくてもよい。
  2. 中核的な臨床症状が1つあり、DLBを示唆するバイオマーカーが1つ以上ある。

Probable DLBはバイオマーカーだけで診断してはいけない。

Possible DLBは以下の条件(のどちらか)を満たすときに診断される

  1. 中核的な臨床症状が1つだけ認められ、DLBを示唆するバイオマーカーがない
  2. DLBを示唆するバイオマーカーが1つ以上あるが、中核的な臨床症状がない

以下の場合はDLBではない可能性がある

  1. 他の身体疾患や脳血管性疾患のような脳疾患があり、それらの病気で臨床像が部分的にもしくは全体的に説明できる場合。しかし、だからといってDLBの診断を除外できるわけではなく、混合型もしくは複数の病因が寄与していることを示唆しているのかもしれない。
  2. パーキンソン症状しか中核的な臨床症状として認められず、重度の認知症となってはじめて医療機関を受診となった場合。DLBは認知症症状がパーキンソン症状があらわれる前か同時にあらわれた場合にのみ診断できる。パーキンソン病に伴う認知症(Parkinson diseade dementia; PDD) は、パーキンソン病と診断されている患者が認知症になったときに使われる。臨床現場では、臨床症状にもっとも適した用語を使うべきであり、レビー小体病のような一般的な名称がしばしば役に立つ。研究でDLBとPDDを区別しなければならないとき、従来の1年ルール(認知症の発症とパーキンソン症状に1年以上の差がある)が推奨される。

==========

バイオマーカーがはっきりと列挙されており、同時に、「バイオマーカーだけで診断しないこと」とも明記されていることが印象的でした。ともすればバイオマーカーに偏りがちな中、臨床症状を丁寧に評価することの大切さを忘れないようにと釘をさしてくれているのだと思います。

SPM12 compatible automatic reorienting script

I used to use auto_reorient.m script to reorient MR images. However, this script doesn’t work without runnig SPM12 since spm_affreg.m is moved to spm12/toolbox/OldNorm/.

Therefore, I thought of another way to reorient images automatically.

The simple way is to coregister images to MNI images. However, if origin is too far from center of the image, it is likely to fail. So before coregistration, I set the origin of the image to the center, then coregister the image to MNI (icbm152.nii under spm12/toolbox/DARTEL).

I tested the script with various images and it works fine.

If you are interested, you can get the script from the link below.

Download acpc_coreg.m (Right click -> Save as)
Save the script under directory to which Matlab path is set, then type

acpc_coreg

from Matlab command window.

You need SPM12 for this script.

Update of Lin4Neuro (27 Jun 2017)

Lin4Neuro was updated.

  • Fixed the bug of installer crash
  • All Neuroimaging software is up-to-date. FSL remains 5.0.9 since 5.0.10 is not available yet on Neurodebian.
  • Tutorial by Prof. Chris Rorden is put under home directory. Anybody can go through tutorial without further download.
  • Now Lin4Neuro is UEFI compatible.

You can get the latest version from here.

Lin4Neuroのアップデート (27 Jun 2017)

Lin4Neuroのアップデートを行いました。

  • Ubuntu 16.04をベースに、インストーラーがクラッシュするバグを修正しました
  • 画像解析ソフトを最新版にしました。FSLはUbuntu版はまだ5.0.10がリリースされていないため、5.0.9のままです。
  • Chris Rorden教授のチュートリアルをわかりやすい場所に配置しました。
  • UEFI対応となっており、UEFI対応PCにもインストール可能となりました。

ここから入手できます。

How-to build DSI Studio for Ubuntu 18.04 and later

DSI Studio is an open-source diffusion MRI analysis tool. We need to compile the software for Linux.
I could successfully finish compile the DSI Studio for Ubuntu 18.04 and later. Below is what I did.

  • 18-May-2021 Update instruction for Ubuntu 20.04. You need to install g++-7 and gcc-7 for compile.
  • 08-May-2021 Ubuntu 20.04 has Qt5.12.8 as default, so it would be easy. For Ubuntu 18.04, I found PPA for Qt5.12.8, which would make the installation much easier, so I updated the instruction.
  • 21-Mar-2020 Now DSI studio needs Qt 5.12.x for compile. I added the explanation how to setup Qt 5.12.
  1. Install gcc and g++
    • Ubuntu 20.04
    • DSI Studio needs gcc-7 and g++-7 for compile on Ubuntu 20.04. We can install them via apt.

      sudo apt update
      sudo apt install g++-7
      

      Just installing gcc-7 and g++-7 won’t have any effects on the machine.
      You can check the version of gcc and g++ by typing gcc –version and g++ –version

      gcc --version
          gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
      
      g++ --version
          g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
      

      In order to make gcc-7 and g++-7 available, we need to do the following;

      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10
      sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10
      

      You should see something like;

      update-alternatives: using /usr/bin/g++-7 to provide /usr/bin/g++ (g++) in auto mode
      

      If you have installed other version of gcc (eg. gcc-10), You need to select gcc-7 and g++-7

      sudo update-alternatives --config gcc
      
      There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
      
        Selection    Path            Priority   Status
      ------------------------------------------------------------
        0            /usr/bin/gcc-7   10        auto mode
        1            /usr/bin/gcc-7   10        manual mode
      * 2            /usr/bin/gcc-9   20        manual mode
      
      Press <enter> to keep the current choice[*], or type selection number: 0
      

      Do the same thing for g++

      sudo update-alternatives --config g++
      
    • Ubuntu 18.04
    • DSI Studio needs gcc-7 and g++-7 for compile on Ubuntu 18.04. We can install them via apt.

      sudo apt install g++-7
      
  2. Install necessary files for compile
  3. We also need to install the following;

    sudo apt install git libboost-all-dev zlib1g zlib1g-dev
    
  4. Get Qt 5.12.8
    • For Ubuntu 20.04, default Qt5 should work.
    • sudo apt install qt5-qmake qt5-default libqt5charts5-dev
      

      Some may need to install libqt5opengl5-dev (Thank Steven Baete for the Feedback!)

      sudo apt install libqt5opengl5-dev
      
    • For Ubuntu 18.04, PPA provided by Stephan Binner would be helpful.
    • sudo add-apt-repository ppa:beineri/opt-qt-5.12.8-bionic
      sudo apt update
      sudo apt install qt512base qt512charts-no-lgpl
      source /opt/qt512/bin/qt512-env.sh
      

  5. Prepare a working directory
  6. Prepare a working directory. We save files in this directory.

    mkdir dsistudio
    
  7. Get the Windows version of DSI Studio
  8. Download the Windows version of DSI Studio from this link and save it under working directory (dsistudio).
    Filename should be “dsi_studio_win.zip.”

  9. Get the source code from GitHub
  10. Now we get the source code of DSI Studio from Github. We also need “frankyeh-TIPL-xxxxxx(revision number).zip” to be downloaded. After unzipping, rename the folder as “tipl”, and move under src.

    cd dsistudio
    git clone -b master git://github.com/frankyeh/DSI-Studio.git src
    xdg-open https://github.com/frankyeh/TIPL/zipball/master
    unzip frankyeh-TIPL-xxxxxxx.zip
    mv frankyeh-TIPL-xxxxxxx tipl
    mv tipl src
    
  11. Compile
  12. Prepare a directory for build and compile. The point is that we need to use qmake under Qt5.12.8. I chose to specify fullpath because I don’t have to tweak system environments. After executing qmake, we just run make to compile.

    mkdir build
    cd build
    
    #(for Ubuntu 20.04)
    qmake ../src
    
    #(for Ubuntu 18.04 using ppa by Stephan Binner)
    /opt/qt512/bin/qmake ../src
    
    make
    

    If it goes well, you should find dsi_studio under build directory.
    You may remove unnecessary files with make clean.

    make clean
    
  13. Packaging
  14. Windows version zip file has atlas and other files included. We make use of it.
    DLL files are for Windows, so we delete all of them.

    cd .. # Now you should be in the "dsistudio" directory
    unzip dsi_studio_win.zip
    cd dsi_studio_win
    find . -name '*.dll' -exec rm {} ;
    rmdir iconengines imageformats platforms styles 
    rm dsi_studio.exe
    cp ../build/dsi_studio .
    
  15. Run DSI Studio
  16. Now you can run DSI Studio from the terminal.

    ./dsi_studio
    

    If everything works, the command brings up DSI Studio.

SPMの3つのウィンドウを起動するためのコマンド

SPMのスクリプトを書く際、SPMのウィンドウを起動したいと思うことがあります。
SPMのコードを見ながら、以下で起動できることがわかりました。
便利なので備忘録がわりに書いておきます。

spm('CreateMenuWin','on'); %左上のウィンドウ
spm('CreateIntWin','on');  %左下のウィンドウ
spm_figure('Create','Graphics','Graphics','on'); %右のウィンドウ

AC-PC自動設定スクリプト(SPM12対応版)

かつてauto_reorient.mというスクリプトを配布していましたが、これは現在のSPM12で動かなくなってしまいました。理由は単純でSPM12からspm_affregという機能がなくなってしまったからです。もし、過去のSPMからspm_affreg.mを持ってきたら問題なく使えるのですが、この機会に別の手法を考えてみました。

シンプルな方法は、MNI標準脳にCo-registrationすることです。これだけでかなりあいます。
しかし、画像の原点があまりにも違うところに設定されているとエラーが出ることがあります。
そこで、以前、山下先生に教わった方法を採用し、まず、originを画像の中心に設定し、そのうえで、SPM12に搭載されているicbm152.niiにco-registartionするスクリプトを書いてみました。

多くの画像で試してみましたが、それなりにうまくいきますし、処理速度も速いです。

よかったら試してみてください。

acpc_coreg.mをダウンロード(右クリックで保存してください)

Matlabのパスが通っているフォルダにこのファイルを置いていただき、

Matlabから

acpc_coreg

とタイプするだけです。

Pubmedの結果をviで整形する(不要な改行の削除)

Pubmedはとても便利ですが、いくつか不便なこともあります。
そのうちのひとつに、summary (text) の扱いです。
viを使ってなんとかきれいにできないかと試行錯誤した結果です。

先に結論を示すと、以下でできます。

:%s/\n\([A-Za-z0-9]\)/ \1/

以下がそのプロセスです。

続きを読む