【问题标题】:Trace attributes in edges of a R igraph在 R igraph 的边缘中跟踪属性
【发布时间】:2018-08-24 09:40:31
【问题描述】:

我的图表是

nodes = data.frame(GENES = c("GENE_A", "GENE_B", "GENE_C", "GENE_D", "GENE_E","GENE_F", "GENE_G", "GENE_H", "GENE_I", "GENE_J"),TYPES = c("LIGAND", "RECEPTOR", "PROTEIN", "RECEPTOR", "LIGAND", "PROTEIN", "LIGAND","RECEPTOR", "PROTEIN", "LIGAND"))

edges = data.frame(FROM=c("GENE_A","GENE_B","GENE_C","GENE_C","GENE_D","GENE_E","GENE_F","GENE_A","GENE_H","GENE_H","GENE_I","GENE_J","GENE_J"),TO=c("GENE_B","GENE_D","GENE_I","GENE_G","GENE_F","GENE_I","GENE_B","GENE_G","GENE_E","GENE_F","GENE_C","GENE_D","GENE_J"),STATUS=c('ACTIVE','INACTIVE','UNKNOWN','INACTIVE','INACTIVE','UNKNOWN','ACTIVE', 'ACTIVE','ACTIVE','INACTIVE','UNKNOWN',"ACTIVE","ACTIVE"))

g <- graph_from_data_frame(edges, directed = TRUE, vertices = nodes)

我想子图化并简化下一个节点d = data.frame(NODES = "GENE_B", "GENE_D", "GENE_H"),但每次我simplify我都会丢失边缘的所有属性。

作为输出,我想获得d 中具有直接边 (order = 1) 的节点图。我试过了 subg &lt;- induced.subgraph(graph = g, vids = unlist(neighborhood(graph = g, order = 1, nodes = d, mode = 'out'))) 但简化后我失去了边缘属性,无法追踪E(g)$STATUS

【问题讨论】:

    标签: r igraph


    【解决方案1】:

    对于某些图,在简化图中如何处理边缘属性并不是很清楚。 simplify 函数通过 edge.attr.comb 参数提供了很多选项。您的图表不是很复杂,因此默认值以外的几个选项都可以使用。例如,

    subg <- induced.subgraph(graph = g, 
        vids = unlist(neighborhood(graph = g, order = 1, nodes = d, mode = 'out')))
    S1 = simplify(subg)
    edge_attr(S1)
    named list()
    

    但是

    S2 = simplify(subg, edge.attr.comb ="first")
    edge_attr(S2)
    $STATUS
    [1] "ACTIVE" "ACTIVE"
    

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 2016-11-29
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多