freesurfer皮层厚度分析 联系客服

发布时间 : 星期一 文章freesurfer皮层厚度分析更新完毕开始阅读7c3d0d2ce518964bce847c45

freesurfer 皮层厚度分析

深入了解网址:

https://surfer.nmr.mgh.harvard.edu/fswiki

http://home.52brain.com/forum.php?mod=viewthread&tid=25387&extra=page=2&filter=author&orderby=dateline&orderby=dateline

使用freesurfer 提取某个感兴趣区域的特征值(皮层厚度,面积,曲率,体积等)原则上说有两种方法: 直接法VS.间接法

直接法:利用freesurfer自有的parcellation 文件(aparc.annot 34 regions & aparc.a2005s.annot 84 regions)。

介绍:aparc.annot is Rahul Desikan, et al's, and a2005s is Christophe Destriux's. Both were derived from a group of brains labeled by hand. They are fairly different in the detail (Christophe's is very detailed). 异同:2005 consists of discrete sulcal and gyral labels with traditional anatomical names so there are a lot more labels (which is why Doug describes it as very detailed), whereas aparc in general collapses these into summary regions.

如果ROI就是annot已经定义的区域,那么一切就很好办。直接Overlay,提取即可。 不过一个未解之谜在于:这两个annot文件定义的区域与AAL、Brodmann模板定义的区域是否有一致性?

间接法;

比如说是V1,V2,MT区域的提取,这里涉及使用Fsaverage(已经给定了区域)。 mri_label2label --srclabel /usr/local/freesurfer/subjects/fsaverage/label/lh.V2.label --srcsubject fsaverage --trglabel V2_dinghai2mean.label --trgsubject dinghai --regmethod surface --hemi lh(核心函数)

label_thickness('dinghai/surf/lh.thickness','dinghai/label/lh.V1_dinghai2mean.label','dinghai/stats/lh_V1_thickness_sum.txt')

label_thickness是一个自定义的Matlab函数,其作用在于提取给定Label的区域的属性值。

为了方便的实现批处理,使用了下面的python程序处理: #创建一个namelist

import os import string

from string import Template

filepath = \fid = open(filepath,'r') lines = fid.readlines() fid.close()

filename=\fid = open(filename,'w')

for line in lines: sl1 = Template(\--srclabel /usr/local/freesurfer/subjects/fsaverage/label/lh.V2.label --srcsubject fsaverage --trglabel lh.V2_${x}.label --trgsubject ${x} --regmethod surface --hemi lh\cmd_sl1=sl1.substitute(x=line) cmd_sl1 = cmd_sl1.replace('\\r','') cmd_sl1 = cmd_sl1.replace('\\n','') cmd_sl2 = cmd_sl1.replace('V2','V1') cmd_sl3 = cmd_sl1.replace('V2','MT') cmd_sr1 = cmd_sl1.replace('lh','rh') cmd_sr2 = cmd_sl2.replace('lh','rh') cmd_sr3 = cmd_sl3.replace('lh','rh') # print cmd_s1 #os.system(\fid.write(cmd_sl1) fid.write('\\n')

fid.write(cmd_sl2) fid.write('\\n')

fid.write(cmd_sl3) fid.write('\\n')

fid.write(cmd_sr1) fid.write('\\n')

fid.write(cmd_sr2) fid.write('\\n')

fid.write(cmd_sr3) fid.write('\\n') fid.close()

============================================ 在Matlab中提取厚度更换上面的template为

sl1 = Template(\x}/stats/${x}_lh_V2_thickness_sum.txt');importfile('${x}/stats/${x}_lh_V2_thickness_sum.txt')\