Setup

library(Seurat)
library(tidyverse)
library(ggpubr)
library(harmony)

ClusterFunc_All_RNA = function(SeuFile){
Filename = as.character(substitute(SeuFile))

for(y in set.kparam){
for(z in set.dim){
for(v in set.res){
DefaultAssay(SeuFile) = "integrated"
SeuFile <- FindNeighbors(SeuFile, k.param=y, dims=1:z)
SeuFile <- FindClusters(SeuFile, resolution = v)
DefaultAssay(SeuFile) = "RNA"

pdf(paste("ISLETS_", Filename, "_res", v, "_k", y, "_dim", z, "_umapSML.pdf", sep=""), width=12, height=10)
dimplot = DimPlot(SeuFile, reduction="umap", label=T)
print(dimplot)
dev.off()


pdf(paste("ISLETS_", Filename, "_res", v, "_k", y, "_dim", z, "_umapLGE.pdf", sep=""), width=25, height=25)
dimplot = DimPlot(SeuFile, reduction="umap", label=T)
print(dimplot)
dev.off()



GeneLists2 = GeneLists
for(GL in names(GeneLists2)){
GeneLists2[[GL]] = subset(GeneLists2[[GL]], GeneLists2[[GL]] %in% row.names(SeuFile))  
}
###VLNS
AllVlns = list()

for(d in names(GeneLists2)){
Genes = GeneLists2[[d]]
StorePlots = list()
  for(x in Genes[1]){
            plotA <- VlnPlot(SeuFile, features = x, pt.size = 0, same.y.lims = F,)
            plotA <- plotA + coord_flip()+ theme(axis.ticks.x= element_blank(), axis.title.y=element_blank(), axis.text.x=element_blank(), axis.title.x=element_blank(), 
                                                 axis.ticks.y = element_blank(), legend.position = "none", plot.title = element_text(size=12))+ labs(title = d, subtitle = Genes[1])
            StorePlots[[x]] = plotA 
            }
  for(x in Genes[2:length(Genes)]){
            plotB <- VlnPlot(SeuFile, features = x, pt.size = 0, same.y.lims = F,)
            plotB <- plotB + coord_flip()+ theme(axis.ticks.x= element_blank(), axis.title.y=element_blank(), axis.text.x=element_blank(), axis.title.x=element_blank(), 
                      axis.ticks.y = element_blank(), legend.position = "none", axis.text.y = element_blank(), plot.title = element_text(size=12))
           StorePlots[[x]] = plotB
           }
AllVlns[[d]] <- ggarrange(plotlist = StorePlots, widths=c(1.4, rep(1, length(Genes)-1)), ncol = 60,  nrow = 1)  
}
pdf(paste("ISLETS_", Filename, "_res", v, "_k", y, "_dim", z, "_AllMultiVlns.pdf", sep=""), width=60, height=length(unique(SeuFile@active.ident)))
print(AllVlns)
dev.off()

#Cell No
CellNo = as.data.frame(table(SeuFile@meta.data$seurat_clusters))
write.csv(CellNo, paste("ISLETS_", Filename, "_counts_k", y, "_dim", z, "_res", v, ".csv", sep=""), row.names = F)
}}

#Feature Plots  
FPList = list()  

for(d in names(GeneLists2)){
Genes = GeneLists2[[d]]

FPSinglePage = list()
FPSinglePage[[1]] = FeaturePlot(SeuFile, Genes[1], reduction="umap") + labs(title=paste(d, Genes[1]))
for(p in seq(2, length(Genes), 1)){
FPSinglePage[[p]] = FeaturePlot(SeuFile, Genes[p], reduction="umap") 
}
FPList[[d]] = ggarrange(plotlist = FPSinglePage, ncol=6, nrow=10)
}

pdf(paste("ISLETS_", Filename, "_dim", z, "_AllFPs.pdf", sep=""), width = 25, height = 45)
print(FPList)
dev.off()
}}


CheckUMAP = function(SeuFilez){
  if(class(CheckInput) == "data.frame"){
CheckMeta = as.data.frame(c(rep("RoI", length(row.names(CheckInput)))))
colnames(CheckMeta) = "Pop"
row.names(CheckMeta) = row.names(CheckInput)
  }else{
    CheckMeta = as.data.frame(c(rep("RoI", length(colnames(CheckInput)))))
colnames(CheckMeta) = "Pop"
row.names(CheckMeta) = colnames(CheckInput)
  }

SeuFilez = AddMetaData(SeuFilez, CheckMeta, "CheckMeta")
Idents(SeuFilez) = "CheckMeta"
DimPlot(SeuFilez, reduction="umap")
}


########################################################################
GenerateMetaData = function(ListMeta){
MetaOutput = as.data.frame(matrix(ncol = 1, nrow =0))  
for(x in seq(1,length(ListMeta),1)){
if(class(ListMeta[[x]]) == "data.frame"){
Temp = as.data.frame(rep(names(ListMeta)[[x]], length(row.names(ListMeta[[x]]))))  
colnames(Temp) = "Pop"
row.names(Temp) = row.names(ListMeta[[x]])
}else{
Temp = as.data.frame(rep(names(ListMeta)[[x]], length(colnames(ListMeta[[x]]))))  
colnames(Temp) = "Pop"
row.names(Temp) = colnames(ListMeta[[x]]) 
}
MetaOutput = rbind(MetaOutput, Temp)  
}
return(MetaOutput)
}



GenerateMetaData_Barcodes = function(ListMeta){
MetaOutput = as.data.frame(matrix(ncol = 2, nrow =0))  
for(x in seq(1,length(ListMeta),1)){
if(class(ListMeta[[x]]) == "data.frame"){
Temp = as.data.frame(rep(names(ListMeta)[[x]], length(row.names(ListMeta[[x]]))))  
colnames(Temp) = "Pop"
Temp$Barcodes = row.names(ListMeta[[x]])
}else{
Temp = as.data.frame(rep(names(ListMeta)[[x]], length(colnames(ListMeta[[x]]))))  
colnames(Temp) = "Pop"
Temp$Barcodes = colnames(ListMeta[[x]]) 
}
MetaOutput = rbind(MetaOutput, Temp)  
}
return(MetaOutput)
}

Gene Lists: All Pops

GeneLists = list()
GeneLists[["Zhou_MainMarkers"]] = c("POMC", "VIM", "HES1", "HMGA2", "ARHGAP28", "NES", "ASCL1", "NBPF10", "NBPF15", "PLAGL1", "SFTA3", "STMN2", "SYT1", "SLC32A1", "GAD2", "HDC", "SLC17A6", "PDGFRA", "APOD", "GPR75-ASB3", "MBP", "MOG", "AQP4", "AGT", "FAM107A", "CCDC153", "CCDC74A", "CCDC74B", "LRTOMT", "AIF1", "CX3CR1", "CLDN5", "FLT1", "SLC38A5", "NDUFA4L2", "PDGFRB", "PTGDS", "COL1A1")
GeneLists[["Zhou_MainMarkersV2"]] = c("OLIG1", "OLIG2", "SOX8", "JUNB", "EGR1",  "MYC", "OLIG1","OLIG2", "NKX2-2", "FOXJ1", "GLIS3", "AXNA1","TBX2", "TBX3", "LHX2", "RAX", "SHH",  "SIX3", "SIX6", "SLC1A3", "NES",  "FABP7", "FAM107A", "CD82","TBX3", "RAX", "SIX3", "OTX2", "IRX2", "IRX3", "IRX5", "DLX1", "DLX2", "DLX5", "DLX6", "SOX3", "LHX1", "ONECUT2", "OTP")
GeneLists[["BroadGenes"]] = c("SYT1", "SNAP25", "TUBB3","SYP", #Broad Neuronal 
               "SLC32A1", "DLX1", "DLX2", "DLX5", "GAD1", #GABAergic
           "SLC17A6", "SLC17A8") #Glutaminergic
GeneLists[["HypothalamicProgenSubclass"]] =c("VIM", "ASCL1", #Hypothalamic Progenitor - And/or
            "HES1", "MKI67", "FABP7", "TTYH1", "HMGA2", "MEIS2", "SLC1A3", "FAM107A", "NKX2-1", "NHLH2", "DLX1", "OLIG2", "DLX6-AS1", "STMN2", "HOPX", "HES1", "NES", "SOX2", "EGFR", "DLL1", "CLDN10", "FAM107A", "GADD45G", "HES6", "SLC1A2") #Hypothalamic subclasses
GeneLists[["OligList"]] = unique(c("APOD", "PMP22", "MAG", "OLIG1", "PLLP", "CSPG4", "PDGFRA", "NEU4", "TNS3", "FYN", "TCF7L2", "MAL", "MOG", "PLP1", "SERINC5", "TFRC", "OLIG1", "OLIG2", "CNP", "ST8SIA1", "CD9"))
GeneLists[["AstroMicro"]] = unique(c("GJA1", "GFAP", "AQP4", "SLC7A10", "ALDH1L1", "AGT", "SLC1A3", "S100B",  "ALDOC", "SLC1A2", "ID3", "ASCL1", "BTG2", "APOE", "C1QB", "AIF1", "P2RY12", "MRC1"))
GeneLists[["EpendyTanyList"]] = c("FOXJ1", "RAX", "ADM",  "EMX2", "LHX2", "TMEM212", "CRYM", "CCDC153", "RFX2", "RFX3", "RFX4", "NPAS3", "COL23A1", "CD59", "SLC17A8", "VCAN", "FRZB", "PENK", "COL25A1", "CACNA2D2", "STOML3", "TMEM212", "SLC7A11", "PCP4L1", "PLTP", "TGFB2", "NR2E1", "EPHB1", "P3H2", "NELL2", "FGF10", "RGCC", "GRIA2", "RLBP1", "SIX6", "SCN7A", "MEST", "IGFBP5", "RGS7BP")
GeneLists[["EndoList"]] = c("SLCO1C1", "SLC38A5", "MYH11", "MRC1", "CLDN5", "ITM2A", "FLT1")
GeneLists[["MuralPeriVLMCList"]] = c("VTN",  "COL1A1", "COL3A1", "LUM", "DCN", "PTGDS", "AMBP", "RGS5", "ACTA2", "TAGLN", "ABCC9", "KCNJ8") #3 GenMural, 6 VLMC, 2 Peri, 1 SMA
GeneLists[["NeuronsBroad"]] = c("SYT1", "SNAP25", "TUBB3","SYP", #Broad Neuronal 
               "SLC32A1", "DLX1", "DLX2", "DLX5", "GAD1", #GABAergic
           "SLC17A6", "SLC17A8", #Glutaminergic
            "SST",  "TH", "TRH","BDNF", "OTP","PCSK1") #Pan regional neuropepetides or functional genes


GeneLists[["Zeisel_Vasculature"]] = toupper(c("Cldn5", "Adgrf5", "Emcn", "Vtn", "Cspg4", "Atp13a5", "Pth1r", "Kcnj8", "Abcc9", "Apln", "Cd82", "Chst1", "Tagln", "Pln", "Bmx", "Gkn3", "Igfbp2", "Dcn", "Lum", "Pdgfra", "Il33", "Ptgds", "Nnat", "Rspo3", "Nov", "Slc47a1", "Sox10", "Foxd3", "Aldh1a3", "Anxa11", "Slc18a2", "Klhl30", "Gfra3", "Cldn19", "Mpz", "Dhrs2", "Caecam10", "Cspg5", "Olig1", "Pcdh15", "Aldoc", "Npy", "Apod"))

GeneLists2 = GeneLists
for(GL in names(GeneLists2)){
GeneLists2[[GL]] = subset(GeneLists2[[GL]], GeneLists2[[GL]] %in% row.names(KaZhouAll))  
}

Gene Lists: Neurons

GeneLists = list()
GeneLists[["NeuronsBroad"]] = c("SYT1", "SNAP25", "TUBB3","SYP", #Broad Neuronal 
               "SLC32A1", "DLX1", "DLX2", "DLX5", "GAD1", #GABAergic
           "SLC17A6", "SLC17A8", #Glutaminergic
            "SST",  "TH", "TRH","BDNF", "OTP","PCSK1") #Pan regional neuropepetides or functional genes
GeneLists[["NeuronsARC"]] = c("NKX2-1", "KISS1", "GHRH", "POMC","NPY","AGRP", "HDC", "TBX3", "ISL1", "LEPR", "NPY1R", "CRABP1",  "HMX2","GSX1") #HDC+ plus arcuate markers is the tuberomammullary terminal
GeneLists[["NeuronsPVH"]] = c("SIM1", "POU3F2",  "NHLH2", "MC4R", "OXT", "AVP", "CRH", "GAL")
GeneLists[["NeuronsVMH"]] = c("GABRA5", "NPTX2", "FEZF1", "NR5A1")
GeneLists[["NeuronsMN"]] = c("PITX2", "FOXP1", "FOXP2", "FOXB1", "SOX14",  "FEZF2", "LHX1")
GeneLists[["NeuronsLH"]] = c("HCRT", "CARTPT", "PMCH", "LHX2", "LHX9", "PDYN")
GeneLists[["NeuronsSCN"]] = c("RGS16","LHX1", "GRP", "VIP", "CCK", "VAX1", "SIX3", "SIX6")
GeneLists[["NeuronsSMN"]] = c("BARHL1", "FOXA1", "LMX1A",  "IRX3", "IRX5")
GeneLists[["NeuronsDMH"]] = c("PPP1R17", "NKX2-2", "LHX8")
GeneLists[["NeuronsPO"]] = c("NR2F1", "NR2F2", "HMX3", "RELN")

CompileNeurons = unique(c(GeneLists[["NeuronsBroad"]], GeneLists[["NeuronsARC"]], GeneLists[["NeuronsPVH"]], GeneLists[["NeuronsVMH"]], GeneLists[["NeuronsMN"]], GeneLists[["NeuronsLH"]], GeneLists[["NeuronsSCN"]], GeneLists[["NeuronsSMN"]], GeneLists[["NeuronsDMH"]], GeneLists[["NeuronsPO"]]))


GeneLists[["Campbell_ARC"]] =unique(toupper(c("Hdc", "Gm8773", "Tac1", "Th", "Sst", "Sst", "Nts", "Nfix", "Htr2c", "Oxt", "Arx", "Nr5a2", "Th", "Slc6a3", "Th", "Nfib", "Ghrh", "Trh", "Cxcl12", "Agrp", "Sst", "Agrp", "Gm8773", "Pomc", "Ttr", "Pomc", "Anxa2", "Rgs16", "Vip", "Rgs16", "Dlx1", "Rgs16", "Nmu", "Gpr50", "Kiss1", "Tac2", "Pomc", "Glipr1", "Tmem215", "Sst", "Unc13c", "Sst", "Pthlh", "Trh", "Lef1", "Htr3b", "Tbx19", "Qrfp", "Nr5a1", "Bdnf", "Nr5a1", "Nfib", "Slc17a6", "Fam19a2", "Slc17a6", "Trhr")))


GeneLists[["Kim_VMH"]] =unique(toupper(c("Lhx1", "Slc18a3", "Lhx9", "Clic4", "Tbx3", "Tac2", "Anxa2", "Slc14a1", "Slc32a1", "Nup62cl", "Irx5", "Slc32a1", "Nfib", "Prdm13",  "Car4", "Nr5a1", "Foxp2", "Prdm13",  "Foxp2", "C1ql2",  "Foxp2", "Tsix", "Esr1", "Gabrg3",  "Esr1", "Twist2", "Esr1", "Insm2",  "Samd9l", "Rorb",   "Nmur2", "Smoc2",  "Ngf", "Ctxn3", "Nup62cl", "Satb2", "Calcrl",  "Six3", "Dlk1", "ll1rapl2", "F2rl2", "Nts", "Maob", "Adarb2",  "Egflam", "Scgn",  "Npffr2", "Glipr1", "Tcf712",  "Ctxn3",  "Car8",  "Rorb")))


GeneLists[["Moffitt_PO"]] =unique(toupper(c("Tac1", "Fezf1", "Cartpt", "Isl1", "Trh", "Angpt1", "Adcyap1", "Nkx2-1", "Trp73", "Reln", "C1ql1", "Cck", "Ebf3", "Tcf7l2","Meis2",  "Shox2", "Foxp2", "Ghrh", "C1ql1", "Ucn3", "Brs3", "Th", "Crh",  "Rxpf3", "Gal", "Etv1", "Rxfp1",  "Slc17a6", "Nts", "Slc17a8", "Slc32a1", "Gsc", "Pdyn", "Mylk", "Pou3f3",  "Nms",  "Amigo2", "Avp", "Cck", "Th", "Nos1", "Tac2", "Moxd1", "Sst",  "Pmaip1", "Nmu", "Prok2", "Six6",  "Igsf1", "Vip", "Calca",  "Npy", "Bdnf", "Chrm2", "Kiss1", "Penk", "Pthlh", "Chat", "Cxcl14")))


GeneLists[["Mickelsen_LH"]] =unique(toupper(c("Pmch", "Gad1", "Nrgn", "Gda", "Zic1", "Tac1", "Pitx2", "Ebf3", "Otp", "Hcrt", "Tcf4", "Trh", "Cbln2", "Synpr", "Grp", "Cck", "Calca", "Col27a1", "Syt2", "Meis2", "Gpr101", "Sst", "Gal", "Dlk1", "Npy", "Npw", "Nts", "Cartpt", "Calb2", "Col25a1", "Tac2", "Serpini1", "Lhx6", "Calb1", "Th", "Slc18a2", "Atp1a2", "Cbln4")))


GeneLists[["Kim_WholeHypo"]] =unique(toupper(c("Oxt", "Avp", "Cartpt", "Isl1", "Meis2", "Gal", "Pax6", "Cck", "Hdc", "Lhx8", "Ghrh", "Cited1", "Six6", "Hmx2", "Agrp", "Npy", "Pomc", "Tac1", "Sst", "Onecut2", "Calb2", "Pnoc", "Foxp2", "Nr2f2", "Zfhx3", "Calb1", "Foxb1", "Lhx1", "Penk", "Hcrt", "Lhx9", "Nts", "Lhx2", "Gnrh", "Kiss1", "Meis3", "Pbx1", "Pbx3", "Six3", "Th", "Vip", "Chchd10", "Fezf1", "Grp", "Pmch", "Nr4a2", "Foxp1",  "Lhx5", "Lmx1a", "Nhlh2",  "Crh", "Arx", "Crh", "Otp")))

GeneLists[["Mickelsen_VPH"]] =unique(toupper(c("Tac2", "Pvalb", "Fgf1", "Cabp7", "Foxb1", "Cck", "Nts", "Col25a1",   "Gpr83", "Spock3", "Slc24a2", "Nos1", "Calb1", "Cxcl14", "Synpr", "Stxbp6", "Tcf4", "Nr4a2", "Ebf3", "Slc6a1", "Tac1", "Foxp2", "Glra3", "Htr2c", "Hdc", "Slc18a2", "Wif1", "Prph", "Nrxn3", "Thrb", "Rxrg", "Unc13c", "Pdyn", "Kiss1", "Esr1", "Agrp", "Npy",  "Otp", "Dlk1",  "Six3", "Sst", "Pthlh", "Ptk2b", "Nnat", "Epha5", "Calcr", "Cplx1", "Hspa41", "Kcnc1", "Gabre", "Gad2", "Asb4")))



GeneLists[["Wen_Morris_SCN"]] =unique(toupper(c("Avp", "Nms", "Cck",  "Grp", "Ppp1r17", "Gem", "Vip", "C1ql3",  "Synpr", "Prok2", "Cck", "Prokr2", "Mef2c", "Peg10", "Gadd45a", "Hspa1a", "Vipr2", "Lbh", "Rasd1", "Igfbp5", "Ptp4a1", "Aip", "Pkib", "Chodl", "Sncb", "Nrxn3", "Alcam")))

GeneLists[["Affinati_VMH"]] =unique(toupper(c("Dlk1", "Drd3", "Pdgfd", "Hnf4g", "Col2a1", "Ivl", "Cdh20", "Col12a1", "Pdzrn3",  "Bmp4", "Smoc2", "Robo3", "Esr1",  "Dkk1", "Gpr174",  "Fli1", "Nfia", "Duox2", "Eya1", "Eya4", "Nfib", "Adamts19", "Slc17a8", "Tacr1", "Exph5", "Cntnap3", "Olfr920", "Col5a2", "Atf7ip2", "Itih5", "Foxp2",  "Lpar3", "Aass", "Col24a1", "Npffr2", "Dppa5a",  "Hgt", "Adgr94", "Igf1", "Fezf1", "Nmu", "Rorb", "Efemp1", "Lepr", "Bmp15", "Zfp968", "Dlx60s1", "Parp4", "Acp7", "Cobil1", "Slc38a11","Glis3", "Crhr2",  "St18", "Unc45b", "Fam83b", "Tll2", "Tll6",   "Pantr1", "Acvr1c", "Barx2", "Zar1",  "Adamts9", "Slc22a3", "Fign",  "Tcf7l2", "Ankrd33b")))



GeneLists[["Zhou_WholeHypo"]] =unique(c("ONECUT1", "ONECUT2", "OTP", "SIM1", "SIX3", "DLX1", "DLX2", "DLX5", "DLX6", "ISL1", "MEIS2", "SST", "DLK1", "ASCL1", "TBX3", "ACHE", "FEZF1", "NPTX2", "GHRH", "GSX1", "PCP4", "AGRP", "NPY", "NPY1R", "POMC", "CBLN1", "KISS1", "TAC3", "PDYN", "HCRT", "CRABP1",  "NHLH1", "CRABP2", "IRX1", "IRX4", "ADCYAP1", "SSTR2",  "HDC", "SLC18A2", "GULP1", "CBLN4", "LHX6", "ARX",  "CALB2","PITX2", "LHX5", "SIM1", "CALB2", "BARHL1", "BARHL2", "IRX2", "IRX3", "IRX5",  "NEUROD2", "TBR1", "EOMES", "EMX2", "SP9", "GBX2", "TCF7L2", "GATA2", "GATA3"))



GeneLists[["Hypomap_ARC_PVH"]] =unique(toupper(c("Serpina3n", "Npy", "Agrp", "Acvr1c", "Npy", "Agrp", "Vcan", "Col6a1", "Il1rapl2", "Ptprk", "Npy", "Sst", "Il1rapl2", "Otp", "Sst", "Gpr101", "Otp", "Sst", "Crabp1", "Sytl4", "Tbx3", "Pou6f2", "Sytl4", "Tbx3", "Lepr", "Agrp", "Gpc3", "Bace2", "Epha3", "Il1rapl2", "Trh", "Nkx2-4", "Gpr50", "Nts", "Anxa2", "Pomc", "Glipr1", "Pomc", "Ttr", "Pomc", "Grp", "Ppp1r17", "Npvf", "Rfx4", "Qrfp", "Rfx4", "Nfix", "Satb2", "Slc6a3", "Satb2", "Nr5a2", "Satb2", "Nts", "Sst", "Pou3f1", "Sst", "Vgll3", "Tbx3", "Prdm12", "Tcf4", "Ghrh", "Lpar1", "Tac2", 
                                             "Shox2", "C2cd4b", "Fam122b", "Vipr2", "Igfbpl1", "Cbln2", "Trh", "Gsc", "Sncg", "Ebf1", "Ucn3", "Crh", "Tent5a", "Ebf3", "Caprin2", "Oxt")))

GeneLists[["Hypomap_MN_PO"]] =unique(toupper(c("Reln", "Lef1", "Hdc", "Pde11a", "Foxb1", "Ebf3", 
"Ebf3", "Lmx1a", "Rxfp1", "Pitx2", "Slc6a3", "Nts", "Irx5", "Rxfp1", "Nts", "Myo5b", "Postn", "Nid1", "Postn", "Col19a1", "Fign", "Eya4", "Fign", "Nfia", "Nxph4", "Epha8",  "Prkch", 
"Igfbp4", "Lhx6", "Sfrp1", "Sox6", "Lhx8", "Slc17a8", "Ppp1r1b", "Bcl11b", "Meis2", "Ccn1", "Meis2", "Adora2a", "Ppp1r1b", "Tac1", "Meis2", "Cxcl14", "Sln", "Nfix", "Otx2", "Moxd1", "Dlx1", "Lhx6", "Crh", "Zeb2", "Lhx8", "Hmx2", "Gal", "Nts", "Dlx1", "Ucn3", "Meis2", "Samd3", "Eomes", "Lhx9", "Nfix", "Thrsp")))


GeneLists[["Hypomap_DMH_LH_AH"]] =unique(toupper(c("Zfp804b", "Hmcn1",  "Tcf7l2", "Vcan","Tac1", "Prdm13", "Tcf4", "Crh", "Lhx9",
"Adgrf5", "Nxph4", "", "Alx1", "Pmfbp1", "Onecut2", "", "Npsr1", "Tmem114", "Lef1", "Fign", "Gal", "Crh", "Nts", "Piezo2", "Lhx6", "", "Crhbp", "Dlx1", "Ebf2", "Trh", "Lhx6", "Sox6", "Lhx8", "Syt2", "Trh", "Meis2", "Nts", "Ebf1", "Nkx2-4", "Otx1", "Gng8", "Samd3", "Tbr1", "Ndnf", "Meis2", "Samd3", "Ntng2", "Lef1", "Cped1", "Hcrt", "Rfx4", "Stk26", "Nxph4", "Pmch", "Pou6f2",
"Slc6a3", "Onecut2", "Nkd1", "Cd24a", "Lhx1", "Gal", "Hmcn1", "Mc4r", "Fezf1")))


GeneLists[["Hypomap_Peri_ZI"]] =unique(toupper(c("Cd79a", "Fam122b", "Vipr2", "Sst", "Tent5a", "Sparc", "Npy", "Sst", "Tbx19", "Il1rapl2", "Col11a1", "Sox14", "Lef1", "Myo5b", "Npsr1", "Barhl2", "Lef1", "Pbx3", "Lhx6",
"Pvalb", "Shisal2b", "Onecut3", "Onecut2", "Foxp2", "Tmem114", "Lef1", "Meis2")))


GeneLists[["Hypomap_SCN_VMH"]] =unique(toupper(c("Vip", "Vipr2", "Chodl", "Igfbp4", "Cck", "Nms", "Fam122b", "Prok2", "Prr5l", "Cdkn1c",  "Lhx1", "Grp", "Cd24a", "Rrad", 
"Gpr149", "Fezf1", "Col24a1", "Gpr88", "Arhgap36", "Cenpf", "Egflam", "Sox14", "Nkx2-2", "Satb2", "Cd40", "Nts", "Gldn", "Cbln4", "Necab1", "Esr1", "Iigp1", "Smim3",  "Rai14", "Hmcn2", "Gpr149", "Slit3", "Nr5a1", "Tcf7l2", "Hmcn2", "Lamp5", "Bcl11b", "Nkd2", "Nr5a1", "H2-Q2", "Tac1", "Fezf1", "Robo3", "Sparc", "Nr5a1", "C1ql2", "Nr5a2", "Nfia", "Tcf4", "Adcyap1", "Tac1", "Lef1")))   

Gene Lists: Betul (Endo/Epeny/Tany)

GeneLists = list()
GeneLists[["EpendyTanyList"]] = c("FOXJ1", "RAX", "ADM",  "EMX2", "LHX2", "TMEM212", "CRYM", "CCDC153", "RFX2", "RFX3", "RFX4", "NPAS3", "COL23A1", "CD59", "SLC17A8", "VCAN", "FRZB", "PENK", "COL25A1", "CACNA2D2", "STOML3", "TMEM212", "SLC7A11", "PCP4L1", "PLTP", "TGFB2", "NR2E1", "EPHB1", "P3H2", "NELL2", "FGF10", "RGCC", "GRIA2", "RLBP1", "SIX6", "SCN7A", "MEST", "IGFBP5", "RGS7BP")

GeneLists[["EpendyTany_CampbellHeatmap"]] = toupper(c("Stoml3", "Ccdc153", "Tmem212", "Pcp4l1", "Tm4sf1", "Pltp", "Slc1a2", "Tgfb2", "Agt", "Gfap", "Slc7a11", "Vcan", "Nr2e1", "Ephb1", "P3h2", "Nell2", "Gria2", "Rlbp1", "Frzb", "Penk", "Six6", "Fgf10", "Scn7a", "Fndc3c1", "Mest", "Col25a1", "Igfbp5", "Rgcc", "Adm", "Rgs7bp", "Ctgf"))

GeneLists[["EndoList"]] = c("SLCO1C1", "SLC38A5", "MYH11", "MRC1", "CLDN5", "ITM2A", "FLT1")
GeneLists[["VLMC"]] = c("COL1A1", "COL3A1", "LUM",                              # Campbell 
                        "PTGDS",                                                # Zhou
                        "DCN"
                        )  

## Mural cells are the vascular smooth muscle cells (vSMCs), and pericytes, 
## of the microcirculation. 
GeneLists[["Mural"]] = c("MUSTN1", "SLCO1C1", "CSPG4",                          # Campbell 
                         "PDGFRB", "NDUFA4L2",                                  # Zhou_Fig1_MarkerGenes
                         "MYL9"                                                 # Valandewijck  ** Pan-mural cell marker
                         )


      GeneLists[["Pericytes"]] = c("KCNJ8", "PDGFRB", "CSPG4", "ANPEP",         # Valandewijck_Fig1
                                   "RGS5", "CD248", "ABCC9", "VTN", "S1PR3"     # Valandewijck_Fig1
                                   )  


      GeneLists[["vSMCs"]]     = c("PDLIM3", "ACTA2", "TAGLN", "MYH11",         # Valandewijck_Fig1
                                   "MYL9", "MYLK", "SNCG", "CNN1", "PLN"        # Valandewijck_Fig1
                                   )  

## ECs: Endothelial Cells        
GeneLists[["Endothelium"]] = unique(c("CLDN5",                                  # Zhou, Valandewijck_Fig1, Chen: Endo
                               "FLT1", "SLC38A5",                               # Zhou_Fig1_MarkerGenes  **  "SCL38A5"-Chen: Endo1        
                               "SLCO1C1",                                       # Campbell
                               "MFSD2A",                                        # Valandewijck  ** Endothelial-specific transcript
                               "MYH11", 
                               "MRC1",                                          # Chen: Endo2
                               "ITM2A", 
                               "PECAM1", "CDH5",                                # Kalucka
                               "BCAM", "ESAM", "LY6C1", "LY6A",                 # Kalucka_FigS1
                               "CD36", "SOX17", "NRP1",                         # Kalucka_FigS1
                               "PGLYRP1",                                       # Kalucka
                               "FOXQ1", "FOXF2",                                # Kalucka_Fig2
                               "PECAM1", "KDR", "FLT1", "TIE1",                 # Valandewijck_Fig1
                               "TEK", "ICAM2", "PODXL", "PTPRB"                 # Valandewijck_Fig1 
                               ))


      GeneLists[["LargeArtery"]] = unique(c("MGP", "CYTL1", "FBLN5", "BMX",     # Kalucka_FigS3 
                                     "CLU", "ELN", "BGN", "IGFBP4",             # Kalucka_TableS2
                                     "CFH", "LMCD1", "BPGM"                     # Kalucka_TableS2
                                     ))  

      GeneLists[["Artery"]] = unique(c("BMX",                                   # Zeisel
                                "GKN3", "HEY1",                                 # Kalucka, Zeisel
                                "EDN3",                                         # Kalucka_TableS2, Zeisel_FigS3
                                "CLDN5", "ADGRF5", "VTN", "CSPG4", "ATP13A5",   # Zeisel_Fig5
                                "PTH1R", "TAGLN", "IGFBP2", "DCN", "LUM",       # Zeisel_Fig5
                                "PDGFRA", "IL33",                               # Zeisel_Fig5
                                "ATF3", "CRIP1", "FBLN2", "GJA4", "MECOM",      # Kalucka_TableS5
                                "SAT1", "SEMA3G", "SOX17",                      # Kalucka_TableS5
                                "EGFL8", "VEGFC", "HRCT1", "CDKN1C",            # Kalucka_TableS2
                                "EPS8L2", "ALPL", "MGST1",                      # Kalucka_TableS2
                                "NR4A2", "JUNB", "GATA6", "STAT4", "SETBP1",    # Valandewijck_Ext6
                                "NFATC4", "ATF3", "MYBL2", "CSRNP1", "NR4A1",   # Valandewijck_Ext6
                                "IRF6", "ZKSCAN4", "FOS", "GATA2", "MIER2",     # Valandewijck_Ext6
                                "HSF4", "EGR1", "ZBP1", "BHLHE41", "TRF",       # Valandewijck_Ext6
                                "SLC36A1", "MTTP", "SLC12A5", "SCNN1A",         # Valandewijck_Ext6
                                "ATP2A3", "SLC48A1", "ABCA5", "GRIA1",          # Valandewijck_Ext6
                                "SLC6A8", "ATP11A", "PLSCR2", "SLC12A8",        # Valandewijck_Ext6
                                "SLC45A4", "GJA5", "KCNN4", "SNAP25", "FXYD4"   # Valandewijck_Ext6
                                ))


      # Arteriolar ECs express both arterial and capillary markers 
      # (capillary-arterial)
      GeneLists[["Arteriolar"]] = unique(c("GLUL", "SLC26A10",                  # Kalucka_FigS3
                                    "TGFB2",                                    # Kalucka_FigS5
                                    "RAD54B", "TUBA1A", "STMN1", "AKAP12",      # Kalucka_TableS2
                                    "KLF6", "DUSP1", "ZFP771"                   # Kalucka_TableS2
                                    ))      


      GeneLists[["Capillary"]] = unique(c("MEOX1",                              # Zeisel
                                   "CLDN5", "ADGRF5", "EMCN",                   # Zeisel_Fig5
                                   "APLN", "CD82", "CHST1", "APOD",             # Zeisel_Fig5
                                   "CXCL12", "SPOCK2",                          # Kalucka_FigS3
                                   "MFSD2A", "RGCC",                            # Kalucka_FigS5
                                   "ABLIM1", "BSG", "SLCO1A4", "SLCO1C1",       # Kalucka_TableS5
                                   "SPOCK2", "TSC22D1",                         # Kalucka_TableS5
                                   "CD300LG", "SGK1", "SPARC",                  # Kalucka_TableS5
                                   "GM9946", "LRRN3", "GSTM7", "PALM",          # Kalucka_TableS2
                                   "TBX3", "PRDM16", "RASGRP2", "CD83",         # Kalucka_TableS2
                                   "ANGPT2",                                    # Valandewijck_Fig2
                                   "PRDM11", "PLEK", "HEYL", "MEOX1", "ZFP382", # Valandewijck_Ext6
                                   "ZFP457", "SALL1", "TBX2", "KLF15", "LBX2",  # Valandewijck_Ext6
                                   "GLI3", "HNF1A", "HIF3A", "TUB", "FOXM1",    # Valandewijck_Ext6
                                   "ZBTB41", "ETV5", "PRDM1", "ZFHX2", "ZFP334" # Valandewijck_Ext6
                                   ))  


      # Venular ECs express both venous and capillary markers 
      # (capillary-venous)
      GeneLists[["Venular"]] = unique(c("CAR4", "ITM2A",                        # Kalucka_FigS3
                                 "TFRC", "CAR4",                                # Kalucka_FigS5
                                 "GATM", "HMCN1", "SLC7A1", "NKD1",             # Kalucka_TableS2
                                 "HSPA1A", "SMOX", "SLC31A1", "SLC39A8"         # Kalucka_TableS2
                                 ))      


      GeneLists[["Venous"]] = unique(c("SLC38A5",                                      # Zeisel
                                "CLDN5", "ADGRF5", "EMCN",                      # Zeisel_Fig5
                                "APOD", "CTSC",                                 # Kalucka_TableS5
                                "IL6ST", "APOE", "CTLA2A",                      # Kalucka_TableS5
                                "NR2F2",                                        # Valandewijck_Fig2
                                "ZC3H12B", "THAP6", "TCF15", "KLF10", "AR",     # Valandewijck_Ext6
                                "CARHSP1", "ZFP691", "ZFAT", "SOX12", "BCL11A", # Valandewijck_Ext6
                                "ZFP341", "DACH2", "MBNL3", "CREB3L4", "TBX1",  # Valandewijck_Ext6
                                "LCN2", "CACNA1B", "PTGDS", "KCNB1"             # Valandewijck_Ext6
                                ))


      GeneLists[["LargeVein"]] = c("TMSB10", "ICAM1", "VWF", "ACKR1",           # Kalucka_FigS3
                                   "SLC38A5", "LCN2",                           # Kalucka_FigS5
                                   "VCAM1", "TMEM252", "CTSC", "TGM2", "ACKR1"  # Kalucka_TableS2
                                   )        


      GeneLists[["Choroid_ECs"]] = c("PLVAP", "KDR", "PLPP3",                   # Kalucka_FigS3
                                     "PLPP1", "CD24A", "NRP1", "ESM1",          # Kalucka
                                     "SOCS3", "RGCC", "IGFBP3", "EHD4"          # Kalucka_TableS2
                                     )  

      # Interferon-activated ECs
      GeneLists[["Interferon_ECs"]] = c("ISG15", "IFIT1", "IFIT3", "IFIT3B",    # Kalucka_FigS3
                                        "PGLYRP1", "SLC7A5", "SPARCL1",         # Kalucka_TableS2
                                        "SLC3A2", "SLC38A3", "USP18"            # Kalucka_TableS2
                                        )        


# Glia

GeneLists[["EpendymalCells"]] = unique(c("SOX2",                                # Campbell
                                  "VIM", "NES",                                 # Langlet, Chen  ** NES&VIM (radial glia markers) are highly expressed in tany&ependy
                                  "PRDX6", "MT1", "MT2", "DLK1"                 # Campbell_S2d
                                  ))

      GeneLists[["Ependy"]] = unique(c("CCDC153",                               # Campbell_Fig1, Chen, Zhou_Fig1_MarkerGenes
                                "CCDC74A", "CCDC74B", "LRTOMT",                 # Zhou_MarkerGenes      
                                "FOXJ1",
                                "RFX2", "RFX3", "RFX4", 
                                "STOML3", "TMEM212", "PCP4L1", "TM4SF1", "PLTP",# Campbell_Fig2
                                "CDHR4", "CALB1", "ITIH5",                      # Campbell_S2d
                                "HDC"                                           # Chen_Fig4
                                ))

         GeneLists[["EpyII"]] = c("FLT1", "RSPO3", "RLBP1", "LRRN1"             # Campbell_S2d
                                  )

       # Tanycytes: blood-brain traffic controllers, metabolic modulators, neural stem/progenitor cells              
       GeneLists[["Tanycytes"]] = c("RAX", "ADM", "CRYM",                       # Campbell_Fig1
                                    "FRZB",
                                    "COL23A1", "SLC16A2", "LHX2",  "PTN",       # Langlet, Chen  ** SLC16A2 & LHX2 have been linked to tanycyte development
                                    "PPP1R1B", "DIO2", "PRDX6",                 # Langlet
                                    "GCK", "DIO3", "OATP1C1", "GPR50", "NMUR2", # Langlet_Table1
                                    "ALDH1A1", "TTR", "CRBP1", "STRA6",         # Langlet_Table1      
                                    "CRABP2", "CNTF",                           # Langlet_Table1
                                    "FGF10"                                     # Steuernagel
                                    )

          # Alpha Tanycytes: gene markers are more similar to non-tanycyte ependymal cells than beta tanycytes
          # modulation of neuronal activity
          GeneLists[["ALPHA"]] = c("SLC1A3", "SLC16A1", "SLC16A4",              # Langlet  ** Glutamate and lactate transport - neuronal modulation
                                   "GJA1", "FGF18", "PRSS56", "CD59A", "CRYM",  # Langlet
                                   "VCAN"
                                   )        

          GeneLists[["Alpha1"]] = c("SLC1A2", "TGFB2", "AGT", "GFAP",           # Campbell_Fig2 
                                    "SLC7A11",                                  # Campbell_Fig2  
                                    "RSPO3",                                    # Campbell_S2d 
                                    "SLC17A8",                                  # Chen_Fig4
                                    "MAFB",                                     # Yoo_Fig3
                                    "OCLN"                                      # Langlet_Table1
                                     )

             GeneLists[["alpha1.1"]] = c("RSPO3", "TMEM212", "ITIH5", "FLT1"    # Campbell_S2d
                                         )      

             GeneLists[["alpha1.2"]] = c("RSPO3", "SLC17A8", "LYZ2"             # Campbell_S2d
                                         )                              


          GeneLists[["Alpha2"]] = c("VCAN", "NR2E1", "EPHB1", "P3H2", "NELL2",  # Campbell_Fig2
                                    "PDZPH1",                                   # Campbell_S2d
                                    "FRZB", "PENK"                              # Langlet
                                     )           

          # Beta Tanycytes: component of blood-brain interface
          # control the access of nutrients and hormones to brain & secretion of 
          # neuropeptides into hypophysial vascular system in the ME
          GeneLists[["BETA"]] = c("CLDN1", "VEGF", "CDH2", "CAVL", "SLC2A1",    # Langlet  ** SLC2A1 is expressed more in beta1
                                  "SOX2", "FGF10", "BLBP", "MSI1",              # Langlet  ** Neural stem cell markers - Stem/Progenitor cell fxn
                                  "FGFR1", "CNTFR",                             # Langlet  ** Growth factor rec. - Stem/Progenitor cell fxn.
                                  "COL25A1", "CACNA2D2", "ADM",                 # Langlet
                                  "CLDN10"                                      # Campbell_S2d
                                  )          

          GeneLists[["Beta1"]] = unique(c("GRIA2", "RLBP1", "FRZB", "PENK",     # Campbell_Fig2
                                   "SIX6", "FGF10",                             # Campbell_Fig2      
                                   "LRRN1",                                     # Campbell_S2d
                                   "FRZB", "PENK"                               # Langlet
                                   ))

          GeneLists[["Beta2"]] = unique(c("SCN7A", "FNDC3C1", "MEST", "ADM",    # Campbell_Fig2 
                                   "COL25A1", "IGFBP5", "RGCC", "RGS7BP",       # Campbell_Fig2
                                   "CTGF",                                      # Campbell_Fig2
                                   "TRHDE"                                      # Langlet_Table1
                                   ))     

             GeneLists[["beta2.1"]] = c("FRZB", "SIM1"                                  # Campbell_S2d
                                        )     

             GeneLists[["beta2.2"]] = c("CYSLTR1", "LRRTM3"                     # Campbell_S2d
                                        )                             

for(GL in names(GeneLists)){
GeneLists[[GL]] = subset(GeneLists[[GL]], GeneLists[[GL]] %in% row.names(KaZhouAll))  
}               

Read in ALL data and iterate UMAPs

KaZhouAll = readRDS("~/Dropbox/LabMac/KaZhouAll_mt10_integrated.rds")
CleanedClusters_Figure1 = read.csv("~/Library/CloudStorage/Box-Box/HG2553 Main Folder/Science Advances/CleanedClusters_Figure1_19DEC22.csv", row.names =1)

KaZhouAll@meta.data$Timepoint = gsub("_.*", "", gsub("T", "", gsub("CS13", "GW6", gsub("CS14", "GW7", gsub("CS15",  "GW7", gsub("CS22", "GW10",  KaZhouAll@meta.data$sample))))))

KaZhouAll@meta.data$Timepoint2 = ifelse(KaZhouAll@meta.data$Study == "Zhou", paste(KaZhouAll@meta.data$Timepoint, "[Zhou]"), KaZhouAll@meta.data$Timepoint)

MainClusters = CleanedClusters_Figure1 %>% dplyr::select("Pop")
row.names(MainClusters) = CleanedClusters_Figure1$Row.names
MainClusters$Pop = gsub(" \\[.*", "", MainClusters$Pop)
KaZhouAll = AddMetaData(KaZhouAll, MainClusters, "MainClusters")      
Idents(KaZhouAll) = "MainClusters"

GenesToPlot = GeneLists[["OligList"]] #GeneLists[["AstroMicro"]] #c(GeneLists[["Zhou_MainMarkers"]], GeneLists[["Zhou_MainMarkersV2"]])

#"Neuroepithelial" , "Ependymal", "RadialGlia", "Dividing", "Endothelial",  "Tanycytes", "Microglia", "VLMC", "IntProgen",
for(Pops in c("Oligodendrocytes")){
SubsetSeu = subset(KaZhouAll, idents = Pops)  
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = FindVariableFeatures(SubsetSeu)
SubsetSeu = ScaleData(SubsetSeu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

#VF_new = SubsetSeu@assays$integrated@var.features
DPlist2 = list()
DPlist = list()
FPlist = list()
Filename = paste(Pops, "29MAR23", sep="")
for(y in seq(10,50,10)){
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = RunPCA(SubsetSeu, npcs = y)
for(z in seq(10,y,10)){
for(s in c(2,5,10)){
SubsetSeu <- RunUMAP(SubsetSeu, dims = 1:z, spread= s)
DefaultAssay(SubsetSeu) = "RNA"

FPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = FeaturePlot(SubsetSeu, GenesToPlot, reduction="umap") 

DPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", split.by = "Timepoint2") + labs(title = paste("PCA", y, "_dims", z, "_spread", s))

DPlist2[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", group.by = "Timepoint2", label=T) + labs(title = paste("PCA", y, "dims", z, "spread", s))
}}}  
pdf(paste("FETAL_HYPO_155K_", Filename, "_FeaturePlots.pdf", sep=""), width=20, height=77/1.3)
print(FPlist)
dev.off()

pdf(paste("FETAL_HYPO_155K_", Filename, "_SPLITUMAP.pdf", sep=""), width=50, height=5)
print(DPlist)
dev.off()

pdf(paste("FETAL_HYPO_155K_", Filename, "_GROUPUMAP.pdf", sep=""), width=10, height=5)
print(DPlist2)
dev.off()
}

for(Pops in c("Oligodendrocytes")){
SubsetSeu = subset(KaZhouAll, idents = Pops)  
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = FindVariableFeatures(SubsetSeu)
SubsetSeu = ScaleData(SubsetSeu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DPlist2 = list()
DPlist = list()
FPlist = list()
Filename = paste(Pops, "29MAR23_Harmony", sep="")
for(y in seq(10,50,10)){
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = RunPCA(SubsetSeu, npcs = y)
SubsetSeu <- RunHarmony(SubsetSeu, group.by.vars = "Timepoint2")

for(z in seq(10,y,10)){
for(s in c(2,5,10)){
SubsetSeu <- RunUMAP(SubsetSeu, dims = 1:z, spread= s, reduction = "harmony")
DefaultAssay(SubsetSeu) = "RNA"

FPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = FeaturePlot(SubsetSeu, GenesToPlot, reduction="umap") 

DPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", split.by = "Timepoint2") + labs(title = paste("PCA", y, "_dims", z, "_spread", s))

DPlist2[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", group.by = "Timepoint2", label=T) + labs(title = paste("PCA", y, "dims", z, "spread", s))
}}}  
pdf(paste("FETAL_HYPO_155K_", Filename, "_FeaturePlots.pdf", sep=""), width=20, height=77/1.3)
print(FPlist)
dev.off()

pdf(paste("FETAL_HYPO_155K_", Filename, "_SPLITUMAP.pdf", sep=""), width=50, height=5)
print(DPlist)
dev.off()

pdf(paste("FETAL_HYPO_155K_", Filename, "_GROUPUMAP.pdf", sep=""), width=10, height=5)
print(DPlist2)
dev.off()
}

-

Non Neuronal Subclustering

Microglia

GeneLists[["Olah_Microglia"]] = c("PTPRC", "ITGAM", "AIF1", "C1QA", "CTSS", "CD14", "CSF3R", "ARGLU1", "FAM46A", "IFIT3", "ISG15", "MRC1", "TNF", "CD83", "EGR2", "TNFSF18", "CCL8", "TFRC", "FCGBP", "GPR84", "PONA", "CDC20", "BIRC5") #Single cell RNA sequencing of human microglia uncovers a subset associated with Alzheimer’s disease
GeneLists[["Tansley_Microglia"]] = c("TMEM119", "FCRTS", "P2RY12", "CX3CR1", "TREM2", "C1QA", "GM3336", "SPP1", "IFIT3", 'MKI67', "MCM6", "CLDN5", "H2-EB1") #Single-cell RNA sequencing reveals time- and sex-specific responses of mouse spinal cord microglia to peripheral nerve injury and links ApoE to chronic pain

Idents(KaZhouAll) = "MainClusters"

Microglia_Seu = subset(KaZhouAll, idents = "Microglia")  
DefaultAssay(Microglia_Seu) = "integrated"
Microglia_Seu = FindVariableFeatures(Microglia_Seu)
Microglia_Seu = ScaleData(Microglia_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Microglia_Seu) = "integrated"
Microglia_Seu = RunPCA(Microglia_Seu, npcs = 20)
Microglia_Seu <- RunUMAP(Microglia_Seu, dims = 1:20, spread= 2)
DefaultAssay(Microglia_Seu) = "RNA"
#####
set.dim = c(20)
set.res = 1
set.kparam = c(30)

#ClusterFunc_All_RNA(Microglia_Seu)


DefaultAssay(Microglia_Seu) = "integrated"
Microglia_Seu <- FindNeighbors(Microglia_Seu, k.param=30, dims=1:20)
Microglia_Seu <- FindClusters(Microglia_Seu, resolution = 1)
DefaultAssay(Microglia_Seu) = "RNA"

#CheckInput = Microglia12Clean
#CheckUMAP(Microglia_Seu)

Microglia_UMAP = as.data.frame(Microglia_Seu@reductions$umap@cell.embeddings)
Microglia01 = subset(Microglia_Seu, idents = c(0))
Microglia01Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia01) & Microglia_UMAP$UMAP_1 > -2 & Microglia_UMAP$UMAP_1 < 8 & Microglia_UMAP$UMAP_2 > 0)

Microglia02 = subset(Microglia_Seu, idents = 1)
Microglia02Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia02)  & Microglia_UMAP$UMAP_1 < 2 &  Microglia_UMAP$UMAP_2 >  0.5)

Microglia03 = subset(Microglia_Seu, idents = c(2,5))
Microglia03Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia03) & Microglia_UMAP$UMAP_1 > 2 & Microglia_UMAP$UMAP_1 < 7 &  Microglia_UMAP$UMAP_2 > -5 & Microglia_UMAP$UMAP_2 < 4.5 | Microglia_UMAP$UMAP_1 > -5 & Microglia_UMAP$UMAP_1 < 2 &  Microglia_UMAP$UMAP_2 > -2.5 & Microglia_UMAP$UMAP_2 < 1.5)

Microglia04 = subset(Microglia_Seu, idents = 3)
Microglia04Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia04)& Microglia_UMAP$UMAP_1 >3)

Microglia05 = subset(Microglia_Seu, idents = c(4,8))
Microglia05Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia05) & Microglia_UMAP$UMAP_1 > -5 & Microglia_UMAP$UMAP_2 < -10)

Microglia06 = subset(Microglia_Seu, idents = 6)
Microglia06Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia06) & Microglia_UMAP$UMAP_1 > -4 & Microglia_UMAP$UMAP_1 < 2 &  Microglia_UMAP$UMAP_2 > -10)
Microglia07Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia06) & Microglia_UMAP$UMAP_1 > 8)

Microglia08 = subset(Microglia_Seu, idents = c(7))
Microglia08Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia08) & Microglia_UMAP$UMAP_1 < -10)

Microglia09 = subset(Microglia_Seu, idents = c(9, 10))
Microglia09Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia09) & Microglia_UMAP$UMAP_1 > -9.2 & Microglia_UMAP$UMAP_1 < -4 & Microglia_UMAP$UMAP_2 < -12)
Microglia10Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia09) & !  row.names(Microglia_UMAP) %in% row.names(Microglia09Clean) & Microglia_UMAP$UMAP_1 > -11 &  Microglia_UMAP$UMAP_2 < -8)

Microglia11 = subset(Microglia_Seu, idents = 11)
Microglia11Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia11) & Microglia_UMAP$UMAP_1 > -10 & Microglia_UMAP$UMAP_1 < 0)

Microglia12 = subset(Microglia_Seu, idents = 12)
Microglia12Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia12) & Microglia_UMAP$UMAP_1 < -7)

Microglia13 = subset(Microglia_Seu, idents = 13)
Microglia13Clean = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia13) & Microglia_UMAP$UMAP_1 < -8 & Microglia_UMAP$UMAP_2 > -10)

#CheckInput = Microglia03_Extras
#CheckUMAP(Microglia_Seu)

Microglia_REST = subset(Microglia_Seu, cells = c(row.names(Microglia01Clean), row.names(Microglia02Clean), row.names(Microglia03Clean), row.names(Microglia04Clean), row.names(Microglia05Clean), row.names(Microglia06Clean), row.names(Microglia07Clean), row.names(Microglia08Clean), row.names(Microglia09Clean), row.names(Microglia10Clean), row.names(Microglia11Clean), row.names(Microglia12Clean), row.names(Microglia13Clean)), invert=T)

#CheckInput = Microglia05_Extras
#CheckUMAP(Microglia_Seu)

Microglia01_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST)  & Microglia_UMAP$UMAP_1 > 1 & Microglia_UMAP$UMAP_2 > 3 | row.names(Microglia_UMAP) %in% row.names(Microglia01Clean))
Microglia02_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST)  & Microglia_UMAP$UMAP_1 < 1 & Microglia_UMAP$UMAP_1 > -6.2 &  Microglia_UMAP$UMAP_2 > 0 | row.names(Microglia_UMAP) %in% row.names(Microglia02Clean))
Microglia03_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & ! row.names(Microglia_UMAP) %in% c(row.names(Microglia02_Extras), row.names(Microglia01_Extras))  & Microglia_UMAP$UMAP_1 > -4 & Microglia_UMAP$UMAP_1 < 8 &  Microglia_UMAP$UMAP_2 < 4 & Microglia_UMAP$UMAP_2 > -3.2  | row.names(Microglia_UMAP) %in% row.names(Microglia03Clean))
Microglia03_Extras = subset(Microglia03_Extras, ! row.names(Microglia03_Extras) %in% c(row.names(Microglia02_Extras), row.names(Microglia01_Extras)))
Microglia04_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > 3 &   Microglia_UMAP$UMAP_2 < -2 &   Microglia_UMAP$UMAP_2 > -13 & ! row.names(Microglia_UMAP) %in% row.names(Microglia03_Extras) | row.names(Microglia_UMAP) %in% row.names(Microglia04Clean))
Microglia05_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > -5 & Microglia_UMAP$UMAP_1 < 3 & Microglia_UMAP$UMAP_2 < -9 | row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > 4 & Microglia_UMAP$UMAP_2 < -12 | row.names(Microglia_UMAP) %in% row.names(Microglia05Clean))
Microglia06_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > -4 & Microglia_UMAP$UMAP_1 < 3 &  Microglia_UMAP$UMAP_2 > -10 &  Microglia_UMAP$UMAP_2 < -3.2 | row.names(Microglia_UMAP) %in% row.names(Microglia06Clean))
Microglia07_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > 8 & Microglia_UMAP$UMAP_2 < 2 | row.names(Microglia_UMAP) %in% row.names(Microglia07Clean))
Microglia08_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST)  & Microglia_UMAP$UMAP_1 < -10 & Microglia_UMAP$UMAP_2 > -1 | row.names(Microglia_UMAP) %in% row.names(Microglia08Clean))
Microglia09_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > -9.2 & Microglia_UMAP$UMAP_1 < -4 & Microglia_UMAP$UMAP_2 < -12  | row.names(Microglia_UMAP) %in% row.names(Microglia09Clean))
Microglia10_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > -11 & Microglia_UMAP$UMAP_1 < -5 &  Microglia_UMAP$UMAP_2 < -8  & ! row.names(Microglia_UMAP) %in% row.names(Microglia09_Extras)| row.names(Microglia_UMAP) %in% row.names(Microglia10Clean))
Microglia11_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_2 > -8 & Microglia_UMAP$UMAP_2 < -2 & Microglia_UMAP$UMAP_1 > -8 & Microglia_UMAP$UMAP_1 < -3 & ! row.names(Microglia_UMAP) %in% row.names(Microglia06_Extras)| row.names(Microglia_UMAP) %in% row.names(Microglia11Clean))


Microglia12_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 > -10 & Microglia_UMAP$UMAP_1 < -6 & Microglia_UMAP$UMAP_2 > -2 & Microglia_UMAP$UMAP_2 < 1 | row.names(Microglia_UMAP) %in% row.names(Microglia12Clean))

Microglia13_Extras = subset(Microglia_UMAP, row.names(Microglia_UMAP) %in% colnames(Microglia_REST) & Microglia_UMAP$UMAP_1 < -8 & Microglia_UMAP$UMAP_2 > -10 & Microglia_UMAP$UMAP_2 < -5 | row.names(Microglia_UMAP) %in% row.names(Microglia13Clean))

Microglia_Assigns = GenerateMetaData_Barcodes(list("Microglia_01" = Microglia01_Extras,  "Microglia_02" = Microglia02_Extras, "Microglia_03" = Microglia03_Extras, "Microglia_04" = Microglia04_Extras, "Microglia_05" = Microglia05_Extras,  "Microglia_06" = Microglia06_Extras, "Microglia_07" = Microglia07_Extras, "Microglia_08" = Microglia08_Extras, "Microglia_09" = Microglia09_Extras,  "Microglia_10" = Microglia10_Extras,  "Microglia_11" = Microglia11_Extras, "Microglia_12" = Microglia12_Extras, "Microglia_13" = Microglia13_Extras))

#Microglia02_Extras_Pt2 = subset(Microglia_Seu, cells = Microglia_Assigns$Barcodes, invert=T)

#CheckInput = Microglia03_Extras
#CheckUMAP(Microglia_Seu)

Microglia_Assigns$Dups = duplicated(Microglia_Assigns$Barcodes) | duplicated(Microglia_Assigns$Barcodes, fromLast=T)
Microglia_Assigns_T = subset(Microglia_Assigns, Microglia_Assigns$Dups == T)
unique(Microglia_Assigns_T$Pop)

Microglia_Assigns = GenerateMetaData(list( "Microglia_01" = Microglia01_Extras,  "Microglia_02" = Microglia02_Extras, "Microglia_03" = Microglia03_Extras, "Microglia_04" = Microglia04_Extras, "Microglia_05" = Microglia05_Extras,  "Microglia_06" = Microglia06_Extras, "Microglia_07" = Microglia07_Extras, "Microglia_08" = Microglia08_Extras, "Microglia_09" = Microglia09_Extras,  "Microglia_10" = Microglia10_Extras,  "Microglia_11" = Microglia11_Extras, "Microglia_12" = Microglia12_Extras, "Microglia_13" = Microglia13_Extras))

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

VLMC

Idents(KaZhouAll) = "MainClusters"

VLMC_Seu = subset(KaZhouAll, idents = "VLMC")  
DefaultAssay(VLMC_Seu) = "integrated"
VLMC_Seu = FindVariableFeatures(VLMC_Seu)
VLMC_Seu = ScaleData(VLMC_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(VLMC_Seu) = "integrated"
VLMC_Seu = RunPCA(VLMC_Seu, npcs = 30)
VLMC_Seu <- RunHarmony(VLMC_Seu, group.by.vars = "Timepoint2")
VLMC_Seu <- RunUMAP(VLMC_Seu, dims = 1:30, spread= 5, reduction = "harmony")
DefaultAssay(VLMC_Seu) = "RNA"
#####
set.dim = c(30)
set.res = 1
set.kparam = c(30, 50, 100)

#ClusterFunc_All_RNA(VLMC_Seu)


DefaultAssay(VLMC_Seu) = "integrated"
VLMC_Seu <- FindNeighbors(VLMC_Seu, k.param=30, dims=1:30)
VLMC_Seu <- FindClusters(VLMC_Seu, resolution = 1)
DefaultAssay(VLMC_Seu) = "RNA"

#CheckInput = VLMC08Clean
#CheckUMAP(VLMC_Seu)

VLMC_UMAP = as.data.frame(VLMC_Seu@reductions$umap@cell.embeddings)
VLMC01 = subset(VLMC_Seu, idents = c(0))
VLMC01Clean = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC01) & VLMC_UMAP$UMAP_1 < -23 & VLMC_UMAP$UMAP_2 > -15)

VLMC02 = subset(VLMC_Seu, idents = 4)
VLMC02Clean = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC02) & VLMC_UMAP$UMAP_1 > -26  & VLMC_UMAP$UMAP_1 < -14 & VLMC_UMAP$UMAP_2 > -8)

VLMC03 = subset(VLMC_Seu, idents = c(9))
VLMC03Clean = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC03) & VLMC_UMAP$UMAP_1 < -15)

VLMC04 = subset(VLMC_Seu, idents = 3)
VLMC04Clean = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC04) & VLMC_UMAP$UMAP_1 > -14 &  VLMC_UMAP$UMAP_1 < 0)

VLMC05 = subset(VLMC_Seu, idents = c(7))
VLMC05Clean = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC05) & VLMC_UMAP$UMAP_1 > -14 & VLMC_UMAP$UMAP_1 < 10 & VLMC_UMAP$UMAP_2 > -25 & VLMC_UMAP$UMAP_2 < -5)

VLMC06 = subset(VLMC_Seu, idents = 11)
VLMC06Clean = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC06) & VLMC_UMAP$UMAP_1 > -14 & VLMC_UMAP$UMAP_1 < 10 & VLMC_UMAP$UMAP_2 < -25)

VLMC07 = subset(VLMC_Seu, idents = c(7,11,3,9,4,0), invert=T)
VLMC07Clean = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC07) & VLMC_UMAP$UMAP_1 > 0  & VLMC_UMAP$UMAP_2 > -10 | row.names(VLMC_UMAP) %in% colnames(VLMC07) & VLMC_UMAP$UMAP_1 > 8 )

#CheckInput = VLMC03_Extras
#CheckUMAP(VLMC_Seu)

VLMC_REST = subset(VLMC_Seu, cells = c(row.names(VLMC01Clean), row.names(VLMC02Clean), row.names(VLMC03Clean), row.names(VLMC04Clean), row.names(VLMC05Clean), row.names(VLMC06Clean), row.names(VLMC07Clean)), invert=T)

#CheckInput = VLMC07_Extras
#CheckUMAP(VLMC_Seu)

VLMC01_Extras = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC_REST)  & VLMC_UMAP$UMAP_1 < -25 & VLMC_UMAP$UMAP_2 > -11 | row.names(VLMC_UMAP) %in% row.names(VLMC01Clean))
VLMC02_Extras = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC_REST)  & VLMC_UMAP$UMAP_1 > -25 & VLMC_UMAP$UMAP_1 < -14 & VLMC_UMAP$UMAP_2 > -11 | row.names(VLMC_UMAP) %in% row.names(VLMC02Clean))
VLMC03_Extras = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC_REST) & ! row.names(VLMC_UMAP) %in% c(row.names(VLMC02_Extras), row.names(VLMC01_Extras))  & VLMC_UMAP$UMAP_1 < -14  | row.names(VLMC_UMAP) %in% row.names(VLMC03Clean))
VLMC04_Extras = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC_REST) & VLMC_UMAP$UMAP_1 > -14 &  VLMC_UMAP$UMAP_1 < 0 & VLMC_UMAP$UMAP_2 > 0 | row.names(VLMC_UMAP) %in% row.names(VLMC04Clean))
VLMC05_Extras = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC_REST) & VLMC_UMAP$UMAP_1 > -14 & VLMC_UMAP$UMAP_1 < 10 & VLMC_UMAP$UMAP_2 > -25 & VLMC_UMAP$UMAP_2 < -5 | row.names(VLMC_UMAP) %in% row.names(VLMC05Clean))
VLMC06_Extras = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC_REST) & VLMC_UMAP$UMAP_1 > -14 & VLMC_UMAP$UMAP_1 < 10 & VLMC_UMAP$UMAP_2 < -25| row.names(VLMC_UMAP) %in% row.names(VLMC06Clean))

VLMC07_Extras = subset(VLMC_UMAP, row.names(VLMC_UMAP) %in% colnames(VLMC_REST) & VLMC_UMAP$UMAP_1 > 0  & VLMC_UMAP$UMAP_2 > -10 |  row.names(VLMC_UMAP) %in% colnames(VLMC_REST) & VLMC_UMAP$UMAP_1 > 8 | row.names(VLMC_UMAP) %in% row.names(VLMC07Clean))


VLMC_Assigns = GenerateMetaData_Barcodes(list("VLMC_01" = VLMC01_Extras,  "VLMC_02" = VLMC02_Extras, "VLMC_03" = VLMC03_Extras, "VLMC_04" = VLMC04_Extras, "VLMC_05" = VLMC05_Extras,  "VLMC_06" = VLMC06_Extras, "VLMC_07" = VLMC07_Extras))

#VLMC02_Extras_Pt2 = subset(VLMC_Seu, cells = VLMC_Assigns$Barcodes, invert=T)

#CheckInput = VLMC03_Extras
#CheckUMAP(VLMC_Seu)

VLMC_Assigns$Dups = duplicated(VLMC_Assigns$Barcodes) | duplicated(VLMC_Assigns$Barcodes, fromLast=T)
VLMC_Assigns_T = subset(VLMC_Assigns, VLMC_Assigns$Dups == T)
unique(VLMC_Assigns_T$Pop)

VLMC_Assigns = GenerateMetaData(list( "VLMC_01" = VLMC01_Extras,  "VLMC_02" = VLMC02_Extras, "VLMC_03" = VLMC03_Extras, "VLMC_04" = VLMC04_Extras, "VLMC_05" = VLMC05_Extras,  "VLMC_06" = VLMC06_Extras, "VLMC_07" = VLMC07_Extras))

#load("~/Hypothalamus_Subclustering_APR2023.RData")


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Pericytes

GeneLists[["Garcia_Pericytes"]] = c("ANXA2", "PDGFRB", "ANO3", "RERGL", "STAC", "APPBP2", "TERF2IP", "PCSK7", "GABRE", "KLHL29", "PGAP1") #Single-cell dissection of the human brain vasculature
Idents(KaZhouAll) = "MainClusters"

Pericytes_Seu = subset(KaZhouAll, idents = "Pericytes")  
DefaultAssay(Pericytes_Seu) = "integrated"
Pericytes_Seu = FindVariableFeatures(Pericytes_Seu)
Pericytes_Seu = ScaleData(Pericytes_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Pericytes_Seu) = "integrated"
Pericytes_Seu = RunPCA(Pericytes_Seu, npcs = 20)
Pericytes_Seu <- RunHarmony(Pericytes_Seu, group.by.vars = "Timepoint2")
Pericytes_Seu <- RunUMAP(Pericytes_Seu, dims = 1:20, spread= 2, reduction = "harmony")
DefaultAssay(Pericytes_Seu) = "RNA"
#####
set.dim = c(20)
set.res = 1
set.kparam = c(80)

#ClusterFunc_All_RNA(Pericytes_Seu)


DefaultAssay(Pericytes_Seu) = "integrated"
Pericytes_Seu <- FindNeighbors(Pericytes_Seu, k.param=80, dims=1:20)
Pericytes_Seu <- FindClusters(Pericytes_Seu, resolution = 1)
DefaultAssay(Pericytes_Seu) = "RNA"

#CheckInput = Pericytes03Clean
#CheckUMAP(Pericytes_Seu)

Pericytes_UMAP = as.data.frame(Pericytes_Seu@reductions$umap@cell.embeddings)
Pericytes01 = subset(Pericytes_Seu, idents = c(0,1,2,3))
Pericytes01Clean = subset(Pericytes_UMAP, row.names(Pericytes_UMAP) %in% colnames(Pericytes01) & Pericytes_UMAP$UMAP_1 < -2 & Pericytes_UMAP$UMAP_2 < 6 | row.names(Pericytes_UMAP) %in% colnames(Pericytes01) & Pericytes_UMAP$UMAP_1 > -2 & Pericytes_UMAP$UMAP_2 < 10)

Pericytes02 = subset(Pericytes_Seu, idents = 4)
Pericytes02Clean = subset(Pericytes_UMAP, row.names(Pericytes_UMAP) %in% colnames(Pericytes02) & Pericytes_UMAP$UMAP_1 < 0 & Pericytes_UMAP$UMAP_2 > 6)

Pericytes03 = subset(Pericytes_Seu, idents = c(5))
Pericytes03Clean = subset(Pericytes_UMAP, row.names(Pericytes_UMAP) %in% colnames(Pericytes03) & Pericytes_UMAP$UMAP_1 > 0 & Pericytes_UMAP$UMAP_2 > 10)



#CheckInput = Pericytes01_Extras
#CheckUMAP(Pericytes_Seu)

Pericytes_REST = subset(Pericytes_Seu, cells = c(row.names(Pericytes01Clean), row.names(Pericytes02Clean), row.names(Pericytes03Clean)), invert=T)


Pericytes01_Extras = subset(Pericytes_UMAP, row.names(Pericytes_UMAP) %in% colnames(Pericytes_REST)  & Pericytes_UMAP$UMAP_1 < -2 & Pericytes_UMAP$UMAP_2 < 6 | row.names(Pericytes_UMAP) %in% colnames(Pericytes_REST) & Pericytes_UMAP$UMAP_1 > -2 & Pericytes_UMAP$UMAP_2 < 10 | row.names(Pericytes_UMAP) %in% row.names(Pericytes01Clean))


Pericytes02_Extras = subset(Pericytes_UMAP, row.names(Pericytes_UMAP) %in% colnames(Pericytes_REST)  & Pericytes_UMAP$UMAP_1 < 0 & Pericytes_UMAP$UMAP_2 > 6 | row.names(Pericytes_UMAP) %in% row.names(Pericytes02Clean))


Pericytes03_Extras = subset(Pericytes_UMAP, row.names(Pericytes_UMAP) %in% colnames(Pericytes_REST) & Pericytes_UMAP$UMAP_1 > 0 & Pericytes_UMAP$UMAP_2 > 10 | row.names(Pericytes_UMAP) %in% row.names(Pericytes03Clean))



Pericytes_Assigns = GenerateMetaData_Barcodes(list("Pericytes_01" = Pericytes01_Extras,  "Pericytes_02" = Pericytes02_Extras, "Pericytes_03" = Pericytes03_Extras))

#Pericytes02_Extras_Pt2 = subset(Pericytes_Seu, cells = Pericytes_Assigns$Barcodes, invert=T)

#CheckInput = Pericytes03_Extras
#CheckUMAP(Pericytes_Seu)

Pericytes_Assigns$Dups = duplicated(Pericytes_Assigns$Barcodes) | duplicated(Pericytes_Assigns$Barcodes, fromLast=T)
Pericytes_Assigns_T = subset(Pericytes_Assigns, Pericytes_Assigns$Dups == T)
unique(Pericytes_Assigns_T$Pop)

Pericytes_Assigns = GenerateMetaData(list( "Pericytes_01" = Pericytes01_Extras,  "Pericytes_02" = Pericytes02_Extras, "Pericytes_03" = Pericytes03_Extras))

#load("~/Hypothalamus_Subclustering_APR2023.RData")

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

SMC

Idents(KaZhouAll) = "MainClusters"

SMC_Seu = subset(KaZhouAll, idents = "vSMC")  
DefaultAssay(SMC_Seu) = "integrated"
SMC_Seu = FindVariableFeatures(SMC_Seu)
SMC_Seu = ScaleData(SMC_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(SMC_Seu) = "integrated"
SMC_Seu = RunPCA(SMC_Seu, npcs = 20)
SMC_Seu <- RunHarmony(SMC_Seu, group.by.vars = "Timepoint2")
SMC_Seu <- RunUMAP(SMC_Seu, dims = 1:20, spread= 5, reduction = "harmony")
DefaultAssay(SMC_Seu) = "RNA"
#####
set.dim = c(20)
set.res = 1
set.kparam = c(10)

#ClusterFunc_All_RNA(SMC_Seu)


DefaultAssay(SMC_Seu) = "integrated"
SMC_Seu <- FindNeighbors(SMC_Seu, k.param=10, dims=1:20)
SMC_Seu <- FindClusters(SMC_Seu, resolution = 1)
DefaultAssay(SMC_Seu) = "RNA"

#CheckInput = SMC02Clean
#CheckUMAP(SMC_Seu)

SMC_UMAP = as.data.frame(SMC_Seu@reductions$umap@cell.embeddings)
SMC01 = subset(SMC_Seu, idents = c(0,3))
SMC01Clean = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC01) & SMC_UMAP$UMAP_1 > 5)

SMC02 = subset(SMC_Seu, idents = 1)
SMC02Clean = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC02)  & SMC_UMAP$UMAP_1 < 0 & SMC_UMAP$UMAP_2 > 5)

SMC03 = subset(SMC_Seu, idents = c(2))
SMC03Clean = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC03) & SMC_UMAP$UMAP_1 < -10 & SMC_UMAP$UMAP_2 < 5)

SMC04 = subset(SMC_Seu, idents = 4)
SMC04Clean = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC04) & SMC_UMAP$UMAP_1 > -10  & SMC_UMAP$UMAP_1 < 5 & SMC_UMAP$UMAP_2 < 5)


SMC_REST = subset(SMC_Seu, cells = c(row.names(SMC01Clean), row.names(SMC02Clean), row.names(SMC03Clean), row.names(SMC04Clean)), invert=T)

#CheckInput = SMC02Clean
#CheckUMAP(SMC_Seu)

SMC01_Extras = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC_REST)  & SMC_UMAP$UMAP_1 > 5 | row.names(SMC_UMAP) %in% row.names(SMC01Clean))
SMC02_Extras = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC_REST)  & SMC_UMAP$UMAP_1 < 0 & SMC_UMAP$UMAP_2 > 5 | row.names(SMC_UMAP) %in% row.names(SMC02Clean))
SMC03_Extras = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC_REST) & SMC_UMAP$UMAP_1 < -10 & SMC_UMAP$UMAP_2 < 5 | row.names(SMC_UMAP) %in% row.names(SMC03Clean))
SMC04_Extras = subset(SMC_UMAP, row.names(SMC_UMAP) %in% colnames(SMC_REST) & SMC_UMAP$UMAP_1 > -10  & SMC_UMAP$UMAP_1 < 5 & SMC_UMAP$UMAP_2 < 5 | row.names(SMC_UMAP) %in% row.names(SMC04Clean))

SMC_Assigns = GenerateMetaData_Barcodes(list("SMC_01" = SMC01_Extras,  "SMC_02" = SMC02_Extras, "SMC_03" = SMC03_Extras, "SMC_04" = SMC04_Extras))

#SMC02_Extras_Pt2 = subset(SMC_Seu, cells = SMC_Assigns$Barcodes, invert=T)

#CheckInput = SMC03_Extras
#CheckUMAP(SMC_Seu)

SMC_Assigns$Dups = duplicated(SMC_Assigns$Barcodes) | duplicated(SMC_Assigns$Barcodes, fromLast=T)
SMC_Assigns_T = subset(SMC_Assigns, SMC_Assigns$Dups == T)
unique(SMC_Assigns_T$Pop)

SMC_Assigns = GenerateMetaData(list( "SMC_01" = SMC01_Extras,  "SMC_02" = SMC02_Extras, "SMC_03" = SMC03_Extras, "SMC_04" = SMC04_Extras))


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Radial Glia

Idents(KaZhouAll) = "MainClusters"

RG_Seu = subset(KaZhouAll, idents = "RadialGlia")  
DefaultAssay(RG_Seu) = "integrated"
RG_Seu = FindVariableFeatures(RG_Seu)
RG_Seu = ScaleData(RG_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(RG_Seu) = "integrated"
RG_Seu = RunPCA(RG_Seu, npcs = 20)
RG_Seu <- RunHarmony(RG_Seu, group.by.vars = "Timepoint2")
RG_Seu <- RunUMAP(RG_Seu, dims = 1:20, spread= 2, reduction = "harmony")
DefaultAssay(RG_Seu) = "RNA"
#####
set.dim = c(20)
set.res = c(2,3)
set.kparam = c(100)

#ClusterFunc_All_RNA(RG_Seu)


DefaultAssay(RG_Seu) = "integrated"
RG_Seu <- FindNeighbors(RG_Seu, k.param=100, dims=1:20)
RG_Seu <- FindClusters(RG_Seu, resolution = 3)
DefaultAssay(RG_Seu) = "RNA"

#CheckInput = RG09Clean
#CheckUMAP(RG_Seu)

RG_UMAP = as.data.frame(RG_Seu@reductions$umap@cell.embeddings)
RG01 = subset(RG_Seu, idents = c(0,5))
RG01Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG01) & RG_UMAP$UMAP_1 < -7 & RG_UMAP$UMAP_2 > -6 & RG_UMAP$UMAP_2 < -4)
RG15Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG01) & RG_UMAP$UMAP_1 > -7 & RG_UMAP$UMAP_1 < 0 & RG_UMAP$UMAP_2 < -1 & RG_UMAP$UMAP_2 > -8)

RG02 = subset(RG_Seu, idents = c(1,16,10))
RG02Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG02)  & RG_UMAP$UMAP_1 > 0 &  RG_UMAP$UMAP_2 >  0 &  RG_UMAP$UMAP_2 < 10)

RG03 = subset(RG_Seu, idents = c(2,7))
RG03Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG03) & RG_UMAP$UMAP_1 > -7 & RG_UMAP$UMAP_1 < 5 & RG_UMAP$UMAP_2 > 2 & RG_UMAP$UMAP_2 < 9)

RG04 = subset(RG_Seu, idents = c(3,4,14))
RG04Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG04) & RG_UMAP$UMAP_1 > -1 & RG_UMAP$UMAP_1 < 7 & RG_UMAP$UMAP_2 > -9 & RG_UMAP$UMAP_2 < 1)

RG05 = subset(RG_Seu, idents = c(6))
RG05Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG05) &RG_UMAP$UMAP_2 > 12)

RG06 = subset(RG_Seu, idents = c(8,19))
RG06Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG06) & RG_UMAP$UMAP_1 > -6 & RG_UMAP$UMAP_1 < -2 & RG_UMAP$UMAP_2 > -4 & RG_UMAP$UMAP_2 < 1 | row.names(RG_UMAP) %in% colnames(RG06) & RG_UMAP$UMAP_1 > -2 & RG_UMAP$UMAP_1 < 2 & RG_UMAP$UMAP_2 > -1 & RG_UMAP$UMAP_2 < 2)

RG07 = subset(RG_Seu, idents = c(9,11,20))
RG07Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG07) & RG_UMAP$UMAP_1 > 2 & RG_UMAP$UMAP_2 < -4)

RG08 = subset(RG_Seu, idents = c(12,15))
RG08Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG08) &  RG_UMAP$UMAP_1 < -7 & RG_UMAP$UMAP_2 > 2)

RG09 = subset(RG_Seu, idents = c(13,18))
RG09Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG09) & RG_UMAP$UMAP_1 > -3.2 & RG_UMAP$UMAP_1 < 5 & RG_UMAP$UMAP_2 < -4)

RG10 = subset(RG_Seu, idents = c(17))
RG10Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG10) & RG_UMAP$UMAP_1 > -9 & RG_UMAP$UMAP_1 < -5 &  RG_UMAP$UMAP_2 < -5.5)

RG11 = subset(RG_Seu, idents = 21)
RG11Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG11) & RG_UMAP$UMAP_2 > 10 & RG_UMAP$UMAP_2 < 14)

RG12 = subset(RG_Seu, idents = 22)
RG12Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG12) & RG_UMAP$UMAP_1 < -5 & RG_UMAP$UMAP_2 < 0)

RG13 = subset(RG_Seu, idents = 23)
RG13Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG13) & RG_UMAP$UMAP_1 < -5 )

RG14 = subset(RG_Seu, idents = 24)
RG14Clean = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG14) & RG_UMAP$UMAP_2 < 0)

#CheckInput = RG14Clean
#CheckUMAP(RG_Seu)


RG_REST = subset(RG_Seu, cells = c(row.names(RG01Clean), row.names(RG02Clean), row.names(RG03Clean), row.names(RG04Clean), row.names(RG05Clean), row.names(RG06Clean), row.names(RG07Clean), row.names(RG08Clean), row.names(RG09Clean), row.names(RG10Clean), row.names(RG11Clean), row.names(RG12Clean), row.names(RG13Clean), row.names(RG14Clean), row.names(RG15Clean)), invert=T)

#CheckInput = RG02_Extras
#CheckUMAP(RG_Seu)

RG01_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 < -7 & RG_UMAP$UMAP_2 > -6 & RG_UMAP$UMAP_2 < -4 | row.names(RG_UMAP) %in% row.names(RG01Clean))

RG02_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > 3 &  RG_UMAP$UMAP_2 >  1.2 &  RG_UMAP$UMAP_2 < 10 |  row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -1 &  RG_UMAP$UMAP_2 >  1 &  RG_UMAP$UMAP_2 < 4 &  RG_UMAP$UMAP_2 < 3  | row.names(RG_UMAP) %in% row.names(RG02Clean))



RG03_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -7 & RG_UMAP$UMAP_1 < 5 & RG_UMAP$UMAP_2 > 3 & RG_UMAP$UMAP_2 < 9 & ! row.names(RG_UMAP) %in% c(row.names(RG02_Extras))  | row.names(RG_UMAP) %in% row.names(RG03Clean))



RG05_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_2 > 13.5 |  row.names(RG_UMAP) %in% row.names(RG05Clean))

RG06_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -5.5 & RG_UMAP$UMAP_1 < -3 & RG_UMAP$UMAP_2 > -2.5 & RG_UMAP$UMAP_2 < 1.5  |  row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -3 & RG_UMAP$UMAP_1 < 0 & RG_UMAP$UMAP_2 > -3.5 & RG_UMAP$UMAP_2 < 2   | row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -2 & RG_UMAP$UMAP_1 < 1.5 & RG_UMAP$UMAP_2 > -1 & RG_UMAP$UMAP_2 < 2 & ! row.names(RG_UMAP) %in% row.names(RG02_Extras) |  row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -7.7 & RG_UMAP$UMAP_1 < -5.5 & RG_UMAP$UMAP_2 > -1 & RG_UMAP$UMAP_2 < 1 | row.names(RG_UMAP) %in% row.names(RG06Clean))

RG07_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > 3.5 & RG_UMAP$UMAP_2 < -4| row.names(RG_UMAP) %in% row.names(RG07Clean))
RG08_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) &  RG_UMAP$UMAP_1 < -11 & RG_UMAP$UMAP_2 > 2 | row.names(RG_UMAP) %in% colnames(RG_REST) &  RG_UMAP$UMAP_1 > -11 &  RG_UMAP$UMAP_1 < -7 & RG_UMAP$UMAP_2 > 4| row.names(RG_UMAP) %in% row.names(RG08Clean))
RG09_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -2.5 & RG_UMAP$UMAP_1 < 1 & RG_UMAP$UMAP_2 < -5 & ! row.names(RG_UMAP) %in% row.names(RG07_Extras) | row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > 1 & RG_UMAP$UMAP_1 < 5 & RG_UMAP$UMAP_2 < -8 & ! row.names(RG_UMAP) %in% row.names(RG07_Extras)| row.names(RG_UMAP) %in% row.names(RG09Clean))

RG11_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) &  RG_UMAP$UMAP_2 > 10 & ! row.names(RG_UMAP) %in% c(row.names(RG05_Extras)) | row.names(RG_UMAP) %in% row.names(RG11Clean))

RG14_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -5 & RG_UMAP$UMAP_1 < -3 & RG_UMAP$UMAP_2 < -8 | row.names(RG_UMAP) %in% row.names(RG14Clean))
RG10_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -9 & RG_UMAP$UMAP_1 < -4.7 &  RG_UMAP$UMAP_2 < -4 & ! row.names(RG_UMAP) %in% c(row.names(RG01_Extras), row.names(RG14_Extras)) | row.names(RG_UMAP) %in% row.names(RG10Clean))
RG12_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 < -5 & RG_UMAP$UMAP_2 < 0 & ! row.names(RG_UMAP) %in% c(row.names(RG01_Extras), row.names(RG06_Extras), row.names(RG10_Extras)) | row.names(RG_UMAP) %in% row.names(RG12Clean))
RG15_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST)  & RG_UMAP$UMAP_1 > -7 & RG_UMAP$UMAP_1 < 0 & RG_UMAP$UMAP_2 < -1 & RG_UMAP$UMAP_2 > -8 & ! row.names(RG_UMAP) %in% c(row.names(RG06_Extras), row.names(RG08_Extras), row.names(RG10_Extras), row.names(RG09_Extras), row.names(RG12_Extras)) | row.names(RG_UMAP) %in% row.names(RG15Clean))

RG13_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST) & RG_UMAP$UMAP_1 > -12 & RG_UMAP$UMAP_1 < -7 & RG_UMAP$UMAP_2 > -0.5 & RG_UMAP$UMAP_2 < 5 & ! row.names(RG_UMAP) %in% c(row.names(RG06_Extras), row.names(RG08_Extras), row.names(RG12_Extras)) | row.names(RG_UMAP) %in% row.names(RG13Clean))

RG04_Extras = subset(RG_UMAP, row.names(RG_UMAP) %in% colnames(RG_REST)  & RG_UMAP$UMAP_1 > -0.5 & RG_UMAP$UMAP_1 < 8 & RG_UMAP$UMAP_2 > -4 & RG_UMAP$UMAP_2 < 1.2 & ! row.names(RG_UMAP) %in% c(row.names(RG02_Extras), row.names(RG06_Extras), row.names(RG07_Extras), row.names(RG09_Extras), row.names(RG15_Extras)) |  row.names(RG_UMAP) %in% colnames(RG_REST)  & RG_UMAP$UMAP_1 > -0.5 & RG_UMAP$UMAP_1 < 6 & RG_UMAP$UMAP_2 > -8 & RG_UMAP$UMAP_2 < 1.2 & ! row.names(RG_UMAP) %in% c(row.names(RG02_Extras), row.names(RG06_Extras), row.names(RG07_Extras), row.names(RG09_Extras), row.names(RG15_Extras)) | row.names(RG_UMAP) %in% row.names(RG04Clean))


#CheckInput = RG06_Extras
#CheckUMAP(RG_Seu)


RG_Assigns = GenerateMetaData_Barcodes(list("RG_01" = RG01_Extras,  "RG_02" = RG02_Extras, "RG_03" = RG03_Extras, "RG_04" = RG04_Extras, "RG_05" = RG05_Extras,  "RG_06" = RG06_Extras, "RG_07" = RG07_Extras, "RG_08" = RG08_Extras, "RG_09" = RG09_Extras,  "RG_10" = RG10_Extras,  "RG_11" = RG11_Extras, "RG_12" = RG12_Extras, "RG_13" = RG13_Extras, "RG_14" = RG14_Extras, "RG_15" = RG15_Extras))

RG02_Extras_Pt2 = subset(RG_Seu, cells = RG_Assigns$Barcodes, invert=T)

#CheckInput = RG02_Extras_Pt2
#CheckUMAP(RG_Seu)

RG_Assigns$Dups = duplicated(RG_Assigns$Barcodes) | duplicated(RG_Assigns$Barcodes, fromLast=T)
RG_Assigns_T = subset(RG_Assigns, RG_Assigns$Dups == T)
unique(RG_Assigns_T$Pop)

RG_Assigns = GenerateMetaData(list( "RG_01" = RG01_Extras,  "RG_02" = RG02_Extras, "RG_03" = RG03_Extras, "RG_04" = RG04_Extras, "RG_05" = RG05_Extras,  "RG_06" = RG06_Extras, "RG_07" = RG07_Extras, "RG_08" = RG08_Extras, "RG_09" = RG09_Extras,  "RG_10" = RG10_Extras,  "RG_11" = RG11_Extras, "RG_12" = RG12_Extras, "RG_13" = RG13_Extras, "RG_14" = RG14_Extras, "RG_15" = RG15_Extras, "RG_06" = RG02_Extras_Pt2))


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Neurepithelial

Idents(KaZhouAll) = "MainClusters"

NE_Seu = subset(KaZhouAll, idents = "Neuroepithelial")  
DefaultAssay(NE_Seu) = "integrated"
NE_Seu = FindVariableFeatures(NE_Seu)
NE_Seu = ScaleData(NE_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(NE_Seu) = "integrated"
NE_Seu = RunPCA(NE_Seu, npcs = 20)
#NE_Seu <- RunHarmony(NE_Seu, group.by.vars = "Timepoint2")
NE_Seu <- RunUMAP(NE_Seu, dims = 1:20, spread= 2)#, reduction = "harmony")
DefaultAssay(NE_Seu) = "RNA"
#####
set.dim = c(20)
set.res = c(1)
set.kparam = c(100)

#ClusterFunc_All_RNA(NE_Seu)


DefaultAssay(NE_Seu) = "integrated"
NE_Seu <- FindNeighbors(NE_Seu, k.param=100, dims=1:20)
NE_Seu <- FindClusters(NE_Seu, resolution = 1)
DefaultAssay(NE_Seu) = "RNA"

#CheckInput = NE09
#CheckUMAP(NE_Seu)

NE_UMAP = as.data.frame(NE_Seu@reductions$umap@cell.embeddings)
NE01 = subset(NE_Seu, idents = c(0,4,8))
NE01Clean = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE01) & NE_UMAP$UMAP_2 > 1 & NE_UMAP$UMAP_1 > -2)

NE02 = subset(NE_Seu, idents = c(1))
NE02Clean = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE02)  & NE_UMAP$UMAP_1 > 5 & NE_UMAP$UMAP_2 < 5 | row.names(NE_UMAP) %in% colnames(NE02)  & NE_UMAP$UMAP_1 > 1 & NE_UMAP$UMAP_2 > -5 & NE_UMAP$UMAP_2 < 5)

NE03 = subset(NE_Seu, idents = c(2,9))
NE03Clean = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE03) & NE_UMAP$UMAP_1 > -13 & NE_UMAP$UMAP_1 < -4 & NE_UMAP$UMAP_2 > -12 & NE_UMAP$UMAP_2 < 5)

NE04 = subset(NE_Seu, idents = c(3,7,11))
NE04Clean = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE04) & NE_UMAP$UMAP_1 > -8 & NE_UMAP$UMAP_1 < 8 & NE_UMAP$UMAP_2 > -7 & NE_UMAP$UMAP_2 < 2)

NE05 = subset(NE_Seu, idents = c(5))
NE05Clean = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE05) &NE_UMAP$UMAP_2 < -11)

NE06 = subset(NE_Seu, idents = c(6))
NE06Clean = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE06) & NE_UMAP$UMAP_1 > -10 & NE_UMAP$UMAP_1 < 7 & NE_UMAP$UMAP_2 > -11 & NE_UMAP$UMAP_2 < -3 )

NE07 = subset(NE_Seu, idents = c(10))
NE07Clean = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE07) &  NE_UMAP$UMAP_2 > 11)

NE08 = subset(NE_Seu, idents = c(12))
NE09 = subset(NE_Seu, idents = c(13,14))


NE_REST = subset(NE_Seu, cells = c(row.names(NE01Clean), row.names(NE02Clean), row.names(NE03Clean), row.names(NE04Clean), row.names(NE05Clean), row.names(NE06Clean), row.names(NE07Clean), colnames(NE08), colnames(NE09)), invert=T)

#CheckInput = NE06_Extras
#CheckUMAP(NE_Seu)

NE01_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST) & NE_UMAP$UMAP_1 > -5 &  NE_UMAP$UMAP_2 > 3 & NE_UMAP$UMAP_2 < 13 | row.names(NE_UMAP) %in% row.names(NE01Clean))

NE02_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST) & NE_UMAP$UMAP_1 > 5 &   NE_UMAP$UMAP_2 < -2 |  row.names(NE_UMAP) %in% colnames(NE_REST) & NE_UMAP$UMAP_1 > 3 &  NE_UMAP$UMAP_2 >  -6 &  NE_UMAP$UMAP_2 < 2 | row.names(NE_UMAP) %in% row.names(NE02Clean))

NE03_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST) & NE_UMAP$UMAP_1 > -12 & NE_UMAP$UMAP_1 < -6 & NE_UMAP$UMAP_2 > -12 & NE_UMAP$UMAP_2 < 5  | row.names(NE_UMAP) %in% row.names(NE03Clean))

NE04_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST)& NE_UMAP$UMAP_1 > -8 & NE_UMAP$UMAP_1 < 8 & NE_UMAP$UMAP_2 > -7 & NE_UMAP$UMAP_2 < 3 & ! row.names(NE_UMAP) %in% c(row.names(NE03_Extras), row.names(NE02_Extras), row.names(NE01_Extras))  | row.names(NE_UMAP) %in% row.names(NE04Clean))

#& ! row.names(NE_UMAP) %in% c(row.names(NE02_Extras)) 

NE05_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST) & NE_UMAP$UMAP_2 < -12 |  row.names(NE_UMAP) %in% row.names(NE05Clean))

NE06_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST)& NE_UMAP$UMAP_1 > -10 & NE_UMAP$UMAP_1 < 7 & NE_UMAP$UMAP_2 > -11 & NE_UMAP$UMAP_2 < -3 & ! row.names(NE_UMAP) %in% c(row.names(NE03_Extras), row.names(NE02_Extras), row.names(NE04_Extras))|  row.names(NE_UMAP) %in% row.names(NE06Clean))



NE07_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST) & NE_UMAP$UMAP_1 > 5 & NE_UMAP$UMAP_2 > 12 | row.names(NE_UMAP) %in% row.names(NE07Clean))


NE08_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST) &  NE_UMAP$UMAP_1 < 0 &   NE_UMAP$UMAP_2 > 10 | row.names(NE_UMAP) %in% colnames(NE08))

NE09_Extras = subset(NE_UMAP, row.names(NE_UMAP) %in% colnames(NE_REST) &  NE_UMAP$UMAP_1 < -12 | row.names(NE_UMAP) %in% colnames(NE09))

#CheckInput = NE09_Extras
#CheckUMAP(NE_Seu)


NE_Assigns = GenerateMetaData_Barcodes(list("NE_01" = NE01_Extras,  "NE_02" = NE02_Extras, "NE_03" = NE03_Extras, "NE_04" = NE04_Extras, "NE_05" = NE05_Extras,  "NE_06" = NE06_Extras, "NE_07" = NE07_Extras, "NE_08" = NE08_Extras, "NE_09" = NE09_Extras))

#NE02_Extras_Pt2 = subset(NE_Seu, cells = NE_Assigns$Barcodes, invert=T)

#CheckInput = NE02_Extras_Pt2
#CheckUMAP(NE_Seu)

NE_Assigns$Dups = duplicated(NE_Assigns$Barcodes) | duplicated(NE_Assigns$Barcodes, fromLast=T)
NE_Assigns_T = subset(NE_Assigns, NE_Assigns$Dups == T)
unique(NE_Assigns_T$Pop)

NE_Assigns = GenerateMetaData(list( "NE_01" = NE01_Extras,  "NE_02" = NE02_Extras, "NE_03" = NE03_Extras, "NE_04" = NE04_Extras, "NE_05" = NE05_Extras,  "NE_06" = NE06_Extras, "NE_07" = NE07_Extras, "NE_08" = NE08_Extras, "NE_09" = NE09_Extras))




save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Intermediate Progenitors

Idents(KaZhouAll) = "MainClusters"

IP_Seu = subset(KaZhouAll, idents = "IntProgen")  
DefaultAssay(IP_Seu) = "integrated"
IP_Seu = FindVariableFeatures(IP_Seu)
IP_Seu = ScaleData(IP_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(IP_Seu) = "integrated"
IP_Seu = RunPCA(IP_Seu, npcs = 30)
IP_Seu <- RunHarmony(IP_Seu, group.by.vars = "Timepoint2")
IP_Seu <- RunUMAP(IP_Seu, dims = 1:30, spread= 5, reduction = "harmony")
DefaultAssay(IP_Seu) = "RNA"
#####
set.dim = c(30)
set.res = c(1)
set.kparam = c(20,50, 100)

#ClusterFunc_All_RNA(IP_Seu)


DefaultAssay(IP_Seu) = "integrated"
IP_Seu <- FindNeighbors(IP_Seu, k.param=50, dims=1:30)
IP_Seu <- FindClusters(IP_Seu, resolution = 1)
DefaultAssay(IP_Seu) = "RNA"

#CheckInput = IP01Clean
#CheckUMAP(IP_Seu)

IP_UMAP = as.data.frame(IP_Seu@reductions$umap@cell.embeddings)
IP01 = subset(IP_Seu, idents = c(0,1,7,9))
IP01Clean = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP01) & IP_UMAP$UMAP_2 < 0 & IP_UMAP$UMAP_1 < -5 | row.names(IP_UMAP) %in% colnames(IP01) & IP_UMAP$UMAP_2 > -3 & IP_UMAP$UMAP_2 < 3 & IP_UMAP$UMAP_1 > -20 & IP_UMAP$UMAP_1 < 3 | row.names(IP_UMAP) %in% colnames(IP01) & IP_UMAP$UMAP_2 > 3 & IP_UMAP$UMAP_2 < 14 & IP_UMAP$UMAP_1 > -15 & IP_UMAP$UMAP_1 < 7 )

IP02 = subset(IP_Seu, idents = c(2,3,5))
IP02Clean = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP02)  & IP_UMAP$UMAP_1 > -7 & IP_UMAP$UMAP_2 < -5 | row.names(IP_UMAP) %in% colnames(IP02)  & IP_UMAP$UMAP_1 > 5 & IP_UMAP$UMAP_2 < 5| row.names(IP_UMAP) %in% colnames(IP02)  & IP_UMAP$UMAP_1 > 10)

IP03 = subset(IP_Seu, idents = c(4,8))
IP03Clean = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP03)  & IP_UMAP$UMAP_1 < 3 & IP_UMAP$UMAP_2 > 10)

IP04 = subset(IP_Seu, idents = c(6))
IP04Clean = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP04) & IP_UMAP$UMAP_1 < -20)

IP_REST = subset(IP_Seu, cells = c(row.names(IP01Clean), row.names(IP02Clean), row.names(IP03Clean), row.names(IP04Clean)), invert=T)

#CheckInput = IP01_Extras
#CheckUMAP(IP_Seu)

IP01_Extras = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP_REST) & IP_UMAP$UMAP_2 < 0 & IP_UMAP$UMAP_1 < -5 | row.names(IP_UMAP) %in% colnames(IP_REST) & IP_UMAP$UMAP_2 > -5 & IP_UMAP$UMAP_2 < 4 & IP_UMAP$UMAP_1 > -20 & IP_UMAP$UMAP_1 < 3 | row.names(IP_UMAP) %in% colnames(IP_REST) & IP_UMAP$UMAP_2 > 2 & IP_UMAP$UMAP_2 < 14 & IP_UMAP$UMAP_1 > -15 & IP_UMAP$UMAP_1 < 5  | row.names(IP_UMAP) %in% row.names(IP01Clean))

IP02_Extras = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP_REST) & IP_UMAP$UMAP_1 > -7 & IP_UMAP$UMAP_2 < -5 |row.names(IP_UMAP) %in% colnames(IP_REST) & IP_UMAP$UMAP_1 > 4 & IP_UMAP$UMAP_2 < 5| row.names(IP_UMAP) %in% colnames(IP_REST)  & IP_UMAP$UMAP_1 > 10 | row.names(IP_UMAP) %in% row.names(IP02Clean))

IP03_Extras = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP_REST) & IP_UMAP$UMAP_1 < 3 & IP_UMAP$UMAP_2 > 10 & ! row.names(IP_UMAP) %in% row.names(IP01_Extras)  | row.names(IP_UMAP) %in% row.names(IP03Clean))

IP04_Extras = subset(IP_UMAP, row.names(IP_UMAP) %in% colnames(IP_REST) & IP_UMAP$UMAP_1 < -20 &  IP_UMAP$UMAP_2 > 0  | row.names(IP_UMAP) %in% row.names(IP04Clean))

#CheckInput = IP04_Extras
#CheckUMAP(IP_Seu)


IP_Assigns = GenerateMetaData_Barcodes(list("IP_01" = IP01_Extras,  "IP_02" = IP02_Extras, "IP_03" = IP03_Extras, "IP_04" = IP04_Extras))

#IP02_Extras_Pt2 = subset(IP_Seu, cells = IP_Assigns$Barcodes, invert=T)

#CheckInput = IP02_Extras_Pt2
#CheckUMAP(IP_Seu)

IP_Assigns$Dups = duplicated(IP_Assigns$Barcodes) | duplicated(IP_Assigns$Barcodes, fromLast=T)
IP_Assigns_T = subset(IP_Assigns, IP_Assigns$Dups == T)
unique(IP_Assigns_T$Pop)

IP_Assigns = GenerateMetaData(list( "IP_01" = IP01_Extras,  "IP_02" = IP02_Extras, "IP_03" = IP03_Extras, "IP_04" = IP04_Extras))



save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Dividing Progenitors

Idents(KaZhouAll) = "MainClusters"

Div_Seu = subset(KaZhouAll, idents = "Dividing")  
DefaultAssay(Div_Seu) = "integrated"
Div_Seu = FindVariableFeatures(Div_Seu)
Div_Seu = ScaleData(Div_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Div_Seu) = "integrated"
Div_Seu = RunPCA(Div_Seu, npcs = 20)
#Div_Seu <- RunHarmony(Div_Seu, group.by.vars = "Timepoint2")
Div_Seu <- RunUMAP(Div_Seu, dims = 1:20, spread= 2)#, reduction = "harmony")
DefaultAssay(Div_Seu) = "RNA"
#####
set.dim = c(20)
set.res = c(1)
set.kparam = c(50, 20)

#ClusterFunc_All_RNA(Div_Seu)


DefaultAssay(Div_Seu) = "integrated"
Div_Seu <- FindNeighbors(Div_Seu, k.param=20, dims=1:20)
Div_Seu <- FindClusters(Div_Seu, resolution = 1)
DefaultAssay(Div_Seu) = "RNA"

#CheckInput = Div02Clean
#CheckUMAP(Div_Seu)

Div_UMAP = as.data.frame(Div_Seu@reductions$umap@cell.embeddings)
Div01 = subset(Div_Seu, idents = c(0)) #Neuro-Astro
Div01Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div01) & Div_UMAP$UMAP_1 > -8 & Div_UMAP$UMAP_1 < 0.5 & Div_UMAP$UMAP_2 > -1 & Div_UMAP$UMAP_2 < 3 | row.names(Div_UMAP) %in% colnames(Div01) & Div_UMAP$UMAP_1 > -5 & Div_UMAP$UMAP_1 < 0.5 & Div_UMAP$UMAP_2 > -3 & Div_UMAP$UMAP_2 < 1)

Div02 = subset(Div_Seu, idents = c(1)) #Neuro
Div02Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div02)  & Div_UMAP$UMAP_1 > -11 & Div_UMAP$UMAP_1 < -6 & Div_UMAP$UMAP_2 > -4 & Div_UMAP$UMAP_2 < 2 | row.names(Div_UMAP) %in% colnames(Div02)  & Div_UMAP$UMAP_1 > -14 & Div_UMAP$UMAP_1 < -11 & Div_UMAP$UMAP_2 > -4 & Div_UMAP$UMAP_2 < 1.)

Div03 = subset(Div_Seu, idents = c(2,16)) #No lineage
Div03Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div03) & Div_UMAP$UMAP_1 > 3 & Div_UMAP$UMAP_2 < -9 | row.names(Div_UMAP) %in% colnames(Div03) & Div_UMAP$UMAP_1 > 5 & Div_UMAP$UMAP_2 < 0)

Div04 = subset(Div_Seu, idents = c(3)) #Astro
Div04Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div04) & Div_UMAP$UMAP_1 > 0 & Div_UMAP$UMAP_1 < 9)

Div05 = subset(Div_Seu, idents = c(4)) #Fibroblasts
Div05Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div05) & Div_UMAP$UMAP_1 > 6  & Div_UMAP$UMAP_2 >7)

Div06 = subset(Div_Seu, idents = c(5)) #Fibroblasts
Div06Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div06) & Div_UMAP$UMAP_1 > -6 & Div_UMAP$UMAP_1 < 4 & Div_UMAP$UMAP_2 > 4 & Div_UMAP$UMAP_2 < 9)

Div07 = subset(Div_Seu, idents = c(6)) #Fibroblasts
Div07Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div07) &  Div_UMAP$UMAP_1 > 3 &  Div_UMAP$UMAP_1 < 10 &  Div_UMAP$UMAP_2 > -4 & Div_UMAP$UMAP_2 < 5)

Div08 = subset(Div_Seu, idents = c(7)) #Neuro
Div08Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div08) & Div_UMAP$UMAP_2 < -10 & Div_UMAP$UMAP_1 < 8)

Div09 = subset(Div_Seu, idents = c(8)) #Fibroblasts
Div09Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div09)  &  Div_UMAP$UMAP_1 > 5 &  Div_UMAP$UMAP_1 < 11 &  Div_UMAP$UMAP_2 > 1.7 & Div_UMAP$UMAP_2 < 10)

Div10 = subset(Div_Seu, idents = c(9)) #Neuro
Div10Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div10)  &  Div_UMAP$UMAP_1 > 0.5 &  Div_UMAP$UMAP_1 < 7.5 &  Div_UMAP$UMAP_2 > 0 & Div_UMAP$UMAP_2 < 9)

Div11 = subset(Div_Seu, idents = c(10,15,23))
Div11Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div11) &  Div_UMAP$UMAP_1 > -7  &  Div_UMAP$UMAP_1 < 0 & Div_UMAP$UMAP_2 > 6 & Div_UMAP$UMAP_2 < 10.5) #No Lineage
Div12Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div11) &  Div_UMAP$UMAP_1 < -7 &  Div_UMAP$UMAP_2 > -1 & Div_UMAP$UMAP_2 < 7) #Fibroblasts

Div13 = subset(Div_Seu, idents = c(11)) #Neuro-Olig
Div13Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div13) &  Div_UMAP$UMAP_1 < -10 &  Div_UMAP$UMAP_2 < -2)

Div14 = subset(Div_Seu, idents = c(12))
Div14Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div14) &  Div_UMAP$UMAP_1 > -1&  Div_UMAP$UMAP_1 < 2.5 & Div_UMAP$UMAP_2 < 2) #Neuro
Div15Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div14) &  Div_UMAP$UMAP_1 > 2.5 &   Div_UMAP$UMAP_2 < 2) #No lineage

Div16 = subset(Div_Seu, idents = c(13,20)) #Neuro-Astro
Div16Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div16) &  Div_UMAP$UMAP_1 > -13 &  Div_UMAP$UMAP_1 < -2 &  Div_UMAP$UMAP_2 < 0)

Div17 = subset(Div_Seu, idents = c(14, 18)) #Fibroblasts
Div17Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div17) &  Div_UMAP$UMAP_1 > -1 &  Div_UMAP$UMAP_2 > 2)

Div18 = subset(Div_Seu, idents = c(17)) #TAGLN/DCN
Div18Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div18) & Div_UMAP$UMAP_2 > 10)

Div19 = subset(Div_Seu, idents = c(19)) #Astro
Div19Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div19) &  Div_UMAP$UMAP_1 > -9 &  Div_UMAP$UMAP_1 < 0 &  Div_UMAP$UMAP_2 < -2) 

Div20 = subset(Div_Seu, idents = c(21)) #Olig
Div20Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div20) &  Div_UMAP$UMAP_1 > -9 &  Div_UMAP$UMAP_1 < 0) 

Div21 = subset(Div_Seu, idents = c(22)) #Astro
Div21Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div21) &   Div_UMAP$UMAP_2 < -5) 

Div22 = subset(Div_Seu, idents = c(24)) #Fibroblasts

Div23 = subset(Div_Seu, idents = c(25)) #Fibroblasts
Div23Clean = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div23) &   Div_UMAP$UMAP_1 > 11) 

#CheckInput = Div23Clean
#CheckUMAP(Div_Seu)


Div_REST = subset(Div_Seu, cells = c(row.names(Div01Clean), row.names(Div02Clean), row.names(Div03Clean), row.names(Div04Clean), row.names(Div05Clean), row.names(Div06Clean), row.names(Div07Clean), row.names(Div08Clean), row.names(Div09Clean), row.names(Div10Clean), row.names(Div11Clean), row.names(Div12Clean), row.names(Div13Clean), row.names(Div14Clean), row.names(Div15Clean), row.names(Div16Clean), row.names(Div17Clean), row.names(Div18Clean), row.names(Div19Clean), row.names(Div20Clean), row.names(Div21Clean),colnames(Div22), row.names(Div23Clean)), invert=T)

#CheckInput = Div02_Extras
#CheckUMAP(Div_Seu)

Div01_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST)  & Div_UMAP$UMAP_1 > -6 & Div_UMAP$UMAP_1 < 0.5 & Div_UMAP$UMAP_2 > -1 & Div_UMAP$UMAP_2 < 3 | row.names(Div_UMAP) %in% colnames(Div_REST)  & Div_UMAP$UMAP_1 > -5 & Div_UMAP$UMAP_1 < 0.5 & Div_UMAP$UMAP_2 > -3 & Div_UMAP$UMAP_2 < 1 | row.names(Div_UMAP) %in% row.names(Div01Clean))

Div02_Extras = subset(Div_UMAP,  row.names(Div_UMAP) %in% colnames(Div_REST) & Div_UMAP$UMAP_1 < -2 & Div_UMAP$UMAP_1 > -8 & Div_UMAP$UMAP_2 > -3 & Div_UMAP$UMAP_2 < 0 & ! row.names(Div_UMAP) %in% row.names(Div01_Extras)|  row.names(Div_UMAP) %in% colnames(Div_REST) & Div_UMAP$UMAP_1 > -13 & Div_UMAP$UMAP_1 < -6 & Div_UMAP$UMAP_2 > -3.5 & Div_UMAP$UMAP_2 < 2 | row.names(Div_UMAP) %in% row.names(Div02Clean))

Div03_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) & Div_UMAP$UMAP_1 > 3 & Div_UMAP$UMAP_2 < -9 | row.names(Div_UMAP) %in% colnames(Div_REST) & Div_UMAP$UMAP_1 > 7 & Div_UMAP$UMAP_2 < 0 | row.names(Div_UMAP) %in% row.names(Div03Clean))

Div05_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) & Div_UMAP$UMAP_1 > 6 & Div_UMAP$UMAP_2 > 9 |  row.names(Div_UMAP) %in% row.names(Div05Clean))


Div07_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 3 &  Div_UMAP$UMAP_1 < 10 &  Div_UMAP$UMAP_2 > -4 & Div_UMAP$UMAP_2 < 3 & ! row.names(Div_UMAP) %in% row.names(Div03_Extras) | row.names(Div_UMAP) %in% row.names(Div07Clean))

Div08_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 3 &   Div_UMAP$UMAP_2 < -13 & ! row.names(Div_UMAP) %in% row.names(Div03_Extras) | row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 0 &  Div_UMAP$UMAP_1 < 3 & Div_UMAP$UMAP_2 < -11 & ! row.names(Div_UMAP) %in% row.names(Div03_Extras) | row.names(Div_UMAP) %in% row.names(Div08Clean))

Div09_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 7 &  Div_UMAP$UMAP_1 < 11 &  Div_UMAP$UMAP_2 > 2 & Div_UMAP$UMAP_2 < 7 & ! row.names(Div_UMAP) %in% row.names(Div07_Extras)| row.names(Div_UMAP) %in% row.names(Div09Clean))

Div10_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 >1 &  Div_UMAP$UMAP_1 < 6 &  Div_UMAP$UMAP_2 > 2 & Div_UMAP$UMAP_2 < 6 | row.names(Div_UMAP) %in% row.names(Div10Clean))


Div12_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 < -8 &  Div_UMAP$UMAP_2 > -2 & Div_UMAP$UMAP_2 < 9 & ! row.names(Div_UMAP) %in% row.names(Div02_Extras) | row.names(Div_UMAP) %in% row.names(Div12Clean))

Div13_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 < -10 &  Div_UMAP$UMAP_2 < -2 & ! row.names(Div_UMAP) %in% row.names(Div02_Extras) | row.names(Div_UMAP) %in% row.names(Div13Clean))

Div14_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > -0.5 &  Div_UMAP$UMAP_1 < 2.5 &  Div_UMAP$UMAP_2 < 0 & Div_UMAP$UMAP_2 > -6  & ! row.names(Div_UMAP) %in% row.names(Div01_Extras) | row.names(Div_UMAP) %in% row.names(Div14Clean))

Div15_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 2.5 &  Div_UMAP$UMAP_1 < 7.5 &  Div_UMAP$UMAP_2 < -2 & Div_UMAP$UMAP_2 > -7 & ! row.names(Div_UMAP) %in% c(row.names(Div03_Extras), row.names(Div07_Extras))  | row.names(Div_UMAP) %in% row.names(Div15Clean))

Div04_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST)& Div_UMAP$UMAP_1 > 0 & Div_UMAP$UMAP_2 > -10 & Div_UMAP$UMAP_2 < -5 & ! row.names(Div_UMAP) %in% c(row.names(Div03_Extras), row.names(Div14_Extras), row.names(Div15_Extras))  | row.names(Div_UMAP) %in% row.names(Div04Clean))


Div16_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > -12 &  Div_UMAP$UMAP_1 < -3 &  Div_UMAP$UMAP_2 < -3 & Div_UMAP$UMAP_2 > -6 & ! row.names(Div_UMAP) %in% c(row.names(Div02_Extras), row.names(Div13_Extras)) | row.names(Div_UMAP) %in% row.names(Div16Clean))

Div17_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 1 &  Div_UMAP$UMAP_1 < 10 &  Div_UMAP$UMAP_2 < 11 & Div_UMAP$UMAP_2 > 6 & ! row.names(Div_UMAP) %in% c(row.names(Div05_Extras), row.names(Div09_Extras)) | row.names(Div_UMAP) %in% row.names(Div17Clean))

Div18_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > -8 &  Div_UMAP$UMAP_1 < 3 & Div_UMAP$UMAP_2 > 10.5 | row.names(Div_UMAP) %in% row.names(Div18Clean))

Div19_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > -8 &  Div_UMAP$UMAP_1 < -2 &  Div_UMAP$UMAP_2 < -3 & ! row.names(Div_UMAP) %in% c(row.names(Div02_Extras), row.names(Div16_Extras))| row.names(Div_UMAP) %in% row.names(Div19Clean))

Div20_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > -9 &  Div_UMAP$UMAP_1 < -2 &  Div_UMAP$UMAP_2 > 2 &  Div_UMAP$UMAP_2 < 5 & ! row.names(Div_UMAP) %in% c(row.names(Div01_Extras), row.names(Div05_Extras))| row.names(Div_UMAP) %in% row.names(Div20Clean))

Div06_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST)  & Div_UMAP$UMAP_1 > -7 & Div_UMAP$UMAP_1 < 3 & Div_UMAP$UMAP_2 > 4 & Div_UMAP$UMAP_2 < 9 & ! row.names(Div_UMAP) %in% c(row.names(Div10_Extras), row.names(Div20_Extras)) |  row.names(Div_UMAP) %in% row.names(Div06Clean))

Div11_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 >-7 &  Div_UMAP$UMAP_1 < 0 &  Div_UMAP$UMAP_2 > 5 & Div_UMAP$UMAP_2 < 11 & ! row.names(Div_UMAP) %in% row.names(Div06_Extras) | row.names(Div_UMAP) %in% row.names(Div11Clean))

Div21_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 0 &   Div_UMAP$UMAP_2 < -9 & ! row.names(Div_UMAP) %in% c(row.names(Div03_Extras), row.names(Div04_Extras), row.names(Div08_Extras))| row.names(Div_UMAP) %in% row.names(Div21Clean))

Div22_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 9  &  Div_UMAP$UMAP_1 < 11 &   Div_UMAP$UMAP_2 > 6 &   Div_UMAP$UMAP_2 < 8 & ! row.names(Div_UMAP) %in% c(row.names(Div07_Extras), row.names(Div17_Extras), row.names(Div05_Extras))| row.names(Div_UMAP) %in% colnames(Div22))

Div23_Extras = subset(Div_UMAP, row.names(Div_UMAP) %in% colnames(Div_REST) &  Div_UMAP$UMAP_1 > 11 | row.names(Div_UMAP) %in% row.names(Div23Clean))


#CheckInput = Div07_Extras
#CheckUMAP(Div_Seu)


Div_Assigns = GenerateMetaData_Barcodes(list("Div_01" = Div01_Extras,  "Div_02" = Div02_Extras, "Div_03" = Div03_Extras, "Div_04" = Div04_Extras, "Div_05" = Div05_Extras,  "Div_06" = Div06_Extras, "Div_07" = Div07_Extras, "Div_08" = Div08_Extras, "Div_09" = Div09_Extras, "Div_10" = Div10_Extras, "Div_11" = Div11_Extras,  "Div_12" = Div12_Extras, "Div_13" = Div13_Extras, "Div_14" = Div14_Extras, "Div_15" = Div15_Extras,  "Div_16" = Div16_Extras, "Div_17" = Div17_Extras, "Div_18" = Div18_Extras, "Div_19" = Div19_Extras, "Div_20" = Div20_Extras, "Div_21" = Div21_Extras,  "Div_22" = Div22_Extras, "Div_23" = Div23_Extras))

Div02_Extras_Pt2 = subset(Div_Seu, cells = Div_Assigns$Barcodes, invert=T)

#CheckInput = Div02_Extras_Pt2
#CheckUMAP(Div_Seu)

Div_Assigns$Dups = duplicated(Div_Assigns$Barcodes) | duplicated(Div_Assigns$Barcodes, fromLast=T)
Div_Assigns_T = subset(Div_Assigns, Div_Assigns$Dups == T)
unique(Div_Assigns_T$Pop)

Div_Assigns = GenerateMetaData(list("Div_01" = Div01_Extras,  "Div_02" = Div02_Extras, "Div_03" = Div03_Extras, "Div_04" = Div04_Extras, "Div_05" = Div05_Extras,  "Div_06" = Div06_Extras, "Div_07" = Div07_Extras, "Div_08" = Div08_Extras, "Div_09" = Div09_Extras, "Div_10" = Div10_Extras, "Div_11" = Div11_Extras,  "Div_12" = Div12_Extras, "Div_13" = Div13_Extras, "Div_14" = Div14_Extras, "Div_15" = Div15_Extras,  "Div_16" = Div16_Extras, "Div_17" = Div17_Extras, "Div_18" = Div18_Extras, "Div_19" = Div19_Extras, "Div_20" = Div20_Extras, "Div_21" = Div21_Extras,  "Div_22" = Div22_Extras, "Div_23" = Div23_Extras, "Div_10" = Div02_Extras_Pt2))

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Astrocytes

Idents(KaZhouAll) = "MainClusters"

Astro_Seu = subset(KaZhouAll, idents = "Astrocytes")  
DefaultAssay(Astro_Seu) = "integrated"
Astro_Seu = FindVariableFeatures(Astro_Seu)
Astro_Seu = ScaleData(Astro_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Astro_Seu) = "integrated"
Astro_Seu = RunPCA(Astro_Seu, npcs = 20)
#Astro_Seu <- RunHarmony(Astro_Seu, group.by.vars = "Timepoint2")
Astro_Seu <- RunUMAP(Astro_Seu, dims = 1:20, spread= 2)#, reduction = "harmony")
DefaultAssay(Astro_Seu) = "RNA"
#####
set.dim = c(20)
set.res = c(1)
set.kparam = c(50,100)

##ClusterFunc_All_RNA(Astro_Seu)


DefaultAssay(Astro_Seu) = "integrated"
Astro_Seu <- FindNeighbors(Astro_Seu, k.param=100, dims=1:20)
Astro_Seu <- FindClusters(Astro_Seu, resolution = 1)
DefaultAssay(Astro_Seu) = "RNA"

##CheckInput = Astro06Clean
#CheckUMAP(Astro_Seu)

Astro_UMAP = as.data.frame(Astro_Seu@reductions$umap@cell.embeddings)
Astro01 = subset(Astro_Seu, idents = c(4))
Astro01Clean = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro01) & Astro_UMAP$UMAP_1 < 0 &  Astro_UMAP$UMAP_2 > 1)

Astro02 = subset(Astro_Seu, idents = c(2,11))
Astro02Clean = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro02) & Astro_UMAP$UMAP_1 > 4 &  Astro_UMAP$UMAP_2 > -5 & Astro_UMAP$UMAP_2 < 2.5)

Astro03 = subset(Astro_Seu, idents = c(9))
Astro03Clean = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro03) & Astro_UMAP$UMAP_1 > 0)

Astro04 = subset(Astro_Seu, idents = c(8))
Astro04Clean = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro04)  & Astro_UMAP$UMAP_1 > 6)

Astro05 = subset(Astro_Seu, idents = c(12))

Astro06 = subset(Astro_Seu, idents = c(0,1,3,5,6,7,10))
Astro06Clean = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro06) & Astro_UMAP$UMAP_1 < 0 &  Astro_UMAP$UMAP_2 < -1.5 | row.names(Astro_UMAP) %in% colnames(Astro06) & Astro_UMAP$UMAP_1 > -7.5 & Astro_UMAP$UMAP_1 < 5 & Astro_UMAP$UMAP_2 > -4 & Astro_UMAP$UMAP_2 < 4 | row.names(Astro_UMAP) %in% colnames(Astro06) & Astro_UMAP$UMAP_1 > -4 & Astro_UMAP$UMAP_1 < 5.5  & Astro_UMAP$UMAP_2 > -5)



Astro_REST = subset(Astro_Seu, cells = c(row.names(Astro01Clean), row.names(Astro02Clean), row.names(Astro03Clean), row.names(Astro04Clean), colnames(Astro05), row.names(Astro06Clean)), invert=T)

#CheckInput = Astro05
#CheckUMAP(Astro_Seu)

Astro01_Extras = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro_REST) & Astro_UMAP$UMAP_1 < -1 & Astro_UMAP$UMAP_2 > 2  | row.names(Astro_UMAP) %in% row.names(Astro01Clean))

Astro02_Extras = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro_REST) & Astro_UMAP$UMAP_1 > 8 &  Astro_UMAP$UMAP_2 >  2.5  | row.names(Astro_UMAP) %in% row.names(Astro02Clean))

Astro03_Extras = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro_REST) & Astro_UMAP$UMAP_1 > 3 & Astro_UMAP$UMAP_2 < -4.5  | row.names(Astro_UMAP) %in% row.names(Astro03Clean))

Astro04_Extras = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro_REST) & Astro_UMAP$UMAP_1 > 4 & Astro_UMAP$UMAP_2 > -4.5 & Astro_UMAP$UMAP_2 < 2.5 | row.names(Astro_UMAP) %in% row.names(Astro04Clean))

Astro05_Extras = subset(Astro_UMAP, row.names(Astro_UMAP) %in% colnames(Astro_REST) & Astro_UMAP$UMAP_1 < -9 & Astro_UMAP$UMAP_2 > -2 & Astro_UMAP$UMAP_2 < 1  | row.names(Astro_UMAP) %in% colnames(Astro05))


#& ! row.names(Astro_UMAP) %in% c(row.names(Astro02_Extras)) 


#CheckInput = Astro05_Extras
#CheckUMAP(Astro_Seu)


Astro_Assigns = GenerateMetaData_Barcodes(list("Astro_01" = Astro01_Extras,  "Astro_02" = Astro02_Extras, "Astro_03" = Astro03_Extras, "Astro_04" = Astro04_Extras, "Astro_05" = Astro05_Extras, "Astro_06" = Astro06Clean))

Astro02_Extras_Pt2 = subset(Astro_Seu, cells = Astro_Assigns$Barcodes, invert=T)

CheckInput = Astro02_Extras_Pt2
CheckUMAP(Astro_Seu)

Astro_Assigns$Dups = duplicated(Astro_Assigns$Barcodes) | duplicated(Astro_Assigns$Barcodes, fromLast=T)
Astro_Assigns_T = subset(Astro_Assigns, Astro_Assigns$Dups == T)
unique(Astro_Assigns_T$Pop)

Astro_Assigns = GenerateMetaData(list( "Astro_01" = Astro01_Extras,  "Astro_02" = Astro02_Extras, "Astro_03" = Astro03_Extras, "Astro_04" = Astro04_Extras, "Astro_05" = Astro05_Extras,  "Astro_06" = Astro06Clean,  "Astro_06" = Astro02_Extras_Pt2))


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Endothelial cells

Idents(KaZhouAll) = "MainClusters"

Endo_Seu = subset(KaZhouAll, idents = "Endothelial")  
DefaultAssay(Endo_Seu) = "integrated"
Endo_Seu = FindVariableFeatures(Endo_Seu)
Endo_Seu = ScaleData(Endo_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Endo_Seu) = "integrated"
Endo_Seu = RunPCA(Endo_Seu, npcs = 30)
#Endo_Seu <- RunHarmony(Endo_Seu, group.by.vars = "Timepoint2")
Endo_Seu <- RunUMAP(Endo_Seu, dims = 1:30, spread= 5)#, reduction = "harmony")
DefaultAssay(Endo_Seu) = "RNA"
#####
set.dim = c(20)
set.res = c(1)
set.kparam = c(20)

#ClusterFunc_All_RNA(Endo_Seu)


DefaultAssay(Endo_Seu) = "integrated"
Endo_Seu <- FindNeighbors(Endo_Seu, k.param=20, dims=1:20)
Endo_Seu <- FindClusters(Endo_Seu, resolution = 1)
DefaultAssay(Endo_Seu) = "RNA"

#CheckInput = Endo08
#CheckUMAP(Endo_Seu)

Endo_UMAP = as.data.frame(Endo_Seu@reductions$umap@cell.embeddings)
Endo01 = subset(Endo_Seu, idents = c(0))
Endo01Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo01) & Endo_UMAP$UMAP_1 < 0 &  Endo_UMAP$UMAP_2 > -15 & Endo_UMAP$UMAP_2 < 3)

Endo02 = subset(Endo_Seu, idents = c(1))
Endo02Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo02) & Endo_UMAP$UMAP_1 > -22 & Endo_UMAP$UMAP_1 < -2 &  Endo_UMAP$UMAP_2 > -10 & Endo_UMAP$UMAP_2 < 12)

Endo03 = subset(Endo_Seu, idents = c(3,4,11,12))
Endo03Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo03)& Endo_UMAP$UMAP_1 > 18 &   Endo_UMAP$UMAP_2 < -2 |  row.names(Endo_UMAP) %in% colnames(Endo03)& Endo_UMAP$UMAP_1 > 25)

Endo04 = subset(Endo_Seu, idents = c(2))
Endo04Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo04)  & Endo_UMAP$UMAP_1 < 0)

Endo05 = subset(Endo_Seu, idents = c(5))
Endo05Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo05)  & Endo_UMAP$UMAP_2 > 11)

Endo06 = subset(Endo_Seu, idents = c(6,7))
Endo06Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo06) & Endo_UMAP$UMAP_1 > -2 & Endo_UMAP$UMAP_1 < 22)

Endo07 = subset(Endo_Seu, idents = c(8))
Endo07Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo07)  & Endo_UMAP$UMAP_1 < -10)

Endo08 = subset(Endo_Seu, idents = c(9))
Endo08Clean = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo08)  & Endo_UMAP$UMAP_1 < 5)



Endo_REST = subset(Endo_Seu, cells = c(row.names(Endo01Clean), row.names(Endo02Clean), row.names(Endo03Clean), row.names(Endo04Clean), row.names(Endo05Clean), row.names(Endo06Clean),  row.names(Endo07Clean), row.names(Endo08Clean)), invert=T)

#CheckInput = Endo06_Extras
#CheckUMAP(Endo_Seu)

Endo01_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 < 0 & Endo_UMAP$UMAP_2 > -13 & Endo_UMAP$UMAP_2 < 0 | row.names(Endo_UMAP) %in% row.names(Endo01Clean))

Endo02_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 > -21 & Endo_UMAP$UMAP_1 < -2 &  Endo_UMAP$UMAP_2 > 0 & Endo_UMAP$UMAP_2 < 11 | row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 < -18 &  Endo_UMAP$UMAP_2 > 9 | row.names(Endo_UMAP) %in% row.names(Endo02Clean))

Endo03_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 > 18 &   Endo_UMAP$UMAP_2 < -2 |   row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 > 25 | row.names(Endo_UMAP) %in% row.names(Endo03Clean))

Endo04_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 < 0 &  Endo_UMAP$UMAP_2 < -13 | row.names(Endo_UMAP) %in% row.names(Endo04Clean))

Endo05_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 > -18 & Endo_UMAP$UMAP_1 < 0 & Endo_UMAP$UMAP_2 > 11 & Endo_UMAP$UMAP_2 < 23  | row.names(Endo_UMAP) %in% row.names(Endo05Clean))

Endo06_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 > -1 &  Endo_UMAP$UMAP_2 > -15 & Endo_UMAP$UMAP_2 < 23 & ! row.names(Endo_UMAP) %in% row.names(Endo03_Extras) | row.names(Endo_UMAP) %in% row.names(Endo06Clean))

Endo07_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 < -20 & Endo_UMAP$UMAP_2 > 0 & Endo_UMAP$UMAP_2 < 9  | row.names(Endo_UMAP) %in% row.names(Endo07Clean))

Endo08_Extras = subset(Endo_UMAP, row.names(Endo_UMAP) %in% colnames(Endo_REST) & Endo_UMAP$UMAP_1 < 10 & Endo_UMAP$UMAP_2 > 25 | row.names(Endo_UMAP) %in% row.names(Endo08Clean))

#CheckInput = Endo08_Extras
#CheckUMAP(Endo_Seu)


Endo_Assigns = GenerateMetaData_Barcodes(list("Endo_01" = Endo01_Extras,  "Endo_02" = Endo02_Extras, "Endo_03" = Endo03_Extras, "Endo_04" = Endo04_Extras, "Endo_05" = Endo05_Extras, "Endo_06" = Endo06_Extras, "Endo_07" = Endo07_Extras, "Endo_08" = Endo08_Extras))

Endo02_Extras_Pt2 = subset(Endo_Seu, cells = Endo_Assigns$Barcodes, invert=T)

CheckInput = Endo02_Extras_Pt2
CheckUMAP(Endo_Seu)

Endo_Assigns$Dups = duplicated(Endo_Assigns$Barcodes) | duplicated(Endo_Assigns$Barcodes, fromLast=T)
Endo_Assigns_T = subset(Endo_Assigns, Endo_Assigns$Dups == T)
unique(Endo_Assigns_T$Pop)

Endo_Assigns = GenerateMetaData(list("Vein_01" = Endo01_Extras,  "Capillary_01" = Endo02_Extras, "Artery_01" = Endo03_Extras, "Arteriole" = Endo04_Extras, "Capillary_02" = Endo05_Extras,  "Artery_02" = Endo06_Extras, "Vein_02" = Endo07_Extras, "Venule" = Endo08_Extras))

#save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Tanycytes

Idents(KaZhouAll) = "MainClusters"

Tany_Seu = subset(KaZhouAll, idents = "Tanycytes")  
DefaultAssay(Tany_Seu) = "integrated"
Tany_Seu = FindVariableFeatures(Tany_Seu)
Tany_Seu = ScaleData(Tany_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Tany_Seu) = "integrated"
Tany_Seu = RunPCA(Tany_Seu, npcs = 20)
#Tany_Seu <- RunHarmony(Tany_Seu, group.by.vars = "Timepoint2")
Tany_Seu <- RunUMAP(Tany_Seu, dims = 1:20, spread= 10)#, reduction = "harmony")
DefaultAssay(Tany_Seu) = "RNA"
#####
set.dim = c(20)
set.res = c(1)
set.kparam = c(15)

#ClusterFunc_All_RNA(Tany_Seu)


DefaultAssay(Tany_Seu) = "integrated"
Tany_Seu <- FindNeighbors(Tany_Seu, k.param=15, dims=1:20)
Tany_Seu <- FindClusters(Tany_Seu, resolution = 1)
DefaultAssay(Tany_Seu) = "RNA"

#CheckInput = Tany05Clean
#CheckUMAP(Tany_Seu)

Tany_UMAP = as.data.frame(Tany_Seu@reductions$umap@cell.embeddings)
Tany01 = subset(Tany_Seu, idents = c(5)) #Alpha 1
Tany01Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany01) & Tany_UMAP$UMAP_1 < 18 &  Tany_UMAP$UMAP_2 > 25)

Tany02 = subset(Tany_Seu, idents = c(0,8)) #Alpha2
Tany02Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany02) & Tany_UMAP$UMAP_1 > -25 & Tany_UMAP$UMAP_1 < 10 &  Tany_UMAP$UMAP_2 > -20 & Tany_UMAP$UMAP_2 < 20)

Tany03 = subset(Tany_Seu, idents = c(1)) #Alpha 2 (Pt2)
Tany03Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany03) &  Tany_UMAP$UMAP_1 < 30 &  Tany_UMAP$UMAP_2 > -10 & Tany_UMAP$UMAP_2 < 30)

Tany04 = subset(Tany_Seu, idents = c(9)) #Beta1
Tany04Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany04)  & Tany_UMAP$UMAP_1 < -20 & Tany_UMAP$UMAP_2 > 0)

Tany05 = subset(Tany_Seu, idents = c(2,3)) #Beta2
Tany05Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany05)  & Tany_UMAP$UMAP_1 > 25 & Tany_UMAP$UMAP_2 < 12 & Tany_UMAP$UMAP_2 > -18 | row.names(Tany_UMAP) %in% colnames(Tany05)  & Tany_UMAP$UMAP_1 > 15 & Tany_UMAP$UMAP_2 < 0 & Tany_UMAP$UMAP_2 > -18)

Tany06 = subset(Tany_Seu, idents = c(4))
Tany06Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany06) & Tany_UMAP$UMAP_1 > -25 & Tany_UMAP$UMAP_1 < -5 &  Tany_UMAP$UMAP_2 > -40 & Tany_UMAP$UMAP_2 < -5)

Tany07 = subset(Tany_Seu, idents = c(6))
Tany07Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany07) & Tany_UMAP$UMAP_1 > -5 &  Tany_UMAP$UMAP_2 > -31 & Tany_UMAP$UMAP_2 < -5)

Tany08 = subset(Tany_Seu, idents = c(7)) #Rax+
Tany08Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany08) & Tany_UMAP$UMAP_1 > -22 & Tany_UMAP$UMAP_1 < -5 &  Tany_UMAP$UMAP_2 > 10 & Tany_UMAP$UMAP_2 < 25)

Tany09 = subset(Tany_Seu, idents = c(10)) 
Tany09Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany09) & Tany_UMAP$UMAP_2 < -25)

Tany10 = subset(Tany_Seu, idents = c(11)) #Rax+
Tany10Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany10) & Tany_UMAP$UMAP_2 > -20 & Tany_UMAP$UMAP_2 < -2)

Tany11 = subset(Tany_Seu, idents = c(12)) 
Tany11Clean = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany11) & Tany_UMAP$UMAP_1 < -25)

Tany12 = subset(Tany_Seu, idents = c(13)) #Rax+

#CheckInput = Tany05Clean
#CheckUMAP(Tany_Seu)

Tany_REST = subset(Tany_Seu, cells = c(row.names(Tany01Clean), row.names(Tany02Clean), row.names(Tany03Clean), row.names(Tany04Clean), row.names(Tany05Clean), row.names(Tany06Clean), row.names(Tany07Clean), row.names(Tany08Clean), row.names(Tany09Clean), row.names(Tany10Clean), row.names(Tany11Clean), colnames(Tany12)), invert=T)

#CheckInput = Tany07Clean
#CheckUMAP(Tany_Seu)

Tany01_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 > 0 &  Tany_UMAP$UMAP_2 > 30 | row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 > -20 & Tany_UMAP$UMAP_1 < 0 &  Tany_UMAP$UMAP_2 > 26.5  | row.names(Tany_UMAP) %in% row.names(Tany01Clean))


Tany04_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 < -23 & Tany_UMAP$UMAP_2 > 5 & Tany_UMAP$UMAP_2 < 25 | row.names(Tany_UMAP) %in% row.names(Tany04Clean))


Tany06_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST)  & Tany_UMAP$UMAP_1 > -25 & Tany_UMAP$UMAP_1 < -5 &  Tany_UMAP$UMAP_2 > -40 & Tany_UMAP$UMAP_2 < -5| row.names(Tany_UMAP) %in% row.names(Tany06Clean))

Tany09_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 > -12 & Tany_UMAP$UMAP_1 < 5 &  Tany_UMAP$UMAP_2 < -30 & ! row.names(Tany_UMAP) %in%  row.names(Tany06_Extras) | row.names(Tany_UMAP) %in% row.names(Tany09Clean))

Tany10_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST)  & Tany_UMAP$UMAP_1 < -20 &  Tany_UMAP$UMAP_2 > -12 &  Tany_UMAP$UMAP_2 < 5 & ! row.names(Tany_UMAP) %in%  c(row.names(Tany01_Extras), row.names(Tany04_Extras), row.names(Tany06_Extras)) | row.names(Tany_UMAP) %in% row.names(Tany10Clean))

Tany11_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 < -25 & Tany_UMAP$UMAP_2 > -25 &  Tany_UMAP$UMAP_2 < -12 | row.names(Tany_UMAP) %in% row.names(Tany11Clean))

Tany12_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 < -25 &  Tany_UMAP$UMAP_2 > 25 | row.names(Tany_UMAP) %in% colnames(Tany12))

Tany02_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST)  & Tany_UMAP$UMAP_1 > -27 & Tany_UMAP$UMAP_1 < 2 &  Tany_UMAP$UMAP_2 > -15 & Tany_UMAP$UMAP_2 < 16 & ! row.names(Tany_UMAP) %in%  c(row.names(Tany10_Extras), row.names(Tany04_Extras), row.names(Tany06_Extras), row.names(Tany11_Extras)) | row.names(Tany_UMAP) %in% row.names(Tany02Clean))

Tany08_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 > -24 & Tany_UMAP$UMAP_1 < -5 &  Tany_UMAP$UMAP_2 > 5 &  Tany_UMAP$UMAP_2 < 27 & ! row.names(Tany_UMAP) %in% c(row.names(Tany01_Extras), row.names(Tany02_Extras) ) | row.names(Tany_UMAP) %in% row.names(Tany08Clean))

Tany03_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) &  Tany_UMAP$UMAP_1 > -3 &  Tany_UMAP$UMAP_1 < 33 &  Tany_UMAP$UMAP_2 > -10 & Tany_UMAP$UMAP_2 < 30 & ! row.names(Tany_UMAP) %in%  c(row.names(Tany01_Extras), row.names(Tany02_Extras)) | row.names(Tany_UMAP) %in% row.names(Tany03Clean))

Tany05_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 > 18 & Tany_UMAP$UMAP_2 > -22 & Tany_UMAP$UMAP_2 < 10 & ! row.names(Tany_UMAP) %in% row.names(Tany03_Extras) | row.names(Tany_UMAP) %in% row.names(Tany05Clean))

Tany07_Extras = subset(Tany_UMAP, row.names(Tany_UMAP) %in% colnames(Tany_REST) & Tany_UMAP$UMAP_1 > -5 & Tany_UMAP$UMAP_1 < 25 &  Tany_UMAP$UMAP_2 > -31 &  Tany_UMAP$UMAP_2 < -10 & ! row.names(Tany_UMAP) %in% c(row.names(Tany03_Extras), row.names(Tany02_Extras), row.names(Tany05_Extras))  | row.names(Tany_UMAP) %in% row.names(Tany07Clean))

#& ! row.names(Tany_UMAP) %in% c(row.names(Tany02_Extras)) , row.names(?)

#CheckInput = Tany06_Extras
#CheckUMAP(Tany_Seu)


Tany_Assigns = GenerateMetaData_Barcodes(list("Alpha_01" = Tany01_Extras,  "Alpha_02" = Tany02_Extras, "Alpha_03" = Tany03_Extras, "Beta_01" = Tany04_Extras, "Beta_02" = Tany05_Extras, "RG_16" = Tany06_Extras,  "Alpha_04" = Tany07_Extras, "Tany_07" = Tany08_Extras, "RG_17" = Tany09_Extras, "Tany_08" = Tany10_Extras, "Alpha_05" = Tany11_Extras, "Alpha_05" = Tany12_Extras))

#Tany02_Extras_Pt2 = subset(Tany_Seu, cells = Tany_Assigns$Barcodes, invert=T)

CheckInput = Tany02_Extras_Pt2
CheckUMAP(Tany_Seu)

Tany_Assigns$Dups = duplicated(Tany_Assigns$Barcodes) | duplicated(Tany_Assigns$Barcodes, fromLast=T)
Tany_Assigns_T = subset(Tany_Assigns, Tany_Assigns$Dups == T)
unique(Tany_Assigns_T$Pop)

Tany_Assigns = GenerateMetaData(list("Alpha_01" = Tany01_Extras,  "Alpha_02" = Tany02_Extras, "Alpha_03" = Tany03_Extras, "Beta_01" = Tany04_Extras, "Beta_02" = Tany05_Extras, "RG_16" = Tany06_Extras,  "Alpha_04" = Tany07_Extras, "Tany_07" = Tany08_Extras, "RG_17" = Tany09_Extras, "Tany_08" = Tany10_Extras, "Alpha_05" = Tany11_Extras, "Alpha_05" = Tany12_Extras, "Alpha_02" =Tany02_Extras_Pt2))


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Ependymocytes

Idents(KaZhouAll) = "MainClusters"

Ependy_Seu = subset(KaZhouAll, idents = "Ependymal")  
DefaultAssay(Ependy_Seu) = "integrated"
Ependy_Seu = FindVariableFeatures(Ependy_Seu)
Ependy_Seu = ScaleData(Ependy_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Ependy_Seu) = "integrated"
Ependy_Seu = RunPCA(Ependy_Seu, npcs = 10)
#Ependy_Seu <- RunHarmony(Ependy_Seu, group.by.vars = "Timepoint2")
Ependy_Seu <- RunUMAP(Ependy_Seu, dims = 1:10, spread= 2)#, reduction = "harmony")
DefaultAssay(Ependy_Seu) = "RNA"
#####
set.dim = c(10)
set.res = c(1)
set.kparam = c(100)

ClusterFunc_All_RNA(Ependy_Seu)


DefaultAssay(Ependy_Seu) = "integrated"
Ependy_Seu <- FindNeighbors(Ependy_Seu, k.param=100, dims=1:10)
Ependy_Seu <- FindClusters(Ependy_Seu, resolution = 1)
DefaultAssay(Ependy_Seu) = "RNA"

CheckInput = Ependy01_Extras
CheckUMAP(Ependy_Seu)

Ependy_UMAP = as.data.frame(Ependy_Seu@reductions$umap@cell.embeddings)

Ependy01 = subset(Ependy_Seu, idents = c(5), invert=T)
Ependy01Clean = subset(Ependy_UMAP, row.names(Ependy_UMAP) %in% colnames(Ependy01) & Ependy_UMAP$UMAP_1 < 10)

Ependy02 = subset(Ependy_Seu, idents = c(5))
Ependy02Clean = subset(Ependy_UMAP, row.names(Ependy_UMAP) %in% colnames(Ependy02) & Ependy_UMAP$UMAP_1 > 10)
Ependy_REST = subset(Ependy_Seu, cells = c(row.names(Ependy01Clean), row.names(Ependy02Clean)), invert=T)

Ependy01_Extras = subset(Ependy_UMAP, row.names(Ependy_UMAP) %in% colnames(Ependy_REST) & Ependy_UMAP$UMAP_1 < 10 | row.names(Ependy_UMAP) %in% row.names(Ependy01Clean))

Ependy02_Extras = subset(Ependy_UMAP, row.names(Ependy_UMAP) %in% colnames(Ependy_REST) & Ependy_UMAP$UMAP_1 > 10 | row.names(Ependy_UMAP) %in% row.names(Ependy02Clean))



Ependy_Assigns = GenerateMetaData(list( "Ependy_01" = Ependy01_Extras,  "Ependy_02" = Ependy02_Extras))



save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu",  "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

Oligodendrocytes

Idents(KaZhouAll) = "MainClusters"
Olig_Seu = subset(KaZhouAll, idents = c("Oligodendrocytes"))  

#Olig_Assigns= subset(MainClusters, MainClusters$Pop %in% c("Oligodendrocytes [Dividing]", "Oligodendrocytes [Immature]", "Oligodendrocytes [Intermediate]",  "Oligodendrocytes [Mature]"))
DefaultAssay(Olig_Seu) = "integrated"
Olig_Seu = FindVariableFeatures(Olig_Seu)
Olig_Seu = ScaleData(Olig_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(Olig_Seu) = "integrated"
Olig_Seu = RunPCA(Olig_Seu, npcs = 20)
Olig_Seu <- RunHarmony(Olig_Seu, group.by.vars = "Timepoint2")
Olig_Seu <- RunUMAP(Olig_Seu, dims = 1:20, spread= 2, reduction = "harmony")
DefaultAssay(Olig_Seu) = "RNA"

set.dim = c(20)
set.res = c(1)
set.kparam = c(20)

ClusterFunc_All_RNA(Olig_Seu)

DefaultAssay(Olig_Seu) = "integrated"
Olig_Seu <- FindNeighbors(Olig_Seu, k.param=20, dims=1:20)
Olig_Seu <- FindClusters(Olig_Seu, resolution = 1)
DefaultAssay(Olig_Seu) = "RNA"

CheckInput = Olig07Clean
CheckUMAP(Olig_Seu)

Olig_UMAP = as.data.frame(Olig_Seu@reductions$umap@cell.embeddings)
Olig01 = subset(Olig_Seu, idents = c(9)) #Dividing

Olig02 = subset(Olig_Seu, idents = c(13)) #Dividing
Olig02Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig02)  & Olig_UMAP$UMAP_1 > 0 & Olig_UMAP$UMAP_1 < 5 & Olig_UMAP$UMAP_2 > 1)

Olig03 = subset(Olig_Seu, idents = c(0,1,5,6,8)) #Immature
Olig03Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig03) & Olig_UMAP$UMAP_1 > 0 &  Olig_UMAP$UMAP_2 > -10  & Olig_UMAP$UMAP_2 < 2 | row.names(Olig_UMAP) %in% colnames(Olig03) & Olig_UMAP$UMAP_1 > -7 &  Olig_UMAP$UMAP_2 > -7  & Olig_UMAP$UMAP_2 < -0.3)

Olig04 = subset(Olig_Seu, idents = c(2))#Immature
Olig04Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig04) & Olig_UMAP$UMAP_1 > 6 & Olig_UMAP$UMAP_2 > 1 & Olig_UMAP$UMAP_2 < 12)

Olig05 = subset(Olig_Seu, idents = c(10)) #Immature
Olig05Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig05) & Olig_UMAP$UMAP_1 > -4 & Olig_UMAP$UMAP_1 < 3 & Olig_UMAP$UMAP_2 > 0  & Olig_UMAP$UMAP_2 < 5 )

Olig06 = subset(Olig_Seu, idents = c(11)) #Immature
Olig06Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig06) & Olig_UMAP$UMAP_1 > -6 & Olig_UMAP$UMAP_1 < -1 & Olig_UMAP$UMAP_2 > -1 & Olig_UMAP$UMAP_2 < 3)

Olig07 = subset(Olig_Seu, idents = c(16)) #Immature
Olig07Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig07) & Olig_UMAP$UMAP_1 > -4 & Olig_UMAP$UMAP_1 < 3 & Olig_UMAP$UMAP_2> 9)

Olig08 = subset(Olig_Seu, idents = c(17)) #Immature
Olig08Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig08) & Olig_UMAP$UMAP_2 > 6 & Olig_UMAP$UMAP_2 < 9)

Olig09 = subset(Olig_Seu, idents = c(14)) #Immature

Olig10 = subset(Olig_Seu, idents = c(7,12)) #Intermediate
Olig10Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig10) & Olig_UMAP$UMAP_1 > -12& Olig_UMAP$UMAP_1 < -3 & Olig_UMAP$UMAP_2 < 2.5)

Olig11 = subset(Olig_Seu, idents = c(3,4,15)) #Mature
Olig11Clean = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig11) & Olig_UMAP$UMAP_1 < -8)

Olig_REST = subset(Olig_Seu, cells = c(colnames(Olig01), row.names(Olig02Clean), row.names(Olig03Clean), row.names(Olig04Clean), row.names(Olig05Clean), row.names(Olig06Clean), row.names(Olig07Clean), row.names(Olig08Clean),colnames(Olig09), row.names(Olig10Clean),row.names(Olig11Clean)), invert=T)

CheckInput = Olig03_Extras
CheckUMAP(Olig_Seu)

Olig01_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > 5 & Olig_UMAP$UMAP_2 > 10.5 |  row.names(Olig_UMAP) %in% colnames(Olig01))

Olig02_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > 2 & Olig_UMAP$UMAP_1 < 5 & Olig_UMAP$UMAP_2 > 2 | row.names(Olig_UMAP) %in% row.names(Olig02Clean))

Olig03_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > 0 &  Olig_UMAP$UMAP_2 > -10  & Olig_UMAP$UMAP_2 < 2 | row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > -7 &  Olig_UMAP$UMAP_2 > -7  & Olig_UMAP$UMAP_2 < -0.3  | row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > -7 &  Olig_UMAP$UMAP_2 > -10  & Olig_UMAP$UMAP_2 < -5 | row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > 5 &  Olig_UMAP$UMAP_2 < 3 | row.names(Olig_UMAP) %in% row.names(Olig03Clean))

Olig04_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > 5  & Olig_UMAP$UMAP_2 > 3 & Olig_UMAP$UMAP_2 < 10.5| row.names(Olig_UMAP) %in% row.names(Olig04Clean))

Olig05_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST)& Olig_UMAP$UMAP_1 > -4 & Olig_UMAP$UMAP_1 < 3 & Olig_UMAP$UMAP_2 > 2  & Olig_UMAP$UMAP_2 < 5.5  |  row.names(Olig_UMAP) %in% row.names(Olig05Clean))

Olig06_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST)& Olig_UMAP$UMAP_1 > -6 & Olig_UMAP$UMAP_1 < 0 & Olig_UMAP$UMAP_2 > -1 & Olig_UMAP$UMAP_2 < 3 & ! row.names(Olig_UMAP) %in% c(row.names(Olig05_Extras), row.names(Olig03_Extras)) |  row.names(Olig_UMAP) %in% row.names(Olig06Clean))
 ##

Olig07_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > -3 & Olig_UMAP$UMAP_1 < 2 & Olig_UMAP$UMAP_2 > 7 | row.names(Olig_UMAP) %in% row.names(Olig07Clean))


Olig08_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > -6 & Olig_UMAP$UMAP_1 < -3 & Olig_UMAP$UMAP_2 > 4  & ! row.names(Olig_UMAP) %in% row.names(Olig05_Extras) | row.names(Olig_UMAP) %in% row.names(Olig08Clean))

Olig09_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST)& Olig_UMAP$UMAP_2 < -12  | row.names(Olig_UMAP) %in% colnames(Olig09))


Olig11_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 < -11 & Olig_UMAP$UMAP_2 > -3  | row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 < -9 & Olig_UMAP$UMAP_2 > 3  |  row.names(Olig_UMAP) %in% row.names(Olig11Clean))

Olig10_Extras = subset(Olig_UMAP, row.names(Olig_UMAP) %in% colnames(Olig_REST) & Olig_UMAP$UMAP_1 > -11 & Olig_UMAP$UMAP_1 < -3 & Olig_UMAP$UMAP_2 < 4 & !  row.names(Olig_UMAP) %in% c(row.names(Olig11_Extras), row.names(Olig03_Extras), row.names(Olig06_Extras)) | row.names(Olig_UMAP) %in% row.names(Olig10Clean))


CheckInput = Olig03_Extras
CheckUMAP(Olig_Seu)


Olig_Assigns = GenerateMetaData_Barcodes(list("Dividing_01" = Olig01_Extras,  "Dividing_02" = Olig02_Extras, "Immature_01" = Olig03_Extras, "Immature_02" = Olig04_Extras, "Immature_03" = Olig05_Extras,  "Immature_04" = Olig06_Extras, "Immature_05" = Olig07_Extras, "Immature_06" = Olig08_Extras, "Immature_07" = Olig09_Extras, "Intermediate" = Olig10_Extras, "Mature" = Olig11_Extras))

Olig02_Extras_Pt2 = subset(Olig_Seu, cells = Olig_Assigns$Barcodes, invert=T)

CheckInput = Olig02_Extras_Pt2
CheckUMAP(Olig_Seu)

Olig_Assigns$Dups = duplicated(Olig_Assigns$Barcodes) | duplicated(Olig_Assigns$Barcodes, fromLast=T)
Olig_Assigns_T = subset(Olig_Assigns, Olig_Assigns$Dups == T)
unique(Olig_Assigns_T$Pop)

Olig_Assigns = GenerateMetaData(list("Dividing_01" = Olig01_Extras,  "Dividing_02" = Olig02_Extras, "Immature_01" = Olig03_Extras, "Immature_02" = Olig04_Extras, "Immature_03" = Olig05_Extras,  "Immature_04" = Olig06_Extras, "Immature_05" = Olig07_Extras, "Immature_06" = Olig08_Extras, "Immature_07" = Olig09_Extras, "Intermediate" = Olig10_Extras, "Mature" = Olig11_Extras))

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu",  "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Assigns", "Olig_Seu"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

-

Neuronal subclustering:

Read in NEURONAL data and iterate UMAPs

EdKaZhouHypoNeurons = readRDS("~/Downloads/EdKaZhouHypoNeurons_mt10_integrated.rds")
set.seed(100)
EdKaZhouHypoNeurons@meta.data$SampleBroad = gsub("_.*", "", gsub("22T", "22", gsub("CS22", "GW10", EdKaZhouHypoNeurons@meta.data$sample)))
EdKaZhouHypoNeurons@meta.data$SampleBroad = ifelse(EdKaZhouHypoNeurons@meta.data$SampleBroad %in% c("10X190", "10X192", "10X193", "10X203", "10X360", "10X362", "10X376", "10X380", "10X389", "10X392"), EdKaZhouHypoNeurons@meta.data$Roi, EdKaZhouHypoNeurons@meta.data$SampleBroad)
EdKaZhouHypoNeurons@meta.data$SampleBroad = gsub("\\<Human HTHma\\>", "Adult_MN", gsub("\\<Human HTHma-HTHtub\\>", "Adult_TUB/MN", gsub("\\<Human HTHpo\\>", "Adult_PO", gsub("\\<Human HTHpo-HTHso\\>", "Adult_PO/SO", gsub("\\<Human HTHso\\>", "Adult_SO", gsub("\\<Human HTHso-HTHtub\\>", "Adult_SO/TUB", gsub("\\<Human HTHtub\\>", "Adult_TUB", gsub("\\<Human MN\\>", "Adult_MN", EdKaZhouHypoNeurons@meta.data$SampleBroad))))))))
EdKaZhouHypoNeurons@meta.data$SampleAdult = gsub("_.*", "", EdKaZhouHypoNeurons@meta.data$SampleBroad)

MainAssign = read.csv("~/Dropbox/LabMac/Fig2_Trajectories_GLOTMP_17JAN_20_20_3_k100AssignsByBarc.csv", na.strings=c("","Unassigned"))

#, "ARC", "TM",  "DMH", "AH",  "SCN", "PVH", "SMN", "VMH", "PO",  "LH"
for(Pops in c("NA", "MN")){
GetBarcs = subset(MainAssign, MainAssign$Nuclei == Pops)
SubsetSeu = subset(EdKaZhouHypoNeurons, cells = GetBarcs$Barcs)  
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = FindVariableFeatures(SubsetSeu)
SubsetSeu = ScaleData(SubsetSeu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DPlist2 = list()
DPlist = list()
FPlist = list()
Filename = paste(Pops, "28MAR23", sep="")
for(y in seq(10,50,10)){
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = RunPCA(SubsetSeu, npcs = y)
for(z in seq(10,y,10)){
for(s in c(2,5,10)){
SubsetSeu <- RunUMAP(SubsetSeu, dims = 1:z, spread= s)
DefaultAssay(SubsetSeu) = "RNA"

FPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = FeaturePlot(SubsetSeu, CompileNeurons, reduction="umap") 

DPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", split.by = "SampleAdult") + labs(title = paste("PCA", y, "_dims", z, "_spread", s))

DPlist2[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", group.by = "SampleAdult", label=T) + labs(title = paste("PCA", y, "dims", z, "spread", s))
}}}  
pdf(paste("FETAL_HYPO_NEURONS_", Filename, "_FeaturePlots.pdf", sep=""), width=20, height=75/1.3)
print(FPlist)
dev.off()

pdf(paste("FETAL_HYPO_NEURONS_", Filename, "_SPLITUMAP.pdf", sep=""), width=50, height=5)
print(DPlist)
dev.off()

pdf(paste("FETAL_HYPO_NEURONS_", Filename, "_GROUPUMAP.pdf", sep=""), width=10, height=5)
print(DPlist2)
dev.off()
}
for(Pops in c("VMH",  "LH")){
GetBarcs = subset(MainAssign, MainAssign$Nuclei == Pops)
SubsetSeu = subset(EdKaZhouHypoNeurons, cells = GetBarcs$Barcs)  
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = FindVariableFeatures(SubsetSeu)
SubsetSeu = ScaleData(SubsetSeu, vars.to.regress = c( "percent.mt", "nFeature_RNA"), verbose = F)

DPlist2 = list()
DPlist = list()
FPlist = list()
Filename = paste(Pops, "28MAR23_Harmony", sep="")
for(y in seq(10,50,10)){
DefaultAssay(SubsetSeu) = "integrated"
SubsetSeu = RunPCA(SubsetSeu, npcs = y)
SubsetSeu <- RunHarmony(SubsetSeu, group.by.vars = "SampleAdult")

for(z in seq(10,y,10)){
for(s in c(2,5,10)){
SubsetSeu <- RunUMAP(SubsetSeu, dims = 1:z, spread= s, reduction="harmony")
DefaultAssay(SubsetSeu) = "RNA"

FPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = FeaturePlot(SubsetSeu, CompileNeurons, reduction="umap") 

DPlist[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", split.by = "SampleAdult") + labs(title = paste("PCA", y, "_dims", z, "_spread", s))

DPlist2[[paste("PCA", y, "_dims", z, "_spread", s)]] = DimPlot(SubsetSeu, reduction="umap", group.by = "SampleAdult", label=T) + labs(title = paste("PCA", y, "dims", z, "spread", s))
}}}  
pdf(paste("FETAL_HYPO_NEURONS_", Filename, "_FeaturePlots.pdf", sep=""), width=20, height=75/1.3)
print(FPlist)
dev.off()

pdf(paste("FETAL_HYPO_NEURONS_", Filename, "_SPLITUMAP.pdf", sep=""), width=50, height=5)
print(DPlist)
dev.off()

pdf(paste("FETAL_HYPO_NEURONS_", Filename, "_GROUPUMAP.pdf", sep=""), width=10, height=5)
print(DPlist2)
dev.off()
}

ARC

GetARCBarcs = subset(MainAssign, MainAssign$Nuclei == "ARC")
ARC_Seu = subset(EdKaZhouHypoNeurons, cells = GetARCBarcs$Barcs)  
DefaultAssay(ARC_Seu) = "integrated"
ARC_Seu = FindVariableFeatures(ARC_Seu)
ARC_Seu = ScaleData(ARC_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(ARC_Seu) = "integrated"
ARC_Seu = RunPCA(ARC_Seu, npcs = 20)
ARC_Seu <- RunUMAP(ARC_Seu, dims = 1:20, spread= 2)
DefaultAssay(ARC_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(50)

##ClusterFunc_All_RNA(ARC_Seu)


DefaultAssay(ARC_Seu) = "integrated"
ARC_Seu <- FindNeighbors(ARC_Seu, k.param=50, dims=1:20)
ARC_Seu <- FindClusters(ARC_Seu, resolution = 1)
DefaultAssay(ARC_Seu) = "RNA"

ARC_UMAP = as.data.frame(ARC_Seu@reductions$umap@cell.embeddings)
ARC01 = subset(ARC_Seu, idents = 0)
ARC01Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC01) & ARC_UMAP$UMAP_1 < -3 & ARC_UMAP$UMAP_2 > 5)

ARC02 = subset(ARC_Seu, idents = 1)
ARC02Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC02) & ARC_UMAP$UMAP_1 > 0 & ARC_UMAP$UMAP_2 > -9 & ARC_UMAP$UMAP_2 < 4)

TM01 = subset(ARC_Seu, idents = c(2,3))
TM01Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(TM01) & ARC_UMAP$UMAP_1 > -3 & ARC_UMAP$UMAP_2 > 7)

ARC03 = subset(ARC_Seu, idents = 4)
ARC03Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC03) & ARC_UMAP$UMAP_1 < 2 & ARC_UMAP$UMAP_2 < -11)

ARC04 = subset(ARC_Seu, idents = 5)
ARC04Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC04) & ARC_UMAP$UMAP_1 < -7 & ARC_UMAP$UMAP_2 < 5)

ARC05 = subset(ARC_Seu, idents = 6)

ARC06 = subset(ARC_Seu, idents = 7)
ARC06Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC06) & ARC_UMAP$UMAP_1 > 10 & ARC_UMAP$UMAP_2 < -0.5)

ARC07 = subset(ARC_Seu, idents = c(8, 18))
ARC07Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC07)  & ARC_UMAP$UMAP_1 < 0 & ARC_UMAP$UMAP_2 < 8)

ARC08 = subset(ARC_Seu, idents = 9)
ARC08Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC08)  & ARC_UMAP$UMAP_1 > 0 & ARC_UMAP$UMAP_2 < -5)

ARC09 = subset(ARC_Seu, idents = 10)
ARC09Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC09)  & ARC_UMAP$UMAP_1 > 0)

ARC10 = subset(ARC_Seu, idents = 11)

ARC11 = subset(ARC_Seu, idents = 12)
ARC11Clean = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC11)  & ARC_UMAP$UMAP_1 > -2  & ARC_UMAP$UMAP_1 < 3)

ARC12 = subset(ARC_Seu, idents = 13)
ARC13 = subset(ARC_Seu, idents = 14)
ARC14 = subset(ARC_Seu, idents = 15)
ARC15 = subset(ARC_Seu, idents = 16)
ARC16 = subset(ARC_Seu, idents = 17)
ARC17 = subset(ARC_Seu, idents = 19)

ARC_REST = subset(ARC_Seu, cells = c(colnames(ARC05), colnames(ARC10), colnames(ARC12), colnames(ARC13), colnames(ARC14), colnames(ARC15), colnames(ARC16), colnames(ARC17), row.names(ARC01Clean), row.names(ARC02Clean), row.names(ARC03Clean), row.names(ARC04Clean), row.names(ARC06Clean), row.names(ARC07Clean), row.names(ARC08Clean),row.names(ARC09Clean), row.names(ARC11Clean), row.names(TM01Clean)), invert=T)

#CheckInput = ARC_REST
#CheckUMAP(ARC_Seu)

ARC01_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 < -5 & ARC_UMAP$UMAP_2 > 4 | row.names(ARC_UMAP) %in% row.names(ARC01Clean))
ARC02_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 > 4 & ARC_UMAP$UMAP_1 < 10 & ARC_UMAP$UMAP_2 > -3 & ARC_UMAP$UMAP_2 < 4  | row.names(ARC_UMAP) %in% row.names(ARC02Clean))
TM01_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 > -3 & ARC_UMAP$UMAP_2 > 8  | row.names(ARC_UMAP) %in% row.names(TM01Clean))
ARC03_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 < 0 & ARC_UMAP$UMAP_2 < -11 | row.names(ARC_UMAP) %in% row.names(ARC03Clean))
ARC04_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 < -10 & ARC_UMAP$UMAP_2 < 5 & ! row.names(ARC_UMAP) %in% row.names(ARC01_Extras)  | row.names(ARC_UMAP) %in% row.names(ARC04Clean))
ARC05_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 > 0 & ARC_UMAP$UMAP_2 < -13  | row.names(ARC_UMAP) %in% colnames(ARC05))
#ARC06_Extras #NONE 
ARC08_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ! row.names(ARC_UMAP) %in% row.names(ARC05_Extras) &  ARC_UMAP$UMAP_1 > 0 &  ARC_UMAP$UMAP_1 < 4 & ARC_UMAP$UMAP_2 < -6  | row.names(ARC_UMAP) %in% row.names(ARC08Clean))
ARC09_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ! row.names(ARC_UMAP) %in% c(row.names(ARC02_Extras), row.names(ARC08_Extras)) &  ARC_UMAP$UMAP_1 > 0 &  ARC_UMAP$UMAP_1 < 10 & ARC_UMAP$UMAP_2 > -10 & ARC_UMAP$UMAP_2 < -1  | row.names(ARC_UMAP) %in% row.names(ARC09Clean))
ARC10_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 < -10 & ARC_UMAP$UMAP_2 < -4 & ! row.names(ARC_UMAP) %in% row.names(ARC04_Extras) | row.names(ARC_UMAP) %in% colnames(ARC10))
ARC11_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 > -2  & ARC_UMAP$UMAP_1 < 2 & ARC_UMAP$UMAP_2 > -2.5  & ARC_UMAP$UMAP_2 < 2  | row.names(ARC_UMAP) %in% row.names(ARC11Clean))
#ARC12_Extras #NONE 
ARC13_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ! row.names(ARC_UMAP) %in% c(row.names(ARC08_Extras),row.names(ARC09_Extras), row.names(ARC05_Extras))  & ARC_UMAP$UMAP_1 > 3 & ARC_UMAP$UMAP_1 < 10 & ARC_UMAP$UMAP_2 < -6  | row.names(ARC_UMAP) %in% colnames(ARC13))
ARC14_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 > -1  & ARC_UMAP$UMAP_1 < 5 & ARC_UMAP$UMAP_2 > 0  & ARC_UMAP$UMAP_2 < 9 & ! row.names(ARC_UMAP) %in% c(row.names(TM01_Extras), row.names(ARC11_Extras))  | row.names(ARC_UMAP) %in% colnames(ARC14))
ARC15_Extras = subset(ARC_UMAP,row.names(ARC_UMAP) %in% colnames(ARC_REST) & ARC_UMAP$UMAP_1 > 5  & ARC_UMAP$UMAP_1 < 10 & ARC_UMAP$UMAP_2 > 2 & ARC_UMAP$UMAP_2 < 10 & ! row.names(ARC_UMAP) %in% c(row.names(TM01_Extras), row.names(ARC02_Extras))  | row.names(ARC_UMAP) %in% colnames(ARC15))
ARC16_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST)  &  ARC_UMAP$UMAP_1 > 10  | row.names(ARC_UMAP) %in% colnames(ARC16))
ARC17_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ! row.names(ARC_UMAP) %in% c(row.names(ARC08_Extras),row.names(ARC09_Extras), row.names(ARC05_Extras))  & ARC_UMAP$UMAP_1 > 0 & ARC_UMAP$UMAP_1 < 3 & ARC_UMAP$UMAP_2 > -8 & ARC_UMAP$UMAP_2 < -4  | row.names(ARC_UMAP) %in% colnames(ARC17))
ARC07_Extras = subset(ARC_UMAP, row.names(ARC_UMAP) %in% colnames(ARC_REST) & ! row.names(ARC_UMAP) %in% c(row.names(ARC01_Extras), row.names(ARC11_Extras), row.names(TM01_Extras))  & ARC_UMAP$UMAP_1 > -10 & ARC_UMAP$UMAP_1 < 0 & ARC_UMAP$UMAP_2 > -5  | row.names(ARC_UMAP) %in% row.names(ARC07Clean))

#CheckInput = ARC10_Extras
#CheckUMAP(ARC_Seu)


set.dim = 20
set.res = 1
set.kparam = c(20)
#ClusterFunc_All_RNA(ARC10_Seu)

ARC07_Seu = subset(ARC_Seu, cells = row.names(ARC07_Extras))
#ClusterFunc_All_RNA(ARC07_Seu)
ARC10_Seu = subset(ARC_Seu, cells = row.names(ARC10_Extras))
#ClusterFunc_All_RNA(ARC10_Seu)
ARC14_Seu = subset(ARC_Seu, cells = row.names(ARC14_Extras))
#ClusterFunc_All_RNA(ARC14_Seu)

DefaultAssay(ARC07_Seu) = "integrated"
ARC07_Seu <- FindNeighbors(ARC07_Seu, k.param=5, dims=1:20)
ARC07_Seu <- FindClusters(ARC07_Seu, resolution = 1)
ARC_18 = subset(ARC07_Seu, idents = c(3,7))
ARC_19 = subset(ARC07_Seu, idents = c(0,2))
ARC_07_New = subset(ARC07_Seu, idents = c(3,7,0,2), invert=T)


DefaultAssay(ARC10_Seu) = "integrated"
ARC10_Seu <- FindNeighbors(ARC10_Seu, k.param=10, dims=1:20)
ARC10_Seu <- FindClusters(ARC10_Seu, resolution = 1)
ARC_20 = subset(ARC10_Seu, idents = c(1,3))
ARC_10_New = subset(ARC10_Seu, idents = c(1,3), invert=T)

DefaultAssay(ARC14_Seu) = "integrated"
ARC14_Seu <- FindNeighbors(ARC14_Seu, k.param=20, dims=1:20)
ARC14_Seu <- FindClusters(ARC14_Seu, resolution = 1)
ARC_21 = subset(ARC14_Seu, idents = c(0,1,5))
ARC_14_New = subset(ARC14_Seu, idents = c(0,1,5), invert=T)


###

ARC_REST = subset(ARC_Seu, cells = c(colnames(ARC05), colnames(ARC10), colnames(ARC12), colnames(ARC13), colnames(ARC14), colnames(ARC15), colnames(ARC16), colnames(ARC17), row.names(ARC01Clean), row.names(ARC02Clean), row.names(ARC03Clean), row.names(ARC04Clean), row.names(ARC06Clean), row.names(ARC07Clean), row.names(ARC08Clean),row.names(ARC09Clean), row.names(ARC11Clean), row.names(TM01Clean)), invert=T)

ARC_Assigns = GenerateMetaData(list("ARC_01" = ARC01_Extras, "ARC_02" = ARC02_Extras, "ARC_03" = ARC03_Extras, "ARC_04" = ARC04_Extras, "ARC_05" = ARC05_Extras, "ARC_07" = ARC_07_New,"ARC_08" =  ARC08_Extras, "ARC_09" = ARC09_Extras, "ARC_10" = ARC_10_New, "ARC_11" = ARC11_Extras,"ARC_13" =  ARC13_Extras,"ARC_14" =  ARC_14_New,"ARC_15" =  ARC15_Extras, "ARC_16" = ARC16_Extras,"ARC_17" =  ARC17_Extras,"TM_01" =  TM01_Extras, "ARC_06" = ARC06Clean,"ARC_12" = ARC12, "ARC_18" = ARC_18, "ARC_19" = ARC_19, "ARC_20" = ARC_20, "ARC_21" = ARC_21))

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

PVH

GetPVHBarcs = subset(MainAssign, MainAssign$Nuclei == "PVH")
PVH_Seu = subset(EdKaZhouHypoNeurons, cells = GetPVHBarcs$Barcs)  
DefaultAssay(PVH_Seu) = "integrated"
PVH_Seu = FindVariableFeatures(PVH_Seu)
PVH_Seu = ScaleData(PVH_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(PVH_Seu) = "integrated"
PVH_Seu = RunPCA(PVH_Seu, npcs = 20)
PVH_Seu <- RunUMAP(PVH_Seu, dims = 1:20, spread= 5)
DefaultAssay(PVH_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(50)

##ClusterFunc_All_RNA(PVH_Seu)


DefaultAssay(PVH_Seu) = "integrated"
PVH_Seu <- FindNeighbors(PVH_Seu, k.param=50, dims=1:20)
PVH_Seu <- FindClusters(PVH_Seu, resolution = 1)
DefaultAssay(PVH_Seu) = "RNA"

PVH_UMAP = as.data.frame(PVH_Seu@reductions$umap@cell.embeddings)
PVH01 = subset(PVH_Seu, idents = 0)
PVH01Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH01) & PVH_UMAP$UMAP_1 > -12.5 & PVH_UMAP$UMAP_1 < 4 & PVH_UMAP$UMAP_2 > -10 & PVH_UMAP$UMAP_2 < 8)

PVH02 = subset(PVH_Seu, idents = 1)
PVH02Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH02) & PVH_UMAP$UMAP_1 > -10 &  PVH_UMAP$UMAP_2 > 0 & PVH_UMAP$UMAP_2 < 12)

PVH03 = subset(PVH_Seu, idents = 2)
PVH03Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH03) & PVH_UMAP$UMAP_1 > 10 &  PVH_UMAP$UMAP_2 > 10)

PVH04 = subset(PVH_Seu, idents = 3)
PVH04Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH04) & PVH_UMAP$UMAP_1 < -20)

PVH05 = subset(PVH_Seu, idents = 4)
PVH05Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH05) & PVH_UMAP$UMAP_1 < 25 & PVH_UMAP$UMAP_1 > 13 & PVH_UMAP$UMAP_2 < -10)

PVH06 = subset(PVH_Seu, idents = 5)
PVH06Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH06) & PVH_UMAP$UMAP_1 < 3 & PVH_UMAP$UMAP_1 > -10 & PVH_UMAP$UMAP_2 < 3 & PVH_UMAP$UMAP_2 > -10)

PVH07 = subset(PVH_Seu, idents = 6)
PVH08 = subset(PVH_Seu, idents = 7)

PVH09 = subset(PVH_Seu, idents = 8)
PVH09Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH09) & PVH_UMAP$UMAP_1 < -10 & PVH_UMAP$UMAP_1 > -20 & PVH_UMAP$UMAP_2 > -10)

PVH10 = subset(PVH_Seu, idents = 9)
PVH10Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH10) & PVH_UMAP$UMAP_2 < 10)

PVH11 = subset(PVH_Seu, idents = 10)
PVH11Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH11) & PVH_UMAP$UMAP_1 > 20)

PVH12 = subset(PVH_Seu, idents = 11)
PVH12Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH12) & PVH_UMAP$UMAP_1 < 10)

PVH13 = subset(PVH_Seu, idents = 12)

PVH14 = subset(PVH_Seu, idents = 13)
PVH14Clean = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH14) & PVH_UMAP$UMAP_2 > -20)

PVH15 = subset(PVH_Seu, idents = 14)
PVH16 = subset(PVH_Seu, idents = c(15, 16))


#CheckInput = PVH17
#CheckUMAP(PVH_Seu)



PVH_REST = subset(PVH_Seu, cells = c(colnames(PVH07), colnames(PVH08), colnames(PVH13), colnames(PVH15), colnames(PVH16), row.names(PVH01Clean), row.names(PVH02Clean), row.names(PVH03Clean), row.names(PVH04Clean),  row.names(PVH05Clean),row.names(PVH06Clean), row.names(PVH09Clean),row.names(PVH10Clean), row.names(PVH11Clean), row.names(PVH12Clean), row.names(PVH14Clean)), invert=T)

#CheckInput = PVH_REST
#CheckUMAP(PVH_Seu)

PVH01_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 > -12.5 & PVH_UMAP$UMAP_1 < 0 & PVH_UMAP$UMAP_2 > -10 & PVH_UMAP$UMAP_2 < 8 | row.names(PVH_UMAP) %in% row.names(PVH01Clean))
PVH02_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST)  & PVH_UMAP$UMAP_1 > -3 & PVH_UMAP$UMAP_1 < 10 &  PVH_UMAP$UMAP_2 > 0 & PVH_UMAP$UMAP_2 < 14 & ! row.names(PVH_UMAP) %in% row.names(PVH01_Extras) | row.names(PVH_UMAP) %in% row.names(PVH02Clean) |  row.names(PVH_UMAP) %in% colnames(PVH_REST)  & PVH_UMAP$UMAP_1 > -3 & PVH_UMAP$UMAP_1 < 18 &  PVH_UMAP$UMAP_2 > 0 & PVH_UMAP$UMAP_2 < 12 & ! row.names(PVH_UMAP) %in% row.names(PVH01_Extras)| row.names(PVH_UMAP) %in% row.names(PVH02Clean))
PVH03_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST)  & PVH_UMAP$UMAP_1 > 10 &  PVH_UMAP$UMAP_2 > 10| row.names(PVH_UMAP) %in% row.names(PVH03Clean))
PVH04_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 < -22 & PVH_UMAP$UMAP_2 > -5 & PVH_UMAP$UMAP_2 < 12| row.names(PVH_UMAP) %in% row.names(PVH04Clean))
PVH05_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 < 25 & PVH_UMAP$UMAP_1 > 13 & PVH_UMAP$UMAP_2 < -10| row.names(PVH_UMAP) %in% row.names(PVH05Clean))
#PVH06_Extras #None
PVH07_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST)  & PVH_UMAP$UMAP_1 < 0 & PVH_UMAP$UMAP_1 > -15 & PVH_UMAP$UMAP_2 < -10| row.names(PVH_UMAP) %in% colnames(PVH07))
PVH08_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 > 20 & PVH_UMAP$UMAP_2 < -10 & ! row.names(PVH_UMAP) %in% row.names(PVH05_Extras) | row.names(PVH_UMAP) %in% colnames(PVH08))
PVH09_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 < -10 & PVH_UMAP$UMAP_1 > -22 & PVH_UMAP$UMAP_2 < 5 & PVH_UMAP$UMAP_2 > -5| row.names(PVH_UMAP) %in% row.names(PVH09Clean))
PVH10_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_2 > -10 & PVH_UMAP$UMAP_2 < 0 & PVH_UMAP$UMAP_1 > 0 & PVH_UMAP$UMAP_1 < 10| row.names(PVH_UMAP) %in% row.names(PVH10Clean))
PVH11_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 > 20 & PVH_UMAP$UMAP_2 > 0 & PVH_UMAP$UMAP_2 < 10| row.names(PVH_UMAP) %in% row.names(PVH11Clean))
PVH12_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 < 15 & PVH_UMAP$UMAP_1 > 0 & PVH_UMAP$UMAP_2 > 15| row.names(PVH_UMAP) %in% row.names(PVH12Clean))
PVH13_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 < 18 & PVH_UMAP$UMAP_1 > 0 & PVH_UMAP$UMAP_2 < -15 & ! row.names(PVH_UMAP) %in% c(row.names(PVH05_Extras), row.names(PVH08_Extras)) | row.names(PVH_UMAP) %in% colnames(PVH13))
PVH14_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 < -15 & PVH_UMAP$UMAP_2 > -20 & PVH_UMAP$UMAP_2 < -5| row.names(PVH_UMAP) %in% row.names(PVH14Clean))
PVH15_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & PVH_UMAP$UMAP_1 < -15 & PVH_UMAP$UMAP_2 < -20| row.names(PVH_UMAP) %in% colnames(PVH15))
PVH16_Extras = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH_REST) & ! row.names(PVH_UMAP) %in% c(row.names(PVH01_Extras), row.names(PVH02_Extras), row.names(PVH03_Extras), row.names(PVH04_Extras), row.names(PVH05_Extras), row.names(PVH07_Extras), row.names(PVH08_Extras), row.names(PVH09_Extras), row.names(PVH10_Extras), row.names(PVH11_Extras), row.names(PVH12_Extras), row.names(PVH13_Extras), row.names(PVH14_Extras), row.names(PVH15_Extras))| row.names(PVH_UMAP) %in% colnames(PVH16))



set.dim = 20
set.res = 1
set.kparam = c(60)

PVH16_Seu = subset(PVH_Seu, cells = row.names(PVH16_Extras))
#ClusterFunc_All_RNA(PVH16_Seu)
PVH02_Seu = subset(PVH_Seu, cells = row.names(PVH02_Extras))
#ClusterFunc_All_RNA(PVH02_Seu)


DefaultAssay(PVH02_Seu) = "integrated"
PVH02_Seu <- FindNeighbors(PVH02_Seu, k.param=60, dims=1:20)
PVH02_Seu <- FindClusters(PVH02_Seu, resolution = 1)
PVH_17 = subset(PVH02_Seu, idents = c(1))
PVH_17Extra = subset(PVH_UMAP, row.names(PVH_UMAP) %in% colnames(PVH02_Seu) & PVH_UMAP$UMAP_1 > 8 & PVH_UMAP$UMAP_2 < 7.5)
PVH_17Final = subset(PVH02_Seu, cells = unique(c(colnames(PVH_17), row.names(PVH_17Extra))))
PVH_02_New = subset(PVH02_Seu, cells = unique(c(colnames(PVH_17), row.names(PVH_17Extra))), invert=T)

DefaultAssay(PVH16_Seu) = "integrated"
PVH16_Seu <- FindNeighbors(PVH16_Seu, k.param=10, dims=1:20)
PVH16_Seu <- FindClusters(PVH16_Seu, resolution = 1)
PVH_18 = subset(PVH16_Seu, idents = c(2,4,8))
PVH_16_New = subset(PVH16_Seu, idents = c(2,4,8), invert=T)


PVH_Assigns = GenerateMetaData(list("PVH_01" = PVH01_Extras, "PVH_02" = PVH_02_New,  "PVH_03" = PVH03_Extras,  "PVH_04" = PVH04_Extras,  "PVH_05" = PVH05_Extras, "PVH_06" = PVH06Clean, "PVH_07" = PVH07_Extras,"PVH_08" = PVH08_Extras, "PVH_09" = PVH09_Extras,   "PVH_10" = PVH10_Extras,  "PVH_11" = PVH11_Extras,  "PVH_12" = PVH12_Extras,"PVH_13" = PVH13_Extras,  "PVH_14" = PVH14_Extras, "PVH_15" = PVH15_Extras,  "PVH_16" = PVH_16_New, "PVH_17" = PVH_17Final, "PVH_18" = PVH_18))

#PVH_REST2 = subset(PVH_Seu, cells = PVH_Assigns$Barcodes, invert=T)
#CheckInput = PVH_REST
#CheckUMAP(PVH_Seu)


#load("~/Hypothalamus_Subclustering_2023.RData")


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

TM

GetTMBarcs = subset(MainAssign, MainAssign$Nuclei == "TM")
TM_Seu = subset(EdKaZhouHypoNeurons, cells = GetTMBarcs$Barcs)  
DefaultAssay(TM_Seu) = "integrated"
TM_Seu = FindVariableFeatures(TM_Seu)
TM_Seu = ScaleData(TM_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(TM_Seu) = "integrated"
TM_Seu = RunPCA(TM_Seu, npcs = 30)
TM_Seu <- RunHarmony(TM_Seu, group.by.vars = "SampleAdult")
TM_Seu <- RunUMAP(TM_Seu, dims = 1:30, spread= 2, reduction = "harmony")
DefaultAssay(TM_Seu) = "RNA"

set.dim = 30
set.res = 1
set.kparam = c(200)

##ClusterFunc_All_RNA(TM_Seu)


DefaultAssay(TM_Seu) = "integrated"
TM_Seu <- FindNeighbors(TM_Seu, k.param=100, dims=1:30)
TM_Seu <- FindClusters(TM_Seu, resolution = 1)
DefaultAssay(TM_Seu) = "RNA"

TM_UMAP = as.data.frame(TM_Seu@reductions$umap@cell.embeddings)
TM02 = subset(TM_Seu, idents = c(0,4))
TM02Clean = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM02)  & TM_UMAP$UMAP_1 < -3 & TM_UMAP$UMAP_2 < 3.5)

TM03 = subset(TM_Seu, idents = c(1,6))
TM03Clean = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM03) & TM_UMAP$UMAP_1 > 0 & TM_UMAP$UMAP_1 < 13.5 &  TM_UMAP$UMAP_2 > -3 )

TM04 = subset(TM_Seu, idents = c(5))
TM04Clean = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM04) & TM_UMAP$UMAP_1 > -8 & TM_UMAP$UMAP_1 < 3 & TM_UMAP$UMAP_2 > -1)

TM05 = subset(TM_Seu, idents = 3)
TM05Clean = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM05) &  TM_UMAP$UMAP_1 > 13.5 | row.names(TM_UMAP) %in% colnames(TM05) &  TM_UMAP$UMAP_1 > 10 &  TM_UMAP$UMAP_2 < -2 )


#CheckInput = TM05
#CheckUMAP(TM_Seu)



TM_REST = subset(TM_Seu, cells = c(row.names(TM02Clean), row.names(TM03Clean), row.names(TM04Clean),  row.names(TM05Clean)), invert=T)

#CheckInput = TM03_Extras
#CheckUMAP(TM_Seu)

TM02_Extras = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM_REST)  & TM_UMAP$UMAP_1 < -3 & TM_UMAP$UMAP_2 < 3.5  | row.names(TM_UMAP) %in%  row.names(TM02Clean))

TM03_Extras = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM_REST) & TM_UMAP$UMAP_1 > 2 & TM_UMAP$UMAP_1 < 13.7 &  TM_UMAP$UMAP_2 > -3  | row.names(TM_UMAP) %in%  row.names(TM03Clean))

TM04_Extras = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM_REST) & TM_UMAP$UMAP_1 > -10 & TM_UMAP$UMAP_1 < 5 & !  row.names(TM_UMAP) %in% c(row.names(TM02_Extras), row.names(TM03_Extras)) | row.names(TM_UMAP) %in%  row.names(TM04Clean))

TM05_Extras = subset(TM_UMAP, row.names(TM_UMAP) %in% colnames(TM_REST) & TM_UMAP$UMAP_1 > 2 &  TM_UMAP$UMAP_1 > 13.7 |  row.names(TM_UMAP) %in% colnames(TM_REST) & TM_UMAP$UMAP_1 > 5 &  TM_UMAP$UMAP_2 < -2 |  row.names(TM_UMAP) %in%  row.names(TM05Clean))



TM_Assigns = GenerateMetaData_Barcodes(list( "TM_02" = TM02_Extras, "TM_03" = TM03_Extras,  "TM_04" = TM04_Extras,"TM_05" = TM05_Extras))

#TM_01_Rest = subset(TM_Seu, cells = TM_Assigns$Barcodes, invert=T)


#CheckInput = TM_01_Rest
#CheckUMAP(TM_Seu)

TM_Assigns$Dups = duplicated(TM_Assigns$Barcodes) | duplicated(TM_Assigns$Barcodes, fromLast=T)
TM_Assigns_T = subset(TM_Assigns, TM_Assigns$Dups == T)
unique(TM_Assigns_T$Pop)

TM_Assigns = GenerateMetaData(list("TM_02" = TM02_Extras, "TM_03" = TM03_Extras,  "TM_04" = TM04_Extras,"TM_05" = TM05_Extras))

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

VMH

GetVMHBarcs = subset(MainAssign, MainAssign$Nuclei == "VMH")
VMH_Seu = subset(EdKaZhouHypoNeurons, cells = GetVMHBarcs$Barcs)  
DefaultAssay(VMH_Seu) = "integrated"
VMH_Seu = FindVariableFeatures(VMH_Seu)
VMH_Seu = ScaleData(VMH_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(VMH_Seu) = "integrated"
VMH_Seu = RunPCA(VMH_Seu, npcs = 20)
VMH_Seu <- RunHarmony(VMH_Seu, group.by.vars = "SampleAdult")
VMH_Seu <- RunUMAP(VMH_Seu, dims = 1:20, spread= 5, reduction = "harmony")
DefaultAssay(VMH_Seu) = "RNA"

set.dim = c(20)
set.res = 1
set.kparam = c(50)

#ClusterFunc_All_RNA(VMH_Seu)


DefaultAssay(VMH_Seu) = "integrated"
VMH_Seu <- FindNeighbors(VMH_Seu, k.param=50, dims=1:20)
VMH_Seu <- FindClusters(VMH_Seu, resolution = 1)
DefaultAssay(VMH_Seu) = "RNA"

VMH_UMAP = as.data.frame(VMH_Seu@reductions$umap@cell.embeddings)
VMH01 = subset(VMH_Seu, idents = c(0))
VMH01Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH01) & VMH_UMAP$UMAP_1 > 10 & VMH_UMAP$UMAP_2 > -8  & VMH_UMAP$UMAP_2 < 16)

VMH02 = subset(VMH_Seu, idents = 2)
VMH02Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH02) & VMH_UMAP$UMAP_1 > 2 &   VMH_UMAP$UMAP_2 > 17 | row.names(VMH_UMAP) %in% colnames(VMH02) & VMH_UMAP$UMAP_1 > 10 &   VMH_UMAP$UMAP_2 > 15)

VMH03 = subset(VMH_Seu, idents = 3)
VMH03Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH03) & VMH_UMAP$UMAP_2 < -25)

VMH04 = subset(VMH_Seu, idents = 4)
VMH04Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH04)& VMH_UMAP$UMAP_1 > -15 & VMH_UMAP$UMAP_1 < -1 &   VMH_UMAP$UMAP_2 > -11)

VMH05 = subset(VMH_Seu, idents = c(1,5))
VMH05Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH05) & VMH_UMAP$UMAP_1 > -7 & VMH_UMAP$UMAP_1 < 4 &   VMH_UMAP$UMAP_2 > -1 &   VMH_UMAP$UMAP_2 < 11 | row.names(VMH_UMAP) %in% colnames(VMH05) & VMH_UMAP$UMAP_1 > -2 & VMH_UMAP$UMAP_1 < 7 &   VMH_UMAP$UMAP_2 > -5 &   VMH_UMAP$UMAP_2 < 0)
VMH06Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH05)& VMH_UMAP$UMAP_1 > 4 & VMH_UMAP$UMAP_1 < 10 &   VMH_UMAP$UMAP_2 > -2 &   VMH_UMAP$UMAP_2 < 20 | row.names(VMH_UMAP) %in% colnames(VMH05)& VMH_UMAP$UMAP_1 > 0 & VMH_UMAP$UMAP_1 < 10 &   VMH_UMAP$UMAP_2 > 11 &   VMH_UMAP$UMAP_2 < 20 )

VMH07 = subset(VMH_Seu, idents = 6)
VMH07Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH07)& VMH_UMAP$UMAP_1 < -7)

VMH08 = subset(VMH_Seu, idents = c(7))
VMH08Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH08) & VMH_UMAP$UMAP_1 > -23 & VMH_UMAP$UMAP_1 < -10 &  VMH_UMAP$UMAP_2 > 10)

VMH09 = subset(VMH_Seu, idents = 8)
VMH09Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH09) & VMH_UMAP$UMAP_1 < -19 & VMH_UMAP$UMAP_2 < 18)

VMH10 = subset(VMH_Seu, idents = 9)
VMH10Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH10) & VMH_UMAP$UMAP_1 > -2 & VMH_UMAP$UMAP_1 < 15 & VMH_UMAP$UMAP_2 > -25)

VMH11 = subset(VMH_Seu, idents = 10)
VMH11Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH11) & VMH_UMAP$UMAP_1 > -21 & VMH_UMAP$UMAP_1 < -5 & VMH_UMAP$UMAP_2 > -6 & VMH_UMAP$UMAP_2 < 8)

VMH12 = subset(VMH_Seu, idents = 11)
VMH12Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH12) & VMH_UMAP$UMAP_1 < -18)

VMH13 = subset(VMH_Seu, idents = 12)
VMH13Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH13) & VMH_UMAP$UMAP_2 < -5)

VMH14 = subset(VMH_Seu, idents = 13)
VMH14Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH14) & VMH_UMAP$UMAP_2 < -5)

VMH15 = subset(VMH_Seu, idents = 14)
VMH15Clean = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH15) & VMH_UMAP$UMAP_1 > -10& VMH_UMAP$UMAP_1 < 0)


#CheckInput = VMH04Clean
#CheckUMAP(VMH_Seu)



VMH_REST = subset(VMH_Seu, cells = c(row.names(VMH01Clean), row.names(VMH02Clean), row.names(VMH03Clean), row.names(VMH04Clean),  row.names(VMH05Clean),row.names(VMH06Clean),row.names(VMH07Clean), row.names(VMH08Clean), row.names(VMH09Clean),  row.names(VMH10Clean), row.names(VMH11Clean), row.names(VMH12Clean), row.names(VMH13Clean), row.names(VMH14Clean),row.names(VMH15Clean)), invert=T)

#CheckInput = VMH06_Extras
#CheckUMAP(VMH_Seu)

##
VMH01_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 > 10 & VMH_UMAP$UMAP_2 > -8  & VMH_UMAP$UMAP_2 < 14  & VMH_UMAP$UMAP_2 > -7 | row.names(VMH_UMAP) %in% row.names(VMH01Clean))

VMH03_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 > -1 & VMH_UMAP$UMAP_2 < -25 | row.names(VMH_UMAP) %in% row.names(VMH03Clean))

VMH05_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > -2.5 & VMH_UMAP$UMAP_1 < 5 & VMH_UMAP$UMAP_2 > -10 & VMH_UMAP$UMAP_2 < 0 | row.names(VMH_UMAP) %in% row.names(VMH05Clean))

VMH06_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > 4 & VMH_UMAP$UMAP_1 < 10 &   VMH_UMAP$UMAP_2 > -2 &   VMH_UMAP$UMAP_2 < 23 & ! row.names(VMH_UMAP) %in% row.names(VMH05_Extras) |  row.names(VMH_UMAP) %in% colnames(VMH_REST) &  VMH_UMAP$UMAP_1 > -1 & VMH_UMAP$UMAP_1 < 10 &   VMH_UMAP$UMAP_2 > 11 &   VMH_UMAP$UMAP_2 < 23  | row.names(VMH_UMAP) %in% row.names(VMH06Clean))

VMH10_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > -2  & VMH_UMAP$UMAP_1 < 16 & VMH_UMAP$UMAP_2 > -26 & VMH_UMAP$UMAP_2 < -10 | row.names(VMH_UMAP) %in% row.names(VMH10Clean))


VMH08_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 > -20 & VMH_UMAP$UMAP_1 < -8 & VMH_UMAP$UMAP_2 > 15 & VMH_UMAP$UMAP_2 < 21  | row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 > -18 & VMH_UMAP$UMAP_1 < -8 & VMH_UMAP$UMAP_2 > 8   | row.names(VMH_UMAP) %in% row.names(VMH08Clean))


VMH13_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > 30 & VMH_UMAP$UMAP_2 < -10 | row.names(VMH_UMAP) %in% row.names(VMH13Clean))

VMH14_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > 16& VMH_UMAP$UMAP_1 < 30 & VMH_UMAP$UMAP_2 < -5 | row.names(VMH_UMAP) %in% row.names(VMH14Clean))

VMH15_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > -8 & VMH_UMAP$UMAP_1 < -1 & VMH_UMAP$UMAP_2 < -25 | row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > -5 & VMH_UMAP$UMAP_1 < -2 & VMH_UMAP$UMAP_2 < -21 | row.names(VMH_UMAP) %in% row.names(VMH15Clean))

VMH16_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > -7 & VMH_UMAP$UMAP_1 < -2 &  VMH_UMAP$UMAP_2 > -22 & VMH_UMAP$UMAP_2 < -11 | row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > -9 & VMH_UMAP$UMAP_1 < -7 &  VMH_UMAP$UMAP_2 > -15 & VMH_UMAP$UMAP_2 < -11)

VMH02_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 > 2 &   VMH_UMAP$UMAP_2 > 17 & ! row.names(VMH_UMAP) %in% row.names(VMH06_Extras) | row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 > 10 &   VMH_UMAP$UMAP_2 > 14 | row.names(VMH_UMAP) %in% row.names(VMH02Clean))

VMH07_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 < -8 & VMH_UMAP$UMAP_2 > -27 & VMH_UMAP$UMAP_2 < -10 & ! row.names(VMH_UMAP) %in% row.names(VMH16_Extras) | row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 < -7 & VMH_UMAP$UMAP_2 > -25 & VMH_UMAP$UMAP_2 < -21 & ! row.names(VMH_UMAP) %in% row.names(VMH16_Extras) | row.names(VMH_UMAP) %in% row.names(VMH07Clean))


VMH09_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST)  & VMH_UMAP$UMAP_1 < -18 & VMH_UMAP$UMAP_2 > 3 & VMH_UMAP$UMAP_2 < 17 & ! row.names(VMH_UMAP) %in% row.names(VMH08_Extras) | row.names(VMH_UMAP) %in% row.names(VMH09Clean))

VMH11_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 > -20 & VMH_UMAP$UMAP_1 < -10.7 & VMH_UMAP$UMAP_2 > -3.5 & VMH_UMAP$UMAP_2 < 7 & ! row.names(VMH_UMAP) %in% row.names(VMH09_Extras) | row.names(VMH_UMAP) %in% row.names(VMH11Clean))

VMH04_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 < -1 &   VMH_UMAP$UMAP_2 > -12 &   VMH_UMAP$UMAP_2 < 0 & ! row.names(VMH_UMAP) %in% c(row.names(VMH07_Extras), row.names(VMH16_Extras), row.names(VMH11_Extras), row.names(VMH05_Extras)) | row.names(VMH_UMAP) %in% row.names(VMH04Clean))

VMH12_Extras = subset(VMH_UMAP, row.names(VMH_UMAP) %in% colnames(VMH_REST) & VMH_UMAP$UMAP_1 < -18 & VMH_UMAP$UMAP_2 > -10 & ! row.names(VMH_UMAP) %in% c(row.names(VMH09_Extras), row.names(VMH08_Extras), row.names(VMH10_Extras)) | row.names(VMH_UMAP) %in% row.names(VMH12Clean))

CheckInput = VMH_Rest2
CheckUMAP(VMH_Seu)


VMH_Assigns_V1 = GenerateMetaData_Barcodes(list("VMH_01" = VMH01_Extras, "VMH_02" = VMH02_Extras,"VMH_03" = VMH03_Extras, "VMH_04" = VMH04_Extras,  "VMH_05" = VMH05_Extras, "VMH_06" = VMH06_Extras, "VMH_07" = VMH07_Extras, "VMH_08" = VMH08_Extras, "VMH_09" = VMH09_Extras, "VMH_10" = VMH10_Extras, "VMH_11" = VMH11_Extras, "VMH_12" = VMH12_Extras,"VMH_13" = VMH13_Extras, "VMH_14" = VMH14_Extras,  "VMH_15" = VMH15_Extras, "VMH_16" = VMH16_Extras))


VMH_Rest2 = subset(VMH_Seu, cells = VMH_Assigns_V1$Barcodes, invert=T)

VMH_Assigns_V1$Dups = duplicated(VMH_Assigns_V1$Barcodes) | duplicated(VMH_Assigns_V1$Barcodes, fromLast=T)
VMH_Assigns_T = subset(VMH_Assigns_V1, VMH_Assigns_V1$Dups == T)
unique(VMH_Assigns_T$Pop)

VMH_Assigns = GenerateMetaData(list("VMH_01" = VMH01_Extras, "VMH_02" = VMH02_Extras,"VMH_03" = VMH03_Extras, "VMH_04" = VMH04_Extras,  "VMH_05" = VMH05_Extras, "VMH_06" = VMH06_Extras, "VMH_07" = VMH07_Extras, "VMH_08" = VMH08_Extras, "VMH_09" = VMH09_Extras, "VMH_10" = VMH10_Extras, "VMH_11" = VMH11_Extras, "VMH_12" = VMH12_Extras,"VMH_13" = VMH13_Extras, "VMH_14" = VMH14_Extras,  "VMH_15" = VMH15_Extras, "VMH_16" = VMH16_Extras, "VMH_05" = VMH_Rest2))


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

SMN

GetSMNBarcs = subset(MainAssign, MainAssign$Nuclei == "SMN")
SMN_Seu = subset(EdKaZhouHypoNeurons, cells = GetSMNBarcs$Barcs)  
DefaultAssay(SMN_Seu) = "integrated"
SMN_Seu = FindVariableFeatures(SMN_Seu)
SMN_Seu = ScaleData(SMN_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(SMN_Seu) = "integrated"
SMN_Seu = RunPCA(SMN_Seu, npcs = 30)
SMN_Seu <- RunUMAP(SMN_Seu, dims = 1:30, spread= 2)
DefaultAssay(SMN_Seu) = "RNA"

set.dim = 30
set.res = 1
set.kparam = c(50)

##ClusterFunc_All_RNA(SMN_Seu)


DefaultAssay(SMN_Seu) = "integrated"
SMN_Seu <- FindNeighbors(SMN_Seu, k.param=50, dims=1:30)
SMN_Seu <- FindClusters(SMN_Seu, resolution = 1)
DefaultAssay(SMN_Seu) = "RNA"

SMN_UMAP = as.data.frame(SMN_Seu@reductions$umap@cell.embeddings)
SMN01 = subset(SMN_Seu, idents = c(0, 1, 11, 16))
SMN01Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN01) & SMN_UMAP$UMAP_1 > -9 & SMN_UMAP$UMAP_1 < 1.5 & SMN_UMAP$UMAP_2 > -9 & SMN_UMAP$UMAP_2 < 1 | row.names(SMN_UMAP) %in% colnames(SMN01) & SMN_UMAP$UMAP_1 > -10 & SMN_UMAP$UMAP_1 < -5 & SMN_UMAP$UMAP_2 < -5)

SMN02 = subset(SMN_Seu, idents = c(2, 9))

SMN03 = subset(SMN_Seu, idents = 3)
SMN03Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN03) &  SMN_UMAP$UMAP_2 > -8)

SMN04 = subset(SMN_Seu, idents = 4)
SMN04Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN04) & SMN_UMAP$UMAP_1 > -2 & SMN_UMAP$UMAP_1 < 5)

SMN05 = subset(SMN_Seu, idents = c(5, 8, 13, 15,18))
SMN05Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN05) & SMN_UMAP$UMAP_2 < 10)

SMN06 = subset(SMN_Seu, idents = 6)

SMN07 = subset(SMN_Seu, idents = 7)
SMN07Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN07) & SMN_UMAP$UMAP_1 > 5)

SMN08 = subset(SMN_Seu, idents = 10)
SMN08Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN08) & SMN_UMAP$UMAP_1 > 5 & SMN_UMAP$UMAP_2 < -5)

SMN09 = subset(SMN_Seu, idents = c(12,14))
SMN09Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN09) & SMN_UMAP$UMAP_1 > -4)

SMN10 = subset(SMN_Seu, idents = 17)
SMN10Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN10) & SMN_UMAP$UMAP_2 > 6 & SMN_UMAP$UMAP_2 < 11 & SMN_UMAP$UMAP_1 > 3 &  SMN_UMAP$UMAP_1 < 10)

#CheckInput = SMN_REST
#CheckUMAP(SMN_Seu)



SMN_REST = subset(SMN_Seu, cells = c(colnames(SMN02), colnames(SMN06), row.names(SMN01Clean),  row.names(SMN03Clean), row.names(SMN04Clean),  row.names(SMN05Clean),row.names(SMN07Clean), row.names(SMN08Clean), row.names(SMN09Clean),row.names(SMN10Clean)), invert=T)

#CheckInput = SMN10_Extras
#CheckUMAP(SMN_Seu)

SMN01_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_1 > -10 & SMN_UMAP$UMAP_1 < 1.5 & SMN_UMAP$UMAP_2 > -9 & SMN_UMAP$UMAP_2 < 1 | row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_1 > -10 & SMN_UMAP$UMAP_1 < -5 & SMN_UMAP$UMAP_2 < -5 | row.names(SMN_UMAP) %in% row.names(SMN01Clean))
SMN02_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_1 > 0 & SMN_UMAP$UMAP_1 < 10 & SMN_UMAP$UMAP_2 > 11 | row.names(SMN_UMAP) %in% colnames(SMN02))

SMN03_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) &  SMN_UMAP$UMAP_1 < -10   &  SMN_UMAP$UMAP_2 < 0  & ! row.names(SMN_UMAP) %in% row.names(SMN01_Extras)| row.names(SMN_UMAP) %in% row.names(SMN03Clean))
SMN04_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST)  & SMN_UMAP$UMAP_1 > 0 & SMN_UMAP$UMAP_1 < 5 & SMN_UMAP$UMAP_2 < -5| row.names(SMN_UMAP) %in% row.names(SMN04Clean)) 

SMN05_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST)  & SMN_UMAP$UMAP_1 > -2 & SMN_UMAP$UMAP_2 > -5 & SMN_UMAP$UMAP_2 < 7 & ! row.names(SMN_UMAP) %in% row.names(SMN01_Extras) | row.names(SMN_UMAP) %in% row.names(SMN05Clean))

SMN06_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_1 < -10 & SMN_UMAP$UMAP_2 > 10 | row.names(SMN_UMAP) %in% colnames(SMN06))

SMN07_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_1 > 10 & SMN_UMAP$UMAP_2 > 5 &  ! row.names(SMN_UMAP) %in% row.names(SMN02_Extras) | row.names(SMN_UMAP) %in% row.names(SMN07Clean))


SMN08_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_1 > 5 & SMN_UMAP$UMAP_2 < -5 | row.names(SMN_UMAP) %in% row.names(SMN08Clean))
SMN09_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_1 > -6 & SMN_UMAP$UMAP_1 < 4 & SMN_UMAP$UMAP_2 < -4 & ! row.names(SMN_UMAP) %in% c(row.names(SMN01_Extras), row.names(SMN04_Extras)) | row.names(SMN_UMAP) %in% row.names(SMN09Clean))
SMN10_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST) & SMN_UMAP$UMAP_2 > 6 & SMN_UMAP$UMAP_2 < 11 & SMN_UMAP$UMAP_1 > 3 & SMN_UMAP$UMAP_1 < 10  | row.names(SMN_UMAP) %in% row.names(SMN10Clean))

SMN_Assigns = GenerateMetaData_Barcodes(list("SMN_01" = SMN01_Extras, "SMN_02" = SMN02_Extras, "SMN_03" = SMN03_Extras,  "SMN_04" = SMN04_Extras, "SMN_05" = SMN05_Extras, "SMN_06" = SMN06_Extras,  "SMN_07" = SMN07_Extras, "SMN_08" = SMN08_Extras, "SMN_09" = SMN09_Extras,  "SMN_10" = SMN10_Extras))

#SMN_REST2 = subset(SMN_Seu, cells = SMN_Assigns$Barcodes, invert=T)
#CheckInput = SMN_REST2
#CheckUMAP(SMN_Seu)


SMN01_Recluster = subset(SMN_Seu, cells = row.names(SMN01_Extras))
set.dim = 30
set.res = 1
set.kparam = c(50, 80)
##ClusterFunc_All_RNA(SMN01_Recluster)


DefaultAssay(SMN01_Recluster) = "integrated"
SMN01_Recluster <- FindNeighbors(SMN01_Recluster, k.param=40, dims=1:30)
SMN01_Recluster <- FindClusters(SMN01_Recluster, resolution = 1)
DefaultAssay(SMN01_Recluster) = "RNA"

SMN11 = subset(SMN01_Recluster, idents = c(1,9, 5))
SMN12 = subset(SMN01_Recluster, idents = c(4))
SMN13 = subset(SMN01_Recluster, idents = c(2))

SMN11Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN11) & SMN_UMAP$UMAP_2 > -10  & SMN_UMAP$UMAP_2 < -5 &   SMN_UMAP$UMAP_1 < -1)
SMN12Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN12) & SMN_UMAP$UMAP_2 < -10)
SMN13Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN13) & SMN_UMAP$UMAP_1 < -7 & SMN_UMAP$UMAP_2 > -11)

SMN_REST3 = subset(SMN01_Recluster, cells = c(row.names(SMN11Clean), row.names(SMN12Clean), row.names(SMN13Clean)), invert=T)

SMN11_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST3)  & SMN_UMAP$UMAP_2 > -10 & SMN_UMAP$UMAP_2 < -6 &   SMN_UMAP$UMAP_1 < -1  &   SMN_UMAP$UMAP_1 > -7.5  | row.names(SMN_UMAP) %in% row.names(SMN11Clean))
SMN12_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST3)  & SMN_UMAP$UMAP_2 < -10  | row.names(SMN_UMAP) %in% row.names(SMN12Clean))
SMN13_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST3)  & SMN_UMAP$UMAP_1 < -8  & !  row.names(SMN_UMAP) %in% c(row.names(SMN11_Extras), row.names(SMN12_Extras)) | row.names(SMN_UMAP) %in% colnames(SMN_REST3)  & SMN_UMAP$UMAP_1 < -6  & SMN_UMAP$UMAP_2 < -6  & !  row.names(SMN_UMAP) %in% c(row.names(SMN11_Extras), row.names(SMN12_Extras))  | row.names(SMN_UMAP) %in% row.names(SMN13Clean))

SMN01_New = subset(SMN01_Recluster, cells = c(row.names(SMN11_Extras), row.names(SMN12_Extras), row.names(SMN13_Extras)), invert=T)

SMN05_Seu = subset(SMN_Seu, cells = row.names(SMN05_Extras))
set.dim = 30
set.res = 1
set.kparam = c(40)
#ClusterFunc_All_RNA(SMN05_Seu)

DefaultAssay(SMN05_Seu) = "integrated"
SMN05_Seu <- FindNeighbors(SMN05_Seu, k.param=40, dims=1:30)
SMN05_Seu <- FindClusters(SMN05_Seu, resolution = 1)
SMN_14 = subset(SMN05_Seu, idents = c(0,1))
SMN_15 = subset(SMN05_Seu, idents = c(2,9))
SMN_16 = subset(SMN05_Seu, idents = c(3))
SMN_17 = subset(SMN05_Seu, idents = c(4))
SMN_18 = subset(SMN05_Seu, idents = c(5))
SMN_19 = subset(SMN05_Seu, idents = c(6))
SMN_20 = subset(SMN05_Seu, idents = c(7))
SMN_05_New = subset(SMN05_Seu, idents = c(8))

SMN14Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_14) & SMN_UMAP$UMAP_1 > 3   & SMN_UMAP$UMAP_1 < 7 & SMN_UMAP$UMAP_2 > 0)
SMN_15
SMN16Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_16)   & SMN_UMAP$UMAP_1 > 6 & SMN_UMAP$UMAP_2 > -2 & SMN_UMAP$UMAP_2 < 2)
SMN17Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_17) & SMN_UMAP$UMAP_1 > 6.5   & SMN_UMAP$UMAP_1 < 11 & SMN_UMAP$UMAP_2 > 2)
SMN18Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_18)   & SMN_UMAP$UMAP_1 < 4.5 & SMN_UMAP$UMAP_2 < 4.5)
SMN_19
SMN20Clean = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_20)   & SMN_UMAP$UMAP_1 > 8)
SMN_05_New

SMN_REST4 = subset(SMN05_Seu, cells = c(row.names(SMN14Clean), row.names(SMN16Clean), row.names(SMN17Clean), row.names(SMN18Clean), row.names(SMN20Clean), colnames(SMN_15), colnames(SMN_19), colnames(SMN_05_New)), invert=T)


SMN14Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4) & SMN_UMAP$UMAP_1 > 3   & SMN_UMAP$UMAP_1 < 6.5 & SMN_UMAP$UMAP_2 > 1.6 | row.names(SMN_UMAP) %in% row.names(SMN14Clean) )
SMN15Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4) & SMN_UMAP$UMAP_1 > 8   &  SMN_UMAP$UMAP_2 < 0 & SMN_UMAP$UMAP_2 > -2 | row.names(SMN_UMAP) %in% colnames(SMN_15) )
SMN16Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4) & SMN_UMAP$UMAP_1 > 6.5    & SMN_UMAP$UMAP_2 < 2.3 & SMN_UMAP$UMAP_2 > -1  & ! row.names(SMN_UMAP) %in% row.names(SMN15Extras) | row.names(SMN_UMAP) %in% row.names(SMN16Clean) )
SMN17Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4) & SMN_UMAP$UMAP_1 > 6.5  & SMN_UMAP$UMAP_1 < 11   &  SMN_UMAP$UMAP_2 > 2 | row.names(SMN_UMAP) %in% row.names(SMN17Clean) )
SMN18Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4)  & SMN_UMAP$UMAP_1 < 3.7 & SMN_UMAP$UMAP_2 < 3 & SMN_UMAP$UMAP_2 > 0 & ! row.names(SMN_UMAP) %in% row.names(SMN14Extras)   | row.names(SMN_UMAP) %in% colnames(SMN_REST4)  & SMN_UMAP$UMAP_1 < 5 & SMN_UMAP$UMAP_2 < 2 & SMN_UMAP$UMAP_2 > 0 & ! row.names(SMN_UMAP) %in% row.names(SMN14Extras) | row.names(SMN_UMAP) %in% row.names(SMN18Clean) )
SMN19Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4)  & SMN_UMAP$UMAP_1 < 4 & ! row.names(SMN_UMAP) %in% c(row.names(SMN14Extras), row.names(SMN18Extras)) | row.names(SMN_UMAP) %in% colnames(SMN_19) )
SMN20Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4) & SMN_UMAP$UMAP_1 > 8   &  SMN_UMAP$UMAP_2 > 2.5 & ! row.names(SMN_UMAP) %in% row.names(SMN17Extras) | row.names(SMN_UMAP) %in% row.names(SMN20Clean) )
SMN05_New_Extras = subset(SMN_UMAP, row.names(SMN_UMAP) %in% colnames(SMN_REST4) & SMN_UMAP$UMAP_1 < 10   &  SMN_UMAP$UMAP_2 < 1 &  SMN_UMAP$UMAP_1 > 4 & ! row.names(SMN_UMAP) %in% c(row.names(SMN15Extras), row.names(SMN16Extras)) | row.names(SMN_UMAP) %in% colnames(SMN_05_New) )





SMN_Assigns = GenerateMetaData_Barcodes(list("SMN_01" = SMN01_New, "SMN_02" = SMN02_Extras, "SMN_03" = SMN03_Extras,  "SMN_04" = SMN04_Extras, "SMN_05" = SMN05_New_Extras, "SMN_06" = SMN06_Extras,  "SMN_07" = SMN07_Extras, "SMN_08" = SMN08_Extras, "SMN_09" = SMN09_Extras,  "SMN_10" = SMN10_Extras, "SMN_11" = SMN11_Extras, "SMN_12" = SMN12_Extras,  "SMN_13" = SMN13_Extras,  "SMN_14" = SMN14Extras,  "SMN_15" = SMN15Extras,  "SMN_16" = SMN16Extras,  "SMN_17" = SMN17Extras,  "SMN_18" = SMN18Extras,  "SMN_19" = SMN19Extras,  "SMN_20" = SMN20Extras))


#CheckInput = SMN05_New_Extras
#CheckUMAP(SMN05_Seu)


SMN_Assigns$Dups = duplicated(SMN_Assigns$Barcodes) | duplicated(SMN_Assigns$Barcodes, fromLast=T)
SMN_Assigns_T = subset(SMN_Assigns, SMN_Assigns$Dups == T)
unique(SMN_Assigns_T$Pop)

SMN_Assigns = GenerateMetaData(list("SMN_01" = SMN01_New, "SMN_02" = SMN02_Extras, "SMN_03" = SMN03_Extras,  "SMN_04" = SMN04_Extras, "SMN_05" = SMN05_New_Extras, "SMN_06" = SMN06_Extras,  "SMN_07" = SMN07_Extras, "SMN_08" = SMN08_Extras, "SMN_09" = SMN09_Extras,  "SMN_10" = SMN10_Extras, "SMN_11" = SMN11_Extras, "SMN_12" = SMN12_Extras,  "SMN_13" = SMN13_Extras,  "SMN_14" = SMN14Extras,  "SMN_15" = SMN15Extras,  "SMN_16" = SMN16Extras,  "SMN_17" = SMN17Extras,  "SMN_18" = SMN18Extras,  "SMN_19" = SMN19Extras,  "SMN_20" = SMN20Extras))

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

LH

GetLHBarcs = subset(MainAssign, MainAssign$Nuclei == "LH")
LH_Seu = subset(EdKaZhouHypoNeurons, cells = GetLHBarcs$Barcs)  
DefaultAssay(LH_Seu) = "integrated"
LH_Seu = FindVariableFeatures(LH_Seu)
LH_Seu = ScaleData(LH_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(LH_Seu) = "integrated"
LH_Seu = RunPCA(LH_Seu, npcs = 20)
LH_Seu <- RunHarmony(LH_Seu, group.by.vars = "SampleAdult")
LH_Seu <- RunUMAP(LH_Seu, dims = 1:20, spread= 5, reduction = "harmony")
DefaultAssay(LH_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(5)

#ClusterFunc_All_RNA(LH_Seu)


DefaultAssay(LH_Seu) = "integrated"
LH_Seu <- FindNeighbors(LH_Seu, k.param=5, dims=1:20)
LH_Seu <- FindClusters(LH_Seu, resolution = 1)
DefaultAssay(LH_Seu) = "RNA"


#CheckInput = LH08
#CheckUMAP(LH_Seu)

LH_UMAP = as.data.frame(LH_Seu@reductions$umap@cell.embeddings)
LH01 = subset(LH_Seu, idents = c(0,3,4))
LH01Clean = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH01) & LH_UMAP$UMAP_1 < -3 & LH_UMAP$UMAP_2 > -9.5 & LH_UMAP$UMAP_2 < 10)

LH02 = subset(LH_Seu, idents = 1)
LH02Clean = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH02) & LH_UMAP$UMAP_1 < -3 & LH_UMAP$UMAP_2 > 10 & LH_UMAP$UMAP_2 < 20)

LH03 = subset(LH_Seu, idents = c(2))
LH03Clean = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH03) & LH_UMAP$UMAP_1 > -3 & LH_UMAP$UMAP_1 < 8 & LH_UMAP$UMAP_2 > -8 & LH_UMAP$UMAP_2 < 5)

LH04 = subset(LH_Seu, idents = 5)
LH04Clean = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH04) & LH_UMAP$UMAP_1 > -5 & LH_UMAP$UMAP_1 < 10)

LH05 = subset(LH_Seu, idents = c(6,8))
LH05Clean = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH05) & LH_UMAP$UMAP_1 > 8 & LH_UMAP$UMAP_1 < 21 & LH_UMAP$UMAP_2 > -20 & LH_UMAP$UMAP_2 < -7)

LH06 = subset(LH_Seu, idents = 7)
LH06Clean = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH06) & LH_UMAP$UMAP_1 > 10 & LH_UMAP$UMAP_2 > 0)

LH07 = subset(LH_Seu, idents = 10)
LH08 = subset(LH_Seu, idents = 11)



#CheckInput = LH10Clean
#CheckUMAP(LH_Seu)



LH_REST = subset(LH_Seu, cells = c(row.names(LH01Clean), row.names(LH02Clean), row.names(LH03Clean), row.names(LH04Clean), row.names(LH05Clean),row.names(LH06Clean), colnames(LH07), colnames(LH08)), invert=T)

#CheckInput = LH08_Extras
#CheckUMAP(LH_Seu)

LH01_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 < -4 & LH_UMAP$UMAP_2 < 9 & LH_UMAP$UMAP_2 > -7 | row.names(LH_UMAP) %in% row.names(LH01Clean))
LH02_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 < -4 &  LH_UMAP$UMAP_2 > 9 | row.names(LH_UMAP) %in% row.names(LH02Clean))
LH03_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 > -1 & LH_UMAP$UMAP_1 < 9 & LH_UMAP$UMAP_2 < 3 & LH_UMAP$UMAP_2 > -9 | row.names(LH_UMAP) %in% row.names(LH03Clean))
LH04_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 > -6 & LH_UMAP$UMAP_1 < 8 & LH_UMAP$UMAP_2 > 15 | row.names(LH_UMAP) %in% row.names(LH04Clean))
LH05_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 > 8 & LH_UMAP$UMAP_1 < 20 & LH_UMAP$UMAP_2 < -9 & LH_UMAP$UMAP_2 > -16 | row.names(LH_UMAP) %in% row.names(LH05Clean))
LH06_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 > 20  & LH_UMAP$UMAP_2 > 0 | row.names(LH_UMAP) %in% row.names(LH06Clean))
LH08_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 > 8 & LH_UMAP$UMAP_1 < 13 & LH_UMAP$UMAP_2 > -8  & LH_UMAP$UMAP_2 < -2 | row.names(LH_UMAP) %in% colnames(LH08))

LH09_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST) & LH_UMAP$UMAP_1 > 10 & LH_UMAP$UMAP_1 < 20 & LH_UMAP$UMAP_2 > 0  & LH_UMAP$UMAP_2 < 10)
LH10_Extras = subset(LH_UMAP, row.names(LH_UMAP) %in% colnames(LH_REST)  & LH_UMAP$UMAP_1 < -7 & LH_UMAP$UMAP_2 < -10)



LH_Assigns = GenerateMetaData_Barcodes(list( "LH_01" = LH01_Extras,  "LH_02" = LH02_Extras,  "LH_03" = LH03_Extras, "LH_04" = LH04_Extras,   "LH_05" = LH05_Extras, "LH_06" = LH06_Extras,  "LH_07" = LH07, "LH_08" = LH08_Extras, "LH_09" = LH09_Extras, "LH_10" = LH10_Extras))

LH_REST2 = subset(LH_Seu, cells = LH_Assigns$Barcodes, invert=T)
#CheckInput = LH10_Extras
#CheckUMAP(LH_Seu)

LH_Assigns$Dups = duplicated(LH_Assigns$Barcodes) | duplicated(LH_Assigns$Barcodes, fromLast=T)
LH_Assigns_T = subset(LH_Assigns, LH_Assigns$Dups == T)
unique(LH_Assigns_T$Pop)

LH_Assigns = GenerateMetaData(list( "LH_01" = LH01_Extras,  "LH_02" = LH02_Extras,  "LH_03" = LH03_Extras, "LH_04" = LH04_Extras,   "LH_05" = LH05_Extras, "LH_06" = LH06_Extras,  "LH_07" = LH07, "LH_08" = LH08_Extras, "LH_09" = LH09_Extras, "LH_10" = LH10_Extras, "LH_11" = LH_REST2))


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns", "LH_Seu", "LH_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

SCN

GetSCNBarcs = subset(MainAssign, MainAssign$Nuclei == "SCN")
SCN_Seu = subset(EdKaZhouHypoNeurons, cells = GetSCNBarcs$Barcs)  
DefaultAssay(SCN_Seu) = "integrated"
SCN_Seu = FindVariableFeatures(SCN_Seu)
SCN_Seu = ScaleData(SCN_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(SCN_Seu) = "integrated"
SCN_Seu = RunPCA(SCN_Seu, npcs = 20)
SCN_Seu <- RunUMAP(SCN_Seu, dims = 1:20, spread= 2)
DefaultAssay(SCN_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(50)

##ClusterFunc_All_RNA(SCN_Seu)


DefaultAssay(SCN_Seu) = "integrated"
SCN_Seu <- FindNeighbors(SCN_Seu, k.param=50, dims=1:20)
SCN_Seu <- FindClusters(SCN_Seu, resolution = 1)
DefaultAssay(SCN_Seu) = "RNA"

#CheckInput = SCN08Clean
#CheckUMAP(SCN_Seu)



SCN_UMAP = as.data.frame(SCN_Seu@reductions$umap@cell.embeddings)
SCN01 = subset(SCN_Seu, idents = c(0))
SCN01Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN01) & SCN_UMAP$UMAP_1 > -3 & SCN_UMAP$UMAP_1 < 8 & SCN_UMAP$UMAP_2 > -8 & SCN_UMAP$UMAP_2 < 1)

SCN02 = subset(SCN_Seu, idents = c(1,6,13,22))
SCN02Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN02) & SCN_UMAP$UMAP_1 < -6 & SCN_UMAP$UMAP_2 < 7)

SCN03 = subset(SCN_Seu, idents = c(2,20))
SCN03Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN03) & SCN_UMAP$UMAP_1 > 4 & SCN_UMAP$UMAP_1 < 12 &  SCN_UMAP$UMAP_2 > 5)

SCN04 = subset(SCN_Seu, idents = c(3,18))
SCN04Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN04) & SCN_UMAP$UMAP_1 < -3 &  SCN_UMAP$UMAP_1 > -11 &  SCN_UMAP$UMAP_2 > 0)

SCN05 = subset(SCN_Seu, idents = 4)
SCN05Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN05) & SCN_UMAP$UMAP_1 > 6  & SCN_UMAP$UMAP_2 < 0)

SCN06 = subset(SCN_Seu, idents = 5)
SCN06Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN06) &  SCN_UMAP$UMAP_1 < 3 & SCN_UMAP$UMAP_2 > -14 & SCN_UMAP$UMAP_2 < -8.5)

SCN07 = subset(SCN_Seu, idents = c(7,15))
SCN07Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN07) & SCN_UMAP$UMAP_1 > -4 & SCN_UMAP$UMAP_1 < 7 & SCN_UMAP$UMAP_2 > -3 & SCN_UMAP$UMAP_2 < 5)

SCN08 = subset(SCN_Seu, idents = c(8))
SCN08Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN08) & SCN_UMAP$UMAP_1 > 5 & SCN_UMAP$UMAP_1 < 11 & SCN_UMAP$UMAP_2 > -2 & SCN_UMAP$UMAP_2 < 8)

SCN09 = subset(SCN_Seu, idents = c(9))
SCN09Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN09) & SCN_UMAP$UMAP_1 > 0 & SCN_UMAP$UMAP_2 < -5 & SCN_UMAP$UMAP_2 > -10)

SCN10 = subset(SCN_Seu, idents = c(10))
SCN10Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN10) & SCN_UMAP$UMAP_1 > -5 & SCN_UMAP$UMAP_1 < 0)

SCN11 = subset(SCN_Seu, idents = c(11))
SCN11Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN11) & SCN_UMAP$UMAP_1 > 1 & SCN_UMAP$UMAP_1 < 8 & SCN_UMAP$UMAP_2 > -7  & SCN_UMAP$UMAP_2 < 0)

SCN12 = subset(SCN_Seu, idents = c(12))
SCN12Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN12) & SCN_UMAP$UMAP_1 > 10  & SCN_UMAP$UMAP_2 < 4)

SCN13 = subset(SCN_Seu, idents = c(14))
SCN13Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN13) & SCN_UMAP$UMAP_1 < 4 )

SCN14 = subset(SCN_Seu, idents = c(16))
SCN14Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN14) & SCN_UMAP$UMAP_2 > 4.5 )

SCN15 = subset(SCN_Seu, idents = c(17))
SCN15Clean = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN15) & SCN_UMAP$UMAP_1 > 10  & SCN_UMAP$UMAP_2 > 0)

SCN16 = subset(SCN_Seu, idents = c(19))
SCN17 = subset(SCN_Seu, idents = c(21))

#CheckInput = SCN14Clean
#CheckUMAP(SCN_Seu)


SCN_REST = subset(SCN_Seu, cells = c(row.names(SCN01Clean), row.names(SCN02Clean), row.names(SCN03Clean), row.names(SCN04Clean), row.names(SCN05Clean), row.names(SCN06Clean), row.names(SCN07Clean), row.names(SCN08Clean), row.names(SCN09Clean), row.names(SCN10Clean), row.names(SCN11Clean), row.names(SCN12Clean), row.names(SCN13Clean), row.names(SCN14Clean), row.names(SCN15Clean), colnames(SCN16), colnames(SCN17)), invert=T)

#CheckInput = SCN01_Extras
#CheckUMAP(SCN_Seu)




SCN02_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_1 < -10 & SCN_UMAP$UMAP_2 < 8 | row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_1 < -6 & SCN_UMAP$UMAP_2 < 4 | row.names(SCN_UMAP) %in% row.names(SCN02Clean))
SCN03_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_1 > 3.5 & SCN_UMAP$UMAP_1 < 12 &  SCN_UMAP$UMAP_2 > 7.4 | row.names(SCN_UMAP) %in% row.names(SCN03Clean))
SCN04_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_1 < -2 &    SCN_UMAP$UMAP_2 > 2 & ! row.names(SCN_UMAP) %in% row.names(SCN02_Extras) | row.names(SCN_UMAP) %in% row.names(SCN04Clean))
SCN05_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)   & SCN_UMAP$UMAP_1 > 7  & SCN_UMAP$UMAP_2 > -10 & SCN_UMAP$UMAP_2 < -1 | row.names(SCN_UMAP) %in% row.names(SCN05Clean))




SCN08_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_1 > 5 & SCN_UMAP$UMAP_1 < 9 & SCN_UMAP$UMAP_2 > -2 & SCN_UMAP$UMAP_2 < 4 & ! row.names(SCN_UMAP) %in% c( row.names(SCN05_Extras))| row.names(SCN_UMAP) %in% row.names(SCN08Clean))
SCN09_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > 0  & SCN_UMAP$UMAP_1 < 8 & SCN_UMAP$UMAP_2 < -6.2 & SCN_UMAP$UMAP_2 > -10 | row.names(SCN_UMAP) %in% row.names(SCN09Clean))
SCN06_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  &  SCN_UMAP$UMAP_1 < 3 & SCN_UMAP$UMAP_2 > -14 & SCN_UMAP$UMAP_2 < -8.5 & ! row.names(SCN_UMAP) %in% row.names(SCN09_Extras) | row.names(SCN_UMAP) %in% row.names(SCN06Clean))
SCN11_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > 4 & SCN_UMAP$UMAP_1 < 8 & SCN_UMAP$UMAP_2 > -5  & SCN_UMAP$UMAP_2 < 0 & ! row.names(SCN_UMAP) %in% c(row.names(SCN08_Extras), row.names(SCN05_Extras))  | row.names(SCN_UMAP) %in% row.names(SCN11Clean))

SCN01_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > -2 & SCN_UMAP$UMAP_1 < 7 & SCN_UMAP$UMAP_2 > -8 & SCN_UMAP$UMAP_2 < -2  & ! row.names(SCN_UMAP) %in% c(row.names(SCN05_Extras), row.names(SCN11_Extras), row.names(SCN08_Extras), row.names(SCN09_Extras)) | row.names(SCN_UMAP) %in% row.names(SCN01Clean))


SCN10_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > -5 & SCN_UMAP$UMAP_1 < 0 & SCN_UMAP$UMAP_2 < 0 & ! row.names(SCN_UMAP) %in% c(row.names(SCN01_Extras), row.names(SCN06_Extras)) | row.names(SCN_UMAP) %in% row.names(SCN10Clean))


SCN07_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > -4 & SCN_UMAP$UMAP_1 < 7 & SCN_UMAP$UMAP_2 > -5 & SCN_UMAP$UMAP_2 < 5 & ! row.names(SCN_UMAP) %in% c(row.names(SCN01_Extras), row.names(SCN08_Extras), row.names(SCN11_Extras), row.names(SCN10_Extras)) | row.names(SCN_UMAP) %in% row.names(SCN07Clean))
SCN12_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_1 > 10  & SCN_UMAP$UMAP_1 < 14.5  & SCN_UMAP$UMAP_2 < 4.5 & SCN_UMAP$UMAP_2 > -1 | row.names(SCN_UMAP) %in% row.names(SCN12Clean))
SCN13_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > 0 & SCN_UMAP$UMAP_1 < 6 &  SCN_UMAP$UMAP_2 > 8 & ! row.names(SCN_UMAP) %in% row.names(SCN03_Extras) | row.names(SCN_UMAP) %in% row.names(SCN13Clean))
SCN14_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > 10 & SCN_UMAP$UMAP_1 < 13 &  SCN_UMAP$UMAP_2 > 4.5 &  SCN_UMAP$UMAP_2 < 9 & ! row.names(SCN_UMAP) %in% row.names(SCN03_Extras) | row.names(SCN_UMAP) %in% row.names(SCN14Clean))
SCN15_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_1 > 10 & SCN_UMAP$UMAP_2 > 3 &  SCN_UMAP$UMAP_2 < 9 & ! row.names(SCN_UMAP) %in% c(row.names(SCN14_Extras), row.names(SCN12_Extras), row.names(SCN03_Extras)) | row.names(SCN_UMAP) %in% row.names(SCN15Clean))
SCN16_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST)  & SCN_UMAP$UMAP_2 < -12 & SCN_UMAP$UMAP_1 < 5 & ! row.names(SCN_UMAP) %in% row.names(SCN06_Extras) | row.names(SCN_UMAP) %in% colnames(SCN16))
SCN17_Extras = subset(SCN_UMAP, row.names(SCN_UMAP) %in% colnames(SCN_REST) & SCN_UMAP$UMAP_1 > 5  & SCN_UMAP$UMAP_2 < -11 | row.names(SCN_UMAP) %in% colnames(SCN17))



SCN_Assigns = GenerateMetaData_Barcodes(list( "SCN_01" = SCN01_Extras,  "SCN_02" = SCN02_Extras,  "SCN_03" = SCN03_Extras, "SCN_04" = SCN04_Extras,   "SCN_05" = SCN05_Extras, "SCN_06" = SCN06_Extras,  "SCN_07" = SCN07_Extras, "SCN_08" = SCN08_Extras, "SCN_09" = SCN09_Extras,  "SCN_10" = SCN10_Extras, "SCN_11" = SCN11_Extras,  "SCN_12" = SCN12_Extras,  "SCN_13" = SCN13_Extras, "SCN_14" = SCN14_Extras,   "SCN_15" = SCN15_Extras, "SCN_16" = SCN16_Extras,  "SCN_17" = SCN17_Extras))

SCN_REST2 = subset(SCN_Seu, cells = SCN_Assigns$Barcodes, invert=T)

SCN_Assigns$Dups = duplicated(SCN_Assigns$Barcodes) | duplicated(SCN_Assigns$Barcodes, fromLast=T)
SCN_Assigns_T = subset(SCN_Assigns, SCN_Assigns$Dups == T)
unique(SCN_Assigns_T$Pop)

SCN_Assigns = GenerateMetaData(list( "SCN_01" = SCN01_Extras,  "SCN_02" = SCN02_Extras,  "SCN_03" = SCN03_Extras, "SCN_04" = SCN04_Extras,   "SCN_05" = SCN05_Extras, "SCN_06" = SCN06_Extras,  "SCN_07" = SCN07_Extras, "SCN_08" = SCN08_Extras, "SCN_09" = SCN09_Extras,  "SCN_10" = SCN10_Extras, "SCN_11" = SCN11_Extras,  "SCN_12" = SCN12_Extras,  "SCN_13" = SCN13_Extras, "SCN_14" = SCN14_Extras,   "SCN_15" = SCN15_Extras, "SCN_16" = SCN16_Extras,  "SCN_17" = SCN17_Extras, "SCN_18" = SCN_REST2))




CheckInput = SCN03_Extras
CheckUMAP(SCN_Seu)


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns", "LH_Seu", "LH_Assigns", "SCN_Seu", "SCN_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

DMH

GetDMHBarcs = subset(MainAssign, MainAssign$Nuclei == "DMH")
DMH_Seu = subset(EdKaZhouHypoNeurons, cells = GetDMHBarcs$Barcs)  
DefaultAssay(DMH_Seu) = "integrated"
DMH_Seu = FindVariableFeatures(DMH_Seu)
DMH_Seu = ScaleData(DMH_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(DMH_Seu) = "integrated"
DMH_Seu = RunPCA(DMH_Seu, npcs = 20)
DMH_Seu <- RunUMAP(DMH_Seu, dims = 1:20, spread= 5)
DefaultAssay(DMH_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(20,50)

#ClusterFunc_All_RNA(DMH_Seu)

#CheckInput = DMH07Clean
#CheckUMAP(DMH_Seu)

DefaultAssay(DMH_Seu) = "integrated"
DMH_Seu <- FindNeighbors(DMH_Seu, k.param=20, dims=1:20)
DMH_Seu <- FindClusters(DMH_Seu, resolution = 1)
DefaultAssay(DMH_Seu) = "RNA"

DMH_UMAP = as.data.frame(DMH_Seu@reductions$umap@cell.embeddings)
DMH01 = subset(DMH_Seu, idents = 0)

DMH02 = subset(DMH_Seu, idents = 1)
DMH02Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH02)  & DMH_UMAP$UMAP_1 > 7 & DMH_UMAP$UMAP_2 < -7 & DMH_UMAP$UMAP_1 < 22)

DMH03 = subset(DMH_Seu, idents = 2)
DMH03Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH03) & DMH_UMAP$UMAP_1 > -16 & DMH_UMAP$UMAP_1 < -6 & DMH_UMAP$UMAP_2 > 7 )

DMH04 = subset(DMH_Seu, idents = 3)
DMH04Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH04) &  DMH_UMAP$UMAP_2 > 0)

DMH05 = subset(DMH_Seu, idents = 4)
DMH05Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH05) &  DMH_UMAP$UMAP_2 > -7)

DMH06 = subset(DMH_Seu, idents = 5)
DMH06Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH06) & DMH_UMAP$UMAP_2 > -23 & DMH_UMAP$UMAP_2 < -11)

DMH07 = subset(DMH_Seu, idents = 6)
DMH07Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH07) & DMH_UMAP$UMAP_2 > -10 & DMH_UMAP$UMAP_2 < 11)

DMH08 = subset(DMH_Seu, idents = 7)
DMH08Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH08) & DMH_UMAP$UMAP_2 < 11)

DMH09 = subset(DMH_Seu, idents = 8)

DMH10 = subset(DMH_Seu, idents = 9)
DMH10Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH10) & DMH_UMAP$UMAP_1 < -20)

DMH11 = subset(DMH_Seu, idents = 10)
DMH11Clean = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH11) & DMH_UMAP$UMAP_2 < -20)

DMH12 = subset(DMH_Seu, idents = 11)

#CheckInput = DMH04Clean
#CheckUMAP(DMH_Seu)



DMH_REST = subset(DMH_Seu, cells = c(colnames(DMH01), row.names(DMH02Clean), row.names(DMH03Clean), row.names(DMH04Clean),  row.names(DMH05Clean),row.names(DMH06Clean),  row.names(DMH07Clean), row.names(DMH08Clean), colnames(DMH09),  row.names(DMH10Clean), row.names(DMH11Clean), colnames(DMH12)), invert=T)

#CheckInput = DMH07_Extras
#CheckUMAP(DMH_Seu)

DMH02_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 > 5 & DMH_UMAP$UMAP_1 < 18 & DMH_UMAP$UMAP_2 < 0 | row.names(DMH_UMAP) %in% row.names(DMH02Clean)) 
DMH03_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST)& DMH_UMAP$UMAP_1 > -16 & DMH_UMAP$UMAP_1 < -6 & DMH_UMAP$UMAP_2 > 7 | row.names(DMH_UMAP) %in% row.names(DMH03Clean))
DMH04_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_2 > 3  & DMH_UMAP$UMAP_2 < 15 &  DMH_UMAP$UMAP_1 < -10 & ! row.names(DMH_UMAP) %in% row.names(DMH03_Extras) | row.names(DMH_UMAP) %in% row.names(DMH04Clean))
DMH05_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) &  DMH_UMAP$UMAP_2 > -10 &  DMH_UMAP$UMAP_1 > 20 | row.names(DMH_UMAP) %in% row.names(DMH05Clean))
DMH06_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST)   & DMH_UMAP$UMAP_1 < 5 & DMH_UMAP$UMAP_2 > -22 & DMH_UMAP$UMAP_2 < -12 | row.names(DMH_UMAP) %in% row.names(DMH06Clean))
DMH07_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 < 10 & DMH_UMAP$UMAP_1 > -8 & DMH_UMAP$UMAP_2 > -1 & DMH_UMAP$UMAP_2 < 9 | row.names(DMH_UMAP) %in% row.names(DMH07Clean))
DMH01_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 > -8 & DMH_UMAP$UMAP_2 > 7 & ! row.names(DMH_UMAP) %in% row.names(DMH07_Extras) | row.names(DMH_UMAP) %in% colnames(DMH01)) 
DMH08_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 < 1 & DMH_UMAP$UMAP_2 > -9 & DMH_UMAP$UMAP_2 < -1 & ! row.names(DMH_UMAP) %in% row.names(DMH07_Extras) | row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 > -9 & DMH_UMAP$UMAP_1 < -7 & DMH_UMAP$UMAP_2 > 0 & DMH_UMAP$UMAP_2 < 2 | row.names(DMH_UMAP) %in% row.names(DMH08Clean))
DMH09_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 > 10 &  DMH_UMAP$UMAP_2 < -5 & ! row.names(DMH_UMAP) %in% row.names(DMH02_Extras) | row.names(DMH_UMAP) %in% colnames(DMH09))
DMH11_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 < 10 &  DMH_UMAP$UMAP_2 < -22  | row.names(DMH_UMAP) %in% row.names(DMH11Clean))
DMH12_Extras = subset(DMH_UMAP, row.names(DMH_UMAP) %in% colnames(DMH_REST) & DMH_UMAP$UMAP_1 > -18 & DMH_UMAP$UMAP_1 < -10 &  DMH_UMAP$UMAP_2 > -2 &  DMH_UMAP$UMAP_2 < 5 & ! row.names(DMH_UMAP) %in% row.names(DMH04_Extras) | row.names(DMH_UMAP) %in% colnames(DMH12))

DMH_Assigns = GenerateMetaData_Barcodes(list("DMH_01" = DMH01_Extras, "DMH_02" = DMH02_Extras,"DMH_03" = DMH03_Extras, "DMH_04" = DMH04_Extras,  "DMH_05" = DMH05_Extras, "DMH_06" = DMH06_Extras, "DMH_07" = DMH07_Extras, "DMH_08" = DMH08_Extras, "DMH_09" = DMH09_Extras, "DMH_10" = DMH10Clean,  "DMH_11" = DMH11_Extras, "DMH_12" = DMH12_Extras))

DMH13 = subset(DMH_Seu, cells = DMH_Assigns$Barcodes, invert=T)

DMH_Assigns$Dups = duplicated(DMH_Assigns$Barcodes) | duplicated(DMH_Assigns$Barcodes, fromLast=T)
DMH_Assigns_T = subset(DMH_Assigns, DMH_Assigns$Dups == T)
unique(DMH_Assigns_T$Pop)


DMH_Assigns = GenerateMetaData(list("DMH_01" = DMH01_Extras, "DMH_02" = DMH02_Extras,"DMH_03" = DMH03_Extras, "DMH_04" = DMH04_Extras,  "DMH_05" = DMH05_Extras, "DMH_06" = DMH06_Extras, "DMH_07" = DMH07_Extras, "DMH_08" = DMH08_Extras, "DMH_09" = DMH09_Extras, "DMH_10" = DMH10Clean,  "DMH_11" = DMH11_Extras, "DMH_12" = DMH12_Extras, "DMH_13" = DMH13))



#CheckInput = DMH_Assigns
#CheckUMAP(DMH_Seu)


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns", "LH_Seu", "LH_Assigns", "SCN_Seu", "SCN_Assigns", "DMH_Seu", "DMH_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

PO

GetPOBarcs = subset(MainAssign, MainAssign$Nuclei == "PO")
PO_Seu = subset(EdKaZhouHypoNeurons, cells = GetPOBarcs$Barcs)  
DefaultAssay(PO_Seu) = "integrated"
PO_Seu = FindVariableFeatures(PO_Seu)
PO_Seu = ScaleData(PO_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(PO_Seu) = "integrated"
PO_Seu = RunPCA(PO_Seu, npcs = 20)
PO_Seu <- RunUMAP(PO_Seu, dims = 1:20, spread= 5)
DefaultAssay(PO_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(30, 40)

#ClusterFunc_All_RNA(PO_Seu)

#CheckInput = PO10Clean
#CheckUMAP(PO_Seu)

DefaultAssay(PO_Seu) = "integrated"
PO_Seu <- FindNeighbors(PO_Seu, k.param=20, dims=1:20)
PO_Seu <- FindClusters(PO_Seu, resolution = 1)
DefaultAssay(PO_Seu) = "RNA"

PO_UMAP = as.data.frame(PO_Seu@reductions$umap@cell.embeddings)
PO01 = subset(PO_Seu, idents = c(0, 12))
PO01Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO01)  & PO_UMAP$UMAP_1 < 0 & PO_UMAP$UMAP_2 < -6 )

PO02 = subset(PO_Seu, idents = c(1,8))
PO02Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO02)  & PO_UMAP$UMAP_1 > 2 & PO_UMAP$UMAP_2 < 16 & PO_UMAP$UMAP_2 > 5 | row.names(PO_UMAP) %in% colnames(PO02)  & PO_UMAP$UMAP_1 > 6 & PO_UMAP$UMAP_2 < 5 & PO_UMAP$UMAP_2 > -4 )

PO03 = subset(PO_Seu, idents = 2)
PO03Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO03) & PO_UMAP$UMAP_2 > 5 )

PO04 = subset(PO_Seu, idents = c(3,4))
PO04Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO04) &PO_UMAP$UMAP_2 < -5.5 &  PO_UMAP$UMAP_1 > 0)

PO05 = subset(PO_Seu, idents = 5)
PO05Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO05) &  PO_UMAP$UMAP_2 > 10 &  PO_UMAP$UMAP_1 > 0 &  PO_UMAP$UMAP_1 < 12)

PO06 = subset(PO_Seu, idents = 6)
PO06Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO06) & PO_UMAP$UMAP_1 < 1& PO_UMAP$UMAP_2 > -5 & PO_UMAP$UMAP_2 < 10)

PO07 = subset(PO_Seu, idents = 7)
PO07Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO07) & PO_UMAP$UMAP_1 > -10 & PO_UMAP$UMAP_1 < 0 & PO_UMAP$UMAP_2 > -10 & PO_UMAP$UMAP_2 < 5)

PO08 = subset(PO_Seu, idents = 9)

PO09 = subset(PO_Seu, idents = 10)
PO09Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO09) & PO_UMAP$UMAP_1 < 11)

PO10 = subset(PO_Seu, idents = 11)
PO10Clean = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO10) & PO_UMAP$UMAP_1 < 0 & PO_UMAP$UMAP_1 > -10)

#CheckInput = PO06Clean
#CheckUMAP(PO_Seu)



PO_REST = subset(PO_Seu, cells = c(row.names(PO01Clean), row.names(PO02Clean), row.names(PO03Clean), row.names(PO04Clean),  row.names(PO05Clean),row.names(PO06Clean),  row.names(PO07Clean), colnames(PO08), row.names(PO09Clean),  row.names(PO10Clean)), invert=T)

#CheckInput = PO10_Extras
#CheckUMAP(PO_Seu)

PO01_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_1 < 0 & PO_UMAP$UMAP_2 < -6  | row.names(PO_UMAP) %in% row.names(PO01Clean)) 
PO02_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST)  & PO_UMAP$UMAP_1 > 2 & PO_UMAP$UMAP_2 < 13 & PO_UMAP$UMAP_2 > 3.5 | row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_1 > 6 & PO_UMAP$UMAP_1 > 6 & PO_UMAP$UMAP_2 < 5 & PO_UMAP$UMAP_2 > -3 | row.names(PO_UMAP) %in% colnames(PO_REST)  & PO_UMAP$UMAP_1 > 12 & PO_UMAP$UMAP_2 < 19 & PO_UMAP$UMAP_2 > 5 | row.names(PO_UMAP) %in% row.names(PO02Clean)) 
PO03_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST)& PO_UMAP$UMAP_1 < -10 & PO_UMAP$UMAP_2 > 6 | row.names(PO_UMAP) %in% row.names(PO03Clean))
PO05_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) &  PO_UMAP$UMAP_2 > 13 &  PO_UMAP$UMAP_1 > 0 & PO_UMAP$UMAP_1 < 12 | row.names(PO_UMAP) %in% row.names(PO05Clean))
PO06_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_1 > -15 & PO_UMAP$UMAP_1 < 0 & PO_UMAP$UMAP_2 > 2 & PO_UMAP$UMAP_2 < 7 | row.names(PO_UMAP) %in% row.names(PO06Clean))
PO07_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_1 > -10 & PO_UMAP$UMAP_1 < 0 & PO_UMAP$UMAP_2 > -10 & PO_UMAP$UMAP_2 < 5 & ! row.names(PO_UMAP) %in% row.names(PO06_Extras)| row.names(PO_UMAP) %in% row.names(PO07Clean))
PO08_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_1 < -10 & PO_UMAP$UMAP_2 > -8 & PO_UMAP$UMAP_2 < 4 & ! row.names(PO_UMAP) %in% row.names(PO06_Extras)  | row.names(PO_UMAP) %in% colnames(PO08))
PO09_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_1 > 0 & PO_UMAP$UMAP_1 < 10 &  PO_UMAP$UMAP_2 > -12 &  PO_UMAP$UMAP_2 < 3 & ! row.names(PO_UMAP) %in% row.names(PO02_Extras) | row.names(PO_UMAP) %in% row.names(PO09Clean))
PO04_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_2 < 0  &  PO_UMAP$UMAP_1 > 0 & ! row.names(PO_UMAP) %in% c(row.names(PO02_Extras), row.names(PO09_Extras)) | row.names(PO_UMAP) %in% row.names(PO04Clean))
PO10_Extras = subset(PO_UMAP, row.names(PO_UMAP) %in% colnames(PO_REST) & PO_UMAP$UMAP_1 < 0 & PO_UMAP$UMAP_1 > -10 &   PO_UMAP$UMAP_2 > 8 & ! row.names(PO_UMAP) %in% c(row.names(PO03_Extras), row.names(PO06_Extras)) | row.names(PO_UMAP) %in% row.names(PO10Clean))

PO_Assigns = GenerateMetaData_Barcodes(list("PO_01" = PO01_Extras, "PO_02" = PO02_Extras,"PO_03" = PO03_Extras, "PO_04" = PO04_Extras,  "PO_05" = PO05_Extras, "PO_06" = PO06_Extras, "PO_07" = PO07_Extras, "PO_08" = PO08_Extras, "PO_09" = PO09_Extras, "PO_10" = PO10_Extras))

PO_6pt2 = subset(PO_Seu, cells = PO_Assigns$Barcodes, invert=T)

PO_Assigns$Dups = duplicated(PO_Assigns$Barcodes) | duplicated(PO_Assigns$Barcodes, fromLast=T)
PO_Assigns_T = subset(PO_Assigns, PO_Assigns$Dups == T)
unique(PO_Assigns_T$Pop)


PO_Assigns = GenerateMetaData(list("PO_01" = PO01_Extras, "PO_02" = PO02_Extras,"PO_03" = PO03_Extras, "PO_04" = PO04_Extras,  "PO_05" = PO05_Extras,"PO_06" = PO06_Extras, "PO_06" = PO_6pt2, "PO_07" = PO07_Extras, "PO_08" = PO08_Extras, "PO_09" = PO09_Extras, "PO_10" = PO10_Extras))



#CheckInput = PO_REST2
#CheckUMAP(PO_Seu)


save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns", "LH_Seu", "LH_Assigns", "SCN_Seu", "SCN_Assigns", "DMH_Seu", "DMH_Assigns", "PO_Seu", "PO_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

AH

GetAHBarcs = subset(MainAssign, MainAssign$Nuclei == "AH")
AH_Seu = subset(EdKaZhouHypoNeurons, cells = GetAHBarcs$Barcs)  
DefaultAssay(AH_Seu) = "integrated"
AH_Seu = FindVariableFeatures(AH_Seu)
AH_Seu = ScaleData(AH_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(AH_Seu) = "integrated"
AH_Seu = RunPCA(AH_Seu, npcs = 20)
AH_Seu <- RunHarmony(AH_Seu, group.by.vars = "SampleAdult")
AH_Seu <- RunUMAP(AH_Seu, dims = 1:20, spread= 5, reduction = "harmony")
DefaultAssay(AH_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(10,100)

##ClusterFunc_All_RNA(AH_Seu)

#CheckInput = AH01Clean
#CheckUMAP(AH_Seu)

DefaultAssay(AH_Seu) = "integrated"
AH_Seu <- FindNeighbors(AH_Seu, k.param=20, dims=1:20)
AH_Seu <- FindClusters(AH_Seu, resolution = 1)
DefaultAssay(AH_Seu) = "RNA"

AH_UMAP = as.data.frame(AH_Seu@reductions$umap@cell.embeddings)
AH01 = subset(AH_Seu, idents = c(3))
AH01Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH01)  & AH_UMAP$UMAP_1 > 10 & AH_UMAP$UMAP_1 < 26 & AH_UMAP$UMAP_2 > -7 )

AH02 = subset(AH_Seu, idents = c(4))
AH02Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH02)  & AH_UMAP$UMAP_1 > 0.5 & AH_UMAP$UMAP_2 < -10.5)

AH03 = subset(AH_Seu, idents = c(5,18))
AH03Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH03)  & AH_UMAP$UMAP_1 > -18 & AH_UMAP$UMAP_2 > 5)

AH04 = subset(AH_Seu, idents = c(6))
AH04Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH04)  & AH_UMAP$UMAP_2 > 23)

AH05 = subset(AH_Seu, idents = 7)
AH05Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH05) &  AH_UMAP$UMAP_2 < -23 )

AH06 = subset(AH_Seu, idents = c(8,16,9))
AH06Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH06) & AH_UMAP$UMAP_1 > 20)
AH07Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH06) & AH_UMAP$UMAP_1 < 20 & AH_UMAP$UMAP_2 < 5)

AH08 = subset(AH_Seu, idents = c(10,19))
AH08Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH08) & AH_UMAP$UMAP_1 < -10 & AH_UMAP$UMAP_2 < -10)

AH09 = subset(AH_Seu, idents = c(11))
AH09Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH09) & AH_UMAP$UMAP_2 < 24)

AH10 = subset(AH_Seu, idents = c(12))

AH11 = subset(AH_Seu, idents = c(13,20))
AH11Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH11) & AH_UMAP$UMAP_1 < -10)

AH12 = subset(AH_Seu, idents = c(14))
AH12Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH12) & AH_UMAP$UMAP_2 < -10)

AH13 = subset(AH_Seu, idents = c(15,17))

AH14 = subset(AH_Seu, idents = c(21))
AH14Clean = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH14) & AH_UMAP$UMAP_1 > 0 & AH_UMAP$UMAP_1 < 15)



AH15 = subset(AH_Seu, idents = c(22))





#CheckInput = AH12Clean
#CheckUMAP(AH_Seu)


AH_REST = subset(AH_Seu, cells = c(row.names(AH01Clean), row.names(AH02Clean), row.names(AH03Clean), row.names(AH04Clean),  row.names(AH05Clean),row.names(AH06Clean),  row.names(AH07Clean), row.names(AH08Clean), row.names(AH09Clean), row.names(AH11Clean), row.names(AH12Clean), colnames(AH10), colnames(AH13),row.names(AH14Clean), colnames(AH15)), invert=T)

#CheckInput = AH08Clean
#CheckUMAP(AH_Seu)

AH01_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 < 25 & AH_UMAP$UMAP_1 > 11 & AH_UMAP$UMAP_2 > -7.2 & AH_UMAP$UMAP_2 < 20 | row.names(AH_UMAP) %in% row.names(AH01Clean))

AH02_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > 2 & AH_UMAP$UMAP_1 < 10 &  AH_UMAP$UMAP_2 > -16 &  AH_UMAP$UMAP_2 < -10 | row.names(AH_UMAP) %in% row.names(AH02Clean))

AH03_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > -19 & AH_UMAP$UMAP_1 < -10 &  AH_UMAP$UMAP_2 > 7 &  AH_UMAP$UMAP_2 < 18 | row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > -12 & AH_UMAP$UMAP_1 < 0 &  AH_UMAP$UMAP_2 > 15 | row.names(AH_UMAP) %in% row.names(AH03Clean))

AH04_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) &  AH_UMAP$UMAP_1 > 0 & AH_UMAP$UMAP_2 > 23 | row.names(AH_UMAP) %in% row.names(AH04Clean))

AH05_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST)  & AH_UMAP$UMAP_2 < -21 &  AH_UMAP$UMAP_1 > -10 &  AH_UMAP$UMAP_1 < 8 | row.names(AH_UMAP) %in% row.names(AH05Clean))

AH06_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > 23 &  AH_UMAP$UMAP_2 > -10 &  AH_UMAP$UMAP_2 < 10  & ! row.names(AH_UMAP) %in% row.names(AH01_Extras)| row.names(AH_UMAP) %in% row.names(AH06Clean))

AH07_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > 0 & AH_UMAP$UMAP_1 < 11 &  AH_UMAP$UMAP_2 > -3 &  AH_UMAP$UMAP_2 < 5 | row.names(AH_UMAP) %in% row.names(AH07Clean))

AH08_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST)  & AH_UMAP$UMAP_1 < -18 &   AH_UMAP$UMAP_2 < -5 | row.names(AH_UMAP) %in% row.names(AH08Clean))

AH09_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > -2 & AH_UMAP$UMAP_1 < 12 &  AH_UMAP$UMAP_2 > 5 & ! row.names(AH_UMAP) %in% row.names(AH04_Extras) | row.names(AH_UMAP) %in% row.names(AH09Clean))

AH10_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > 12 & AH_UMAP$UMAP_1 < 25 &  AH_UMAP$UMAP_2 > -18 &  AH_UMAP$UMAP_2 < -7  & ! row.names(AH_UMAP) %in% row.names(AH01_Extras) | row.names(AH_UMAP) %in% colnames(AH10))

AH11_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 < -22 &  AH_UMAP$UMAP_2 > 13 | row.names(AH_UMAP) %in% row.names(AH11Clean))

AH12_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > 9 &    AH_UMAP$UMAP_2 < -20 | row.names(AH_UMAP) %in% row.names(AH12Clean))

AH13_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 < -25 &  AH_UMAP$UMAP_2 > -5 &  AH_UMAP$UMAP_2 < 15  | row.names(AH_UMAP) %in% colnames(AH13))

AH14_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > 3 & AH_UMAP$UMAP_1 < 13 &  AH_UMAP$UMAP_2 > -22 &  AH_UMAP$UMAP_2 < -15  | row.names(AH_UMAP) %in% row.names(AH14Clean))

AH15_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST) & AH_UMAP$UMAP_1 > -15 & AH_UMAP$UMAP_1 < -8 &  AH_UMAP$UMAP_2 > -10 &  AH_UMAP$UMAP_2 < -3  | row.names(AH_UMAP) %in% colnames(AH15))

#CheckInput = AH17_Extras
#CheckUMAP(AH_Seu)

AH_REST2 = subset(AH_Seu, cells = c(row.names(AH01_Extras), row.names(AH02_Extras), row.names(AH03_Extras), row.names(AH04_Extras),  row.names(AH05_Extras),row.names(AH06_Extras),  row.names(AH07_Extras), row.names(AH08_Extras), row.names(AH09_Extras), row.names(AH11_Extras), row.names(AH12_Extras), row.names(AH10_Extras), row.names(AH13_Extras), row.names(AH14_Extras), row.names(AH15_Extras)), invert=T)

AH16_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST2)  & AH_UMAP$UMAP_2 < 10)
AH17_Extras = subset(AH_UMAP, row.names(AH_UMAP) %in% colnames(AH_REST2)  & AH_UMAP$UMAP_2 > 10)



AH_Assigns = GenerateMetaData_Barcodes(list("AH_01" = AH01_Extras, "AH_02" = AH02_Extras,"AH_03" = AH03_Extras, "AH_04" = AH04_Extras,  "AH_05" = AH05_Extras, "AH_06" = AH06_Extras, "AH_07" = AH07_Extras, "AH_08" = AH08_Extras, "AH_09" = AH09_Extras, "AH_10" = AH10_Extras, "AH_11" = AH11_Extras, "AH_12" = AH12_Extras,"AH_13" = AH13_Extras, "AH_14" = AH14_Extras,  "AH_15" = AH15_Extras))

#AH_01_Rest = subset(AH_Seu, cells = AH_Assigns$Barcodes, invert=T)

AH_Assigns$Dups = duplicated(AH_Assigns$Barcodes) | duplicated(AH_Assigns$Barcodes, fromLast=T)
AH_Assigns_T = subset(AH_Assigns, AH_Assigns$Dups == T)
unique(AH_Assigns_T$Pop)

AH_Assigns = GenerateMetaData(list("AH_01" = AH01_Extras, "AH_02" = AH02_Extras,"AH_03" = AH03_Extras, "AH_04" = AH04_Extras,  "AH_05" = AH05_Extras, "AH_06" = AH06_Extras, "AH_07" = AH07_Extras, "AH_08" = AH08_Extras, "AH_09" = AH09_Extras, "AH_10" = AH10_Extras, "AH_11" = AH11_Extras, "AH_12" = AH12_Extras,"AH_13" = AH13_Extras, "AH_14" = AH14_Extras,  "AH_15" = AH15_Extras, "AH_16" = AH16_Extras, "AH_17" = AH17_Extras))

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns", "LH_Seu", "LH_Assigns", "SCN_Seu", "SCN_Assigns", "DMH_Seu", "DMH_Assigns", "PO_Seu", "PO_Assigns", "AH_Seu", "AH_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

MN

GetMNBarcs = subset(MainAssign, MainAssign$Nuclei == "MN")
MN_Seu = subset(EdKaZhouHypoNeurons, cells = GetMNBarcs$Barcs)  
DefaultAssay(MN_Seu) = "integrated"
MN_Seu = FindVariableFeatures(MN_Seu)
MN_Seu = ScaleData(MN_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(MN_Seu) = "integrated"
MN_Seu = RunPCA(MN_Seu, npcs = 20)
MN_Seu <- RunHarmony(MN_Seu, group.by.vars = "SampleAdult")

MN_Seu <- RunUMAP(MN_Seu, dims = 1:20, spread= 5, reduction="harmony")
DefaultAssay(MN_Seu) = "RNA"



set.dim = 20
set.res = 1
set.kparam = c(50, 100)

#ClusterFunc_All_RNA(MN_Seu)



DefaultAssay(MN_Seu) = "integrated"
MN_Seu <- FindNeighbors(MN_Seu, k.param=50, dims=1:20)
MN_Seu <- FindClusters(MN_Seu, resolution = 1)
DefaultAssay(MN_Seu) = "RNA"

MN_UMAP = as.data.frame(MN_Seu@reductions$umap@cell.embeddings)
MN01 = subset(MN_Seu, idents = c(0))
MN01Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN01)  &  MN_UMAP$UMAP_1 < -17 & MN_UMAP$UMAP_2 > -17 & MN_UMAP$UMAP_2 < 11)

MN02 = subset(MN_Seu, idents = c(1,3))
MN02Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN02)  & MN_UMAP$UMAP_1 > -14 & MN_UMAP$UMAP_1 < 0 & MN_UMAP$UMAP_2 > 4)

MN22Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN02)  & MN_UMAP$UMAP_1 > 10 & MN_UMAP$UMAP_2 < 10 & MN_UMAP$UMAP_2 > 0)
MN23Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN02)  & MN_UMAP$UMAP_1 > -3 & MN_UMAP$UMAP_1 < 6 & MN_UMAP$UMAP_2 > -5 & MN_UMAP$UMAP_2 < 4)

#CheckInput = MN06Clean
#CheckUMAP(MN_Seu)

MN03 = subset(MN_Seu, idents = 2)
MN03Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN03)  & MN_UMAP$UMAP_1 > 0 & MN_UMAP$UMAP_1 < 10.5 & MN_UMAP$UMAP_2 > -3 & MN_UMAP$UMAP_2 < 10)
MN22_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN03)  & MN_UMAP$UMAP_1 > 10.5 & MN_UMAP$UMAP_1 < 17 & MN_UMAP$UMAP_2 > -3 & MN_UMAP$UMAP_2 < 10)

MN04 = subset(MN_Seu, idents = c(4))
MN04Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN04)  & MN_UMAP$UMAP_2 > 10)

MN05 = subset(MN_Seu, idents = 6) 
MN05Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN05) & MN_UMAP$UMAP_1 > -16 & MN_UMAP$UMAP_1 < 0 & MN_UMAP$UMAP_2 < -15)
MN24Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN05) & MN_UMAP$UMAP_2 > -15 & MN_UMAP$UMAP_2 < -9 & MN_UMAP$UMAP_1 < -12)

MN06 = subset(MN_Seu, idents = c(7, 9))
MN06Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN06) & MN_UMAP$UMAP_1 > 22 & MN_UMAP$UMAP_2 > -14 | row.names(MN_UMAP) %in% colnames(MN06) & MN_UMAP$UMAP_1 > 21 & MN_UMAP$UMAP_2 < -1 & MN_UMAP$UMAP_2 > -15 | row.names(MN_UMAP) %in% colnames(MN06) & MN_UMAP$UMAP_1 > 17 & MN_UMAP$UMAP_2 < -9 & MN_UMAP$UMAP_2 > -14)

MN07 = subset(MN_Seu, idents = 8)
MN07Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN07) & MN_UMAP$UMAP_1 > -12 & MN_UMAP$UMAP_1 < -4 & MN_UMAP$UMAP_2 > -9 & MN_UMAP$UMAP_2 < 1 )
MN25Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN07) & MN_UMAP$UMAP_1 > -18 & MN_UMAP$UMAP_1 < -12 & MN_UMAP$UMAP_2 > -11 & MN_UMAP$UMAP_2 < 3)

MN08 = subset(MN_Seu, idents = 10)
MN08Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN08) & MN_UMAP$UMAP_1 > -3 & MN_UMAP$UMAP_1 < 10 & MN_UMAP$UMAP_2 > 10)
MN26Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN08) & MN_UMAP$UMAP_1 > 14  & MN_UMAP$UMAP_2 > -4 & MN_UMAP$UMAP_2 <10)

MN09 = subset(MN_Seu, idents = c(11))
MN09Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN09) & MN_UMAP$UMAP_1 > 7 & MN_UMAP$UMAP_1 < 14)
MN10Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN09) & MN_UMAP$UMAP_1 < 7 & MN_UMAP$UMAP_1 > 1 & MN_UMAP$UMAP_2 > -15 & MN_UMAP$UMAP_2 < -10)
MN11Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN09) & MN_UMAP$UMAP_1 < 7 & MN_UMAP$UMAP_1 > 0 & MN_UMAP$UMAP_2 > -10 & MN_UMAP$UMAP_2 < -3)

MN12 = subset(MN_Seu, idents = c(12))
MN12Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN12) & MN_UMAP$UMAP_1 > -17 & MN_UMAP$UMAP_1 < -7 & MN_UMAP$UMAP_2 > -8)

MN13 = subset(MN_Seu, idents = c(13))
MN13Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN13) & MN_UMAP$UMAP_1 > -5 & MN_UMAP$UMAP_1 < 3 &MN_UMAP$UMAP_2 < -15)
MN14Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN13) & MN_UMAP$UMAP_1 > 11 & MN_UMAP$UMAP_1 < 17 & MN_UMAP$UMAP_2 > -10 & MN_UMAP$UMAP_2 < 0)

MN15 = subset(MN_Seu, idents = c(14))
MN15Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN15) & MN_UMAP$UMAP_1 > 10 & MN_UMAP$UMAP_2 < -13)

MN16 = subset(MN_Seu, idents = c(15))
MN16Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN16) & MN_UMAP$UMAP_1 > -22 & MN_UMAP$UMAP_1 < -10 & MN_UMAP$UMAP_2 < 8)

MN17 = subset(MN_Seu, idents = c(16))
MN17Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN17) & MN_UMAP$UMAP_1 > 11)

MN18 = subset(MN_Seu, idents = c(17))
MN18Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN18) & MN_UMAP$UMAP_1 > -11 & MN_UMAP$UMAP_1 < 1 & MN_UMAP$UMAP_2 > -18 & MN_UMAP$UMAP_2 < -9)

MN19 = subset(MN_Seu, idents = c(18))
MN19Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN19) & MN_UMAP$UMAP_1 > 1 & MN_UMAP$UMAP_1 < 10 & MN_UMAP$UMAP_2 > -10 & MN_UMAP$UMAP_2 < -1)

MN20 = subset(MN_Seu, idents = c(19))
MN20Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN20) & MN_UMAP$UMAP_1 > 10 & MN_UMAP$UMAP_1 < 22)

MN21 = subset(MN_Seu, idents = c(20))
MN21Clean = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN21) & MN_UMAP$UMAP_1 > 0 & MN_UMAP$UMAP_1 < 10 & MN_UMAP$UMAP_2 < -15)






MN_REST = subset(MN_Seu, cells = c(row.names(MN01Clean), row.names(MN02Clean), row.names(MN03Clean), row.names(MN04Clean), row.names(MN05Clean), row.names(MN06Clean), row.names(MN07Clean), row.names(MN08Clean), row.names(MN09Clean), row.names(MN10Clean), row.names(MN11Clean), row.names(MN12Clean), row.names(MN13Clean), row.names(MN14Clean), row.names(MN15Clean), row.names(MN16Clean), row.names(MN17Clean), row.names(MN18Clean), row.names(MN19Clean), row.names(MN20Clean), row.names(MN21Clean), row.names(MN22_Pt2), row.names(MN22Clean), row.names(MN23Clean), row.names(MN24Clean), row.names(MN25Clean), row.names(MN26Clean)), invert=T)




MN02_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST)& MN_UMAP$UMAP_1 > -12 & MN_UMAP$UMAP_1 < -3 & MN_UMAP$UMAP_2 > 3 | row.names(MN_UMAP) %in% row.names(MN02Clean))

MN03_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 2 & MN_UMAP$UMAP_1 < 9 & MN_UMAP$UMAP_2 > -1  & MN_UMAP$UMAP_2 < 12 | row.names(MN_UMAP) %in% row.names(MN03Clean))

MN04_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 10 &  MN_UMAP$UMAP_2 > 10 | row.names(MN_UMAP) %in% row.names(MN04Clean))

MN06_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 21.5 &  MN_UMAP$UMAP_2 > -12  & MN_UMAP$UMAP_2 < 5 | row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 20.6 &  MN_UMAP$UMAP_2 > -12  & MN_UMAP$UMAP_2 < 0 | row.names(MN_UMAP) %in% row.names(MN06Clean))

MN07_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -12 & MN_UMAP$UMAP_1 < -5 & MN_UMAP$UMAP_2 > -9  & MN_UMAP$UMAP_2 < -1 | row.names(MN_UMAP) %in% row.names(MN07Clean))

MN08_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -8 & MN_UMAP$UMAP_1 < 8 & MN_UMAP$UMAP_2 > 12 & ! row.names(MN_UMAP) %in% row.names(MN02_Extras) | row.names(MN_UMAP) %in% row.names(MN08Clean))

MN09_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 7 & MN_UMAP$UMAP_1 < 13 & MN_UMAP$UMAP_2 > -13  & MN_UMAP$UMAP_2 < -5 | row.names(MN_UMAP) %in% row.names(MN09Clean))

MN10_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 0 & MN_UMAP$UMAP_1 < 7 & MN_UMAP$UMAP_2 > -16  & MN_UMAP$UMAP_2 < -9 | row.names(MN_UMAP) %in% row.names(MN10Clean))

MN11_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -1 & MN_UMAP$UMAP_1 < 8 & MN_UMAP$UMAP_2 > -9  & MN_UMAP$UMAP_2 < -5 & ! row.names(MN_UMAP) %in% row.names(MN09_Extras)| row.names(MN_UMAP) %in% c(row.names(MN11Clean), row.names(MN19Clean)))

MN13_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -4 & MN_UMAP$UMAP_1 < 1 & MN_UMAP$UMAP_2 > -21  & MN_UMAP$UMAP_2 < -16 | row.names(MN_UMAP) %in% row.names(MN13Clean))

MN05_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -17 & MN_UMAP$UMAP_1 < -3 &  MN_UMAP$UMAP_2 < -16 & ! row.names(MN_UMAP) %in% row.names(MN13_Extras)| row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -3 & MN_UMAP$UMAP_1 < 1 &  MN_UMAP$UMAP_2 < -23 & ! row.names(MN_UMAP) %in% row.names(MN13_Extras)| row.names(MN_UMAP) %in% row.names(MN05Clean))

MN14_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 10 & MN_UMAP$UMAP_1 < 17 & MN_UMAP$UMAP_2 > -10  & MN_UMAP$UMAP_2 < 0  & ! row.names(MN_UMAP) %in% row.names(MN09_Extras)| MN_UMAP$UMAP_1 > 15 & MN_UMAP$UMAP_1 < 18 & MN_UMAP$UMAP_2 > -10  & MN_UMAP$UMAP_2 < -8 | row.names(MN_UMAP) %in% row.names(MN14Clean))

MN15_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 14 &   MN_UMAP$UMAP_2 < -21 | row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 20 &   MN_UMAP$UMAP_2 < -12| row.names(MN_UMAP) %in% row.names(MN15Clean))

MN16_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -20  & MN_UMAP$UMAP_1 < -13 &   MN_UMAP$UMAP_2 > -5 &   MN_UMAP$UMAP_2 < 5 | row.names(MN_UMAP) %in% row.names(MN16Clean))

MN01_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 < -20 |  row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 < -18 & MN_UMAP$UMAP_2 < -3 & MN_UMAP$UMAP_2 > -10 & ! row.names(MN_UMAP) %in% row.names(MN16_Extras) | row.names(MN_UMAP) %in% row.names(MN01Clean))

MN12_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -15 & MN_UMAP$UMAP_1 < -7 & MN_UMAP$UMAP_2 > -6 & ! row.names(MN_UMAP) %in% c(row.names(MN02_Extras), row.names(MN07_Extras), row.names(MN16_Extras)) | row.names(MN_UMAP) %in% row.names(MN12Clean))

MN17_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 10  &     MN_UMAP$UMAP_2 < -12 & ! row.names(MN_UMAP) %in% c(row.names(MN15_Extras), row.names(MN06_Extras))| row.names(MN_UMAP) %in% row.names(MN17Clean))

MN18_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -10  & MN_UMAP$UMAP_1 < 2 &   MN_UMAP$UMAP_2 > -18 &   MN_UMAP$UMAP_2 < -9 & ! row.names(MN_UMAP) %in% c(row.names(MN05_Extras), row.names(MN13_Extras))| row.names(MN_UMAP) %in% row.names(MN18Clean))

MN10_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 0 & MN_UMAP$UMAP_1 < 7 & MN_UMAP$UMAP_2 > -16  & MN_UMAP$UMAP_2 < -9 & ! row.names(MN_UMAP) %in% row.names(MN18_Extras) | row.names(MN_UMAP) %in% row.names(MN10Clean))

MN19_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 16  & MN_UMAP$UMAP_1 < 24 &   MN_UMAP$UMAP_2 > -1 &   MN_UMAP$UMAP_2 < 6 & ! row.names(MN_UMAP) %in% row.names(MN05_Extras)| row.names(MN_UMAP) %in% row.names(MN26Clean))

MN20_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 15  & MN_UMAP$UMAP_1 < 22 &   MN_UMAP$UMAP_2 > -11 &   MN_UMAP$UMAP_2 < 0 & ! row.names(MN_UMAP) %in% c(row.names(MN06_Extras), row.names(MN14_Extras), row.names(MN19_Extras))| row.names(MN_UMAP) %in% row.names(MN20Clean))

MN21_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 0  & MN_UMAP$UMAP_1 < 10 & MN_UMAP$UMAP_2 < -18 & ! row.names(MN_UMAP) %in% c(row.names(MN05_Extras), row.names(MN13_Extras))| row.names(MN_UMAP) %in% row.names(MN21Clean))

MN22_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > 8 & MN_UMAP$UMAP_1 < 22  & MN_UMAP$UMAP_2 > -1 & MN_UMAP$UMAP_2 < 10 & ! row.names(MN_UMAP) %in% c(row.names(MN19_Extras), row.names(MN03_Extras))| row.names(MN_UMAP) %in% c(row.names(MN22Clean), row.names(MN22_Pt2)))

MN23_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) & MN_UMAP$UMAP_1 > -4 & MN_UMAP$UMAP_1 < 5 & MN_UMAP$UMAP_2 > -5 & MN_UMAP$UMAP_2 < 4 & ! row.names(MN_UMAP) %in% c(row.names(MN03_Extras), row.names(MN11_Extras))| row.names(MN_UMAP) %in% row.names(MN23Clean))

MN24_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) &  MN_UMAP$UMAP_1 < -11 & MN_UMAP$UMAP_2 > -17 & MN_UMAP$UMAP_2 < -10 & ! row.names(MN_UMAP) %in% c(row.names(MN05_Extras), row.names(MN01_Extras))| row.names(MN_UMAP) %in% row.names(MN24Clean))

MN25_Extras = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_REST) &  MN_UMAP$UMAP_1 > -19  & MN_UMAP$UMAP_1 < -10 & MN_UMAP$UMAP_2 > -10 & MN_UMAP$UMAP_2 < -4 & ! row.names(MN_UMAP) %in% c(row.names(MN05Clean), row.names(MN07_Extras), row.names(MN01_Extras), row.names(MN16_Extras), row.names(MN12_Extras))| row.names(MN_UMAP) %in% row.names(MN25Clean))

#CheckInput = MN_Rest2
#CheckUMAP(MN_Seu)
#############


MN_Assigns_V1 = GenerateMetaData_Barcodes(list("MN_01" = MN01_Extras, "MN_02" = MN02_Extras,"MN_03" = MN03_Extras, "MN_04" = MN04_Extras,  "MN_05" = MN05_Extras, "MN_06" = MN06_Extras, "MN_07" = MN07_Extras, "MN_08" = MN08_Extras, "MN_09" = MN09_Extras, "MN_10" = MN10_Extras, "MN_11" = MN11_Extras, "MN_12" = MN12_Extras,"MN_13" = MN13_Extras, "MN_14" = MN14_Extras,  "MN_15" = MN15_Extras, "MN_16" = MN16_Extras, "MN_17" = MN17_Extras, "MN_18" = MN18_Extras, "MN_19" = MN19_Extras,"MN_20" = MN20_Extras, "MN_21" = MN21_Extras, "MN_22" = MN22_Extras,"MN_23" = MN23_Extras, "MN_24" = MN24_Extras, "MN_25" = MN25_Extras))


MN_Rest2 = subset(MN_Seu, cells = MN_Assigns_V1$Barcodes, invert=T)

MN01_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_Rest2) &  MN_UMAP$UMAP_1 < -10 & MN_UMAP$UMAP_2 > 10 | row.names(MN_UMAP) %in% colnames(MN_Rest2) &  MN_UMAP$UMAP_1 > -8 &  MN_UMAP$UMAP_1 < -1 & MN_UMAP$UMAP_2 > 3)
MN05_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_Rest2)&  MN_UMAP$UMAP_1 < 3 & MN_UMAP$UMAP_2 < -20)
MN08_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_Rest2) &  MN_UMAP$UMAP_1 > -10 &  MN_UMAP$UMAP_1 < 5 & MN_UMAP$UMAP_2 > 8 & ! row.names(MN_UMAP) %in% row.names(MN01_Pt2))
MN11_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_Rest2) &  MN_UMAP$UMAP_1 > -10 &  MN_UMAP$UMAP_1 < 10 & MN_UMAP$UMAP_2 > -10 & MN_UMAP$UMAP_2 < 0)
MN12_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_Rest2) &  MN_UMAP$UMAP_1 < -12 & MN_UMAP$UMAP_2 > 0 &  ! row.names(MN_UMAP) %in% row.names(MN01_Pt2))
MN17_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_Rest2) &  MN_UMAP$UMAP_1 > 10 & MN_UMAP$UMAP_2 < -10)
MN23_Pt2 = subset(MN_UMAP, row.names(MN_UMAP) %in% colnames(MN_Rest2) &  MN_UMAP$UMAP_1 > -10 &  MN_UMAP$UMAP_1 < 5 & MN_UMAP$UMAP_2 > -2 & MN_UMAP$UMAP_2 < 10 & ! row.names(MN_UMAP) %in% c(row.names(MN01_Pt2), row.names(MN08_Pt2), row.names(MN11_Pt2)))

MN_Assigns = GenerateMetaData(list("MN_01" = MN01_Extras, "MN_02" = MN02_Extras,"MN_03" = MN03_Extras, "MN_04" = MN04_Extras,  "MN_05" = MN05_Extras, "MN_06" = MN06_Extras, "MN_07" = MN07_Extras, "MN_08" = MN08_Extras, "MN_09" = MN09_Extras, "MN_10" = MN10_Extras, "MN_11" = MN11_Extras, "MN_12" = MN12_Extras,"MN_13" = MN13_Extras, "MN_14" = MN14_Extras,  "MN_15" = MN15_Extras, "MN_16" = MN16_Extras, "MN_17" = MN17_Extras, "MN_18" = MN18_Extras, "MN_19" = MN19_Extras,"MN_20" = MN20_Extras, "MN_21" = MN21_Extras, "MN_22" = MN22_Extras,"MN_23" = MN23_Extras, "MN_24" = MN24_Extras, "MN_25" = MN25_Extras, "MN_01" = MN01_Pt2, "MN_05" = MN05_Pt2, "MN_08" = MN08_Pt2, "MN_11" = MN11_Pt2, "MN_17" = MN17_Pt2, "MN_12" = MN12_Pt2, "MN_23" = MN23_Pt2))

#MN_Assigns$Dups = duplicated(MN_Assigns$Barcodes) | duplicated(MN_Assigns$Barcodes, fromLast=T)
#MN_Assigns_T = subset(MN_Assigns, MN_Assigns$Dups == T)
#unique(MN_Assigns_T$Pop)


#CheckInput = MN12_Pt2
#CheckUMAP(MN_Seu)

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns", "LH_Seu", "LH_Assigns", "SCN_Seu", "SCN_Assigns", "DMH_Seu", "DMH_Assigns", "PO_Seu", "PO_Assigns", "AH_Seu", "AH_Assigns", "MN_Seu", "MN_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

UNASSIGNED

GetUNASSIGNEDBarcs = subset(MainAssign, MainAssign$Nuclei == "NA")
UNASSIGNED_Seu = subset(EdKaZhouHypoNeurons, cells = GetUNASSIGNEDBarcs$Barcs)  
DefaultAssay(UNASSIGNED_Seu) = "integrated"
UNASSIGNED_Seu = FindVariableFeatures(UNASSIGNED_Seu)
UNASSIGNED_Seu = ScaleData(UNASSIGNED_Seu, vars.to.regress = c("nFeature_RNA", "percent.mt"), verbose = F)

DefaultAssay(UNASSIGNED_Seu) = "integrated"
UNASSIGNED_Seu = RunPCA(UNASSIGNED_Seu, npcs = 20)
UNASSIGNED_Seu <- RunUMAP(UNASSIGNED_Seu, dims = 1:20, spread= 5)
DefaultAssay(UNASSIGNED_Seu) = "RNA"

set.dim = 20
set.res = 1
set.kparam = c(50, 100)

#ClusterFunc_All_RNA(UNASSIGNED_Seu)

#CheckInput = UNASSIGNED01Clean
#CheckUMAP(UNASSIGNED_Seu)

DefaultAssay(UNASSIGNED_Seu) = "integrated"
UNASSIGNED_Seu <- FindNeighbors(UNASSIGNED_Seu, k.param=50, dims=1:20)
UNASSIGNED_Seu <- FindClusters(UNASSIGNED_Seu, resolution = 1)
DefaultAssay(UNASSIGNED_Seu) = "RNA"

UNASSIGNED_UMAP = as.data.frame(UNASSIGNED_Seu@reductions$umap@cell.embeddings)
UNASSIGNED01 = subset(UNASSIGNED_Seu, idents = c(0))
UNASSIGNED01Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED01)  & UNASSIGNED_UMAP$UMAP_1 > -5 & UNASSIGNED_UMAP$UMAP_1 < 14.7 & UNASSIGNED_UMAP$UMAP_2 > -20 & UNASSIGNED_UMAP$UMAP_2 < 2 )

UNASSIGNED02 = subset(UNASSIGNED_Seu, idents = c(1))
UNASSIGNED02Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED02) & UNASSIGNED_UMAP$UMAP_1 < -10 & UNASSIGNED_UMAP$UMAP_2 > 3)

UNASSIGNED03 = subset(UNASSIGNED_Seu, idents = 2)
UNASSIGNED03Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED03) & UNASSIGNED_UMAP$UMAP_1 > -13 & UNASSIGNED_UMAP$UMAP_1 < 2 & UNASSIGNED_UMAP$UMAP_2 > -3 & UNASSIGNED_UMAP$UMAP_2 < 11)

UNASSIGNED04 = subset(UNASSIGNED_Seu, idents = c(3))
UNASSIGNED04Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED04) & UNASSIGNED_UMAP$UMAP_1 > -16 & UNASSIGNED_UMAP$UMAP_1 < -1 & UNASSIGNED_UMAP$UMAP_2 > -8 & UNASSIGNED_UMAP$UMAP_2 < 4)

UNASSIGNED05 = subset(UNASSIGNED_Seu, idents = 4)
UNASSIGNED05Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED05) & UNASSIGNED_UMAP$UMAP_1 > 3 & UNASSIGNED_UMAP$UMAP_1 < 15 & UNASSIGNED_UMAP$UMAP_2 > -2 & UNASSIGNED_UMAP$UMAP_2 < 11)

UNASSIGNED06 = subset(UNASSIGNED_Seu, idents = 5)
UNASSIGNED06Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED06) &  UNASSIGNED_UMAP$UMAP_2 < -10)

UNASSIGNED07 = subset(UNASSIGNED_Seu, idents = 6)
UNASSIGNED07Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED07) &  UNASSIGNED_UMAP$UMAP_1 > 5 & UNASSIGNED_UMAP$UMAP_1 < 16 & UNASSIGNED_UMAP$UMAP_2 > 9)

UNASSIGNED08 = subset(UNASSIGNED_Seu, idents = 7)
UNASSIGNED08Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED08) & UNASSIGNED_UMAP$UMAP_1 > 21.5 & UNASSIGNED_UMAP$UMAP_2 > -10 & UNASSIGNED_UMAP$UMAP_2 < 2)

UNASSIGNED09 = subset(UNASSIGNED_Seu, idents = c(8))
UNASSIGNED09Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED09) & UNASSIGNED_UMAP$UMAP_1 < -5 & UNASSIGNED_UMAP$UMAP_2 > 0 & UNASSIGNED_UMAP$UMAP_2 < 14)

UNASSIGNED10 = subset(UNASSIGNED_Seu, idents = c(9))
UNASSIGNED10Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED10)  & UNASSIGNED_UMAP$UMAP_2 > -23 & UNASSIGNED_UMAP$UMAP_1 < -12)

UNASSIGNED11 = subset(UNASSIGNED_Seu, idents = c(10,20))
UNASSIGNED11Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED11) & UNASSIGNED_UMAP$UMAP_1 > -11 & UNASSIGNED_UMAP$UMAP_1 < 1 & UNASSIGNED_UMAP$UMAP_2 > -20 & UNASSIGNED_UMAP$UMAP_2 < -5)

UNASSIGNED12 = subset(UNASSIGNED_Seu, idents = c(11))
UNASSIGNED12Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED12) & UNASSIGNED_UMAP$UMAP_1 > 15 & UNASSIGNED_UMAP$UMAP_2 > 0)

UNASSIGNED13 = subset(UNASSIGNED_Seu, idents = c(12, 18))
UNASSIGNED13Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED13) & UNASSIGNED_UMAP$UMAP_2 > 13)

UNASSIGNED14 = subset(UNASSIGNED_Seu, idents = c(13))
UNASSIGNED14Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED14) &  UNASSIGNED_UMAP$UMAP_2 < -20)

UNASSIGNED15 = subset(UNASSIGNED_Seu, idents = c(14))
UNASSIGNED15Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED15) & UNASSIGNED_UMAP$UMAP_1 > 12 & UNASSIGNED_UMAP$UMAP_1 < 20 & UNASSIGNED_UMAP$UMAP_2 > -5 & UNASSIGNED_UMAP$UMAP_2 < 5)

UNASSIGNED16 = subset(UNASSIGNED_Seu, idents = c(15))
UNASSIGNED16Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED16) & UNASSIGNED_UMAP$UMAP_1 > 16 & UNASSIGNED_UMAP$UMAP_2 > 10)
UNASSIGNED17Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED16) &  UNASSIGNED_UMAP$UMAP_2 < 10 & UNASSIGNED_UMAP$UMAP_1 < 20)

UNASSIGNED18 = subset(UNASSIGNED_Seu, idents = c(16))
UNASSIGNED18Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED18) &  UNASSIGNED_UMAP$UMAP_2 > 5)

UNASSIGNED19 = subset(UNASSIGNED_Seu, idents = c(17))

UNASSIGNED20 = subset(UNASSIGNED_Seu, idents = c(19))
UNASSIGNED20Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED20) & UNASSIGNED_UMAP$UMAP_2 > -20)

UNASSIGNED21 = subset(UNASSIGNED_Seu, idents = c(20))
UNASSIGNED21Clean = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED21) & UNASSIGNED_UMAP$UMAP_2 > 10 & UNASSIGNED_UMAP$UMAP_1 < 5)

UNASSIGNED22 = subset(UNASSIGNED_Seu, idents = c(21))

#CheckInput = UNASSIGNED11Clean
#CheckUMAP(UNASSIGNED_Seu)



UNASSIGNED_REST = subset(UNASSIGNED_Seu, cells = c(row.names(UNASSIGNED01Clean), row.names(UNASSIGNED02Clean), row.names(UNASSIGNED03Clean), row.names(UNASSIGNED04Clean),  row.names(UNASSIGNED05Clean), row.names(UNASSIGNED06Clean), row.names(UNASSIGNED07Clean), row.names(UNASSIGNED08Clean), row.names(UNASSIGNED09Clean), row.names(UNASSIGNED10Clean), row.names(UNASSIGNED11Clean), row.names(UNASSIGNED12Clean), row.names(UNASSIGNED13Clean), row.names(UNASSIGNED14Clean), row.names(UNASSIGNED15Clean), row.names(UNASSIGNED16Clean), row.names(UNASSIGNED17Clean), row.names(UNASSIGNED18Clean), colnames(UNASSIGNED19), row.names(UNASSIGNED20Clean), row.names(UNASSIGNED21Clean), colnames(UNASSIGNED22)), invert=T)

#CheckInput = UNASSIGNED10_Extras
#CheckUMAP(UNASSIGNED_Seu)


UNASSIGNED02_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 < -15 & UNASSIGNED_UMAP$UMAP_2 > 0 | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED02Clean)) 

UNASSIGNED03_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST)& UNASSIGNED_UMAP$UMAP_1 > -11 & UNASSIGNED_UMAP$UMAP_1 < 2 & UNASSIGNED_UMAP$UMAP_2 > -3 & UNASSIGNED_UMAP$UMAP_2 < 5 | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED03Clean))

UNASSIGNED06_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > 10 &  UNASSIGNED_UMAP$UMAP_2 < -13  | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED06Clean))

UNASSIGNED07_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST)  &  UNASSIGNED_UMAP$UMAP_2 > 10 & UNASSIGNED_UMAP$UMAP_1 > 5 & UNASSIGNED_UMAP$UMAP_1 < 16 | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED07Clean))

UNASSIGNED08_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) &  UNASSIGNED_UMAP$UMAP_1 > 20 & UNASSIGNED_UMAP$UMAP_2 > -10 & UNASSIGNED_UMAP$UMAP_2 < 0.5 |  UNASSIGNED_UMAP$UMAP_1 > 22 & UNASSIGNED_UMAP$UMAP_2 > -10 & UNASSIGNED_UMAP$UMAP_2 < 1   | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED08Clean))

UNASSIGNED10_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_2 > -23 & UNASSIGNED_UMAP$UMAP_2 < -14 & UNASSIGNED_UMAP$UMAP_1 < -12 | row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_2 > -15 & UNASSIGNED_UMAP$UMAP_2 < -10 & UNASSIGNED_UMAP$UMAP_1 < -12 & UNASSIGNED_UMAP$UMAP_1 > -20 | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED10Clean))

UNASSIGNED11_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > -13 & UNASSIGNED_UMAP$UMAP_1 < 0 & UNASSIGNED_UMAP$UMAP_2 > -20 & UNASSIGNED_UMAP$UMAP_2 < -8 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED10_Extras) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED11Clean)) 

UNASSIGNED12_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > 18 &  UNASSIGNED_UMAP$UMAP_2 > 0 &  UNASSIGNED_UMAP$UMAP_2 < 12 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED08_Extras)| row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED12Clean)) 

UNASSIGNED14_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 < -8  &  UNASSIGNED_UMAP$UMAP_2 < -20 & ! row.names(UNASSIGNED_UMAP) %in% c(row.names(UNASSIGNED10_Extras), row.names(UNASSIGNED11_Extras)) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED14Clean)) 

UNASSIGNED15_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > 12 & UNASSIGNED_UMAP$UMAP_1 < 20 & UNASSIGNED_UMAP$UMAP_2 > -5 & UNASSIGNED_UMAP$UMAP_2 < 4 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED12_Extras) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED15Clean))

UNASSIGNED16_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_2 > 12 & UNASSIGNED_UMAP$UMAP_1 > 12 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED07_Extras) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED16Clean))

UNASSIGNED17_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST)  &UNASSIGNED_UMAP$UMAP_2 > -10 & UNASSIGNED_UMAP$UMAP_2 < -6 & UNASSIGNED_UMAP$UMAP_1 > 13 & UNASSIGNED_UMAP$UMAP_1 < 20  | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED17Clean))

UNASSIGNED18_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > -6 & UNASSIGNED_UMAP$UMAP_1 < 3 & UNASSIGNED_UMAP$UMAP_2 < 12 & UNASSIGNED_UMAP$UMAP_2 > 0 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED03_Extras)  | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED18Clean))

UNASSIGNED19_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > -4 & UNASSIGNED_UMAP$UMAP_1 < 7  & UNASSIGNED_UMAP$UMAP_2 < -19  | row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED19))

UNASSIGNED20_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 < -17 & UNASSIGNED_UMAP$UMAP_2 > -16 & UNASSIGNED_UMAP$UMAP_2 < 5 & ! row.names(UNASSIGNED_UMAP) %in% c(row.names(UNASSIGNED10_Extras), row.names(UNASSIGNED02_Extras)) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED20Clean))

UNASSIGNED04_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_2 > -9  & UNASSIGNED_UMAP$UMAP_2 < 4  &  UNASSIGNED_UMAP$UMAP_1 > -18 & UNASSIGNED_UMAP$UMAP_1 < -3 & ! row.names(UNASSIGNED_UMAP) %in% c(row.names(UNASSIGNED03_Extras), row.names(UNASSIGNED11_Extras)) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED04Clean))

UNASSIGNED09_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 < -6 & UNASSIGNED_UMAP$UMAP_2 < 14 & UNASSIGNED_UMAP$UMAP_2 > 3 & ! row.names(UNASSIGNED_UMAP) %in% c(row.names(UNASSIGNED02_Extras), row.names(UNASSIGNED03_Extras), row.names(UNASSIGNED04_Extras)) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED09Clean))

UNASSIGNED13_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > -15 & UNASSIGNED_UMAP$UMAP_1 < -1 & UNASSIGNED_UMAP$UMAP_2 > 12 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED09_Extras) | UNASSIGNED_UMAP$UMAP_1 > -1 & UNASSIGNED_UMAP$UMAP_1 < 5 & UNASSIGNED_UMAP$UMAP_2 > 18 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED09_Extras) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED13Clean))

UNASSIGNED21_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > -5 & UNASSIGNED_UMAP$UMAP_1 < 5 & UNASSIGNED_UMAP$UMAP_2 > 12 & UNASSIGNED_UMAP$UMAP_2 < 20  & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED13_Extras) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED21Clean))

UNASSIGNED05_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) &  UNASSIGNED_UMAP$UMAP_2 > -1 &  UNASSIGNED_UMAP$UMAP_2  < 11 &  UNASSIGNED_UMAP$UMAP_1 > 3 &  UNASSIGNED_UMAP$UMAP_1  < 15 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED15_Extras) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED05Clean))

UNASSIGNED01_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 > -3 & UNASSIGNED_UMAP$UMAP_1 < 17 & UNASSIGNED_UMAP$UMAP_2 > -23 & UNASSIGNED_UMAP$UMAP_2 < 4 & ! row.names(UNASSIGNED_UMAP) %in% c(row.names(UNASSIGNED19_Extras), row.names(UNASSIGNED17_Extras), row.names(UNASSIGNED15_Extras), row.names(UNASSIGNED11_Extras), row.names(UNASSIGNED05_Extras), row.names(UNASSIGNED06_Extras), row.names(UNASSIGNED03_Extras), row.names(UNASSIGNED18_Extras)) | row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED01Clean))

UNASSIGNED22_Extras = subset(UNASSIGNED_UMAP, row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED_REST) & UNASSIGNED_UMAP$UMAP_1 < -5 & UNASSIGNED_UMAP$UMAP_1 > -10 &   UNASSIGNED_UMAP$UMAP_2 > 0 &   UNASSIGNED_UMAP$UMAP_2 < -10 & ! row.names(UNASSIGNED_UMAP) %in% row.names(UNASSIGNED04_Extras)  | row.names(UNASSIGNED_UMAP) %in% colnames(UNASSIGNED22))

#CheckInput = UNASSIGNED10_Extras
#CheckUMAP(UNASSIGNED_Seu)




UNASSIGNED_Assigns = GenerateMetaData_Barcodes(list("UNASSIGNED_01" = UNASSIGNED01_Extras, "UNASSIGNED_02" = UNASSIGNED02_Extras,"UNASSIGNED_03" = UNASSIGNED03_Extras, "UNASSIGNED_04" = UNASSIGNED04_Extras,  "UNASSIGNED_05" = UNASSIGNED05_Extras, "UNASSIGNED_06" = UNASSIGNED06_Extras, "UNASSIGNED_07" = UNASSIGNED07_Extras, "UNASSIGNED_08" = UNASSIGNED08_Extras, "UNASSIGNED_09" = UNASSIGNED09_Extras, "UNASSIGNED_10" = UNASSIGNED10_Extras, "UNASSIGNED_11" = UNASSIGNED11_Extras, "UNASSIGNED_12" = UNASSIGNED12_Extras,"UNASSIGNED_13" = UNASSIGNED13_Extras, "UNASSIGNED_14" = UNASSIGNED14_Extras,  "UNASSIGNED_15" = UNASSIGNED15_Extras, "UNASSIGNED_16" = UNASSIGNED16_Extras, "UNASSIGNED_17" = UNASSIGNED17_Extras, "UNASSIGNED_18" = UNASSIGNED18_Extras, "UNASSIGNED_19" = UNASSIGNED19_Extras,"UNASSIGNED_20" = UNASSIGNED20_Extras, "UNASSIGNED_21" = UNASSIGNED21_Extras, "UNASSIGNED_22" = UNASSIGNED22_Extras))

UNASSIGNED_01_Rest = subset(UNASSIGNED_Seu, cells = UNASSIGNED_Assigns$Barcodes, invert=T)

UNASSIGNED_Assigns = GenerateMetaData(list("UNASSIGNED_01" = UNASSIGNED01_Extras, "UNASSIGNED_02" = UNASSIGNED02_Extras,"UNASSIGNED_03" = UNASSIGNED03_Extras, "UNASSIGNED_04" = UNASSIGNED04_Extras,  "UNASSIGNED_05" = UNASSIGNED05_Extras, "UNASSIGNED_06" = UNASSIGNED06_Extras, "UNASSIGNED_07" = UNASSIGNED07_Extras, "UNASSIGNED_08" = UNASSIGNED08_Extras, "UNASSIGNED_09" = UNASSIGNED09_Extras, "UNASSIGNED_10" = UNASSIGNED10_Extras, "UNASSIGNED_11" = UNASSIGNED11_Extras, "UNASSIGNED_12" = UNASSIGNED12_Extras,"UNASSIGNED_13" = UNASSIGNED13_Extras, "UNASSIGNED_14" = UNASSIGNED14_Extras,  "UNASSIGNED_15" = UNASSIGNED15_Extras, "UNASSIGNED_16" = UNASSIGNED16_Extras, "UNASSIGNED_17" = UNASSIGNED17_Extras, "UNASSIGNED_18" = UNASSIGNED18_Extras, "UNASSIGNED_19" = UNASSIGNED19_Extras,"UNASSIGNED_20" = UNASSIGNED20_Extras, "UNASSIGNED_21" = UNASSIGNED21_Extras, "UNASSIGNED_22" = UNASSIGNED22_Extras)) #, "UNASSIGNED_01" = UNASSIGNED_01_Rest))

UNASSIGNED_Assigns$Dups = duplicated(UNASSIGNED_Assigns$Barcodes) | duplicated(UNASSIGNED_Assigns$Barcodes, fromLast=T)
UNASSIGNED_Assigns_T = subset(UNASSIGNED_Assigns, UNASSIGNED_Assigns$Dups == T)
unique(UNASSIGNED_Assigns_T$Pop)


#CheckInput = UNASSIGNED01_Extras
#CheckUMAP(UNASSIGNED_Seu)

save(list=c("GeneLists", "CheckUMAP", "ClusterFunc_All_RNA", "GenerateMetaData", "GenerateMetaData_Barcodes", "Microglia_Seu", "Microglia_Assigns", "VLMC_Seu", "VLMC_Assigns", "Pericytes_Seu", "Pericytes_Assigns", "SMC_Seu", "SMC_Assigns", "RG_Assigns", "RG_Seu","NE_Assigns", "NE_Seu", "IP_Assigns", "IP_Seu", "Div_Assigns", "Div_Seu", "Astro_Assigns", "Astro_Seu", "Endo_Assigns", "Endo_Seu", "Tany_Assigns", "Tany_Seu", "Ependy_Assigns", "Ependy_Seu", "Olig_Seu", "Olig_Assigns", "ARC_Seu", "ARC_Assigns", "PVH_Seu", "PVH_Assigns", "TM_Seu", "TM_Assigns", "VMH_Seu", "VMH_Assigns", "SMN_Seu", "SMN_Assigns", "LH_Seu", "LH_Assigns", "SCN_Seu", "SCN_Assigns", "DMH_Seu", "DMH_Assigns", "PO_Seu", "PO_Assigns", "AH_Seu", "AH_Assigns", "MN_Seu", "MN_Assigns", "UNASSIGNED_Seu", "UNASSIGNED_Assigns"), file = "~/Hypothalamus_Subclustering_APR2023.RData")

-

Output subclustering

SeuList = list("ARC" = ARC_Seu, "PVH" = PVH_Seu, "VMH" = VMH_Seu,"SMN" = SMN_Seu, "LH" = LH_Seu, "TM" = TM_Seu, "SCN" = SCN_Seu, "DMH" = DMH_Seu, "PO" = PO_Seu, "AH" = AH_Seu, "MN" = MN_Seu, "UNASSIGNED" = UNASSIGNED_Seu, "Microglia" = Microglia_Seu, "VLMC" = VLMC_Seu, "Pericytes" = Pericytes_Seu, "SMC" = SMC_Seu, "Radial Glia" = RG_Seu, "Neurepithelial" = NE_Seu, "Dividing Progenitors" = Div_Seu, "Intermediate Progenitors" = IP_Seu, "Astrocytes" = Astro_Seu, "Oligodendrocytes" = Olig_Seu, "Ependymocytes" = Ependy_Seu, "Tanycytes" = Tany_Seu, "Endothelial" = Endo_Seu)
AssignsList = list("ARC" = ARC_Assigns, "PVH" = PVH_Assigns, "VMH" = VMH_Assigns,"SMN" = SMN_Assigns, "LH" = LH_Assigns, "TM" = TM_Assigns, "SCN" = SCN_Assigns, "DMH" = DMH_Assigns, "PO" = PO_Assigns, "AH" = AH_Assigns, "MN" = MN_Assigns, "UNASSIGNED" = UNASSIGNED_Assigns, "Microglia" = Microglia_Assigns, "VLMC" = VLMC_Assigns, "Pericytes" = Pericytes_Assigns, "SMC" = SMC_Assigns, "Radial Glia" = RG_Assigns, "Neurepithelial" = NE_Assigns, "Dividing Progenitors" = Div_Assigns, "Intermediate Progenitors" = IP_Assigns, "Astrocytes" = Astro_Assigns, "Oligodendrocytes" = Olig_Assigns, "Ependymocytes" = Ependy_Assigns, "Tanycytes" = Tany_Assigns, "Endothelial" = Endo_Assigns)

#Check all assigns are equal to number of cells
for(x in names(AssignsList)){
cat(paste(x, dim(AssignsList[[x]])[1] - dim(SeuList[[x]])[2], "\n"))
}

#Count Clusters
NCells = 0
AllAssigns = as.data.frame(matrix(ncol=1, nrow=0))
colnames(AllAssigns) = "Pop"
for(x in names(AssignsList)){
  NCells = NCells+length(unique(AssignsList[[x]]$Pop) )
  AllAssigns = rbind(AllAssigns, AssignsList[[x]])
}


#Generate a list of new assignments - includes Class and Subclass annotations - used in Glowworm Mapping
Hypo_Assignments = as.data.frame(matrix(ncol=2, nrow=0))
colnames(Hypo_Assignments) = c("Class", "Subclass")
for(x in names(AssignsList)){
PullAssigns = AssignsList[[x]]
colnames(PullAssigns) = "Subclass"
PullAssigns$Class = ifelse(x %in% c("ARC", "PVH", "VMH", "SMN", "LH", "TM", "SCN", "DMH", "PO", "AH", "MN", "UNASSIGNED"), "Neurons", x)
#PullAssigns$Subclass = ifelse(x %in% "UNASSIGNED", "Unassigned", PullAssigns$Subclass)
PullAssigns$Class = ifelse(PullAssigns$Subclass %in% grep(pattern = "^RG",x = PullAssigns$Subclass, value = T), "Radial Glia", PullAssigns$Class)
Hypo_Assignments = rbind(Hypo_Assignments, PullAssigns)
}

Hypo_Assignments$Subclass = gsub("UNASSIGNED", "Ukn", Hypo_Assignments$Subclass)

write.csv(Hypo_Assignments, "~/Library/CloudStorage/Box-Box/HG2553 Main Folder/Hypo_Assignments_1MAY23.csv")



#Output all files - single page on one pds
OutPlot = list()
for(x in names(SeuList)){
GetSeu =  SeuList[[x]] 
GetMeta =  AssignsList[[x]] 
GetSeu = AddMetaData(GetSeu, GetMeta, "Assigns")  
Idents(GetSeu) = "Assigns"
OutPlot[[x]] = DimPlot(GetSeu, label=T)+NoLegend()+ggtitle(x)
#Idents(GetSeu) = "SampleAdult"

#OutPlot[[paste(x, "samples")]] = DimPlot(GetSeu, label=T)+NoLegend()+ggtitle(x)
}

pdf("CluseteredPlots_Hypothalamus_1MAY23.pdf", width = 8, height = 8)
print(OutPlot)
dev.off()
#CluseteredPlots_Hypothalamus_5APR23.pdf

#Output plots - all on one page
OutPlot = list()
for(x in c("Radial Glia", "Neurepithelial" ,"Dividing Progenitors", "Intermediate Progenitors",  "Astrocytes", "Oligodendrocytes",  "Microglia", "VLMC", "Pericytes" ,"SMC",  "TM", "ARC", "PVH", "VMH",  "LH", "DMH", "SCN", "PO", "AH", "SMN", "MN", "UNASSIGNED")){
Title = ifelse(x %in% c("ARC", "PVH", "VMH", "SMN", "LH", "TM", "SCN", "DMH", "PO", "AH", "MN"), paste("Neurons:", x), x)
Title = ifelse(x %in% "UNASSIGNED", "Neurons: Unassigned", Title)


GetSeu =  SeuList[[x]] 
GetMeta =  AssignsList[[x]] 
GetSeu = AddMetaData(GetSeu, GetMeta, "Assigns")  
Idents(GetSeu) = "Assigns"
OutPlot[[x]] = DimPlot(GetSeu, label=F)+NoLegend()+ggtitle(Title) + theme(axis.line = element_line(color = "lightgrey"), axis.ticks = element_blank(), axis.title = element_blank(), axis.text = element_blank(), plot.title = element_text(size = 10))
}

Patch = wrap_plots(OutPlot) +
   plot_layout(design = "##ABCD
                         ##EFGH
                         IJKLMN
                         OPQRST
                         UV####")
pdf("Fetal_Figure_28APR22.pdf", width = 12, height = 12)
print(Patch)
dev.off()



#3D UMAP - main annotations 
CellPopColors = c("Neurepithelial"= "#aad576", "Dividing Progenitors"= "#78a02d", "Radial Glia" = "#538d22", "Intermediate Progenitors" = "#245501",   "Oligodendrocytes"= "#59a5d8",    "Neurons"= "#7251b5", "Astrocytes" = "#ff7aa2", "Ependymocytes" = "#ff9ebb", "Tanycytes" = "#ffc2d4", "Microglia" = "#d64050",   "Pericytes" = "#fecf29" , "SMC" ="#fee08b",  "VLMC" = "#faad60",   "Endothelial" = "#f36c44",  "Blood" ="#9e1b44") #19

CleanedClusters_Figure1 = read.csv("~/Dropbox/Columbia/Brian Hypothalamus/ScienceAdvances_2023/Figure 1/CleanedClusters_Figure1_19DEC22.csv", row.names =1)
CleanedClusters_Figure1 = merge(CleanedClusters_Figure1, Hypo_Assignments, by.x = "Row.names", by.y = 0)
CleanedClusters_Figure1 = subset(CleanedClusters_Figure1, CleanedClusters_Figure1$Row.names %in% colnames(AllHypo))


p = plot_ly(CleanedClusters_Figure1, x = ~UMAP_3, y = ~UMAP_2, z = ~UMAP_1, size = 1, color = ~Class, colors = CellPopColors, type="scatter3d")
htmlwidgets::saveWidget(p, "HYPOTHALAMUS_AllAssignments_GLOWWORM.html")


Hannahglover/Glowworm documentation built on Jan. 16, 2024, 11:47 p.m.