sys_home<-Sys.getenv("HOME") if(sys_home=="/Users/prosikie"){home_path<-"/Users/prosikie/Desktop/new_december"} if(sys_home=="/home/mrosikie"){home_path<-"/home/mrosikie"} project_path<-file.path(home_path,"documentation","meta_suez") setwd(project_path) #file with result of rdp classification with EzbioCloud database rdp_classif_file<-file.path(project_path,"vsearch_data_November2017","rdp","meta_suez_EzBioCloud_centr_vsearch_rep_seq_2_97","meta_suez_centr_vsearch_rep_seq_2_97_tax_assignments.txt") rdp_table<-read.table(rdp_classif_file,as.is=T,sep="\t") #creating tax table get_tax<-function(x) { tax_split<-strsplit(x,";")[[1]] N_tax_fields<-length(tax_split) tax_vector<-c(tax_split,rep(NA,7-N_tax_fields)) return(tax_vector) } tax_table<-matrix(ncol=7,nrow=nrow(rdp_table)) for (xx in 1:nrow(rdp_table)){ tax_table[xx,]<-get_tax(rdp_table[xx,2]) } colnames(tax_table)<-c("kingdom","phylum","class","order","family","genus","species") rownames(tax_table)<-rdp_table[,1] #file with otus abundance output_folder<-file.path(project_path,"vsearch_data_November2017","OTU_tables_vsearch_centr_min2_97") load(file.path(output_folder,"meta_suez_OTU_search_table_centr_2_97.RData")) otus_table<-OTU_search_table_2_97 rm(OTU_search_table_2_97) ############################################# general_table_folder<-file.path(output_folder,"otus_tax_tables_vsearch_centr_min2_97") if(!file.exists(general_table_folder)){dir.create(general_table_folder)} general_table_folder_plus<-file.path(output_folder,"otus_tax_tables_plus_vsearch_centr_min2_97") if(!file.exists(general_table_folder_plus)){dir.create(general_table_folder_plus)} general_table_folder_pr<-file.path(output_folder,"otus_tax_tables_pr_vsearch_centr_min2_97") if(!file.exists(general_table_folder_pr)){dir.create(general_table_folder_pr)} Bacteria_table_folder<-file.path(output_folder,"otus_Bacteria_tax_tables_vsearch_centr_min2_97") if(!file.exists(Bacteria_table_folder)){dir.create(Bacteria_table_folder)} Bacteria_table_folder_plus<-file.path(output_folder,"otus_Bacteria_tax_tables_plus_vsearch_centr_min2_97") if(!file.exists(Bacteria_table_folder_plus)){dir.create(Bacteria_table_folder_plus)} Bacteria_table_folder_pr<-file.path(output_folder,"otus_Bacteria_tax_tables_pr_vsearch_centr_min2_97") if(!file.exists(Bacteria_table_folder_pr)){dir.create(Bacteria_table_folder_pr)} ##################################### #sorting tax_table<-tax_table[rownames(otus_table),] tax_table2<-cbind(OTU_name=rownames(tax_table),tax_table) write.csv(tax_table2,file=file.path(project_path,"vsearch_data_November2017","meta_suez_vsearch_centr_min2_97_tax.csv"),quote=F,row.names=F) #getting tables with all kingdoms kingdom_table<-apply(otus_table,2,function(x){sapply(split(x,tax_table[,'kingdom']),sum)}) species_table<-apply(otus_table,2,function(x){sapply(split(x,tax_table[,'species']),sum)}) genus_table<-apply(otus_table,2,function(x){sapply(split(x,tax_table[,'genus']),sum)}) family_table<-apply(otus_table,2,function(x){sapply(split(x,tax_table[,'family']),sum)}) class_table<-apply(otus_table,2,function(x){sapply(split(x,tax_table[,'class']),sum)}) order_table<-apply(otus_table,2,function(x){sapply(split(x,tax_table[,'order']),sum)}) phylum_table<-apply(otus_table,2,function(x){sapply(split(x,tax_table[,'phylum']),sum)}) for (xx in c("otus","species","genus","family","class","order","phylum","kingdom")){ write.csv(get(paste(xx,"_table",sep="")),file=file.path(general_table_folder,paste(xx,"_table.csv",sep="")),quote=F) } for (xx in c("otus","species","genus","family","class","order","phylum")){ assign(paste(xx,"_table_plus",sep=""),rbind(get(paste(xx,"_table",sep="")),Unclassified=colSums(otus_table)-colSums(get(paste(xx,"_table",sep=""))))) write.csv(get(paste(xx,"_table_plus",sep="")),file=file.path(general_table_folder_plus,paste(xx,"_table_plus.csv",sep="")),quote=F) } for (xx in c("otus","species","genus","family","class","order","phylum")){ plus_table<-get(paste(xx,"_table_plus",sep="")) assign(paste(xx,"_table_plus_pr",sep=""),t(t(plus_table)/colSums(plus_table))*100) write.csv(get(paste(xx,"_table_plus_pr",sep="")),file=file.path(general_table_folder_pr,paste(xx,"_table_plus_pr.csv",sep="")),quote=F) } kingdom_table_pr<-t(t(kingdom_table)/colSums(otus_table))*100 write.csv(kingdom_table_pr,file=file.path(general_table_folder_pr,paste("kingdom_table_pr.csv",sep="")),quote=F) #Bacteria only B_otus_table<-otus_table[tax_table[,1]=="Bacteria",] B_tax_table<-tax_table[tax_table[,1]=="Bacteria",] B_species_table<-apply(B_otus_table,2,function(x){sapply(split(x,B_tax_table[,'species']),sum)}) B_genus_table<-apply(B_otus_table,2,function(x){sapply(split(x,B_tax_table[,'genus']),sum)}) B_family_table<-apply(B_otus_table,2,function(x){sapply(split(x,B_tax_table[,'family']),sum)}) B_class_table<-apply(B_otus_table,2,function(x){sapply(split(x,B_tax_table[,'class']),sum)}) B_order_table<-apply(B_otus_table,2,function(x){sapply(split(x,B_tax_table[,'order']),sum)}) B_phylum_table<-apply(B_otus_table,2,function(x){sapply(split(x,B_tax_table[,'phylum']),sum)}) for (xx in c("B_otus","B_species","B_genus","B_family","B_class","B_order","B_phylum")){ write.csv(get(paste(xx,"_table",sep="")),file=file.path(Bacteria_table_folder,paste(xx,"_table.csv",sep="")),quote=F) } for (xx in c("B_otus","B_species","B_genus","B_family","B_class","B_order","B_phylum")){ assign(paste(xx,"_table_plus",sep=""),rbind(get(paste(xx,"_table",sep="")),Unclassified=colSums(B_otus_table)-colSums(get(paste(xx,"_table",sep=""))))) write.csv(get(paste(xx,"_table_plus",sep="")),file=file.path(Bacteria_table_folder_plus,paste(xx,"_table_plus.csv",sep="")),quote=F) } for (xx in c("B_otus","B_species","B_genus","B_family","B_class","B_order","B_phylum")){ plus_table<-get(paste(xx,"_table_plus",sep="")) assign(paste(xx,"_table_plus_pr",sep=""),t(t(plus_table)/colSums(plus_table))*100) write.csv(get(paste(xx,"_table_plus_pr",sep="")),file=file.path(Bacteria_table_folder_pr,paste(xx,"_table_plus_pr.csv",sep="")),quote=F) }