In [ ]:
library(plyr, warn.conflicts=F)
library(dplyr, warn.conflicts=F)
library(tidyr, warn.conflicts=F)
library(ggplot2)
In [ ]:
kwip_mds = function (filename, pdfname=NULL, title=NULL, dim.mult=c(1, 1)) {
dm = as.matrix(read.delim(filename, header=T, row.names=1))
metadata = read.delim("chlamy_meta.tab")
metadata = metadata[match(row.names(dm), metadata$Run),]
mds = cmdscale(dm, k=2, eig=T, x.ret=T)
eigs = mds$eig
pct.contrib = round(eigs / sum(eigs) * 100)
#plot(cumsum(pct.contrib), type='l', ylim=c(0,100))
pts = mds$points
for (i in 1:ncol(pts)) {
pts[,i] = pts[,i] * dim.mult[i]
}
pts.df = as.data.frame(pts)
pts.df$Group = metadata$origin
cols = c("Laboratory"="light blue", "Northeast"= "blue", "Southeast"="dark green", "West"="red" )
p = ggplot(pts.df, aes(x=V1, y=V2, colour=Group)) +
geom_point(size=2) +
scale_color_manual(values = cols) +
xlab(paste0("Dim 1 (", pct.contrib[1], "%)")) +
ylab(paste0("Dim 2 (", pct.contrib[2], "%)")) +
theme_classic() +
theme(panel.border=element_rect(colour = "black", fill=NA),
legend.position="bottom")
if (!is.null(title)) {
p = p + ggtitle(title)
}
print(p)
if (!is.null(pdfname)) {
pdf(pdfname, width=3.5, height=3.5)
print(p)
dev.off()
}
}
In [ ]:
kwip_mds("kwip/flowers_wip.dist", title="All", dim.mult = c(-1,1), pdfname = "flowers_all.pdf")
In [ ]:
kwip_mds("kwip/flowers_wild_wip.dist", title="Wild", pdfname = "flowers_wild.pdf")
In [ ]:
kwip_mds("kwip/flowers_lab_wip.dist", title = "Lab", pdfname = "flowers_lab.pdf")
In [ ]: