annotate Calculate_attributes.R @ 2:40339590a08d draft default tip

Uploaded
author bornea
date Wed, 18 Oct 2017 15:23:21 -0400
parents e4a55256547a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
e4a55256547a Uploaded
bornea
parents:
diff changeset
1 library(igraph)
e4a55256547a Uploaded
bornea
parents:
diff changeset
2 library(dplyr)
e4a55256547a Uploaded
bornea
parents:
diff changeset
3 library(ggplot2)
e4a55256547a Uploaded
bornea
parents:
diff changeset
4
e4a55256547a Uploaded
bornea
parents:
diff changeset
5 NetworkAttributes <- function(edges,centrality = "eigenvector",community="fast.greedy") {
e4a55256547a Uploaded
bornea
parents:
diff changeset
6 "This function takes in a SIF formatted dataframe and returns a node attribute dataframe."
e4a55256547a Uploaded
bornea
parents:
diff changeset
7 "It performs community optimization and calculates a centrality metric."
e4a55256547a Uploaded
bornea
parents:
diff changeset
8 nodes <- data.frame(V1 = unique(c(as.character(edges[,1]),as.character(edges[,2]))))
e4a55256547a Uploaded
bornea
parents:
diff changeset
9 graph <- graph.data.frame(edges, directed = FALSE, vertices = nodes)
e4a55256547a Uploaded
bornea
parents:
diff changeset
10 graph = simplify(graph)
e4a55256547a Uploaded
bornea
parents:
diff changeset
11 if(community == "optimal"){V(graph)$comm <- membership(optimal.community(graph))} # computationally intensive
e4a55256547a Uploaded
bornea
parents:
diff changeset
12 if(community == "fast.greedy"){V(graph)$comm <- membership(fastgreedy.community(graph))} # for larger datasets\
e4a55256547a Uploaded
bornea
parents:
diff changeset
13 if(community == "edge.betweenness"){V(graph)$comm <- membership(edge.betweenness.community(graph))}
e4a55256547a Uploaded
bornea
parents:
diff changeset
14 if(community == "walk.trap"){V(graph)$comm <- membership(walktrap.community(graph))}
e4a55256547a Uploaded
bornea
parents:
diff changeset
15 if(community == "spin.glass"){V(graph)$comm <- membership(spinglass.community(graph))}
e4a55256547a Uploaded
bornea
parents:
diff changeset
16 if(community == "leading.eigenvector"){V(graph)$comm <- membership(leading.eigenvector.community(graph))}
e4a55256547a Uploaded
bornea
parents:
diff changeset
17 if(community == "label.propagation"){V(graph)$comm <- membership(label.propagation.community(graph))}
e4a55256547a Uploaded
bornea
parents:
diff changeset
18 if(community == "multilevel"){V(graph)$comm <- membership(multilevel.community(graph))}
e4a55256547a Uploaded
bornea
parents:
diff changeset
19
e4a55256547a Uploaded
bornea
parents:
diff changeset
20 if(centrality == "closeness"){V(graph)$closeness <- centralization.closeness(graph)$res}
e4a55256547a Uploaded
bornea
parents:
diff changeset
21 if(centrality == "betweenness"){V(graph)$betweenness <- centralization.betweenness(graph)$res}
e4a55256547a Uploaded
bornea
parents:
diff changeset
22 if(centrality == "eigenvector"){V(graph)$eigen <- centralization.evcent(graph)$vector}
e4a55256547a Uploaded
bornea
parents:
diff changeset
23 if(centrality == "PageRank"){V(graph)$page <- page_rank(graph)$vector}
e4a55256547a Uploaded
bornea
parents:
diff changeset
24
e4a55256547a Uploaded
bornea
parents:
diff changeset
25 return(get.data.frame(graph, what = "vertices"))
e4a55256547a Uploaded
bornea
parents:
diff changeset
26 }
e4a55256547a Uploaded
bornea
parents:
diff changeset
27 #calculate_attributes(nodes,edgelist,centrality = "betweenness",community="fastgreedy")
e4a55256547a Uploaded
bornea
parents:
diff changeset
28 args <- commandArgs(trailingOnly = TRUE)
e4a55256547a Uploaded
bornea
parents:
diff changeset
29 edgelist <- read.table(file=as.character(args[1]), stringsAsFactors = FALSE,sep="\t",header=FALSE)
e4a55256547a Uploaded
bornea
parents:
diff changeset
30 write.table(NetworkAttributes(edgelist,args[2],args[3]),"node_attr.txt",sep="\t",quote=FALSE,row.names=FALSE)