*Fieldtrip

*********** MRIの処理の流れ(リンク) *************

***** data.gradとかがとれないことがある(ft_preprocessing, ft_read_header, etc)****

**** ft_timelockanalysisのcfg.blcはたぶん意味がない,のでマニュアルにない(exampleには出てくる)****

cfg.blc='yes';

cfg.blcwindow=[-0.1 0];

はcfg.baselineをセットしているのと同じらしい

参考:ttp://fieldtrip.googlecode.com/svn-history/r839/trunk/ft_timelockbaseline.m

**** fieldtripとmneのmatlab toolboxでfiffファイルが読み込める。一応同じ値が返ってくることを確認したので、そのスクリプト

**** fieldtripは内部でmneを使ってるぽいので(mneがあるときは)当たり前か

sFnamein='hogehoge.fif';% 入力するファイルの名前

% fieldtrip

cfg.dataset=sFnamein;

strDataFT=ft_preprocessing(cfg);

matDataFT=strDataFT.trial{1}; %matDataFTがデータ:MEG,EEG,トリガーのすべてのデータが含まれる

% mne

strHdrInfoMNE=fiff_setup_read_raw(sFnamein);

[matDataMNE vecTimesMNE]=fiff_read_raw_segment(strHdrInfoMNE);%matDataMNEがデータ

%subtract

subtr=max(max(abs(matDataMNE-matDataFT)));

%subtr=0だったら同じ数値になっているということ

基本的に0が返ってきて当たり前と思われるが一応確認した。

*** ft_volumerealignの座標系(mriから脳を切り出してvolume conduction model(=head model)なんか作るときに使う*****

cfg.coordsys='tal'だったらa,p,zを指定

cfg.coordsys='ALS_CTF'だったらl,r,nを指定

cfg.coordsysを指定しなかったら、cfg.method='interactive'にしてl,r,nを指定すればctfになる

cfg.coordsys='ctf'はどうもだめっぽい

cfg.coordsysには'neuromag'もある。ft_volumerealignのhelpを参照

cfg.coordsys = 'ctf' (default when specifying cfg.method = 'interactive' or 'fiducial') or 'spm' (default when specifying cfg.method = 'landmark'). Specifies the coordinate system of the head. This string specifies the origin and the axes of the coordinate system. supported coordinate systems are: 'ctf', '4d', 'yokogawa', 'neuromag', 'itab' 'spm', 'tal'.

***** 適当なエリア(amygdalaとか)のmaskを作るためのスクリプト*********

%% mriのロード. talでのrealign

cd('mriのデータ(チュートリアル参考)のあるディレクトリ');%mri.matのあるディレクトリ

load mri;

cfgRlgn=[];

cfgRlgn.method='interactive';%cfgRlgn.coordsysとかセットしているとうまくいかない

mri_realign_tal=ft_volumerealign(cfgRlgn,mri);%a,p,zをセット

%mri_realign.coordsys='RAS_TAL'になっているのを確認

%% mask情報を抽出:例 amygdala

cd('ここではaal_MNI_V4.imgのあるディレクトリ');%aal_MNI_V4.imgのあるディレクトリ

cfgVolLkup=[];

cfgVolLkup.atlas='aal_MNI_V4.img';%どっかのサイトから落としてくるテンプレートのファイル. afniかWFU atlases.これはWFU

cfgVolLkup.inputcoord='tal';%'tal'か'mni'か。mriのデータの座標系.ft_volumerealignでRAS_TALになるのでたぶんtal

cfgVolLkup.roi='Amygdala_L';%ft_read_atlasで上のaal_MNI_V4.imgから読み込んだラベルの1つ

%余談:ラベルは

%[atlas] = ft_prepare_atlas('aal_MNI_V4.img');

%のあとatlas.descr.nameで一覧できる

% 参考:fieldtripのチュートリアル(fieldtrip.fcdonders.nl/faq/how_can_i_determine_the_anatomical_label_of_a_source)

mask=ft_volumelookup(cfgVolLkup,mri_realign_tal);

%% ctf座標系でrealign

mri_realign_ctf=ft_volumerealign(cfgRlgn,mri);%l,r,nをセット:mri_realign_talをrealignしてもよいっぽい

%mri_realign_ctf.coordsys='ALS_CTF'になっているのを確認

%% ctf座標系のmriにmaskを付加

mri_realign_ctf.mask=mask;

mri_realign_ctf.seg=(mri_realign_ctf.mask)>0;%maskは0か1

%% 表示

cfgMRIplt=[];

cfgMRIplt.interactive='yes';%マウスでいろいろ場所を変えられる

cfgMRIplt.funparameter='seg';%上のmri_realign_ctf.segのsegのことだと思うので'mask'でもよいかも

cfgMRIplt.funcolormap='jet';%てきとー

cfgMRIplt.funcolorlim=[0 2];%色がほどよくなるよう上のjetと組み合わせて

cfgMRIplt.opacitylim=[0 1.5];%よくわかってない

ft_sourceplot(cfgMRIplt,mri_realign_ctf);%maskで決めた領域にmaskがかかっているか確認

*** 上のつながり:maskの1になっている座標をとってくる****

%% maskのデータの座標をとってくる

%% =3次元のmatrixから1の値の座標をとってくる

%% ここではsize(mask)=[255 255 255]

[nXsize nYsize nZsize]=size(mask);%nZsizeはいらないが

vecMask=find(mask);

nZ=floor((vecMask-1)/(nXsize*nYsize))+1;

nY=floor(mod((vecMask-1),(nXsize*nYsize))/nXsize)+1;

nX=mod((vecMask-1),nXsize)+1;

%nX,nY,nZがそれぞれの座標のベクトル

vecMaskValue=[];%実際に求めた座標の値が1になっているか

for ii=1:length(vecMask)

vecMaskValue(ii)=mask(nX(ii),nY(ii),nZ(ii));

end

% vecMaskValueが全部1になっているのを確認

*** beamformerとかでsource(脳)に落としたデータに時系列情報があるか?*******

Data at the source level usually has a single scalar value for each source location or voxel.

とあるので、普通はだめぽい

追記:It is possible to reconstruct the timecourses of sources in the brain using virtual channels. FieldTrip does not have functions that can plot that type of data.

やっぱりだめぽい

virtual sensorを置いた解析もできるようになっている(connectivity analysisのtutorialを参照)

******

***egi (128ch脳波計、netstation, net sensor)のファイルを読んだとき電極の位置情報が出てこないぽいが*****

http://mailman.science.ru.nl/pipermail/fieldtrip/2010-February/002620.html

the ".sfp" filesが必要だと

eeglabのsample_locsの中にGSN128.sfpとかGSN129.sfp(Czが入るのでこちらではないか)を読み込める

中身はただのテキスト

elec=ft_read_sens('GSN129.sfp')でおけ