ออบเจ็กต์ igraph สามารถกำหนดทิศทางและไม่ได้กำหนดทิศทางได้หรือไม่?
ฉันกำลังพยายามใช้ 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)
ขอบคุณ!
คำตอบ
หากคุณจะยินดีที่จะพล็อตที่มีคุณสามารถนำรายชื่อของขอบเป็นผู้กำกับและการใช้งานแล้ว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 สำหรับขอบที่ไม่ได้บอกทิศทาง สิ่งนี้ใช้ไม่ได้เนื่องจากลูกศรสืบทอดรูปแบบของขอบที่เหลือ