乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用相關(guān)矩陣構(gòu)造多個格式的網(wǎng)絡(luò)文件(igraph,Gephi,ggraph)

       微生信生物 2021-01-16

      寫在前面

      outputgephi函數(shù):可以使用相關(guān)矩陣和微生物群落的phyloseq對象直接生成Gephi軟件需要兩個文件,直接保存即可。

      nodeEdge函數(shù):可以生成邊文件和節(jié)點文件,用于制作ggraph對象或者igraph對象。

      輸入文件

      #--導(dǎo)入所需R包#-------
      library(igraph)
      library(network)
      library(sna)
      library(ggClusterNet)
      library(tidyverse)

      ps = readRDS("../ori_data/ps_liu.rds")
      ps

      corMicro函數(shù)用于計算相關(guān)

      按照豐度過濾微生物表格,并卻計算相關(guān)矩陣,按照指定的閾值挑選矩陣中展示的數(shù)值。

      #----------計算相關(guān)#----
      result = corMicro (ps = ps,N = 0.02,r.threshold=0.6,p.threshold=0.05,method = "pearson")
      #--提取相關(guān)矩陣
      cor = result[[1]]
      dim(cor)

      構(gòu)造Gephi的輸入網(wǎng)絡(luò)文件

      gephi <- outputgephi(ps = result[[3]],cor = cor)
      edge_Gephi <- gephi[[1]]
      head(edge_Gephi)
      node_Gephi <- gephi[[2]]
      head(node_Gephi)

      nodeEdge函數(shù)生成節(jié)點和邊文件

      nodeEdge:用于將相關(guān)矩陣轉(zhuǎn)化為邊文件和節(jié)點文件。默認(rèn)zero = TRUE,將不相關(guān)的點去除。

      result4 = nodeEdge(cor = cor)

      #提取變文件
      edge = result4[[1]]
      dim(edge)
      #--提取節(jié)點文件
      node = result4[[2]]
      dim(node)

      構(gòu)造igraph對象

      #-------輸出igraph對象
      #--這里將為0的也添加進(jìn)去了,但是這些邊其實都是離散的。
      igraph = igraph::graph_from_data_frame(edge, directed = FALSE, vertices = node)
      #--------------------igraph對象
      # ## 邊的權(quán)重
      # E(igraph)$weight
      # #邊的顯著性標(biāo)簽
      # E(igraph)$p
      # # 節(jié)點屬性
      # V(igraph)$name
      #---------如何設(shè)置igraph的出圖相關(guān)可視化設(shè)置

      #------邊----------------------設(shè)置邊的顏色-一般而言我們按照正負(fù)相關(guān)分別上兩種顏色
      E.color <- E(igraph)$weight
      E.color <- ifelse(E.color>0, "red",ifelse(E.color<0, "blue","grey"))
      E(igraph)$color <- as.character(E.color)
      # 邊的粗細(xì)----------??
      # E(igraph)$width = abs(E(igraph)$weight)

      #-----------可視化---------設(shè)置layout
      l <- layout_nicely(igraph)
      l <- norm_coords(l, ymin=-1, ymax=1, xmin=-1, xmax=1)
      #--------------------出圖
      plot(igraph,main=paste( "network",sep = ""),
      layout=l,
      # vertex.shape="fcircle",
      # vertex.frame.color="white",
      vertex.label=NA ,
      vertex.frame.color="#984EA3",
      vertex.color="#984EA3",
      vertex.size =2,
      vertex.frame.alpha =0.5,
      edge.width=0.5,
      edge.lty=2,
      edge.curved=F,
      margin=c(0,0,0,0)
      #vertex.frame.width=5
      )

      構(gòu)造到 ggraph 對象

      library(tidygraph)
      library(ggraph)

      tbl_graph = tidygraph::tbl_graph(nodes = node, edges = edge, directed = FALSE)
      tbl_graph
      ggraph(tbl_graph , layout = 'linear', circular = TRUE) +
      # geom_edge_arc() +
      # geom_edge_fan() +
      geom_edge_link(aes(edge_colour = direction))+
      geom_node_point() # 對網(wǎng)絡(luò)的點進(jìn)行設(shè)置

      當(dāng)我們想把離散的點也展現(xiàn)

      設(shè)置zero = FALSE即可表示離散

      result4 = nodeEdge(cor = cor,zero = FALSE)
      #提取變文件
      edge = result4[[1]]

      #--提取節(jié)點文件
      node = result4[[2]]
      dim(node)

      tbl_graph = tidygraph::tbl_graph(nodes = node, edges = edge, directed = FALSE)
      tbl_graph
      ggraph(tbl_graph , layout = 'linear', circular = TRUE) +
      # geom_edge_arc() +
      # geom_edge_fan() +
      geom_edge_link(aes(edge_colour = direction))+
      geom_node_point() # 對網(wǎng)絡(luò)的點進(jìn)行設(shè)置

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多