暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

R| brainconn功能连接作图工具

懒麻蛇 2021-08-18
1909



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

  1. 定义node

  2. 定义edge

  3. 调整参数作图


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

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



node


软件自带模版有

  • 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的格式如下:

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


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

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

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

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




      默认设置下,只显示有连接的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)


        如果要设置每个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)




          对于只显示有连接的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)





            edge


            无向的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)


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

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



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

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


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

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



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

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





                      END



                      文章转载自懒麻蛇,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论