BrainnetViewer的示意图如下
脑连接:
前言
实际上用BrainNetViewer来展示连接或脑区的人已经越来越少了,因为一旦连接增多,表示就非常不清晰。但作为一个经典的软件,还是有必要去了解。配置就不多说了,直接进入正题
点击load file:
可以看到有四个可以导入文件的地方
脑连接
如果要展示脑连接,我们只需要去制作Data file (node) 和 Data file (edge)
然后导入标准的脑模版(surface),就可以展示出连接。
- Surface file, 这都是自带的,在你下载BrainNetViewer的文件夹里可以看到。
选哪个其实都无所谓,我习惯选这个152smoothed的。 - node文件,首先node文件是.node结尾的,官方文件夹里也有
但众所周知,脑区模版不一定只有这么几个,如果你想用别的脑区node模版,就需要自己制作一个。
node文件实际上也是文本写的,是可以打开看的,打开之后发现它的格式是
X Y Z Value Size Label
所以同样的要写个代码制作这样的模版,首先要知道X Y Z是多少
这里的XYZ是指你的模版在标准脑上的坐标点(平均后的),也就是通过一个点来代表一个脑区。
这个文件在你的分割模版的网站上可以下载。我的模版中是里面有文件夹每个文件夹包括N个(脑区数量)txt,每一个打开都是密集的点坐标。
代码我就不展示了,有需要的直接让GPT给你写。通过计算每一个txt的平均值可以得到点坐标,然后脑区的名字你在自己的文档中也可以找得到。
3. 制作edge
相对来讲我觉得边是更重要的,因为大多数人都在用那几个node,但边肯定都是自己想展示的
import numpy as np
#给出边的坐标(FC)得到可以用于Brainnet Viewer的矩阵
#Brainnet Viewer的矩阵的意思就是在这个边的位置置1 其它为0
def save_edge(points):
# Dimensions of the array
width, height = 200,200 #假设你的模版将脑子分割成了200个脑区,那么功能连接矩阵的大小就是200x200
# Initialize the array with zeros
array = np.zeros((height, width), dtype=int)
# List of points to set as
# Set the specified points to 1
for x, y in points:
array[y, x] = 1 # Note: numpy arrays are accessed as array[y, x]
# Write the array to a txt file
return array
output_file_path = '/xxxx.edge'
points = [(189, 101),
(137, 199),
若干个]
array = save_edge(points)
np.savetxt(output_file_path, array, fmt='%d')
导入三个文件即可展示连接