load("vsd.RData") cosine <- function(x, y) sum(x * y) / sqrt(sum(x^2) * sum(y^2)) for (cell in names(envs)) { with(envs[[cell]], { dist.cols <- 1 - cor(vsd) # Pearson # dist.cols <- dist(t(vsd)) # Euclidean # dist.cols <- 1 - sapply(1:ncol(vsd), function(i) sapply(1:ncol(vsd), function(j) cosine(vsd[,i], vsd[,j]))) # cosine outfile <- paste("vsd_", cell, "_cols.phylip", sep="") write(ncol(vsd), outfile) # matrix size header write.table(as.matrix(dist.cols), outfile, col.names=F, row.names=(1:ncol(vsd)), quote=F, append=T, sep=" ") }) }