AFNI安装/AFNI Installation

除了FSL和SPM,AFNI也是研究者常用的脑影像处理工具。官方提供了详尽的安装步骤(非管理员权限),点。这里做一些补充。

根据官方安装步骤的说明,在安装AFNI之前,需要首先安装几个依赖的package,包括libXp, tcsh,PyQt4, 和R。安装步骤参看上面提及的链接,下面几条命令用于检查自己的机器是否安装完成了上述依赖package。

rpm -qa | grep libXp
rpm -qa | grep tcsh

这两条命令会在terminal中print出相应package的文件名。

which R

正常情况下,上面这条命令会print出R的路径。

PyQt4是Python的一个工具包,下面检查是否安装完成PyQt4.

ipython
>from PyQt4 import QtCore
>

在Python中输入第二条命令后如果没有报错,就是安装完成了。

接下来可以按照官方安装步骤完后进行。在选择AFNI的版本时,如果机器有多个CPU,可以选linux_openmp或64位系统的linux_openmp_64;只有一个CPU的话,可以选linux_xorg7linux_xorg7_64

我用的Centos7,环境变量PATH采用~/.bashrc控制,而不是官方安装步骤中的.cshrc,所以在~/.bashrc中添加如下几行即可:

Read More

Scipy安装步骤

Scipy函数库是基于python做科学和工程计算中常用的库,其中包括了众多的线性代数、数值计算、图像和信号处理、稀疏矩阵等。在基于python做脑影像处理时,scipy也是最常用到的python库之一。下面记录安装scipy的步骤,备查。

系统环境:Centos 5.7 64bit

在非root权限下,需要把库安装在自己有权限的目录下,比如采用pip提供的—user参数将默认安装到.local/lib/python2.7/site-packages/中。

安装scipy涉及到的主要命令如下:

pip install –user scipy

不过一般情况下,你会碰到如下的问题:

Read More

这个5月

这个五月是一个折腾的五月,时间关系,简单罗列如下。

五月初,参加在北京举办的ISBI2014,第一次带着自己的poster在会场展示,虽然只是一个one-page paper,也是第一次自己一个人参加国际学术会议,经历难得。会上学习到很多,也结识了不少新朋友。

Read More

deploy时[non-fast-forward]reject问题解决方案

Github+Octopress rake deploy时[non-fast-forward]reject问题解决方案

好久没更新blog,今天写好文deploy时发现报错:

! [rejected]        master -> master (non-fast-forward)

在网络google了半下午,终于找到了解决方案:

更换目录,并更新:

cd octopress/_deploy
git pull origin master

跳出目录,重新deploy:
cd ..
rake deploy

问题解决。

Read More

Paired t or two-sample t-test

之所以谈这两种t检验方法,是因为一篇很有意思的问题,即Neurobiological basis of head motion in brain imaging。在介绍完两种t检验方法后在回来谈论这篇文章。

双样本t检验Two-sample t-test | 配对t检验Paired t-test

双样本t检验,也叫独立样本t检验。即考查两个相互独立的样本的均值的差异。(与配对t检验相比,这里的两组样本是没有配对信息的,比如比较男生和女生在方向感能力上的差异)

f1

其中s1和s2分别为两个样本的标准差,n1和n2为两个样本的样本量。此时,t值的自由度为n1-1和n2-1中较小的一个。

Note: 在假设两个样本的variance相等的情况下,自由度为n1+n2-2,这也是我们常见的自由度计算方式,SPSS中给出了假设方差相等的自由度,以及方差不等时根据两个样本各自的方差和样本量估计的自由度。感谢@斯图拉特 童鞋提醒 :)

当n1=n2=N时,可以简化为

f2

这时候自由度为n1+n2-2,即2N-2。

Read More

Install and Use R Package

安装:

  • Method 1:

Install from source
下载工具包, 比如irr包,用于计算ICC:

$ R CMD INSTALL irr_0.84.tar.gz -l /my/own/R-packages/

注:这是在Linux的Terminal中完成的。

  • Method 2:

Install from CRAN directly:

install.packages(“irr”, lib=”/my/own/R-packages/“)

注:这是在R中完成的。

上述两种方式有一个很明显的区别,即方法一不会自动下载安装irr包需要的依赖包,比如lpSolve包,而后一种方法则可以自动检查并下载需要的依赖包。

使用:

下面是如何使用R,在使用irr包中的函数之前,需要首先导入该包,也就是告诉R你需要调用哪个包里的函数,这个包在哪里:

Read More

动态网络矩阵 可视化

在过去的几年里,网络分析方法从社交网络辗转到人脑网络,火爆一时,也饱受诟病。不管怎样,网络分析方法确实给我们提供了一个新的观察和认识人脑的方式。

科学发展往往遵循一个“从一元到多元,从静态到动态”的演变规律,如今,研究者也不再满足分析一个单独的静态网络,而是开始试图从动态变化的视角观察人脑网络。这个动态可是短时的(比如一次扫描中人脑网络的变化),也可以是长时的(比如是在一天中不同时段人脑网络的变化,甚至是人的一生中脑网络的动态变化)。

通常,研究者采用一个矩阵来存储一个网络,矩阵中每个行或列表示一个node,而每个cell的值表示相应的两个node的连接强度。

网络矩阵

Read More

添加Endnote样式

学术论文投稿过程中一个重要的步骤是按照学术期刊要求整理manuscript的格式,其中参考文献的格式是很关键的一步。Endnote是参考文献管理的一个很好用的工具。

在具体操作过程中,期刊一般会指定参考文献的Endnote样式,或者提供专用样式下载。针对第一种情况,选择相应的样式即可,针对后一种情况,则需要首先将专用样式下载,然后加入到Endnote中。具体方式以Human Brain Mapping为例记录备查。

Read More

由一篇JN上的文章想到的

这周组会我报告的是薛贵老师发在JN上的一篇脑结构预测reading ability的文章。起初选择该文章是出于以下两点考虑:1. 近期做个体差异的工作相对多一些,在分析方法上可能有所借鉴;2. 写作思路上的借鉴。

这篇文章内容大致如下:

在以往存在功能和结构成像技术研究reading的加工机制和个体差异的神经基础的背景下,作者提出已有研究存在两个问题,一方面往往采用单一的reading task,而reading ability是一个复杂的能力,由多个成分构成;另一方面样本量相对偏小。然后作者针对这两点,展开自己的研究。这篇文章涉及到7个不同的reading task,作者首先做了因素分析找到其中的3个成分,并分别命名为phonological readingform-sound associationnaming speed。然后采用fMRI研究中常用的MVPA的方法采用VBM的结构数据分别对3个成分进行预测。最后也采用传统的一元分析方式与MVPA的结果做了简单的对比。

Read More

对surface参数做配对T检验:以睡眠剥夺实验为例

在脑科学的研究中,带有操纵的前后测实验相对于个体差异或组间比较的实验,分量要相对大很多。而前后测往往就涉及到统计上的配对T检验。下面以一个例子记录一下针对Freesurfer生成的surface上的参数做配对T检验(Paired T-test)的流程。一方面自己备查,另一方面也希望对有相同需求的同学有所帮助。

这是一个前后测的研究,中间睡眠剥夺约72小时,共8名男性参与测试。下面的分析旨在考查72小时的睡眠剥夺是否对被试的皮层厚度(thickness)产生了一定的影响。

Read More

From freesurfer labels to volumetric masks

最近的工作涉及到获取两个脑区的mask:Fusiform GyrusEntorhinal Cortex。考虑到被试间的结构变异,决定采用Freesurfer针对被试的T1像分割的结果,其中主要涉及到recon-all这个命令。

在每个被试分割生成的结果中有两个分割方案,分别是aparc.annot[]和aparc.a2009s.annot[]。查看一些材料后,发现在要获取的mask上,两个分割方案存在一些差别。其中,aparc.annot中有单独的Entorhinal Cortex,而在aparc.a2009s中则将其融合进了旁海马的结构中,这样为了获取Entorhinal Cortex,可以从aparc.annot中获取;这对Fusiform Gyrus,在aparc.annot中存在一个Fusiform Cortex,即包括了Gyrus和Sulcus的结构,而在aparc.a2009s.annot中则把Gyrus和Sulcus做了区分,这样Fusiform Gyrus就可以从aparc.a2009s.annot中获取了。

接下来简单的记录一下从label到mask的操作过程(以Entorhinal Cortex为例):

Read More

互信息杂谈

谈到互信息,必然涉及到“信息”和“熵”两个概念。信息论的创始人Shannon给信息的定义是“用来消除不确定性的东西”;而在信息论中,熵表示的是不确定性的度量,不确定性越大,熵越高。对于一个熵越大的随机变量,需要越多的信息量来确定它的值。

而互信息是一个用来在信息论中衡量两个信号关联程度的度量,后其被用来对两个随机变量间的关联程度进行描述。互信息I(X;Y)=H(X)-H(X|Y)直观的意思就是知道了Y的值以后,我们对X的不确定性的减少量,即Y的值透露了多少关于X的信息量。(Mutual information measures the reduction of uncertainty in X after observing Y. )

互信息是非负的,也是对称的。当I(X;Y)远大于0时,表示二者关联度大;当I(X;Y)=0时,二者无关。且I(X; Y) = I(Y; X)。虽然,在某些计算互信息的工具包中二者并不相等。

Read More

用Python获取命令行输出

Python在慢慢成为脑影像数据处理中的主流语言。而在做脑影像处理时,不免有时候需要用到一些别人开发好的工具包,而这些包并不都是python包。比如对方采用C写好了算法,我们觉得这个算法很好,用在自己的数据上应该会有不错的结果。我在处理脑影像数据时遇到下面的情况:

需要用的工具包是C写的,那第一件事就是需要在运行该脚本的机器上重新编译该代码为可执行的程序,也就是用make了。

产生可执行文件后,在Terminal中执行测试,可以正常运行,发现结果以print到屏幕上的形式给出。

通常我采用python进行脑影像数据的读写,在读取数据后并进行一定的预处理后,需要循环调用上面提及的可执行程序,并获取其输出的结果。这时候如何来实现呢?显然,常用的’os.system()’是搞不定的,引起它只会返回程序的执行状态。下面是在网上查到的几种方案,尝试过都可以work。


Read More

White Matter Tracts from one subject

下面是用一个被试的DTI数据追踪白质纤维束的结果,作为blog的测试发上了。

图中对主要的纤维束做了简单的标记,对识记白质结构有一定的好处。

上图:

Read More

Fronto-occipital asymmetry or torque

最近在查一些脑结构对称性的文章,碰到一个新鲜词,记录一下。

Torque,更正式的称呼是Yakovlevian torque,等价于Fronto-occipital asymmetry。对这个现象的描述是这样的:
Right prefrontal cortex is larger than the left, whereas the leftoccipital cortex is larger than the right。

Read More