一、背景
在2022年的一个帖子中,我写了一个Matlab脚本对功能连接(FC)矩阵进行单因素方差分析和事后检验。由于没有图形界面,这个脚本对于不会使用Matlab编程的人来说没啥用处。现在有了大语言模型(Large Language Models, LLMs),编程变得更容易,所以我借助LLM试着写了一个简单的图形界面程序(Graphical User Interface, GUI)来实现相同的功能。
二、程序的使用和输入输出
-
在附件的压缩文件中,包含两个名为FC_ANOVA_GUI.m和FC_ANOVA_Core.m的文件,前者用来生成一个图形界面,后者用来进行ANOVA分析。还包含一个名为ExampleData文件夹,在该文件夹下有三个子文件夹,命名为G1/G2/G3,分别存放着每一组被试的FC矩阵。这个样例数据来自于NBS工具包。
-
整个程序的分析过程是:读入每个被试的FC矩阵(矩阵中的每个元素表示任意两个脑区的皮尔逊相关系数)、提取下三角矩阵、对FC进行Fisher’s Z变换、对每个FC(也称为边)使用Matlab自带的anova1函数进行分析方差分析、使用Matlab自带的mafdr函数对方差分析的P值进行BH-FDR校正、对每个FC使用Matlab自带的ttest2函数进行(独立样本)双样本T检验。
-
在Matlab中,将当前路径切换到GUI程序所在目录(或者把GUI程序目录添加到搜索路径中),在命令行窗口中输入FC_ANOVA_GUI,会弹出如下图所示的界面,分别选择每组被试的FC文件以及保存分析结果的输出目录,然后选择Run ANOVA开始分析。
- 程序运行结束后,在指定的输出目录中,包含如下图所示的结果,其中ANOVA_Fmat.txt、ANOVA_pmat.txt、ANOVA_pmat_FDR.txt和ANOVA_sigmat.txt分别表示单因素方差分析中主效应的F值、P值、FDR校正后的P值、校正后P值是否显著的矩阵。G1G2_Tmat.txt、G1G2_pmat.txt分别表示事后检验中组1和组2双样本T检验的T值和P值的矩阵。G1G3*.txt和G2G3*.txt分别表示组1和组3、组2和组3比较的结果。
三、其他
这个程序我是在Linux系统下测试的,不确定在Windows下是否有问题。我对Matlab编程了解很少,所以很多地方需要优化,比如只能进行3组被试的分析、缺少对输入文件的检查(矩阵中可能包含缺失值)、缺少对结果的可视化等。为了确保结果的准确性,我在更为熟悉的R环境下进行了相同的分析,确保结果是一致的。尽管如此,这个程序仅用于学习交流,对于可能存在的错误,我不能负责。
FC_ANOVA.zip (320 KB)