SurfStat Toolbox 使用说明

来源:互联网 发布:mac 玩网络游戏 编辑:程序博客网 时间:2024/06/14 04:15


SurfStat软件包画图使用说明


         Nature最近有一篇研究婴儿时期大脑体积,表面积对幼儿自闭症预测的研究:Early brain development in infants at high risk for autism spectrum disorder。方法部分使用了多种主流机器学习方法,看完能对机器学习预测方法的流程有一个比较清晰的认识,可以联系我liuyuchen0020@163.com获取文章资源以及讲解PPT。

        除了方法部分值得关注外,本文对大脑皮层图像的展示也是很常用的,今天我就来介绍怎么用MATLAB的SurfStat包画大脑皮层脑区,觉得Freeview的三脑图太丑的童鞋可以试试。


(一) 安装SurfStat


1. 下载地址:http://www.math.mcgill.ca/keith/surfstat/surfstat.zip

2. 安装步骤:保存到MATLAB下的Toolbox包里,然后set path里选中路径进行保存

3. 英文Mannul:http://www.math.mcgill.ca/keith/surfstat/


(二) 常用函数介绍


1.载入mask文件与pial文件

sig_curv = SurfStatReadData( {...
    'H:/qdec/lh_curv/lh-Diff-hc-pa-Intercept-curv/sig.mgh', ...             
    'H:/qdec/rh_curv/rh-Diff-hc-pa-Intercept-curv/sig.mgh'} );  
                     

 %用过QDEC的都知道它只能显示单面大脑,因此在执行完QDEC的差异分析后将其sig.mgh文件作为表面mask载入,左右脑分开载入,注意一定要按照左边的格式写,...,{}都是必须有的


pial = SurfStatReadSurf( {...
    'I:/lh.pial', ...
    'I:/rh.pial'} );           

%  载入左右脑的pial文件,即如上图示未膨胀的大脑皮层


SurfStatView(sig_curv, pial,'Curv(-log10(p))  HC vs Pat' );

%用SurfStatView函数显示大脑图,括号右边为图注,显示结果如下:

怎么跟Nature的显示得不一样?

大脑怎么是绿色的?

sig.mgh文件内的数值是从0开始的,能不能显示FDR校正后的结果?

下面Bar图的颜色可以换么?

图注文字放一行有点挤,能不能换行?


2. SurfStat功能进阶

FDR_sig_curv=sig_curv;for i = 163843:327684a= FDR_sig_curv(1,i);b=abs(a);if b>5.1850FDR_sig_curv(1,i)=a;elseFDR_sig_curv(1,i)=0;endendfor i = 1:163842a= FDR_sig_curv(1,i);b=abs(a);if b>2.4407FDR_sig_curv(1,i)=a;elseFDR_sig_curv(1,i)=0;endend
%这个程序将通过FDR校正后的P值筛选了出来,左脑(1:163842,>2.4407)右脑(163843:327684,>5.1850


view_curv = FDR_sig_curv;for i = 1:327684a = view_curv(1,i);if a==0    view_curv(1,i)=7;elseendendSurfStatView(view_curv, pial,{['HC vs Pat'];['Curv(-log10(p))']} );SurfStatColLim( [-max(view_curv), max(view_curv)] );
%为了显示好看将所有值为0的体素改为7,这样除了通过FDR校正的体素点其余体素点都显示成白色;

SurfStatColLim([]) 提供了bar图的范围;

['HC vs Pat'];['Curv(-log10(p))']}这段函数则是将 HC vs Pat 与 Curv(-log10(p))做了换行。

如图:



以上,通过修改mask文件可以对图像显示结果进行了初步的完善


3.平滑函数
pial.coord = SurfStatSmooth( pial.coord, pial, FWHM );
%原始的pial文件沟回非常明显,平滑一下会更加好看。pial.coord对应了pial文件内每个体素点的三维坐标,通过修改FWHM参数(如5,10,15,20...)可以得到平滑后的三维坐标,需要注意的是这行代码完成后原始的pial文件已经完成了平滑。


4.修改Bar图的色域

         参考这篇文章“matlab如何自定义colorbar_骑鲸人_新浪博客” http://blog.sina.com.cn/s/blog_68fff85f0102v4h1.html   仿照这篇文章我做了一个单色域的的colormap,有需要的可以联系我下载

                                                                    


         当然也可以直接选择 SurfStatColormap() 函数自定义的多种效果,如下图所示

                                            


大概先到这里吧,还有蛮多功能比如单边大脑显示(虽然很丑)可能慢慢从前面提到的英文mannul里扒,欢迎与我沟通~

原创粉丝点击