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

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