freesurfer使用教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
freesurfer使用教程
freesurfer
freesurfer是一个处理大脑3d结构像数据,进行自动皮层和皮下核团分割的工具,
用起来非常方便。
freesurferwiki上的教程也非常详细,但是有一点,freesurfer的命
令很复杂,很难准确地记住每个参数该怎么设置。
本人比较懒,不愿记,也记不住,每次
都需要打开wiki进行对照。
由于wiki非常详尽,每次都是在一大篇英文中搜索命令。
在
这里弄一个简洁版,只把分析流程所用到的命令贴在这里,以便查阅。
一、数据处理
freesurfer分析3d,最出色就是完整的dcm数据,不要展开数据转回格式切换和座
标变化,原始数据就可以。
所以把数据放到sub1,sub2,sub3…….,这样我们就可以用循环去搞了。
我们的计算机中心用的就是pbs的系统,展开循序运算:#!/bin/bash
#subjects_diriswhereyouwanttoputyourresultsubjects_dir=your_subjects_path
imge=`lsyour_subjects_path/sub1/*.ima|head-n1`recon-all-ssub1-
i${imge}recon-all-all-s$sub1
这就是分析一个被试的代码,然后用前面介绍过的sed命令,把sub1替换成其他被
试编号,就生成了其他被试代码。
然后在端口敲入命令:sh代码文件。
数据就开始分析了。
二、数据检查
数据检查主要tkregister2、tkmedit、tksurfer三个命令融合出来。
但是在这种视
觉检查以前,必须先看看前面recon-all.log文件与否收起。
可是recon-all.log文件不
好小了,怎么办呢,用grep命令,搜寻一下文件里面是不是”error”,并输入所含“error”的行数:grep-n“error”recon-all.log
如果都没有错误,那就ok.另外还有一个命令也很有意思,会自动帮我们察看是否存
在top错误:
mris_euler_numbersub1/surf/lh.origmris_euler_numbersub1/surf/lh.whitemris_eule
r_numbersub1/surf/lh.pial
如果这三个命令生成的数字完全一样,就没有top结构问题,然后我们再进行视觉检查,首先检查register:
tkregister2--mgz--ssub1--fstal--surforig
然后检查tkmedit和tksurfer检查白质、灰质分割问题。
tkmeditsub1brainmask.mgzrh.white-auxwm.mgz-aux-
surfacelh.whitetksurfersub1rhinflated
检查的时候,一般在c130-170这部分slices问题比较严重,总是有脑膜被看成是灰
质了,需要编辑brainmask.mgz,把它删掉。
具体检查参看freesurferwiki.检查完毕后,根据编辑过的地方重新跑一下数据。
根据recon-all的步骤,先register,然后是-autorecon2-cp,然后是-autorecon2-wm,-autorecon2-pial,-autorecon3。
当register
出现问题时,几乎需要完全重新算数据,其他的就从编辑过的最早步骤开始。
例如,一个
被试修改过cp、wm,那么就从cp开
始再次算是。
recon-all-subjidsub1
recon-all-autorecon2-cp-autorecon3-subjidsub2recon-all-aurorecon2-wm-autorecon3-subjidsub3recon-all-autorecon2-pial-autorecon3-subjidsub4
数据重新算后,还要一个一个地进行视觉检查一下,才能进行下一步数据统计分析.三、数据统计分析
已经开始展开数据分析了。
首先把数据对齐至freesurfer自带的fsaverage空间上。
数据跑完后,可以自动发生在被试目录中。
先把每个被先行的数据共振成一个4d的文件,而共振顺序事先必须设计不好,把其他有关的变量也装进。
这里握一个直观例子:三组被试,每组两个被试:aa型、ab型、bb型,另外除了被试年龄数据,那么这个文件内容如下:
groupdescriptorfile1titleg3v1classaaclassabclassbbvariablesageinputsub1aa22inp utsub2aa19inputsub3ab20inputsub4ab15inputsub5bb22inputsub6bb18
当编辑好这个这个文件后,命名为g3v1.fsgd,意思是被试分为三组,一个连续变量。
就运行下面的命令:
mris_preproc--fsgdg3v1.fsgd--targetfsaverage--hemilh--meas\\thickness--outlh.thickness.00.mgz
mris_preproc--fsgdg3v1.fsgd--targetfsaverage--hemirh--meas\\thickness--outrh.thickness.00.mgz
上面的命令把被试的皮层厚度数据按照g3v1.fsgd中的被试顺序排列成一个4d的文件,左右半球分别分解成一个文件。
但是这些数据没展开smooth.然后我们展开10mm的smooth。
可以用mri_infolh.thickness.00.mgz查阅文件信息,例如是不是存有6个被先
行等。
mris_surf2surf--hemilh--sfsaverage--svallh.thickness.00.mgz--\\fwhm10--cortex--tvallh.thickness.10.mgz
mris_surf2surf--hemirh--sfsaverage--svalrh.thickness.00.mgz--\\fwhm10--cortex--tvalrh.thickness.10.mgz
生成的文件lh.thickness.10.mgz和rh.thickness.10.mgz是最重要的数据文件.可
以用mri_info命令察看数据信息。
下一步就要展开数据统计数据,在展开数据统计数据之前,我们还要搞一些准备工作,握上面的例子吧。
我想要检验三组被试皮层厚度是否存在差异,总体被试的皮层厚度与年龄的关系,每
个组被试的皮层厚度与年龄的关系,不同组被试年龄与皮层厚度的关系是否有差异。
我要
做这些统计分析,就需要有designmatrix.freesurfer默认designmatrix从文件中读取,这些文件叫做mtx文件。
准备mtx文件需要首先计算回归子的数据,公式为:
nregressors=nclasses*(nvariables+1)=3*(1+1)=6.这里我们的有三组,一个连续变量。
所以有6各回归子。
考察aa与ab的组间差异则为:1-10000考察aa与bb的组间差异则为:10-1000考察ab与bb的组件差异则为:01-1000
所有被试皮层厚度与年龄的关系:0000.3330.3330.333aa组与内皮层与厚度的关系:000100
aa组与ab组皮层与厚度关系是否存在差异:0001-10
aa组ab和bb组与皮层厚度与年龄的关系与否存有差异:0001-0.5-0.5现在我们准
备好了上面的所有文件,分别命名为1.mtx、2.mtx、3.mtx.......7.mtx终于可以最后统
计数据了,命令如下:
mri_glmfit--ylh.thickness.10.mgz--fsgdg3v1.fsgd--cc1.mtx--c\\c2.mtx--
cc3.mtx--cc4.mtx....--cc7.mtx--surffsaveragelh--\\cortex--glmdirg3v1.lh
这样结果就存放在g3v1.lh文件夹中,在这个文件夹中,还可以分解成7个子文件夹,每个文件夹对一个统计数据比较,里面最重要的文件时一个叫作sig.mgz的文件四、数据
结果的整理和报告
当统计分析完后,需要对数据进行查看和整理,到底显著没有啊。
首先肉眼看一下吧,看一下aa与ab有没有差异,p<0.01:
tksurferfsaveragelhinflated-annotaparc.annot-fthresh2-
overlay\\g3v1.lh/c1/sig.mgh如果存有转化成,下一步就是展开校正,这里就搞clusterwisecorrection。
mri_glmfit-sim--glmdirg3v1.lh/c1--simmc-z50004mc-z.abs--sim-sig\\abs--overwrite这里用的montecarlo检验,5000次,p<0.0001,z进行绝对值比较,这样可以看
双侧了,如果只想看aa>ab,那么就用“mc-z.pos”和“--sim-sigpos”。
overwright就
是要把原始数据覆盖,生成一个新的csd文件,放在c1文件夹中。
这是一个文本文件。
这一步需要几个小时的时间,这一步完成后,查看校正后的结果:
tksurferfsaveragelhinflated-annotg3v1.lh/c1/mc-\\z.abs4.sig.ocn.annot-fthresh2-curv-gray或者
tksurferfsaveragelhinflated-annotg3v1.lh/c1/mc-\\z.abs4.sig.ocn.annot-fthresh2-overlayg3v1.lh/c1/mc-\\z.abs4.sig.cluster.mgh这就是最后的结果。