suppressMessages(library(dplyr));
suppressMessages(library(ggplot2));
suppressMessages(library(reshape2));
suppressMessages(library(pheatmap));
suppressMessages(library(stringr));
suppressMessages(library(devtools));
#install_github('sinhrks/ggfortify', force=TRUE);
suppressMessages(library(ggfortify));

data<- read.table("merged_atac_rup_on_all_peak.bed.retag.rowname", header=T, row.names=1, sep="\t")

geneLength<- data[,3] -data[,2];

lab_data<- data[,-1]
lab_data<- lab_data[,-2]
lab_data<- lab_data[,-3]

cat("compute RPKM\n");
lab_data=apply(lab_data,2,function(x) x/sum(x))*10^9/geneLength;
#convert into log-scale
lab_data<- log(lab_data+1e-10);

lab_data_woAylor<- lab_data[,  -grep("Aylor", colnames(lab_data))]
#some samples without labels
lab_data_woAylor<- lab_data_woAylor[,grep("_", colnames(lab_data_woAylor))]

t_lab_data_woAylor<- t(lab_data_woAylor)


lab<- vector(mode="character", length=nrow(t_lab_data_woAylor))
gender<- vector(mode="character", length=nrow(t_lab_data_woAylor))
exposure<- vector(mode="character", length=nrow(t_lab_data_woAylor))
age<- vector(mode="character", length=nrow(t_lab_data_woAylor))
tissue<- vector(mode="character", length=nrow(t_lab_data_woAylor))
tumor<- vector(mode="character", length=nrow(t_lab_data_woAylor))


for(i in 1:nrow(t_lab_data_woAylor)){if(grepl('Mutlu_',rownames(t_lab_data_woAylor)[i])) {lab[i]<- "Mutlu";}; if(grepl('Walker_', rownames(t_lab_data_woAylor)[i])) {lab[i]<- "Walker";}; if(grepl('Bartolomei_', rownames(t_lab_data_woAylor)[i])) {lab[i]<- "Bartolomei";}; if(grepl('Dolinoy_', rownames(t_lab_data_woAylor)[i])) {lab[i]<- "Dolinoy";}; if(grepl('Zhibin_', rownames(t_lab_data_woAylor)[i])) {lab[i]<- "Zhibin";}; if(grepl('Biswal_', rownames(t_lab_data_woAylor)[i])) {lab[i]<- "Biswal";}; }

for(i in 1:nrow(t_lab_data_woAylor)){if(grepl('_F_',rownames(t_lab_data_woAylor)[i])) {gender[i]<- "female";} else{gender[i]<- "male" } }


for(i in 1:nrow(t_lab_data_woAylor)){if(grepl('PM2.5_',rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "PM2.5";}; if(grepl('Ctrl_', rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "Control";}; if(grepl('TBT_', rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "TBT";};  if(grepl('BPA_', rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "BPA";}; if(grepl('Filtered_Air_', rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "Filtered_Air";}; if(grepl('_As_', rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "As";}; if(grepl('Pb_', rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "Pb";}; if(grepl('DEHP_', rownames(t_lab_data_woAylor)[i])) {exposure[i]<- "DEHP";}}


for(i in 1:nrow(t_lab_data_woAylor)){if(grepl('_adt_',rownames(t_lab_data_woAylor)[i])) {age[i]<- "adult";} else{age[i]<- "weanling" } }

for(i in 1:nrow(t_lab_data_woAylor)){if(grepl('_Li_',rownames(t_lab_data_woAylor)[i])) {tissue[i]<- "Liver";} else{tissue[i]<- "Blood" } }

for(i in 1:nrow(t_lab_data_woAylor)){if(grepl('_Tumor',rownames(t_lab_data_woAylor)[i])) {tumor[i]<- "Tumor";} else{tumor[i]<- "Normal" } }

t_mydata_info<- cbind(t_lab_data_woAylor, lab, gender, exposure, age, tissue,tumor)

cat("begin drawing plots\n");

pdf("pca_by_lab.pdf");
autoplot(prcomp(t_lab_data_woAylor), data=t_mydata_info, colour="lab", shape="gender")
dev.off();

#pdf("pca_by_lab.pdf");
#autoplot(prcomp(t_lab_data_woAylor), data=t_mydata_info, colour="lab")
#dev.off();

pdf("pca_by_exposure.pdf");
autoplot(prcomp(t_lab_data_woAylor), data=t_mydata_info, colour="exposure", shape="gender")
dev.off();

pdf("pca_by_age.pdf");
autoplot(prcomp(t_lab_data_woAylor), data=t_mydata_info, colour="age", shape="gender")
dev.off();

pdf("pca_by_tissue.pdf");
autoplot(prcomp(t_lab_data_woAylor), data=t_mydata_info, colour="tissue", shape="gender")
dev.off();

pdf("pca_by_tumor.pdf");
autoplot(prcomp(t_lab_data_woAylor), data=t_mydata_info, colour="tumor", shape="gender")
dev.off();







