繁体   English   中英

追踪图形边缘的属性

[英]Trace attributes in edges of a R igraph

我的图是

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 <- induced.subgraph(graph = g, vids = unlist(neighborhood(graph = g, order = 1, nodes = d, mode = 'out')))但是在简化之后我失去了边缘属性并且无法痕量E(g)$STATUS

对于某些图形,不清楚在简化图形中如何处理边属性。 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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM