zoukankan      html  css  js  c++  java
  • R 动态定义变量名 assign

    rm(list=ls())
    
    library(GSVA)
    library(GSEABase)
    library(GSVAdata)
    library(msigdbr)
    library(org.Hs.eg.db)
    library(Seurat)
    library(Rtsne)
    setwd("/heartdata8t_A/zhangpeng/Final.results/Final_Project_III/GSVA")
    
    ### Merging the cannicalc2BroadSets
    data(c2BroadSets)
    canonicalC2BroadSets <- c2BroadSets[c(grep("^KEGG", names(c2BroadSets)),
                                          grep("^REACTOME", names(c2BroadSets)),
                                          grep("^BIOCARTA", names(c2BroadSets)))]
    ## Adding Hallmark genesets
    m_df = msigdbr(species = "Homo sapiens", category = "H")
    gset.all <- unique(m_df$gs_name)
    
    for(geneset_i in 1:length(gset.all)){
      names_geneset_i <- gset.all[geneset_i]
      entrez_gene_geneset_i <- as.character(unique(m_df$entrez_gene[which(m_df$gs_name == gset.all[geneset_i])]))
      HallMarks <- GeneSet(entrez_gene_geneset_i, geneIdType=EntrezIdentifier(),
                     collectionType=BroadCollection(category="c2"), setName=names_geneset_i)
      canonicalC2BroadSets <- GeneSetCollection(c(canonicalC2BroadSets, HallMarks))
    }
    
    ## Adding human-curated genesets (GEO/Cancer)
    load("GC.signature.Rdata")
    GC.signature <- as.character(mapIds(org.Hs.eg.db, GC.signature, 'ENTREZID', 'SYMBOL'))
    GC.signature <- GeneSet(GC.signature, geneIdType=EntrezIdentifier(),
                         collectionType=BroadCollection(category="c2"), setName="GC.signature")
    canonicalC2BroadSets <- GeneSetCollection(c(canonicalC2BroadSets, GC.signature))
    
    load("GC.signature.literature.Rdata")
    GC.signature.literature <- as.character(mapIds(org.Hs.eg.db, GC.signature.literature, 'ENTREZID', 'SYMBOL'))
    GC.signature.literature <- GeneSet(GC.signature.literature, geneIdType=EntrezIdentifier(),
                            collectionType=BroadCollection(category="c2"), setName="GC.signature.literature")
    canonicalC2BroadSets <- GeneSetCollection(c(canonicalC2BroadSets, GC.signature.literature))
    
    
    # Computing the GSVA score based the above curated datasets
    load("subset.epithelial.cells.gc.signature.Rdata")
    processed.data <- as.matrix(epithelial.cells.re.subset.GC.signature@assays$SCT@counts)
    
    rownames.processed.data <- rownames(processed.data)
    entrez.rownames.processed.data <- as.character(mapIds(org.Hs.eg.db, rownames.processed.data , 'ENTREZID', 'SYMBOL'))
    
    invalid.index <- which(is.na(entrez.rownames.processed.data))
    processed.data <- processed.data[-invalid.index,]
    rownames(processed.data) <- entrez.rownames.processed.data[-invalid.index]
    
    
    esmicro.processed <- gsva(processed.data, canonicalC2BroadSets, min.sz=5, max.sz=500,
                              mx.diff=TRUE, verbose=FALSE, parallel.sz=1, kcdf = "Poisson")
    ## Results
    # library(pheatmap)
    # esmicro.processed <- esmicro.processed[grep("KEGG",rownames(esmicro.processed)),]
    # pheatmap(esmicro.processed)
    
    save(esmicro.processed,file = "esmicro.processed.Rdata")
    tsne <- Rtsne(esmicro.processed,dims = 2)
    plot(tsne$Y)
    
    
    epi<-epithelial.cells.re@meta.data
    bb<-epi$SCT_snn_res.1[which(epi$SCT_snn_res.1 ==5)]  
    
    bb<-epi[which(epi[,12]==5),]
    cc<-epi[which(epi[,12]==30),]
    aa<-rbind(bb,cc)
    g1.index<-rownames(aa)
    pro<- esmicro.processed
    g1<-pro[ , which(colnames(pro) %in% g1.index )]
    g2<-pro[ , -which(colnames(pro) %in% g1.index )]
    
    
    heatmap(pro)
    
    
    
    
    
    
    
    pathway_name = rownames(g1)
    tm <- list('P-value' = c(), 'Pathway_name' = c())
    
    
    
    cell.types <- unique(Idents(epithelial.cells.re))
    
    
    library(pryr)
    #setClass("All_results", slots = list(C0_results = "data.frame"))
    #all_results <- new("All_results", C0_results = tm)
    
    cell.types
    
    #for(i in 1:length(cell.types)){
    #  print((as.numeric(cell.types[i])))
      #name = paste0("tm_",as.numeric(cell.types[i]))
      #eval(parse( name )   )<- list('P-value' = c(), 'Pathway_name' = c())  
      #append(all_ans,list(name = c()))
      
    #}
    
    for(j in cell.types){
      cc<-epi[which(epi[,12]==j),]
      index<-rownames(cc)
      g1<-pro[ , which(colnames(pro) %in% index )]
      pathway_name = rownames(g1)
      g2<-pro[ , -which(colnames(pro) %in% index )]
      tm <- list('P-value' = c(), 'Pathway_name' = c()) 
     ## t.test
     for(i in 1:dim(g1)[1]){
       results<- t.test(g1[i,],g2[i,])$p.value
       tm$`P-value`<-append(tm$`P-value`,results)
       tm$Pathway_name<- append(tm$Pathway_name,pathway_name[i])
     }
      assign(paste("tm_",j,sep = ""),tm)
    }
    
    print(results)
     
     
      data.frame()
      p.val,pathway_name
      
      result[[celltype_i]] <- data.frame 
      
    
    
    
    dftm<- data.frame(tm)
    dftm <- dftm[sort(dftm$P.value,index.return=TRUE)$ix,]
    
    
    
    
    
    
    
    down <- sample(colnames(pro),round(nrow(pro)/5))
    a<-pro[,down]
    heatmap(a)
    
    
    
    
    
    raw.data
    
    result <- list()
    
    cell.types <- unique(Idents(epithelial.cells.re))
    
    for(celltype_i in cell.types){
      
      ## t.test
      
       data.frame()
      p.val,pathway_name
    
      result[[celltype_i]] <- data.frame 
      
      
      
      
      
      
    }

    主要部分“

     1 for(j in cell.types){
     2   cc<-epi[which(epi[,12]==j),]
     3   index<-rownames(cc)
     4   g1<-pro[ , which(colnames(pro) %in% index )]
     5   pathway_name = rownames(g1)
     6   g2<-pro[ , -which(colnames(pro) %in% index )]
     7   tm <- list('P-value' = c(), 'Pathway_name' = c()) 
     8  ## t.test
     9  for(i in 1:dim(g1)[1]){
    10    results<- t.test(g1[i,],g2[i,])$p.value
    11    tm$`P-value`<-append(tm$`P-value`,results)
    12    tm$Pathway_name<- append(tm$Pathway_name,pathway_name[i])
    13  }
    14   assign(paste("tm_",j,sep = ""),tm)
    15 }
    16 
    17 print(results)
    18  
  • 相关阅读:
    Azure 中 Linux 虚拟机的大小
    排查在 Azure 中创建、重启 Linux VM 或调整其大小时发生的分配故障
    如何在 Azure 中的 Linux 经典虚拟机上设置终结点
    针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除
    Linux 内核超时导致虚拟机无法正常启动
    Java并发编程(十三)同步容器类
    可以开发着玩一下的web项目
    org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication canc
    FastDFS单机搭建以及java客户端Demo
    做前端(单纯页面和js)遇到的问题辑录(一)
  • 原文地址:https://www.cnblogs.com/shanyr/p/11518359.html
Copyright © 2011-2022 走看看