library("SNPRelate")
snpgdsVCF2GDS("populations.snps.vcf", “bemisia.gds")
snpgdsSummary(“bemisia.gds")
genofile <- openfn.gds(“bemisia.gds")
sample.id <- read.gdsn(index.gdsn(genofile, "sample.id"))
pop_code <- scan(“popmap_3.txt", what=character())
head(cbind(sample.id, pop_code))
pca <- snpgdsPCA(genofile,autosome.only=FALSE)
tab <- data.frame(sample.id = pca$sample.id,
pop = factor(pop_code)[match(pca$sample.id, sample.id)],
EV1 = pca$eigenvect[,1],
EV2 = pca$eigenvect[,2],
stringsAsFactors = FALSE)
head(tab)

c25 <- c(
     "dodgerblue2", "#E31A1C", # red
     "green4",
     "#6A3D9A", # purple
     "#FF7F00", # orange
     "black", "gold1",
     "skyblue2", "#FB9A99", # lt pink
     "palegreen2",
     "#CAB2D6", # lt purple
     "#FDBF6F", # lt orange
     "gray70", "khaki2",
     "maroon", "orchid1", "deeppink1", "blue1", "steelblue4",
     "darkturquoise", "green1", "yellow4", "yellow3",
     "darkorange4", "brown" )
 pie(rep(1, 25), col = c25)
col.list <- c(c25)
plot(tab$EV2, tab$EV1, col=col.list[as.integer(tab$pop)], 
xlab="eigenvector 2", ylab="eigenvector 1") 
legend("topright", legend=levels(tab$pop), pch=19, col=col.list[1:nlevels(tab$pop)], cex= .50)
pc.percent <- 100 
pc.percent
lbls <- paste("PC", 1:4, "\n", format(pc.percent[1:4], digits=2), "%", sep="") 
pairs(pca$eigenvect[,1:4], col=tab$pop, labels=lbls, cex= 1)
