annotate chromeister/bin/make-cluster.R @ 0:7fdf47a0bae8 draft

Uploaded
author alvarofaure
date Wed, 12 Dec 2018 07:18:40 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
1 #!/usr/bin/env Rscript
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
2 library(ape)
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
3
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
4 args = commandArgs(trailingOnly=TRUE)
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
5
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
6 if(length(args) < 1){
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
7 stop("USE: Rscript --vanilla make-cluster.R <csv>")
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
8 }
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
9
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
10
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
11 path = args[1]
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
12
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
13 inputcsv <- read.csv(path, sep ="-", header=FALSE)
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
14
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
15 # Make indexing table
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
16
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
17 indexing_table <- table(inputcsv[,1])
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
18 n_species <- length(indexing_table)
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
19
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
20 for(i in 1:n_species){
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
21 indexing_table[i] <- i
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
22 }
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
23
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
24
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
25 distmat <- matrix(NA, nrow=n_species, ncol=n_species)
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
26 rownames(distmat) <- rownames(indexing_table)
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
27 colnames(distmat) <- rownames(indexing_table)
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
28
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
29 for(i in 1:n_species){
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
30 distmat[i,i] <- 0
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
31 }
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
32
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
33
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
34 for(i in 1:length(inputcsv[,1])){
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
35 redirX <- (as.character(inputcsv[i,1]))
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
36 redirY <- (as.character(inputcsv[i,2]))
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
37
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
38 distmat[indexing_table[redirX],indexing_table[redirY]] <- as.numeric(inputcsv[i,3])
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
39 distmat[indexing_table[redirY],indexing_table[redirX]] <- as.numeric(inputcsv[i,3])
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
40 }
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
41
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
42 cluster <- hclust(dist(distmat), method = "average")
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
43
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
44 # Rooted hierarchical cluster
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
45 #plot(cluster, main = "Clustering based on automatic scoring", xlab = "Organisms")
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
46
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
47 # Unrooted
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
48 plot(as.phylo(cluster), type = "unrooted", cex = 0.6, main = "Unrooted clustering based on automatic")
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
49
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
50 # Fan cluster
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
51 #plot(as.phylo(cluster), type = "fan")
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
52
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
53
7fdf47a0bae8 Uploaded
alvarofaure
parents:
diff changeset
54