[BioC] R graphs: all paths lengths between two nodes in a directed graph
Victoria V Plamadeala
vplamade at gmu.edu
Wed Apr 22 05:23:44 CEST 2009
I would need help in obtaining all path lengths between two nodes in a directed graph.
Suppose I have the following directed graph (below) called "mygraph":
> library(graph)
>
> y <- as.character(seq(1,6))
> rel <- list(c(2,4), c(3,5), 6, 5, 6, NULL)
> edgelength <- list(c(0,1), c(0,2), 3, 0, 0, "NA")
>
> edL=vector("list", length=(length(y)))
> names(edL)=y
> for(l in 1:(length(y)))
+ {edL[[l]]=list(edges=rel[[l]], weights=edgelength[[l]])}
>
> mygraph=new("graphNEL", nodes = y, edgeL = edL, edgemode = "directed")
> mygraph
A graphNEL graph with directed edges
Number of Nodes = 6
Number of Edges = 7
> edges(mygraph)
$`1`
[1] "2" "4"
$`2`
[1] "3" "5"
$`3`
[1] "6"
$`4`
[1] "5"
$`5`
[1] "6"
$`6`
character(0)
> edgeWeights(mygraph)
$`1`
2 4
0 1
$`2`
3 5
0 2
$`3`
6
3
$`4`
5
0
$`5`
6
0
$`6`
numeric(0)
I am striving to get the lengths of all possible paths between nodes "1" and "6", which are:
1 --> 2 --> 3 --> 6 : length 0+0+3=3
1 --> 2 --> 5 --> 6 : length 0+2+0=2
1 --> 4 --> 5 --> 6 : length 1+0+0=1
What would be a clever way to accomplish this in R? Thank you.
More information about the Bioconductor
mailing list