しばらく前に作成したものですが、SPMのPlotに対する理解をまとめましたので、公開します。
SPM8の時に作成しましたが、SPM12でも十分に通用します。
Understanding_Plot_of_SPM.pdfをダウンロード。(右クリックで名前をつけて保存で保存してください。)
しばらく前に作成したものですが、SPMのPlotに対する理解をまとめましたので、公開します。
SPM8の時に作成しましたが、SPM12でも十分に通用します。
Understanding_Plot_of_SPM.pdfをダウンロード。(右クリックで名前をつけて保存で保存してください。)
Linuxで統計をやるならRを使えばいいじゃないと言われそうですが、
同僚がSPSSを多く使う場合、SPSSを動かせた方がいい時もあります。
ただ、インストールしてみたら日本語が文字化けして苦しみました。
ちょっとした工夫でクリアーできたので、ご紹介します。
ちなみに、SPSS_Statistics_22_lin_.binというファイルを使ってインストールしました。
viやgeditなどを使うと、シェルスクリプトなど、様々な構文を自動でカラー表示させることができて便利です。しかし、lessで表示させると白黒でわかりづらくなってしまいます。
そこで、lessでカラー表示する方法がないか調べたところ、様々な方がその情報を発信されていました。
時間がない方は、以下の2つをやってください。
まず、source-highlightをインストールします。
$ sudo apt-get install source-highlight
次に、以下の2行をホームディレクトリにある.bashrcに追加します。
#Source-hilight with less export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s" export LESS='-R'
これを保存し、シェルを新しく起動すると、lessでシェルスクリプトが色付きで表示されるようになります。ちょっと感動です。
私のサンプルスクリプトは下図のようになります。
ここまでなら、いくつもあるのですが、原典にあたってみたいということと、LESSとLESSOPENの意味を調べてみたので、少し紹介します。
この情報の出処は、GNU Source-highlightの解説サイトと考えられます。こちらになります。
引用しておきます。
This was suggested by Konstantine Serebriany. The script src-hilite-lesspipe.sh will be installed together with source-highlight. You can use the following environment variables:
export LESSOPEN=”| /path/to/src-hilite-lesspipe.sh %s”
export LESS=’ -R ‘This way, when you use less to browse a file, if it is a source file handled by source-highlight, it will be automatically highlighted.
次に、LESS=’-R’の意味が何かを調べてみました。いろいろ調べたところ、lessのmanページの解説が一番しっくりきました。以下のように記載されています。
-R または –RAW-CONTROL-CHARS
-r と似ているが、可能な場合には画面表示を正しく維持しようとする。 このオプションが有効なのは、入力が通常のテキストの場合である。入力には ANSI の「カラー」エスケープシーケンスが含まれていてもよい。 このシーケンスはESC [ … m
のような形式で、”…” は “m” 以外の 0 個以上の文字である。画面の状況を保つため、 全ての制御文字と ANSI カラーシーケンスは カーソルを移動させないと仮定している。 less に “m” 以外の文字を ANSIカラーエスケープシーケンスの終了文字として認識させることもできる。そのためには、認識させたい終了文字のリストを 環境変数LESSANSIENDCHARS に設定すればよい。
ここに「カラー」エスケープシーケンスとありました。
どうもこれを指定することで、色がきちんと表示されそうです。
ちなみに、これを指定しないとどうなるかやってみました。
その結果は、一目瞭然です。
次に、LESSOPENです。なぜ、最初にいきなりパイプが入っていたり、最後に%sがあるのでしょうか。これも、lessのmanページに記載がありました。引用します。
入力プリプロセッサ
less のための「入力プリプロセッサ」を定義することができる。 less がファイルを開く前に、入力プリプロセッサで 入力ファイルの内容の表示の仕方を変更することができる。 入力プリプロセッサに渡される。 入力プリプロセッサは、ファイルの内容を 代替ファイルと呼ばれる別ファイルに書き出す 単純な実行可能プログラム (もしくは、シェルスクリプト) である。 代替ファイルの内容がオリジナルファイルの内容の代わりに表示される。 しかし、ユーザーにとってはオリジナルファイルが開かれているかのように見える。less は現在の代替ファイルの名前としてオリジナルファイルの名前を表示する。入力プリプロセッサは、ユーザーによって入力される オリジナルファイル名を1 つのコマンドライン引き数として受け付ける。 そして、代替ファイルを生成し終えると、代替ファイル名を標準出力に表示する。 入力プリプロセッサが代替ファイル名を出力しない場合、less は標準としてオリジナルファイルを用いる。 入力プリプロセッサは、標準入力を閲覧する場合には呼び出されない。
入力プリプロセッサを設定するためには、 入力プリプロセッサを呼び出すコマンドラインを環境変数 LESSOPENに設定する。このコマンドラインには、入力プリプロセッサコマンドが呼び出されるときに、ファイル名に置き換えられる文字列 “%s” を含んでいなければならない。
ここで%sの意味が明らかになりました。最後の%sは、ファイル名を意味するのですね。
その後に以下のような記載があります。
ファイルのデータを代替ファイルに書き出さず、そのまま、less にパイプするような入力プリプロセッサを設定することも可能である。こうすることにより、閲覧する前に圧縮ファイル全体を展開するのが避けられる。このような働きをする入力プリプロセッサは、入力パイプと呼ばれる。 入力パイプは、代替ファイル名を標準出力に表示する代わりに、代替ファイルの内容全てを標準出力に書き出す。入力パイプが標準出力に何も書き出さない場合、代替ファイルは生成されず、less は普通にオリジナルファイルを使う。入力パイプを使う場合は、入力プリプロセッサが入力パイプであることを知らせるために、環境変数 LESSOPEN の最初の文字を、縦棒 (|) に設定する。
つまり、LESSOPENの最初に指定するパイプ(|)は、入力プリプロセッサが入力パイプであることを明示しているわけですね。
つまり、私の理解では、上記の2行によって、
ことを可能にしているわけですね。
掘り下げて勉強した結果、manページに当たることの大切さを再び学びました。
(I wrote this post originally in Japanese, but this post may be helpful universally, so re-write in English.)
I got a new PC with NVIDIA GeForce GTX 750 Ti in December 2014.
At that time nvidia-current did not support GTX750Ti, so I needed to install drivers from nvidia website. However, some tweaks were needed to get things done, so I drop a note how to install NVIDIA drivers without much pain.
SPM12 introduces some useful functions such as spm_atlas or new atlas “labels_Neuromorphometrics.” We find the description about labels_Neuromorphometrics in SPM12 Release note.
Maximum probability tissue labels derived from the “MICCAI 2012 Grand Challenge and Workshop on Multi-Atlas Labeling” are available in files tpm/labels Neuromorphometrics.{nii,xml}. These
data were released under the Creative Commons Attribution-NonCommercial (CC BY-NC) with no end date. Users should credit the MRI scans as originating from the OASIS project and the labeled
data as “provided by Neuromorphometrics, Inc. under academic subscription”. These references should be included in all workshop and final publications. See spm templates.man for more details about the generation of this file.
I wanted to generate masks of some regions using this labels_Neuromorphometrics.
Below is the tiny script which generates masks from your preferred atlas.
Running script brings up a file selector. You can choose any atlas you want.
Then it brings up another dialog which lists the region within the atlas. You can choose as many regions as you want, and the scripts generates masks whose file name is the name of the regions.
%generate_masks_from_atlas.m %This script generate mask files from any atlases you prefer. %K. Nemoto 25 April 2015 xA=spm_atlas('load'); S=spm_atlas('select',xA); for i = 1:size(S,2) fname=strcat(S{i},'.nii'); VM=spm_atlas('mask',xA,S{i}); VM.fname=fname; spm_write_vol(VM,spm_read_vols(VM)); end
Download generate_masks_from_atlas.m (right click and save as)
Sometimes we need to handle images whose origin is far from the center of the image.
My friend, Fumio Yamashita, from Iwate Medical University wrote a script which set the origin to the center of the image.
Usage is very simple.
>>setorigin_center
That’s it.
Below is the example of the script.
Left is before applying the script. You can see that the origin is far from the center.
Right is after applying the script. Now origin is set to the center.
先日、私のシステムをXubuntu 12.04からXubuntu 14.04にアップグレードしました。
私はLaTeXに関しては、本家のTeX Liveを使っています。インストーラーは十分に使いやすいのですが、怠け者なので、より簡単にできないかと方法を探してみました。
なぜかというと、本家を使う場合、リンクにあるように、少し設定が必要だからです。
そのリンクをひとつずつ確認していたところ、ある方が、Ubuntu用の本家TeX Liveのインストールスクリプトを公開しているということを知りました。最新版にリンクされています。
早速トライしてみたら便利だったので、紹介します。
2017.10.04 本記事は古い物です。最新版はこちらになりますので、そちらをご参照ください。
以前、FreeSurferのインストールの方法を記載しましたが、しばらく時間が経ちました。最近、改めてFreeSurferをインストールする機会がありましたので、改めてまとめてみます。2014年12月現在、FreeSurferのバージョンは、5.3.0です。コピペでもいけるぐらいにまとめてみます。
英語でのFreesurferをLinuxにインストールするときの具体的な方法は、
http://surfer.nmr.mgh.harvard.edu/fswiki/LinuxInstall
に書いてあります。以下は英語を読むのがつらい方のためです。
2014年12月13日に包括脳MRI脳画像解析チュートリアルが開催されました。
私はVBMチュートリアルを担当しましたが、その時の配布資料を公開します。
このPDFは、「すぐできるVBM」の補足のような位置づけにあります。
すぐできるVBMのサンプルデータを使っていますし、チュートリアルを受講していない方々でも、このPDFを参考にしていただければ、さらなる知識が得られるのではないかと思います。
ダウンロードはこちらからどうぞ。
しばらく前に、SPM8とSPM12を同一のMatlabのライセンスで使用する方法という記事を書きましたが、先日の包括脳チュートリアルのアンケートで、「SPM8とSPM12を併存する方法がわかりにくい」というご指摘をいただきました。
ということで、ひとつのスクリプトで全部解決できる方法を考えてみました。
奇しくも、SPM-MLで同じような話題があり、私もその話題に加わったもので、その結果を受けています。
ときどき、下記のような表現を見ます。
$ wget -O- http://www.example.com/example.gpg.key | \ sudo apt-key add -
この -Oのあとについているハイフンや、apt-key addのあとについているハイフンの意味をきちんと理解していませんでした。
改めて、調べたら、いろいろな方が解説してくれていました。
結論からいうと、
Linuxにおけるハイフンは、標準入出力をさす
のですね。
上記の例の場合、wget -O は本当はファイル名を引数にもつはずで、
wget -O file となるはずなんです。
でも、今の場合、-を指定することで、
wget -O- はその内容を、標準出力に表示するんですね。
今の場合は、example.gpg.keyが表示されるわけです。
で、上記の場合、さらにパイプがつながっていて、apt-key add -と続きます。
今回のハイフンは、今度は標準入力になるわけですね。
つまり、example.gpg.keyの内容が標準出力に出力され、
それがパイプで今度は標準入力になって、apt-key addの引数として使われるわけです。
となると、次と同じということですね。
$ wget -O tmpfile http://www.example.com/example.gpg.key $ sudo apt-key add tmpfile $ rm tmpfile
ハイフンを上手に使うことで一時ファイルを作ることなくパイプを使うことができるわけです。
スマートですね。
先日、新しいデスクトップマシンが職場に到着しました。
早速、Lin4Neuro-14.04をインストールしたところ、画面解像度が1280×1024までしかでなく、悲しいことに…。
グラフィックボードはNVIDIA GeForce GTX 750 Tiが搭載されています。
Ubuntuのnvidia-currentではまだ未対応であることから、本家のサイトからドライバーをインストールすることとしましたが、ひと手間だったので、その経過をまとめます。
I managed to customize Xubuntu 14.04LTS to be Lin4Neuro-14.04.
For this customization I did the following;
If you look at these files, you will see how you can add your entries to menu.
I keep maintaining Xubuntu 12.04 because I am not certain Connectome mapper works in Xubuntu 14.04. If you want to use Connectome mapper, I recommend to use Lin4Neuro 12.04.
先日、デュアルブートのマシンでXubuntuのアップデートをした時にGrubがアップデートされ、質問に適当に答えていたら、Grubのエントリーが消えてしまうという事件がありました。
Grubの設定をいろいろするのはめんどくさい、何かいい方法がないかなと探していました。
そうしたら、ありました。めんどくさがりにぴったりなコマンドが。
$ sudo update-grub
これで、システムに入っているOSを探し出し、自動でメニューにエントリーしてくれます。
ということで、Grubで困ったら、焦らず、まずはupdate-grubをタイプしてみてはどうでしょうか。
私自身も遭遇しましたし、他の方からも問い合わせがありましたので、簡単に記載しておきます。
MacをYosemiteにアップグレードした際に、FSLが動作しなくなることがあります。
その際には、バタバタする前に、まず、XQuartzを再インストールしてみてください。
それだけで問題が解決することがあります。
本家にも情報がありました。
Note for Yosemite (10.10) users: even if you have previously installed X11, you will need to reinstall it from the XQuartz web page to get FSL to work.
これで、問題解決といって大丈夫そうです。
I needed to make a 2-up pdf out of slide pdfs. That is, original slide pdf is landscape, and I wanted to put 2 slides in one page.
Googling led me “pdfnup”. Since I installed Tex Live 2014 on my machine, pdfnup was already installed.
So, I tried the following
$ pdfnup --orient portrait --nup 1x2 input.pdf
This resulted in error, which said
pdfnup ERROR: the --orient option is not allowed, use --landscape or --no-landscape to specify the output page orientation
so I used –no-landscape option
$ pdfnup --no-landscape --nup 1x2 input.pdf
This made input-nup.pdf and that is 2-up pdf!
This tool is so useful for preparing handouts for presentation.
In addition to the above example, the author shows a nice example of how to produce a handout from a file of presentation slides.
For slides made with the standard 4:3 aspect ratio a nice 6-up handout on A4 paper can be made by
$ pdfjam --nup 2x3 --frame true --noautoscale false \ --delta "0.2cm 0.3cm" --scale 0.95 myslides.pdf \ --outfile myhandout.pdf
Nifti file havs two kinds of extensions, hdr/img or nii.
Sometimes hdr/file nifti files can be confusing because the extension is the same as ANALYZE format.
There are some ways to convert hdr/img into nifti.
One is to use fslchfiletype included in FSL. This is the easiest, but it requires FSL.
The other is to use SPM. However, some scripting is needed.
So I wrote tiny scripts for converting hdr/img format into nii format.
If you prefer SPM, use img2nii_spm.m. Save the script into a folder under MATLAB path and type “img2nii_spm” from MATLAB command window.
%%img2nii.m-------------------------------------------- %Script to convert hdr/img files to nii. %This script uses SPM function, so you need to install SPM5 or later. %Kiyotaka Nemoto 05-Nov-2014 %select files f = spm_select(Inf,'img$','Select img files to be converted'); %convert img files to nii for i=1:size(f,1) input = deblank(f(i,:)); [pathstr,fname,ext] = fileparts(input); output = strcat(fname,'.nii'); V=spm_vol(input); ima=spm_read_vols(V); V.fname=output; spm_write_vol(V,ima); end
If you prefer FSL, use img2nii_fsl.sh. Save the script into a folder, add executable attribute using “chmod 755 img2nii_fsl.sh”.
Wild card can be used for selecting files.
#!/bin/sh #Image file type converter using fslchfiletype #This script converts various image files into NIFTI format (.nii) files. #K. Nemoto 19 Jan 2013 if [ $# -lt 1 ] ; then echo "Please specify the files you want to convert!" echo "Usage: $0 filename" exit 1 fi for file in "$@" ; do if [ -f $file ] ; then fslchfiletype NIFTI $file else echo "$file: No such file" fi done
Download img2nii_spm.m (Right-click and save).
Download img2nii_fsl.sh (Right-click and save).
SPM12の正式版が出て、気づいたのですが、spm_defaults.mの設定に関して、重要な変更が行われました。
今後は、spm_defaults.mは直接いじってはいけないことになりました。
これは、非常に理にかなっていることで、これまで、spm_defaults.mを修正しても、アップデートによってこれが上書きされてしまうことがありました。これを回避するために、新たな方法が導入されました。
「すぐできるVBM」のp.22 「8.SPMの設定」に関しての記載を以下のように訂正します。