macOSでのSPM12のコンパイル方法

ある方から、Apple M1のmacでSPMを起動しようとするとspm_check_installation(‘basic’)でエラーが出て起動しないという相談を受けました。

コンパイルしたら問題は解決しました。コンパイル方法を共有します。

ただし、その後、SPMのMLでこのディスカッションに乗ってみたところ、コンパイルは不要だよということも教えていただきました。なので、コンパイルに挑戦してみたい人向けと思ってください。(普通は不要です)

続きを読む

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

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

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

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

spm_update update

お試しあれ。

SPM12でのもうひとつのRender

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

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

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

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

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

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

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

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

MacOS上でSPM12のフォントの上半分が切れる時の対処法

先日、VBMチュートリアルにて、ある質問を受けました。

「MacのSPMでファイル選択の時にフォントの上半分が切れてしまうんですけど、解決法はないですか?」

具体例を示したほうがわかりやすいので、以下に示します。ファイル選択画面でこうなります。

これは気持ち悪いですよね。

いろいろ調べました。

その中で、どうも、spm12/matlabbatch/private の中にある
cfg_mlbatch_defaults.m

の中でフォントを規定しているようだというところにチュートリアルの最中に気づきました。

そして、今日、少し調査してみました。
SPMのバッチはSPM単独ではなく、Matlabbatchというものを使っているという知識はありました。

なので、GoogleでMatlabbatch font で調べたところ

以下の記事を見つけました。

https://en.wikibooks.org/wiki/SPM/Installation_on_64bit_Windows

その下にこんなことが書いてありました。

Edit spm/matlabbatch/private/cfg_mlbatch_defaults.m and modify lines:

cfg_defaults.cfg_ui.lfont.FontName = ‘Arial Narrow’;
cfg_defaults.cfg_ui.bfont.FontName = ‘Arial Narrow’;

Arial NarrowはMacにもあります。試してみました。

具体的には、cfg_mlbatch_defaults.m を開き、23行目にある

‘FontName’,get(0,’FixedWidthFontName’),…

‘FontName’,’Arial Narrow’,…

に変えます。

それで保存して、SPMを起動して、ファイル選択画面を出したところ…

フォントが綺麗に表示されるようになりました!

フォントがきになる方は試してみる価値があるかと思います。

ちなみに、ui.bfontの方は変えない方が良かったです。

Matlab R2016aでも動作するための修正版spm_figure.m

21/Oct/2016 SPM12がアップデートされました。このアップデートで下記の対処はもう必要なくなります。したがって、この記事は意味がないです。私のウェブサイトからの配布も終了します。

過日、Matlab R2016a日本語版では、SPM12を起動するときにエラーが出るという記事を投稿しました。その後、修正版spm_figure.mがあるという情報をいただき、さらに、開発者のGuillaume Flandinからも了承をいただきましたので、ここに修正版spm_figure.mを公開します。

修正方法は簡単で、下にあるspm_figure.mをダウンロードしていただき、SPM12の中にあるspm_figure.mと置き換えていただくだけです。
心配な方は、まず現在のspm_figure.mをspm_figure.m.origなどに修正してから置き換えられるとよいかと思います。

なお、Guillaume Flandinからの情報だと、この修正は、次のSPM12のアップデートで適応されるとのこと。
次のSPMアップデートが出た時点で、私のウェブサイトからの配布は終了します。

A Matlab script to generate ROI masks using an Atlas in SPM12

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)