R| brainconn功能连接作图工具

本文介绍了基于R的工具brainconn,用于在R环境中直接创建功能连接图,避免了数据导出到其他软件作图的步骤。尽管与BrainNet相比仍有不足,但其基本功能完善,易于上手。主要步骤包括定义节点和边,调整参数并作图。支持自定义节点模板,并提供多种预设模板。同时,详细展示了如何设置节点大小、颜色,以及根据连接强度调整边的宽度和颜色。此外,还支持3D输出和交互视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a323190182cc9d59160b36da26bdea89.png

brainconn是2020年新出的一个基于R的工具,实现在R中制作功能连接图,这样就无需导出数据用其他软件作图了。和BrainNet相比还是有一些不完善的地方,不过不影响基本的使用。和其他作图软件一样,比如BrainNet/Nilearn,作功能连接图的主要步骤就是:

  1. 定义node

  2. 定义edge

  3. 调整参数作图

软件很容易上手,只做简介。Vignettes在此:

https://sidchop.github.io/brainconn/articles/brainconn.html

4cd3e42c5b7416008f89f16f3f10ac26.png

node

bc20bc285deedc153221f0758e29e1c0.png

软件自带模版有

  • aal116

  • aal90

  • craddock200

  • dk68

  • dk82_aspree

  • dkt62,

  • gordon_333

  • shen_268

  • shen_368

  • schaefer1000_n7

当然也支持自定义node,加载工具包后,可以查看自定义node的例子,并且可以使用check_atlas来检查自定义node是否可用。

custom_atlas <- custom_atlas_example
check_atlas(custom_atlas)

自定义node的格式如下:

f6540c26ea917d9025ad45b04d696eea.png

可以看到,与BrainNet的文件相比少了两列,所以设置不同node的颜色和大小有一点麻烦。注意⚠️使用自定义模板,必须设置node颜色为同一个颜色,否则会报错。

使用软件自带模板,不同network的node默认用不同的颜色

brainconn(atlas ="schaefer300_n7", 
          conmat=example_unweighted_undirected, 
          node.size = 3, 
          view="ortho")

f49176ce70b3005eb91abb03d61ccb5c.png

也可以设置node.color为统一的颜色。

brainconn(atlas ="schaefer300_n7", 
          conmat=example_unweighted_undirected, 
          node.color = 'pink',
          node.size = 3, 
          view="top")

7a076acb2eb010414c0b9d527c9e03c3.png

默认设置下,只显示有连接的node。如果需要显示所有node的话,设置all.nodes

brainconn(atlas ="schaefer300_n7", 
          conmat=example_unweighted_undirected, 
          view="left", 
          node.size = 3, 
          node.color = "hotpink", 
          edge.width = 2, 
          edge.color="darkblue", 
          edge.alpha = 0.8, 
          all.nodes = T, 
          show.legend = F)

a6e9e88a025aeca654d2b217db8a605f.png

如果要设置每个node的大小,node.size使用vector即可。注意⚠️node.size输入的长度需要和显示的node数量对应。

d=rowSums(example_unweighted_undirected)
d=(d+1)*1.5
brainconn(atlas ="schaefer300_n7", 
          conmat=example_unweighted_undirected, 
          node.size = d,
          all.nodes = T)

85d0ac91b6115249c409f1b39e7d8ef6.png

对于只显示有连接的node的情况

d=rowSums(example_unweighted_undirected)
d <- d[d != 0] #remove nodes with no edges 
d=(d+1)*1.5
brainconn(atlas ="schaefer300_n7", 
          conmat=example_unweighted_undirected, 
          node.size = d)

d79c3875339facb583ad1db2a1de003e.png

7f8ae412b28c5fffa27252bbff014fca.png

edge

bcfc2f321abbdace82469dc07ca565b5.png

无向的edge,看一眼example:

example_unweighted_undirected

它是一个300x300的binary对称矩阵,300是网络中node的数量,1代表连接的边。如果有weight,则代表连接的强度。可以根据连接的强度设置edge的大小。

brainconn(atlas ="schaefer300_n7", 
          conmat=example_weighted_undirected, 
          node.size = 5,view="bottom", 
          scale.edge.width = c(1,3), 
          background.alpha = 0.4, 
          show.legend = F)

5f73bbed7b5e96e44b7baa73d870f7e6.png

也可以根据连接的强度设置edge的颜色。

brainconn(atlas ="schaefer300_n7", 
          conmat=example_weighted_undirected, 
          node.size = 7,
          view="bottom", 
          edge.width = 2, 
          edge.color.weighted = T, 
          show.legend = T)

7a4d1f0081fea903f5f477c093f9e2e8.png

如果连接矩阵是非对称的说明是有向连接,作图方法和无向连接相同。

brainconn(atlas ="schaefer300_n7", 
          conmat=example_unweighted_directed, 
          node.size = 4, 
          view="right", 
          edge.alpha = 0.6)

9faaa21a1830b46f007f6fc070374b60.png

注意⚠️,这里如果设置node.color的话,会显示所有的node,应该是一个小bug。

brainconn(atlas ="schaefer300_n7", 
          conmat=example_unweighted_directed, 
          node.size = 4, 
          node.color = 'pink',
          view="right", 
          edge.alpha = 0.6)

7829dfe2a6e46608ac791e7767f60e58.png

最后它还支持3d的输出和交互。

brainconn3D(atlas ="schaefer300_n7", 
    conmat=example_unweighted_undirected, show.legend = F)

1efd5329bb1ec18e3ad0cbe765c928f9.png

2f50c0673b040f974452f24005741ba2.png

—END—

549f052ae9a40b4af3c536e4414eba7e.png

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值