У меня есть следующие данные:
links <- read.table(header = T, as.is = T, text = '
from to type
p13 p1 hyperlink
p13 p2 hyperlink
p13 p3 hyperlink
p13 p4 hyperlink
p13 p5 hyperlink
p13 p11 hyperlink
p12 p10 hyperlink
p12 p8 hyperlink
p12 p9 hyperlink
p14 p6 hyperlink
p14 p7 hyperlink
')
nodes <- read.table(header = T, as.is = T, text = '
id name node.type
p1 Pi Protein
p2 PPi Protein
p3 SAM Protein
p4 L-Met Protein
p5 H2O Protein
p6 SAH Protein
p7 Ade-Rib Protein
p8 LHCYS Protein
p9 tetrahydropteroyltri-L-glutamate Protein
p10 5-methyltetrahydropteroyltriglutamate-homocysteine Protein
p11 ATP Protein
p12 reaction1 Reaction
p13 reaction2 Reaction
p14 reaction3 Reaction
')
Я использую пакет networkd3 , у меня есть следующий код:
library("networkD3")
links.d3 <- data.frame(from=as.numeric(factor(links$from))-1,
to=as.numeric(factor(links$to))-1 )
nodes.d3 <- cbind(idn=factor(nodes$name, levels=nodes$name), nodes)
forceNetwork(Links = links.d3,
Nodes = nodes.d3,
Source="from",
Target="to",
NodeID = "name",
Group = "node.type",
linkWidth = 1,
linkColour = "#afafaf",
fontSize=12,
zoom=T,
colourScale = JS(ColourScale),
legend=T,
opacity = 0.8,
charge=-300,
arrows = FALSE,
bounded = TRUE,
opacityNoHover = 2,
width = NULL,
height = NULL,
clickAction = myClick)
p12, p13 и p14это реакции.Ожидаемый результат заключается в том, что каждый белок должен подключаться к реакции, кроме H2O, L-Met и LHCYS, эти три должны подключаться к двум отдельным реакциям.
Вот что я получаю:
Пример графика того, что я ожидаю:
Может кто-нибудь объяснить, почему и достичь результатаХочу?