igraph 객체에 방향 및 방향이없는 가장자리가있을 수 있습니까?
Aug 20 2020
나는 igraph / ggraph를 사용하여 네트워크를 플로팅하려고하는데, 일부 모서리는 방향이 있고 다른 모서리는 그렇지 않습니다.
내 edgelist의 작은 예. 여기에서 단백질 사이트 가장자리는 내가 지시하지 않은 것으로 표현하고 싶은 것입니다.
df <- data.frame(
stringsAsFactors = FALSE,
from = c("RPS6KA3", "RPS6KA3", "RPS6KA3", "RPS6KA3", "RPS6KA3"),
to = c("RPS6KA3_Y529-p",
"RPS6KA3_S227-p","RPS6KA3_S369-p","RPS6KA3_T577-p","ATF4"),
action = c("protein-site","protein-site",
"protein-site","protein-site","phosphorylation")
)
방향이 지정되지 않은 가장자리를 부분 집합 화하고 그렇게 지정하려고 시도했지만 작동하지 않았습니다.
library(igraph)
nw <- graph_from_data_frame(df)
E(nw)[E(nw)$action == "protein-site"] <- as.undirected(subgraph.edges(nw, E(nw)[E(nw)$action == "protein-site"] ))
누구든지 다른 제안이 있습니까? 내가 말했듯이, 나는 이것을 (ggraph를 사용하여) 플롯하고 싶습니다.
감사!
답변
3 desval Aug 20 2020 at 13:51
함께 플롯하려는 경우 igraph
지시에 따라 모서리 목록을 가져온 다음을 사용할 수 있습니다 edge.arrow.mode
.
nw <- graph_from_data_frame(df, directed = T)
plot(nw)

plot(nw,
edge.arrow.mode = ifelse(E(nw)$action=="protein-site", "-", ">"))

나는 ggraph
비슷한 것을 지원 하는지 확실하지 않습니다 . 화살표의 크기를 변경하고 방향이없는 가장자리에 대해 0으로 설정하는 것이 가능할 것이라고 생각했습니다. 화살표는 나머지 가장자리의 스타일을 상속하므로 작동하지 않습니다.