[VBMEG-users:00125] Neuromagのデータについて

332 views
Skip to first unread message

Akira Hashizume

unread,
Jun 20, 2013, 11:22:16 AM6/20/13
to vbmeg...@lists.sourceforge.jp
広島大学の橋詰と申します。

VBMEG-users:00079以降のつなげ方がわからなかったの で、ここで質問させてい
ただきます。

生体磁気学会で佐藤先生からVBMEGを紹介していただきました。
NeuromagユーザーもVBMEGの恩恵に預かりたいと思い、いろいろ試しているので
すがうまくいきません。

VBMEGでNeuromagのデータを扱うには
Windows非対応のFIFF Accessが必要ということで
64bit CentOS 6.3とMatlab R2013aで試したのですが、
VBMEGでinvalid MEX-fileとエラーが出ました。
libstdc++.so.5がない、ということでインストールしたのですが動きません。
またFiff Accessもlibmagnet_ppd_1.2.soが開かないとかで動きませんでした。
Matlab 8では動作しないのかもしれません。

そこでFiff Accessとは異なる方法でFiffファイルをMatlabで読み、
「Standard data format MEG/EEG」 2.1 Minimum MEG-MAT formatの項を参考に

bexp Neuromagの平面型グラジオメータのデータ
pick 上記の座標にx方向に±8.4mm、z方向に0.3mmの2点
Qpick 上記の法線方向の単位ベクトルを2つ

Measurementは'MEG'

MEGinfoの
Measurementは'MEG'
deviceはNEUROMAG'
Nchannelは204
NsampleはMEGデータのサンプル数
Nrepeatは1
Pretriggerは0msecより前のサンプル数
SampleFreqはサンプリング周波数 1001.603(Hz)
sensor_weightは204個の単位行列と-1をかけた204個の単位行列を合わせて
0.0168cmで除し疎行列にしたもの

を○○meg.matという名前で保存しました。

しかしVBMEGのData Import→Import MEG dataはYOKOGAWAのみのようですし、
Tools→View MEG/EEG dataでjob_plot_megを開いてFile→Load MEG/EEG dataで読
み込んでも、
griddataのところでエラーが出て、それでお終いです。

VBMEGでNeuromagのデータを横河のデータと同等に扱うには、GUIのVBMEGではなく、
コマンドラインで、いろいろ工夫する必要があるのでは?と感じています。
御教示願えないでしょうか?

_________________________________________________________
VBMEG users mailing list
vbmeg...@lists.sourceforge.jp
Options:
http://lists.sourceforge.jp/mailman/listinfo/vbmeg-users
Archives:
http://groups.google.com/group/vbmeg-users

Ryosuke Hayashi

unread,
Jun 20, 2013, 10:28:07 PM6/20/13
to vbmeg...@lists.sourceforge.jp
橋詰様

ATR脳情報解析研究所の林と申します。
ご質問ありがとうございます。

job_plot_megですが、ATRの横河製のMEGデータでのみ、
動作確認を行なっておりまして、現状、おそらく正しく
Minimum MEG formatのデータを作成いただいたとしても、
ご報告いただいたエラーで落ちるかと思います。
調査いたしますので、しばらくお時間をください。

> VBMEGでNeuromagのデータを扱うには
> Windows非対応のFIFF Accessが必要ということで
> 64bit CentOS 6.3とMatlab R2013aで試したのですが、
> VBMEGでinvalid MEX-fileとエラーが出ました。
> libstdc++.so.5がない、ということでインストールしたのですが動きません。
> またFiff Accessもlibmagnet_ppd_1.2.soが開かないとかで動きませんでした。
> Matlab 8では動作しないのかもしれません。

こちらに同じ環境(64bit CentOS 6.3, MATLAB R2013a)がありましたので、
動作を確認し、2点ほどお試しいただきたいことを連絡させていただきます。

(1) invalid MEX-fileエラーについて
1.vbmeg.mを実行して、VBMEGにパスを通す
2.vb_mex_compile.mとvb_mex_compile_utility.mをそれぞれ実行する
* これにより、VBMEGのMEX関数が、ご使用の環境で再構築され、使用可能
になると思います。
  a = vb_repadd(1,2);
を実行していただき、invalid MEX-fileのエラーが発生しなくなっていれば成功です。

(2)Fiff Accessについて
1.Terminal(端末)上で、環境変数にFiff Accessのライブラリパスを設定する
setenv LD_LIBRARY_PATH /home/rhayashi/meg-pd-1.2-11.x86_64/opt/neuromag/lib/x86_64-pc-linux-gnu
* ちなみに、libmagnet_pd_1.2.soの実行権限は755となっております。
2.そのTerminalからMATLABを起動する
3.MATLAB上でFiff AccessのM-fileディレクトリにパスを通す
addpath('/home/rhayashi/meg-pd-1.2-11.x86_64/opt/neuromag/meg_pd_1.2');
4.VBMEG+Neuromag計測データインポート関数で、データをインポートする。
* 既にお試しいただいたかと思いますが、neuromag_to_megmat.mです。

お手数をおかけいたしますが、上記の手順で、データが取り込めるかどうか、
お試しいただければ幸いです。

以上、よろしくお願い致します。
--
ATR脳情報解析研究所 計算脳イメージング研究室
Ryosuke Hayashi(mailto:rhay...@atr.jp)
TEL:0774-95-1217(直通) 内線:1217

Akira Hashizume

unread,
Jun 21, 2013, 12:05:40 AM6/21/13
to vbmeg...@lists.sourceforge.jp
林先生

貴重な情報ありがとうございます。
後ほど結果報告させていただきます。
取り急ぎ、お礼まで。

橋詰 拝

Akira Hashizume

unread,
Jun 21, 2013, 10:03:56 AM6/21/13
to vbmeg...@lists.sourceforge.jp
林先生

結果を報告させていただきます。

(1) Cent OS 6.3でVBMEGが動作しないことについて
vb_mex_compile
vb_mex_compile_utility
を実行することで、Cent OS 6.3でvbmegが動作するようになりました。

(2)FIFF Accessが使えないことについて
ご指摘のとおりterminalを開き、
csh
setenv LD_LIBRARY_PATH libmagnet_pd_1.2.soのあるフォルダ
chmod 755 ligmagnet_pd_1.2.so
/usr/local/MATLAB/R2013a/bin/matlab
としてMATLABを起動し
addpath(loadfif.mのあるフォルダ)
とすればloadfifが使えるようになりました。

ありがとうございます。

(3)neuromag_to_megmatについて
脳磁図306ch+脳波21ch、600Hz 5秒間のデータをDATA_FIF fileとし
Polhemusの頭座標とMRI座標の位置合わせ情報付き、3次元MRIデータをMRI_FIF
fileとし
neuromag_to_megmat(DATA_FIF,MRI_FIF,出力ファイル名)
とすれば無事MEG-MATファイルが出力できました。
bexpには306chの脳磁図データ、bexp_extに21chの脳波データが出力されていま
した。
pickとQpickは408×3、MEGinfo.sensor_weightは204×408の±1/1.68と なっていま
した。
Neuromagの平面型のみに対応していて、magnetometerには未対応と思われました。
sensor_modeは特に指定していません。

job_plot_megで開こうとしたら、griddataのところでエラーが出ました。

マニュアルをよく読めば書いてあるのですが、追加の質問をさせてください。
FreeSurfer 5.1を使っているのですが、surfフォルダにlh.smoothwmや
rh.smoothwmはあるのですが、lh.smoothwm.ascや rh.smoothwm.ascはありません。
何かのコマンドでascii形式に変換するのでしょうか?


(2013/06/21 11:28), Ryosuke Hayashi wrote:

Ryosuke Hayashi

unread,
Jun 23, 2013, 9:32:12 PM6/23/13
to vbmeg...@lists.sourceforge.jp
橋詰様

ご報告ありがとうございます。
追加のご質問、
> 何かのコマンドでascii形式に変換するのでしょうか?
ですが、FreeSurferのmris_convertコマンドでasciiに変換します。

VBMEG users Manualでは、
Cortical surface model - FreeSurfer
http://vbmeg.atr.jp/docs/manual/manual_e.html#toc8
に記載しております。

mris_convert [lh/rh].smoothwm [lh/rh].smoothwm.asc
mris_convert [lh/rh].inflated [lh/rh].inflated.asc
mris_convert -c curv [lh/rh].smoothwm [lh/rh].curv.asc
mris_convert [lh/rh].sphere.reg [lh/rh].sphere.reg.asc
--
ATR脳情報解析研究所 計算脳イメージング研究室
Ryosuke Hayashi(mailto:rhay...@atr.jp)
TEL:0774-95-1217(直通) 内線:1217

Akira Hashizume

unread,
Jun 25, 2013, 10:26:02 AM6/25/13
to vbmeg...@lists.sourceforge.jp
林先生

FreeSurferを起動して
mri_convertとすれば、surf以下のファイルが、テキストファイルになることが
確認できました。
ファイル容量は元の2倍くらいになるみたいです。
お世話になりました。

橋詰 拝

Akira Hashizume

unread,
Jul 18, 2013, 7:58:35 PM7/18/13
to vbmeg...@lists.sourceforge.jp
橋詰@広大です。

Neuromagのデータで球モデルを使う場合、
neuromag_to_megmat.mの4番目の引数face_fileを使うことと記載されています。
face_fileについてはmanualのpositioning toolを参照のこと、と記載されてい
ます。
usermanual_1_0_2_en.pdf内をpositioningで検索しても、よくわからないので、
\positionin1_0_3\doc内のファイルを見ていたのですが、FastScanという装置の
説明みたいで、よくわかりません。

4番目の引数なしの場合、MEG.MATファイル内の変数MEGinfoのVcenterとVradius
が空行列になっています。
たぶん、球中心の座標と半径をいれれば、球モデルで計算することになるのだと
思いますが、
どの座標系をもちいるのか?など、情報を教えていただければ、ありがたく存じ
ます。

Vcenter=[0,0,0.04]
Vradius=0.07
とかでいいのでしょうか?

よろしくお願いいたします。

Ryosuke Hayashi

unread,
Jul 18, 2013, 9:54:56 PM7/18/13
to vbmeg...@lists.sourceforge.jp
橋詰様

ご質問ありがとうございます。

■FACE-MATファイルにつきまして
被験者登録のステップを完了しますと、デフォルトの設定で、
C:\subject_database\被験者名\被験者名.face.mat
に作成されます。
positioning toolのディレクトリの
conf/positioining.ini内に、作成場所が記載されています。

被験者登録の手順は、
positioning toolのディレクトリの
doc/MEG_positioning_manual_fastscan2_0.doc
のpp.19-25に記載しております。

MRI構造画像としましては、
convert_dicom_nifti.mで作成した、analyze画像
LASxxxx.hdr/.imgをご使用下さい。

被験者登録につきましては、MRI構造画像のみ使用いたします。
この段階ではFastscanは関係ありません。

■VBMEG座標系
原点:画像の中心
X: Left -> Right Y: Posterior -> Anterior Z: Inferior -> Superior
単位:メートル
です。

■FACE-MAT以外で球の中心座標・半径を得る方法
1.vb_sphere_head.mを実行する
2.analyze画像を指定する
3.各スライス(axial, coronal, sagittal)上で、
 球の外郭となって欲しい箇所を、それぞれ3点以上クリックする
(選択した点は、赤い点がスライス上に表示されます)
4.calculate sphereボタン(オレンジ色)を押すと、球中心と球が表示されます。
5.OKボタンを押すと、MATLABのWorkspaceにavwという変数が作成されます。
avw.centerが球の中心座標、avw.radiusが半径です。

■その他
リードフィールドの計算GUI
(Leadfield calculation: http://vbmeg.atr.jp/docs/manual/manual_e.html#toc22
にて、Center of the headの「View/Edit」ボタンを押すと、
vb_sphere_head.mが起動され、その時に球モデルを指定することもできます。

以上、よろしくお願い致します。
--
ATR脳情報解析研究所 計算脳イメージング研究室
Ryosuke Hayashi(mailto:rhay...@atr.jp)
TEL:0774-95-1217(直通) 内線:1217

Akira Hashizume

unread,
Jul 19, 2013, 9:23:08 AM7/19/13
to vbmeg...@lists.sourceforge.jp
林亮輔先生

早速の返信ありがとうございます。
取り急ぎ、御礼まで。

橋詰 拝復

Akira Hashizume

unread,
Jul 20, 2013, 10:51:51 AM7/20/13
to vbmeg...@lists.sourceforge.jp
林亮輔先生

橋詰@広大です。

以下の順で無事face.matを作成することができました。

【1】convert_dicom_nifti.mでLAS_被験者名.hdrとimgファイルの作成
1) cd ~\vbmeg1_0_2_a_0
2) vbmeg.m起動
3) cd ~\vbmeg1_0_2_a_0\functions\tool_box\load_NIFTI\convert_dicom
4) convert_dicom_niftiとして対象となるDICOMファイルを全部選択
5) LAS_被験者名、RAS_被験者名、被験者名のHDRとIMGファイル、dcm2ii.log
ファイルが作成される。
【2】positioning.mで球中心の計算
1) cd ~\positionig1_0_3
2) positioning.mの起動
3) Subject informationのName(Last First) 被験者名を記入し
4) Selectボタンを押して【1】で作成したLAS_被験者名.hdrを選択する
4) 自動的に頭皮patchが作成される。
5) select landmarkボタンを押す
6) right preauricular, left preauricular, nasionを十字カーソルで指定して
get pointボタンを押しOKボタンを押す。
7) select sphere pointボタンを押し、水平断、冠状断、矢状断の脳表の任意の
点(赤)をプロットし、calculate sphereボタンを押してOKボタンを押す。
8) registrationボタンを押して終了するとc:\subject_database\被験者名\被験
者名.face.matが作成される。

そしてやっと
【MEG.MATファイルの作成】
1) cd ..\neuromag
2) neuromag_to_megmat(NeuormagのMEGのファイル、Neuromagの位置あわせ後の
画像の3Dファイル、出力名、被験者 名.face.mat)を実行
3) 出力名.meg.matが作成される

までたどり着けました。

そこで質問なのですが、
NeuromagのMEGファイルにはdigitizeした、Nasion、左右のpreauricularなどの
基準点があるのですが、こ の基準点とVBMEG側の基準点は一致しなくてよいと理
解しているのですが、それでよろしいでしょうか?
できればNeuromagのファイルにある基準点やHPIの点を表示させたいのですが、
可能でしょうか?
球を作成する場合、3方向、1枚ずつ断面しか赤点を設定できないのでしょうか?
Neuromag側で同じように頭座標系で脳表をプロットした点をインポートすること
は可能でしょうか?

お手すきの時にご返答していただければ幸いに存じます。

Ryosuke Hayashi

unread,
Jul 21, 2013, 10:43:54 PM7/21/13
to vbmeg...@lists.sourceforge.jp
橋詰様

林です。ご報告、ご質問ありがとうございます。
以下、回答させていただきます。

>NeuromagのMEGファイルにはdigitizeした、Nasion、左右のpreauricularなどの
>基準点があるのですが、この基準点とVBMEG側の基準点は一致しなくてよいと理
>解しているのですが、それでよろしいでしょうか?
はい。Neuromagのデータの取り込みは、Neuromagのソフトウェアの中で行った
位置合わせ情報を取り込む前提で作成されています。FACE-MATは、FACE-MATファイル
内に保存されている、球モデル情報の参照にのみ使用され、基準点は参照されません。
positioning toolの位置合わせとは無関係です。

>できればNeuromagのファイルにある基準点やHPIの点を表示させたいのですが、可能でしょうか?
Neuromagのソフトウェアの位置合わせ結果を取り込んでいるので、
Neuromagのソフトウェア上の表示と同じになるかと思います。
もし、動作確認用ということでしたら、MEG-MATには基準点やHPIの情報は
保存おりませんので、下記のようにして下さい。
===
準備
 変数:face_file, data_fiffile, mri_fiffileにそれぞれパスを設定しておく

% load points from neuromag data file
[ch_info, pos_info] = neuromag_load_ch_info(data_fiffile);
points_head = [pos_info.fiducial; pos_info.hpi; pos_info.head_point];

% load voxel data and transform matrix from neuromag mri fiffile.
[voxel, mri_trans_info] = neuromag_load_mri_info(mri_fiffile);
Vdim = size(voxel);

% transform coordinates in head coordinate to VBMEG coordinate.
points_vbmeg = neuro_head_to_spm_right(points_head, mri_trans_info, Vdim);

% Plot
load(face_file);
vb_plot_marker(surf_face.V_reduce, surf_face.F_reduce, points_vbmeg);
===

>球を作成する場合、3方向、1枚ずつ断面しか赤点を設定できないのでしょうか?
はい。その通りです。

>Neuromag側で同じように頭座標系で脳表をプロットした点をインポートすることは可能でしょうか?
Neuromagのhead座標系のデータであれば、上に書いたサンプルでVBMEG座標系に変換可能です。

以上、ご質問の回答になっていれば幸いです。
--
ATR脳情報解析研究所 計算脳イメージング研究室
Ryosuke Hayashi(mailto:rhay...@atr.jp)
TEL:0774-95-1217(直通) 内線:1217

Akira Hashizume

unread,
Jul 22, 2013, 7:12:54 AM7/22/13
to vbmeg...@lists.sourceforge.jp
林亮輔先生

早速の返答ありがとうございます。

converet_dicom_nifti.mでMRIのDICOMファイルをNIFTIに変換し
positioning.mでFACE.MATを作成し
neuromag_to_megmat.mでNeuromagのデータをMEG.MATに変換し
project_mgrのData Importからimport cortical modelを選択してACT.MAT、
AREA.MAT、BRAIN.MATを作成し、
project_mgrのAnalysisからcalculate leadfieldを選択して、球モデルで
BASIS.MATを作成するまではできました。

project_mgrのAnalysisからestimate current varianceを選択し、
BRIN.MAT、BASIS.MAT、MEG.MAT、AREA.MAT、ACT.MATを指定し、EXECボタンを押
したのですが、
添付ファイルのように、
Output setting for Current variance file is invalid.となって先に進めません。
御指導いただければ幸いに存じます。

****************************************
橋詰顕 Akira HASHIZUME
e-mail: hash...@jinyoukai.or.jp
e-mail: wj8...@bma.biglobe.ne.jp
URL http://meg.aalip.jp/
たかの橋中央病院ガンマナイフセンター
〒730-0042 広島市中区国泰寺町2-4-16
TEL 082-242-1515 FAX 082-249-4929
広島大学脳神経外科
〒734-8551 広島市南区霞1-2-3
TEL 082-257-5227 FAX 082-257-5229
****************************************

Akira Hashizume

unread,
Jul 22, 2013, 7:23:04 AM7/22/13
to vbmeg...@lists.sourceforge.jp
添付ファイルがつかえないんですね。失礼しました。
林先生に添付ファイル付きで直接メールすることにします。

橋詰 拝

Ryosuke Hayashi

unread,
Jul 22, 2013, 9:22:21 PM7/22/13
to vbmeg...@lists.sourceforge.jp
橋詰様

このGUIでは、Current variance file(.bayes.mat)が作成されます。
GUIの下部にある、
・Current vaiance file output directory
・Current variance filename(.bayes.mat)
を指定して下さい。
それぞれ、出力ディレクトリ、出力ファイル名です。

出力ディレクトリはオプションです。
指定しない場合、Project root directoryの直下にファイルが出力されます。
よろしくお願い致します。



(2013/07/22 20:12), Akira Hashizume wrote:
--
ATR脳情報解析研究所 計算脳イメージング研究室
Ryosuke Hayashi(mailto:rhay...@atr.jp)
TEL:0774-95-1217(直通) 内線:1217

Akira Hashizume

unread,
Jul 23, 2013, 9:25:33 AM7/23/13
to vbmeg...@lists.sourceforge.jp
林亮輔先生

返信、ありがとうございます。
出力ファイルの記入がないことが原因でした。

実際にExecボタンを押したところ、
1000回の繰り返し演算が行われました。

--- New VBMEG estimation program ---

--- Initial VB-update iteration = 1000
--- Total update iteration = 1000
Tn= 1, Iter= 50, FE=4546245.908826, Error=7.938076e-01
Tn= 1, Iter= 100, FE=4546277.013296, Error=7.946809e-01
Tn= 1, Iter= 150, FE=4546277.388307, Error=7.947724e-01
Tn= 1, Iter= 200, FE=4546277.393799, Error=7.947825e-01
Tn= 1, Iter= 250, FE=4546277.393894, Error=7.947837e-01
Tn= 1, Iter= 300, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 350, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 400, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 450, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 500, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 550, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 600, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 650, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 700, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 750, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 800, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 850, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 900, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter= 950, FE=4546277.393896, Error=7.947838e-01
Tn= 1, Iter=1000, FE=4546277.393896, Error=7.947838e-01
Alpha is scaled back by bsnorm

300回くらいで計算が収束しているようなのですが、収束後計算を中止するとか
の機能はないのでしょうか?
また、ここのところの演算時間、結構かかるのですが、MEX化何かで高速化でき
ないでしょうか?

橋詰 拝
Reply all
Reply to author
Forward
0 new messages