areyoujokingme - 3 months ago 21
R Question

# R - igraph permute() method bug?

I want to node permute a graph. See the test graph I have created, below. When I use the permute() method from the igraph R library, no changes occur in the new graph permute() makes. What is happening?

``````testG <- vector(mode="list", length=6); #assign initial probabilities
testG = list("gene1"=0, "gene2"=0, "gene3"=0, "gene4"=0, "gene5"=0, "gene6"=0);
require(igraph)
vids.permuted <- c(6,5,4,3,2,1)
p2 <- permute(p, permutation=vids.permuted)
plot(p)
plot(p2)
``````

p:

p2:

I expect the clique in the permuted graph (p2) to be gene6, gene5, gene4, not gene1, gene2, and gene3 again, as in the original.

What is happening?

EDIT:

Per the response below, which is correct, I had another worry. When I rearrange the node names manually, how come when I check if all the edges are the same, and the degrees are the same of the original graph versus permuted graph, igraph says true?

``````p <- graph.adjacency(adjacency_test, mode="undirected", weighted=TRUE);
p2 <- p
V(p2)\$name <- V(p)\$name[sample(length(V(p)\$name), replace=FALSE)]
# p is for sure different from p2 now
plot(p, layout=layout.reingold.tilford)
plot(p2, layout=layout.reingold.tilford)
# But why are the degrees still the same, and edges still the same?
all(E(p)==E(p2))
degs1 <- degree(p)
degs2 <- degree(p2)
all(degs1==degs2)
``````

``````p2=p