Matlab GUI小程序:计算网络内和网络间平均功能连接

一、背景

通常我们会根据一个分区模板将全脑划分为N个脑区,然后提取每个脑区的平均时间序列,计算任意两个脑区时间序列的相关系数,这样就得到了一个N*N的功能连接矩阵。这N个脑区可能属于M个网络(比如Yeo的七网络),根据N*N的功能连接矩阵和网络标签,我们可以得到一个M*M的网络功能连接矩阵,这个矩阵里的对角线元素表示一个网络内部的平均功能连接,非对角线元素表示任意两个网络之间的平均功能连接。这个Matlab小程序的目的就是根据功能连接矩阵和每个脑区的网络标签,计算网络功能连接矩阵。

二、程序的使用和输入输出

  1. 在附件的压缩文件中,包含两个名为Network_FC_GUI.mNetwork_FC_Core.m的文件,前者用来生成一个图形界面,后者用来进行实际的计算过程。还包含一个名为ExampleData的文件夹,该文件夹下有一个名为FC的子文件夹,存放着每个被试的功能连接矩阵;还有一个名为network_index.txt的文本文件,文件内容为每个脑区所属的网络标签(用不同的数字来表示不同的网络)。功能连接矩阵数据来源于NBS工具包。

  2. 整个程序的分析过程是:读入每个被试的FC矩阵(矩阵中的每个元素表示任意两个脑区的皮尔逊相关系数)、对FC进行Fisher’s Z变换、根据网络标签计算每个网络内部的平均功能连接和任意两个网络之间的平均功能连接。

  3. 在Matlab中,将当前路径切换到GUI程序所在目录(或者把GUI程序目录添加到搜索路径中),在命令行窗口中输入Network_FC_GUI,会弹出如下图所示的界面,分别选择所有被试的FC文件、网络标签文件、保存分析结果的输出目录以及输出文件的前缀(比如,输入文件是subject01.txt,前缀是NetFC,输出文件是NetFC_subject01.txt),然后选择Run Calculation开始分析。
    fig01.png

三、其他

这个程序我是在Linux系统下测试的,不确定在Windows下是否有问题。对Matlab版本应该没有要求。这个程序仅用于学习交流,对于可能存在的错误,我不能负责。如果遇到问题,欢迎回帖进行交流。
Network_FC.zip (37.8 KB)

计算出来的平均功能连接矩阵,将其生成jet图片后,应该如何分析啊,或者说怎么看?

一般就是对功能连接矩阵的元素进行统计分析,比如case-control的实验设计,就是对每个矩阵元素(表示两个网络之间的平均连接或者一个网络内部的平均连接)进行双样本T检验。

所以这个和gretna的差距是:这个可以自己构建一个小的网络从而来计算连接,而gretna是对模板进行的是吗?

gretna计算得到的是任意两个脑区的连接矩阵,如果希望根据每个脑区所属的网络(或者模块)对连接矩阵进行平均,得到网络内部和网络间的平均连接,可以使用上面的小工具。

老师我打开了network_index.txt


请问是不是我打开的方式不对啊。我用软件的时候看这应该是四个网络是吗?

不太清楚,可能是文本编码的问题。我是在Linux下测试的。

好的老师,我看看别的解码方式~

老师新年快乐,我想问下,比如说我发现了几个脑区,我想要把这几个脑区作为一个单独的网络,让后算这个网络的整体功能连接。这个网络可能并不是一个现有的网络。
这种方法可行么,能通过您这个软件实现么?
谢谢老师,新年快乐。

我觉得可以的,只要在network_index.txt文件里指定好哪些脑区属于一个网络就行。