From 948bf890a1282c52be1f7790f6907b913a415b06 Mon Sep 17 00:00:00 2001
From: "Gervaise H. Henry" <gervaise.henry@utsouthwestern.edu>
Date: Fri, 26 Oct 2018 08:41:23 -0500
Subject: [PATCH] Add leu geneset, add 3grp cust col tSNE and finalize PdPbPc
 leu ID code

---
 genesets/40425_2017_215_MOESM1_ESM.xlsx | Bin 0 -> 27512 bytes
 r.scripts/sc-TissueMapper.R             |  45 ++++
 r.scripts/sc-TissueMapper_RUN.PdPbPc.R  | 342 ++++++++++++++++++++++++
 3 files changed, 387 insertions(+)
 create mode 100755 genesets/40425_2017_215_MOESM1_ESM.xlsx
 create mode 100755 r.scripts/sc-TissueMapper_RUN.PdPbPc.R

diff --git a/genesets/40425_2017_215_MOESM1_ESM.xlsx b/genesets/40425_2017_215_MOESM1_ESM.xlsx
new file mode 100755
index 0000000000000000000000000000000000000000..5a813a3b5b13a22e578c267e8269b26ab51aca94
GIT binary patch
literal 27512
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
O?41F-afU5_p8XGQVU&je

literal 0
HcmV?d00001

diff --git a/r.scripts/sc-TissueMapper.R b/r.scripts/sc-TissueMapper.R
index 24d1548..5d14042 100644
--- a/r.scripts/sc-TissueMapper.R
+++ b/r.scripts/sc-TissueMapper.R
@@ -1257,6 +1257,51 @@ sctSNECustCol <- function(sc10x,i,bl,rd,file){
   dev.off()
 }
 
+sctSNE3CustCol <- function(sc10x,i,bl,rd,gn,file){
+  if (gn!=""){
+    gn.col <- NULL
+    if (length(sc10x@ident[sc10x@ident=="B-cells"])>0){
+      gn.col <- c(gn.col,"#BAE4B3")
+    }
+    if (length(sc10x@ident[sc10x@ident=="T-cells"])>0){
+      gn.col <- c(gn.col,"#74C476")
+    }
+    if (length(sc10x@ident[sc10x@ident=="Macrophages"])>0){
+      gn.col <- c(gn.col,"#31A354")
+    }
+    if (length(sc10x@ident[sc10x@ident=="Mast cells"])>0){
+      gn.col <- c(gn.col,"#006D2C")
+    }
+  }
+  sc10x <- SetAllIdent(object=sc10x,id=i)
+  if (any(sc10x@ident == "Unknown")){
+    sc10x@ident <- factor(sc10x@ident,levels=c(bl,rd,gn))
+  } else {
+    sc10x@ident <- factor(sc10x@ident,levels=c(bl,rd,gn,"Unknown"))
+  }
+  postscript(paste0("./analysis/diy/tSNE_",file,".",i,".CustCol.eps"))
+  if (length(bl)==1 & length(rd)==1 & length(gn)==1){
+    if (length(sc10x@ident[sc10x@ident=="Unknown"])>0){
+      plot <- TSNEPlot(object=sc10x,pt.size=2.5,do.label=FALSE,label.size=10,do.return=TRUE,vector.friendly=FALSE,colors.use=c(brewer.pal(5,"Blues")[5],brewer.pal(5,"Reds")[5],brewer.pal(5,"Greens")[5],"grey50"))
+    } else {
+      plot <- TSNEPlot(object=sc10x,pt.size=2.5,do.label=FALSE,label.size=10,do.return=TRUE,vector.friendly=FALSE,colors.use=c(brewer.pal(5,"Blues")[5],brewer.pal(5,"Reds")[5],brewer.pal(5,"Greens")[5]))
+    }
+    plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+    plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+    plot(plot)
+  } else {
+    if (bl!=""){
+      plot <- TSNEPlot(object=sc10x,pt.size=2.5,do.label=FALSE,label.size=10,do.return=TRUE,vector.friendly=FALSE,colors.use=c(brewer.pal((length(bl)+1),"Blues")[2:(length(bl)+1)],brewer.pal((length(rd)+1),"Reds")[2:(length(rd)+1)],gn.col))
+    } else {
+      plot <- TSNEPlot(object=sc10x,pt.size=2.5,do.label=FALSE,label.size=10,do.return=TRUE,vector.friendly=FALSE,colors.use=brewer.pal((length(rd)+1),"Reds")[2:(length(rd)+1)])
+    }
+    plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+    plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+    plot(plot)
+  }
+  dev.off()
+}
+
 sctSNEbwCol <- function(sc10x,i,file,files){
   sc10x <- SetAllIdent(object=sc10x,id=i)
   sc10x@ident <- factor(sc10x@ident,levels=c("Epi","BE","LE","OE1","OE_SCGB","OE2","OE_KRT13","St","Fib","SM","Endo","Leu","Unknown",1:50))
diff --git a/r.scripts/sc-TissueMapper_RUN.PdPbPc.R b/r.scripts/sc-TissueMapper_RUN.PdPbPc.R
new file mode 100755
index 0000000..43fabef
--- /dev/null
+++ b/r.scripts/sc-TissueMapper_RUN.PdPbPc.R
@@ -0,0 +1,342 @@
+gc()
+library(methods)
+library(optparse)
+library(Seurat)
+library(readr)
+library(fBasics)
+library(pastecs)
+library(qusage)
+library(RColorBrewer)
+library(monocle)
+library(dplyr)
+library(viridis)
+library(readxl)
+
+source("../r.scripts/sc-TissueMapper.R")
+
+#Create folder structure
+setwd("../")
+if (!dir.exists("./analysis")){
+  dir.create("./analysis")
+}
+if (!dir.exists("./analysis/qc")){
+  dir.create("./analysis/qc")
+}
+if (!dir.exists("./analysis/qc/cc")){
+  dir.create("./analysis/qc/cc")
+}
+if (!dir.exists("./analysis/tSNE")){
+  dir.create("./analysis/tSNE")
+}
+if (!dir.exists("./analysis/tSNE/pre.stress")){
+  dir.create("./analysis/tSNE/pre.stress")
+}
+if (!dir.exists("./analysis/pca")){
+  dir.create("./analysis/pca")
+}
+if (!dir.exists("./analysis/pca/stress")){
+  dir.create("./analysis/pca/stress")
+}
+if (!dir.exists("./analysis/violin")){
+  dir.create("./analysis/violin")
+}
+if (!dir.exists("./analysis/violin/stress")){
+  dir.create("./analysis/violin/stress")
+}
+if (!dir.exists("./analysis/table")){
+  dir.create("./analysis/table")
+}
+if (!dir.exists("./analysis/tSNE/post.stress")){
+  dir.create("./analysis/tSNE/post.stress")
+}
+if (!dir.exists("./analysis/cor")){
+  dir.create("./analysis/cor")
+}
+if (!dir.exists("./analysis/tSNE/lin")){
+  dir.create("./analysis/tSNE/lin")
+}
+if (!dir.exists("./analysis/tSNE/epi")){
+  dir.create("./analysis/tSNE/epi")
+}
+if (!dir.exists("./analysis/tSNE/st")){
+  dir.create("./analysis/tSNE/st")
+}
+if (!dir.exists("./analysis/tSNE/leu")){
+  dir.create("./analysis/tSNE/leu")
+}
+if (!dir.exists("./analysis/tSNE/merge")){
+  dir.create("./analysis/tSNE/merge")
+}
+if (!dir.exists("./analysis/pca/ne")){
+  dir.create("./analysis/pca/ne")
+}
+if (!dir.exists("./analysis/tSNE/ne")){
+  dir.create("./analysis/tSNE/ne")
+}
+if (!dir.exists("./analysis/violin/ne")){
+  dir.create("./analysis/violin/ne")
+}
+if (!dir.exists("./analysis/tSNE/FINAL")){
+  dir.create("./analysis/tSNE/FINAL")
+}
+if (!dir.exists("./analysis/deg")){
+  dir.create("./analysis/deg")
+}
+if (!dir.exists("./analysis/cca")){
+  dir.create("./analysis/cca")
+}
+if (!dir.exists("./analysis/diy")){
+  dir.create("./analysis/diy")
+}
+if (!dir.exists("./analysis/pseudotime")){
+  dir.create("./analysis/pseudotime")
+}
+
+#Retrieve command-line options
+option_list=list(
+  make_option("--p",action="store",default="DPrF",type='character',help="Project Name"),
+  make_option("--g",action="store",default="ALL",type='character',help="Group To analyze"),
+  make_option("--lg",action="store",default=500,type='integer',help="Threshold for cells with minimum genes"),
+  make_option("--hg",action="store",default=3000,type='integer',help="Threshold for cells with maximum genes"),
+  make_option("--lm",action="store",default=0,type='numeric',help="Threshold for cells with minimum %mito genes"),
+  make_option("--hm",action="store",default=0.1,type='numeric',help="Threshold for cells with maximum %mito genes"),
+  make_option("--lx",action="store",default=0.2,type='numeric',help="x low threshold for hvg selection"),
+  make_option("--hx",action="store",default=5,type='numeric',help="x high threshold for hvg selection"),
+  make_option("--ly",action="store",default=1,type='numeric',help="y low threshold for hvg selection"),
+  make_option("--cc",action="store",default=TRUE,type='logical',help="Scale cell cycle?"),
+  make_option("--cca",action="store",default=50,type='integer',help="Number of CCAs to cacluate"),
+  make_option("--acca",action="store",default=30,type='integer',help="Number of CCAs to align"),
+  make_option("--pc",action="store",default=50,type='integer',help="Number of PCs to cacluate"),
+  make_option("--res.prestress",action="store",default=1,type='numeric',help="Resolution to cluster, pre-stress"),
+  make_option("--st",action="store",default=TRUE,type='logical',help="Remove stressed cells?"),
+  make_option("--stg",action="store",default="dws",type='character',help="Geneset to use for stress ID"),
+  make_option("--cut.stress",action="store",default=0.9,type='numeric',help="Cutoff for stress score"),
+  make_option("--res.poststress",action="store",default=0.5,type='numeric',help="Resolution to cluster, post-stress"),
+  make_option("--cut.ne",action="store",default=0.999,type='numeric',help="Cutoff for NE score")
+)
+opt=parse_args(OptionParser(option_list=option_list))
+rm(option_list)
+if (opt$lm==0){opt$lm=-Inf}
+
+load("./analysis/sc10x.Rda")
+
+for (i in c("Pb","Pc","Pd")){
+  if (!dir.exists(paste0("./analysis/tSNE/post.stress/",i))){
+    dir.create(paste0("./analysis/tSNE/post.stress/",i))
+  }
+    if (!dir.exists(paste0("./analysis/tSNE/lin/",i))){
+    dir.create(paste0("./analysis/tSNE/lin/",i))
+  }
+  if (!dir.exists(paste0("./analysis/tSNE/epi/",i))){
+    dir.create(paste0("./analysis/tSNE/epi/",i))
+  }
+  if (!dir.exists(paste0("./analysis/tSNE/st/",i))){
+    dir.create(paste0("./analysis/tSNE/st/",i))
+  }
+  if (!dir.exists(paste0("./analysis/tSNE/leu/",i))){
+    dir.create(paste0("./analysis/tSNE/leu/",i))
+  }
+
+  sc10x <- get(paste0("sc10x.",i))
+    
+  sc10x <- scCluster(sc10x,pc.use=opt$acca,res.use=0.5,folder=paste0("post.stress/",i),red="cca.aligned")
+  
+  gene.set1 <- read_delim("./genesets/DEG_Epi_5FC.txt","\t",escape_double=FALSE,trim_ws=TRUE,col_names=FALSE)
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "Epi"
+  gene.set <- c(gene.set1)
+  gene.set1 <- read_delim("./genesets/DEG_FMSt_5FC.txt","\t",escape_double=FALSE,trim_ws=TRUE,col_names=FALSE)
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "St"
+  gene.set <- c(gene.set,gene.set1)
+  rm(gene.set1)
+  gc()
+  min.all <- min(table(sc10x@meta.data[,paste0("res",0.5)]))
+  results <- scQuSAGE(sc10x,gs=gene.set,res.use=opt$res.poststress,ds=min.all,nm="Lin",folder=paste0("lin/",i))
+  sc10x <- results[[1]]
+  results.cor.Lin <- results[[2]]
+  results.clust.Lin.id <- results[[3]]
+  rm(results)
+  rm(gene.set)
+  
+  sc10x <- SetAllIdent(object=sc10x,id="Lin")
+  sc10x.Epi <- scSubset(sc10x,i="Lin",g="Epi")
+  if (any(levels(sc10x@ident)=="Unknown")){
+    sc10x.St <- scSubset(sc10x,i="Lin",g=c("St","Unknown"))
+  } else {
+    sc10x.St <- scSubset(sc10x,i="Lin",g="St")
+  }
+  
+  sc10x.Epi <- scCluster(sc10x.Epi,pc.use=opt$acca,res.use=opt$res.poststress,folder=paste0("epi/",i),red="cca.aligned")
+  
+  #sc10x.Epi <- SetAllIdent(object=sc10x.Epi,id=paste0("res",opt$res.poststress))
+  #sc10x.Epi <- BuildClusterTree(sc10x.Epi,do.reorder=TRUE,reorder.numeric=TRUE,do.plot=FALSE)
+  sc10x.Epi <- StashIdent(object=sc10x.Epi,save.name=paste0("res",opt$res.poststress))
+  
+  sc10x.Epi <- RunTSNE(object=sc10x.Epi,reduction.use="cca.aligned",dims.use=1:opt$acca,do.fast=TRUE)
+  postscript(paste0("./analysis/tSNE/epi/",i,"/tSNE_Sample.eps"))
+  plot <- TSNEPlot(object=sc10x.Epi,group.by="samples",pt.size=2.5,do.return=TRUE,vector.friendly=FALSE)
+  plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+  plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+  plot(plot)
+  dev.off()
+  postscript(paste0("./analysis/tSNE/epi/",i,"/tSNE_res",opt$res.poststress,".eps"))
+  plot <- TSNEPlot(object=sc10x.Epi,pt.size=5,do.label=TRUE,label.size=10,do.return=TRUE,vector.friendly=FALSE)
+  plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+  plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+  plot(plot)
+  dev.off()
+  rm(plot)
+  
+  gene.set1 <- read_delim("./genesets/genes.deg.BE.csv",",",escape_double=FALSE,trim_ws=TRUE,col_names=TRUE)
+  gene.set1 <- gene.set1[1]
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "BE"
+  gene.set <- c(gene.set1)
+  gene.set1 <- read_delim("./genesets/genes.deg.LE.csv",",",escape_double=FALSE,trim_ws=TRUE,col_names=TRUE)
+  gene.set1 <- gene.set1[1]
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "LE"
+  gene.set <- c(gene.set,gene.set1)
+  gene.set1 <- read_delim("./genesets/genes.deg.OE1.csv",",",escape_double=FALSE,trim_ws=TRUE,col_names=TRUE)
+  gene.set1 <- gene.set1[1]
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "Club"
+  gene.set <- c(gene.set,gene.set1)
+  gene.set1 <- read_delim("./genesets/genes.deg.OE2.csv",",",escape_double=FALSE,trim_ws=TRUE,col_names=TRUE)
+  gene.set1 <- gene.set1[1]
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "Hillock"
+  gene.set <- c(gene.set,gene.set1)
+  rm(gene.set1)
+  gc()
+  min.epi <- min(table(sc10x.Epi@meta.data[,paste0("res",opt$res.poststress)]))
+  results <- scQuSAGE(sc10x.Epi,gs=gene.set,res.use=opt$res.poststress,ds=min.epi,nm="Epi.dws.sc",folder=paste0("epi/",i))
+  sc10x.Epi <- results[[1]]
+  results.cor.Epi <- results[[2]]
+  results.clust.Epi.id <- results[[3]]
+  rm(results)
+  rm(gene.set)
+  
+  
+  sc10x.St <- scCluster(sc10x.St,pc.use=opt$acca,res.use=opt$res.poststress,folder=paste0("st/",i),red="cca.aligned")
+  
+  #sc10x.St <- SetAllIdent(object=sc10x.St,id=paste0("res",opt$res.poststress))
+  #sc10x.St <- BuildClusterTree(sc10x.St,do.reorder=TRUE,reorder.numeric=TRUE,do.plot=FALSE)
+  sc10x.St <- StashIdent(object=sc10x.St,save.name=paste0("res",opt$res.poststress))
+  
+  sc10x.St <- RunTSNE(object=sc10x.St,reduction.use="cca.aligned",dims.use=1:opt$acca,do.fast=TRUE)
+  postscript(paste0("./analysis/tSNE/st/",i,"/tSNE_Sample.eps"))
+  plot <- TSNEPlot(object=sc10x.St,group.by="samples",pt.size=2.5,do.return=TRUE,vector.friendly=FALSE)
+  plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+  plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+  plot(plot)
+  dev.off()
+  postscript(paste0("./analysis/tSNE/st/",i,"/tSNE_res",opt$res.poststress,".eps"))
+  plot <- TSNEPlot(object=sc10x.St,pt.size=5,do.label=TRUE,label.size=10,do.return=TRUE,vector.friendly=FALSE)
+  plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+  plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+  plot(plot)
+  dev.off()
+  rm(plot)
+  
+  gene.set1 <- read_delim("./genesets/genes.deg.Endo.csv",",",escape_double=FALSE,trim_ws=TRUE,col_names=TRUE)
+  gene.set1 <- gene.set1[1]
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "Endo"
+  gene.set <- c(gene.set1)
+  gene.set1 <- read_delim("./genesets/genes.deg.SM.csv",",",escape_double=FALSE,trim_ws=TRUE,col_names=TRUE)
+  gene.set1 <- gene.set1[1]
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "SM"
+  gene.set <- c(gene.set,gene.set1)
+  gene.set1 <- read_delim("./genesets/genes.deg.Fib.csv",",",escape_double=FALSE,trim_ws=TRUE,col_names=TRUE)
+  gene.set1 <- gene.set1[1]
+  gene.set1 <- as.list(gene.set1)
+  names(gene.set1) <- "Fib"
+  gene.set <- c(gene.set,gene.set1)
+  
+  genes.leu <- read_excel("genesets/40425_2017_215_MOESM1_ESM.xlsx",sheet="S3. Candidate markers")
+  leu <- as.list(unique(genes.leu[,2]))$Cell
+  leu <- leu[-c(1,3,4,7:9,14,15,17:18,20:21,23:30)]
+  genes.leu <- genes.leu[genes.leu$Selected==1,]
+  genes.leu <- genes.leu[unlist(genes.leu[,2]) %in% unlist(leu),]
+  gene.set1 <- split(genes.leu[,1], genes.leu[,2])
+  gene.set1 <- lapply(gene.set1,unname)
+  gene.set1 <- lapply(gene.set1,unlist)
+  gene.set <- c(gene.set,gene.set1)
+  
+  rm(gene.set1)
+  gc()
+  min.st <- min(table(sc10x.St@meta.data[,paste0("res",opt$res.poststress)]))
+  results <- scQuSAGE(sc10x.St,gs=gene.set,res.use=opt$res.poststress,ds=min.st,nm="St.dws.sc",folder=paste0("st/",i))
+  sc10x.St <- results[[1]]
+  results.cor.St <- results[[2]]
+  results.clust.St.id <- results[[3]]
+  rm(results)
+  rm(gene.set)
+  
+  sc10x.St <- SetAllIdent(object=sc10x.St,id="St.dws.sc")
+  sc10x.Leu <- scSubset(sc10x.St,i="St.dws.sc",g=leu[leu %in% unique(sc10x.St@ident)])
+  
+  sc10x.Leu <- RunTSNE(object=sc10x.Leu,reduction.use="cca.aligned",dims.use=1:opt$acca,do.fast=TRUE)
+  postscript(paste0("./analysis/tSNE/leu/",i,"/tSNE_Sample.eps"))
+  plot <- TSNEPlot(object=sc10x.Leu,group.by="samples",pt.size=2.5,do.return=TRUE,vector.friendly=FALSE)
+  plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+  plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+  plot(plot)
+  dev.off()
+  postscript(paste0("./analysis/tSNE/leu/",i,"/tSNE_LeuLin.eps"))
+  plot <- TSNEPlot(object=sc10x.Leu,pt.size=5,do.label=TRUE,label.size=10,do.return=TRUE,vector.friendly=FALSE)
+  plot <- plot+theme(axis.text.x=element_text(size=20),axis.text.y=element_text(size=20),axis.title.x=element_text(size=20),axis.title.y=element_text(size=20),legend.text=element_text(size=20))
+  plot <- plot+guides(colour=guide_legend(override.aes=list(size=10)))
+  plot(plot)
+  dev.off()
+  rm(plot)
+  
+  sc10x <- scMerge(sc10x,sc10x.Epi,sc10x.St,i.1="Epi.dws.sc",i.2="St.dws.sc",nm="Merge")
+  
+  sc10x@ident <- factor(sc10x@ident,levels=c("BE","LE","Hillock","Club","Fib","SM","Endo","B-cells","T-cells","Macrophages","Mast cells"))
+  sctSNE3CustCol(sc10x,i="Merge",bl=c("BE","LE","Hillock","Club"),rd=c("Fib","SM","Endo"),gn=c("B-cells","T-cells","Macrophages","Mast cells"),file=i)
+
+  if (i=="Pd"){
+    for (j in list(c("D17PrPzF_Via","D27PrPzF_Via","D35PrPzF_Via"),c("D17PrTzF_Via","D27PrTzF_Via","D35PrTzF_Via"))){
+      sc10x.sub <- scSubset(sc10x,"samples",j)
+      sc10x.sub <- SetAllIdent(object=sc10x.sub,id="Merge")
+      sc10x.sub@ident <- factor(sc10x.sub@ident,levels=c("BE","LE","Hillock","Club","Fib","SM","Endo","B-cells","T-cells","Macrophages","Mast cells"))
+      sctSNE3CustCol(sc10x.sub,i="Merge",bl=c("BE","LE","Hillock","Club"),rd=c("Fib","SM","Endo"),gn=c("B-cells","T-cells","Macrophages","Mast cells"),file=paste0(i,".",substr(j[1],6,7)))
+    }
+  rm(sc10x.sub)
+  }
+
+  write.table(table(sc10x@meta.data[,"samples"],sc10x@meta.data[,"Merge"]),file=paste0("./analysis/table/Table_samples_Merge",i,".csv"),row.names=TRUE,col.names=NA,append=FALSE,sep=",")
+  write.table(round(prop.table(table(sc10x@meta.data[,"samples"],sc10x@meta.data[,"Merge"]),1)*100,1),file=paste0("./analysis/table/ProbTable_samples_Merge",i,".csv"),row.names=TRUE,col.names=NA,append=FALSE,sep=",")
+  
+  assign(paste0("sc10x.",i,".analized"),sc10x)
+  assign(paste0("sc10x.Epi.",i,".analized"),sc10x.Epi)
+  assign(paste0("sc10x.St.",i,".analized"),sc10x.St)
+  assign(paste0("sc10x.Leu.",i,".analized"),sc10x.Leu)
+  assign(paste0("results.cor.Lin.",i),results.cor.Lin)
+  assign(paste0("results.clust.Lin.id.",i),results.clust.Lin.id)
+  assign(paste0("results.cor.Epi.",i),results.cor.Epi)
+  assign(paste0("results.clust.Epi.id.",i),results.clust.Epi.id)
+  assign(paste0("results.cor.St.",i),results.cor.St)
+  assign(paste0("results.clust.St.id.",i),results.clust.St.id)
+  rm(sc10x.sub)  
+  rm(sc10x)
+  rm(sc10x.Epi)
+  rm(sc10x.St)
+  rm(sc10x.Leu)
+  rm(results.cor.Lin)
+  rm(results.cor.Epi)
+  rm(results.cor.St)
+  rm(results.clust.Lin.id)
+  rm(results.clust.Epi.id)
+  rm(results.clust.St.id)
+  rm(min.all)
+  rm(min.epi)
+  rm(min.st)
+  rm(i)
+}
+save.image(file="./analysis/sc10x.analized.RData")
+
-- 
GitLab