文章中所用到的代码和文件可以关注公众号【大脑探路者】回复【大脑可视化】下载。
1. 用BrainNet Viewer自带的data画图
在MATLAB中输入BrainNet Viewer
点击左上角的Load Files
不管是画点图还是边图,都需要选择Surface File文件。画点图要加载第二个文件Data file(node),画边图加载第三个文件Data file(edge)。
Surface File文件夹
,这个一般是BrainNet中给定的模版,点击Browse...
选择模版BrainMesh_ICBM152.nv
(本次选择此模版)。接着根据自己的需求,如果画节点图就选择Data file(node),画边图就选择Data file(edge)。
1.1 画节点图
Data file(node)
节点数据文件,选择BrainNet Viewer安装包中的ExampleFile
文件中的ALL90
文件中的节点文件。
可以用记事本打开该节点文件Node_AAL90.node
。
可以看到其中有很多列,前三列为位置坐标,第四列为node列为节点颜色,第五列是节点大小,第六列为节点名称。我们可以将此文件放入Data file(node)
中。
1.2 画边图
Data file(edge)
边的数据文件,选择BrainNet Viewer安装包中的ExampleFile
文件中的ALL90
文件中的连边文件。
ExampleFiles
中提供了两种边文件,一个是加权连边Edge_AAL90_Weighted.edge
,一种是二值化后的连边文件Edge_AAL90_Binary.edge
。我们可以自己的需求将任一文件放入Data file(edge)
中。
然后点OK
会出现接下来的BrainNet_Option
的选项卡,在此选项卡中,可以自己调节Layout、Global、Surface、node、edge、Volume、image等,一般画功能连接图时不需要调节Volume
(画皮层图)。
2. 根据自己的数据画功能连接图
2.1 画节点图
Surface file
和上面的一样也是使用模版BrainMesh_ICBM152.nv
;
Data file(node)
根据自己的结果生成自己的node文件。
在MATLAB中命令行输入:
% 生成一个90x90的随机矩阵
data = rand(90, 90); %AAL模板总共有116个脑区,前90个是大脑
% 计算相关系数矩阵
R = corr(data);
for i=1:90
R(i,i)=0;%对称矩阵设置为0
end
A=find(R>0.25);%矩阵稀疏化,取大于0.25的为1,否则为0
R1=zeros(90,90);
R1(A)=1;%这个变量R1用在后续的边图
node=sum(R1) %算节点的度,即在画边的图中选那些点是有边的
node=node'; %将得到的node矩阵进行转置,进行转置后就是我们所需要的节点。
得到的node文件
:
将Node_ALL90.node
文件复制到一个新的Excel文件打开,此文件第五列为为我们要修改的列。
将代码里得到的node
复制到Excel中对应的第五列,进行替换,将修改好的内容复制到txt文件中。
将Node_AAL90_test.txt
文件后缀.txt
改为.node
文件保存,这个就是我们所需要的Node_AAL90_test.node
文件,我们可以将此文件放入Data file(node)
中。
然后点OK
会出现接下来的BrainNet_Option
的选项卡,先不管里面的内容,点击右下角的OK
。
输出如下图片:
如果想根据文件第四列来决定节点什么颜色,可以更改这里。
输出如下图片:
2.2 画边图
Data file(edge)
类似画点图,复制Edge_ALL90_Binary.edge
文件到一个新的Excel表。
用上述代码得到的R1
替换此Excel文件内容,保存到txt文件,再将后缀改为 .edge文件,就是我们所需要的 .edge文件
。
载入surface文件ICBM-152.nv
,载入上一步得到的node,edge文件就可以了,注意node,edge的边要修改相对应。