freesurfer使用教程 - 下載本文

freesurfer

freesurfer是一個處理大腦3D結構像數據,進行自動皮層和皮下核團分割的工具,用起來非常方便。freesurfer wiki上的教程也非常詳細,但是有一點,freesurfer的命令很復雜,很難準確地記住每個參數該怎么設置。本人比較懶,不愿記,也記不住,每次都需要打開wiki進行對照。由于wiki非常詳盡,每次都是在一大篇英文中搜索命令。在這里弄一個簡潔版,只把分析流程所用到的命令貼在這里,以便查閱。 一、數據處理

freesurfer分析3D,最好是原始的dcm數據,不要進行數據轉格式轉換和坐標變化,原始數據就可以。所以把數據放在sub1,sub2,sub3…….,這樣我們就可以用循環來做了。我們的計算機中心用的是PBS的系統,進行并行運算: #!/bin/bash

# SUBJECTS_DIR is where you want to put your result SUBJECTS_DIR=your_subjects_path

imge=`ls your_subjects_path/sub1/*.IMA|head -n 1` recon-all -s sub1 -i ${imge} recon-all -all -s $sub1

這就是分析一個被試的代碼,然后用前面介紹過的sed命令,把sub1替換成其他被試編號,就生成了其他被試代碼。然后在端口敲入命令:sh 代碼文件。數據就開始分析了。 二、數據檢查

數據檢查主要tkregister2、 tkmedit、tksurfer三個命令結合起來。但是在這種視覺檢查以前,應該先看前面recon-all.log文件是否報錯?墒莚econ- all.log文件好大了,怎么辦呢,用grep命令,查找一下文件里面有沒有”error”,并輸出含有“error”的行數: grep -n “error” recon-all.log

如果都沒有錯誤,那就OK.另外還有一個命令也很有意思,會自動幫我們察看是否存在top錯誤:

mris_euler_number sub1/surf/lh.orig mris_euler_number sub1/surf/lh.white mris_euler_number sub1/surf/lh.pial

如果這三個命令生成的數字完全一樣,就沒有top結構問題,然后我們再進行視覺檢查,首先檢查register:

tkregister2 --mgz --s sub1 --fstal --surf orig

然后檢查tkmedit 和tksurfer檢查白質、灰質分割問題。

tkmedit sub1 brainmask.mgz rh.white -aux wm.mgz -aux-surface lh.white tksurfer sub1 rh inflated

檢查的時候,一般在c130-170這部分slices問題比較嚴重,總是有腦膜被看成是灰質了,需要編輯brainmask.mgz,把它刪掉。具體檢查參看freesurfer wiki. 檢查完畢后,根據編輯過的地方重新跑一下數據。根據recon-all的步驟,先register,然后是-autorecon2-cp,然后是-autorecon2-wm, -autorecon2-pial,-autorecon3。當register出現問題時,幾乎需要完全重新算數據,其他的就從編輯過的最早步驟開始。例如,一個被試修改過cp、wm,那么就從cp開

始重新算。

recon-all -subjid sub1

recon-all -autorecon2-cp -autorecon3 -subjid sub2 recon-all -aurorecon2-wm -autorecon3 -subjid sub3 recon-all -autorecon2-pial -autorecon3 -subjid sub4

數據重新算后,還要一個一個地進行視覺檢查一下,才能進行下一步數據統計分析. 三、數據統計分析

開始進行數據分析了。首先把數據對齊到freesurfer自帶的fsaverage空間上。數據跑完后,會自動出現在被試目錄中。先把每個被試的數據疊加成一個4D的文件,而疊加順序事先要設計好,把其他相關的變量也放進去。這里舉一個簡單例子:三組被試,每組兩個被試:AA型、AB型、BB型,另外還有被試年齡數據,那么這個文件內容如下: GroupDescriptorFile 1 Title g3v1 Class AA Class AB Class BB Variables Age Input sub1 AA 22 Input sub2 AA 19 Input sub3 AB 20 Input sub4 AB 15 Input sub5 BB 22 Input sub6 BB 18

當編輯好這個這個文件后,命名為g3v1.fsgd,意思是被試分為三組,一個連續變量。就運行下面的命令:

mris_preproc --fsgd g3v1.fsgd --target fsaverage --hemi lh --meas \\thickness --out lh.thickness.00.mgz

mris_preproc --fsgd g3v1.fsgd --target fsaverage --hemi rh --meas \\thickness --out rh.thickness.00.mgz

上面的命令把被試的皮層厚度數據按照g3v1.fsgd中的被試順序排列成一個4D的文件,左右半球分別生成一個文件。但是這些數據沒有進行 smooth.然后我們進行10mm的smooth?梢杂胢ri_info lh.thickness.00.mgz查看文件信息,如是不是有6個被試等。

mris_surf2surf --hemi lh --s fsaverage --sval lh.thickness.00.mgz --\\fwhm 10 --cortex --tval lh.thickness.10.mgz

mris_surf2surf --hemi rh --s fsaverage --sval rh.thickness.00.mgz --\\fwhm 10 --cortex --tval rh.thickness.10.mgz

生成的文件lh.thickness.10.mgz和rh.thickness.10.mgz是最重要的數據文件.可以用mri_info命令察看數據信息。

下一步就要進行數據統計,在進行數據統計之前,我們還要做一些準備,舉上面的例子吧。

我想要檢驗三組被試皮層厚度是否存在差異,總體被試的皮層厚度與年齡的關系,每個組被試的皮層厚度與年齡的關系,不同組被試年齡與皮層厚度的關系是否有差異。我要做這些統計分析,就需要有design matrix. freesurfer默認design matrix從文件中讀取,這些文件叫做mtx文件。準備mtx文件需要首先計算回歸子的數據,公式為:Nregressors = Nclasses*(Nvariables+1) = 3*(1+1) = 6.這里我們的有三組,一個連續變量。所以有6各回歸子。 考察AA與AB的組間差異則為:1 -1 0 0 0 0 考察AA與BB的組間差異則為:1 0 -1 0 0 0 考察AB與BB的組件差異則為:0 1 -1 0 0 0

所有被試皮層厚度與年齡的關系:0 0 0 0.333 0.333 0.333 AA組內皮層與厚度的關系:0 0 0 1 0 0

AA組與AB組皮層與厚度關系是否存在差異:0 0 0 1 -1 0

AA組與AB和BB組皮層厚度與年齡的關系是否存在差異:0 0 0 1 -0.5 -0.5 現在我們準備好了上面的所有文件,分別命名為 1.mtx、2.mtx、3.mtx....... 7.mtx 終于可以最后統計了,命令如下:

mri_glmfit --y lh.thickness.10.mgz --fsgd g3v1.fsgd --C C1.mtx --C \\C2.mtx --C C3.mtx --C C4.mtx .... --C C 7.mtx --surf fsaverage lh --\\cortex --glmdir g3v1.lh

這樣結果就存放在g3v1.lh文件夾中,在這個文件夾中,還會生成7個子文件夾,每個文件夾對一個統計比較,里面最重要的文件時一個叫做sig.mgz的文件 四、數據結果的整理和報告

當統計分析完后,需要對數據進行查看和整理,到底顯著沒有啊。首先肉眼看一下吧,看一下AA與AB有沒有差異,p<0.01:

tksurfer fsaverage lh inflated -annot aparc.annot -fthresh 2 -overlay \\g3v1.lh/C1/sig.mgh 如果有激活,下一步就是進行校正,這里就做Clusterwise Correction。

mri_glmfit-sim --glmdir g3v1.lh/C1 --sim mc-z 5000 4 mc-z.abs --sim-sig \\abs --overwrite 這里用的Monte Carlo檢驗, 5000次, p<0.0001, Z進行絕對值比較,這樣可以看雙側了,如果只想看AA>AB,那么就用“mc-z.pos”和 “--sim-sig pos”。overwright就是要把原始數據覆蓋,生成一個新的CSD文件,放在C1文件夾中。這是一個文本文件。這一步需要幾個小時的時間,這一步完成后,查看校正后的結果:

tksurfer fsaverage lh inflated -annot g3v1.lh/C1/mc-\\z.abs4.sig.ocn.annot -fthresh 2 -curv -gray 或者

tksurfer fsaverage lh inflated -annot g3v1.lh/C1/mc-\\z.abs4.sig.ocn.annot -fthresh 2 -overlay g3v1.lh/C1/mc-\\z.abs4.sig.cluster.mgh 這就是最后的結果。





重庆快乐十分现场开奖