diff --git a/5-create-community-network.R b/5-create-community-network.R index cc387f6395979ef546220643fd1198aa7c084cf1..e0e1ebcec9c5a19ddf03c6b97e95dfb0d554c60d 100644 --- a/5-create-community-network.R +++ b/5-create-community-network.R @@ -22,10 +22,10 @@ library(Hmisc) # determine the stage and transband #### - dev.stage <- 'im' + dev.stage <- 'rp' chr <- 5 - start <- 6000000 - end <- 8000000 + start <- 24000000 + end <- 26000000 n.perm <- 1000 # load required data #### @@ -291,7 +291,30 @@ plot(threshold.m$threshold, threshold.m$node, xlab = "rank threshold", - ylab = 'number of node') # 1552 for RP5 and 1248 for PD3 + ylab = 'number of node') # 1552 for RP4 and 1248 for PD2 + + # determine the stability of rank (RP4) + + degree.table <- data.frame(candidates = candidates) + + for(i in max(round(edges$interaction, 0)):1) { + print(i) + edge.thresholded <- filter(edges, interaction <= i) + degree.table.tmp <- as.data.frame(table(edge.thresholded$source)) + colnames(degree.table.tmp) <- c("candidates", i) + rank.degree.table <- merge(data.frame(candidates = candidates), + degree.table.tmp, all.x = T) + rank.degree.table$rank <- rank(-rank.degree.table[, 2], + na.last = T, ties.method = 'average') + degree.table[, paste0(i)] <- rank(-rank.degree.table[, 2], + na.last = T, ties.method = 'average') + } + + all.rank <- data.frame(candidates, + mean = round(apply(degree.table[2:ncol(degree.table)], 1, mean), 2), + sd = round(apply(degree.table[2:ncol(degree.table)], 1, sd), 2)) + all.rank <- all.rank[order(all.rank$mean), ] + write.csv(all.rank, paste0('networks/', dev.stage, chr, '-ranks.csv')) # visualize the network edges.th <- filter(edges, interaction <= 288)