Question: Conversion from pairwise matrix to Cytoscape edge table is too slow
gravatar for nathanielbd
19 months ago by
nathanielbd0 wrote:

My code is similar to this. Given a matrix like this:

  a  b  c  d
a 1  NA 3  4
b NA 2  NA 4
d NA NA NA 4

It converts it to this:

a  a  1
a  c  3
a  d  4
b  b  2
b  d  4
d  d  4

The relevant code is as below:

  2 pears <- read.delim("pears.txt", header = TRUE, sep = "\t", dec = ".")
  3 edges <- NULL
  4 for (i in 1:nrow(pears)) {
  5         for (j in 1:ncol(pears)) {
  6                 if (![i,j]))) {
  7                         edges <- rbind(edges, c(rownames(pears)[i], colnames(pears)[j], pears[i,j]))
  8                 }
  9         }
 10         print(i)
 11 }
 12 colnames(edges) <- c("gene1", "gene2", "PCC")
 13 write.table(edges, "edges.txt", row.names = FALSE, quote = FALSE, sep = "\t")

When I run the code from a remote server in the background using screen -S on a 17804x17804 sparse (99% NA) matrix, it initially runs 5 print statements every 13 seconds. However, it has now slowed down to 7 print statements every minute. Why is the algorithm getting slower and slower as it progresses? Is there another way I can convert my matrix into a Cytoscape's format quicker?

cytoscape sparse-matrix R • 424 views
ADD COMMENTlink modified 19 months ago • written 19 months ago by nathanielbd0
gravatar for nathanielbd
19 months ago by
nathanielbd0 wrote:

OP answering their own question, but if anyone is looking back at this look here

ADD COMMENTlink written 19 months ago by nathanielbd0
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1559 users visited in the last hour