go.db获取特定term下所有基因 selenium 硒代谢获取特定term的所有基因 dataframe GO terms TO GENES 忽略报错继续运行try trycatch中断运行

   
                              result <- try({
                                gotoid= get(x, org.Hs.egGO2ALLEGS) %>% mget(org.Hs.egSYMBOL) %>% unlist() %>%unname() %>%
                                  as.character() %>%paste(collapse = ",")
                                
                                
                              }, silent = TRUE)  # 设置 silent = TRUE 以捕获错误但不中断执行
                            
                              # print(result)


.libPaths(c("/home/data/t040413/R/x86_64-pc-linux-gnu-library/4.2","/home/data/t040413/R/yll/usr/local/lib/R/site-library","/home/data/refdir/Rlib/",   "/usr/local/lib/R/library"))
library(GO.db)
library(Seurat)
library(dplyr)
library(tibble)
library(readr)

getwd()
dir.create("/home/data/t040413/silicosis/selenium_genes_pathways")
setwd("/home/data/t040413/silicosis/selenium_genes_pathways")


ls(GO.db)#--------
ls("package:GO.db")

GO_dbInfo()

#########1。 go.db-go term包-------
library(AnnotationDbi)
k <- keys(GO.db, keytype = "GOID")[1:3]
keys(GO.db)
keytypes(GO.db)
k=keys(GO.db,keytype ="GOID" )
length(k)
mygoterm=AnnotationDbi::select(GO.db,
                               keys = k,
                               columns = c("TERM","ONTOLOGY","DEFINITION"),
                               keytype="GOID")

head(mygoterm)
xx <- as.list(GOTERM)


library(stringr)#-----
dim(mygoterm)
#mydesired_terms=mygoterm[str_detect(string = mygoterm$TERM, pattern = "selen"),1:3]  %>%head(n=100)

mydesired_terms=mygoterm[grepl(pattern = "selen|Selen",mygoterm$TERM  ),1:3]  %>%head(n=100)

mydesired_terms



library(tidyverse)
library(org.Hs.eg.db)

mydesired_terms$human_genes=lapply(X = mydesired_terms$GOID,
                             FUN = function(x)
                               {#print(x)
                              #x="GO:0001514"
                              
                              result <- try({
                                gotoid= get(x, org.Hs.egGO2ALLEGS) %>% mget(org.Hs.egSYMBOL) %>% unlist() %>%unname() %>%
                                  as.character() %>%paste(collapse = ",")
                                
                                
                              }, silent = TRUE)  # 设置 silent = TRUE 以捕获错误但不中断执行
                            
                              # print(result)
                              return(paste(result,collapse = ","))
                              }   
                             
                             )

head(mydesired_terms)

{
  
  
  #要使代码能够传递结果,无论是正确的还是出错的,你可以对代码进行一些修改。在处理错误时,可以将错误信息作为结果返回,并在结果中标记它们为错误。
  
  #以下是修改后的代码示例:
  
 # R
  result <- lapply(mydesired_terms$GOID, function(x) {
    res <- tryCatch(
      {
        gotoid <- get(x, org.Hs.egGO2ALLEGS) %>% mget(org.Hs.egSYMBOL) %>% unlist() %>% unname()
        return(gotoid)
      },
      error = function(e) {
        return(paste(""))                  # return(paste("Error:", conditionMessage(e)))
      }
    )
    
    return(res)
  })
  
  result %>%unlist() %>%unique()
  
}
mydesired_terms$all_humnan_Genes=result %>%unlist() %>%unique() %>%paste(collapse = ",")
mydesired_terms
openxlsx::write.xlsx(mydesired_terms,file ="/home/data/t040413/silicosis/selenium_genes_pathways/mydesired_terms.xlsx" )



########mice----------


if ("mice_goterm_genes"=="mice_goterm_genes") {
  
  
  library(tidyverse)
  library(org.Mm.eg.db)
  
  mydesired_terms$mice_genes=lapply(X = mydesired_terms$GOID,
                               FUN = function(x)
                               {#print(x)
                                 #x="GO:0001514"
                                 
                                 result <- try({
                                   gotoid= get(x, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist() %>%unname() %>%
                                     as.character() %>%paste(collapse = ",")
                                   
                                   
                                 }, silent = TRUE)  # 设置 silent = TRUE 以捕获错误但不中断执行
                                 
                                 # print(result)
                                 return(paste(result,collapse = ","))
                               }   
                               
  )
  
  head(mydesired_terms)
  
  {
    
    
    #要使代码能够传递结果,无论是正确的还是出错的,你可以对代码进行一些修改。在处理错误时,可以将错误信息作为结果返回,并在结果中标记它们为错误。
    
    #以下是修改后的代码示例:
    
    # R
    result <- lapply(mydesired_terms$GOID, function(x) {
      res <- tryCatch(
        {
          gotoid <- get(x, org.Mm.egGO2ALLEGS) %>% mget(org.Hs.egSYMBOL) %>% unlist() %>% unname()
          return(gotoid)
        },
        error = function(e) {
          return(paste(""))                  # return(paste("Error:", conditionMessage(e)))
        }
      )
      
      return(res)
    })
    
    result %>%unlist() %>%unique()
    
  }
  mydesired_terms$all_Mice_Genes=result %>%unlist() %>%unique() %>%paste(collapse = ",")
  mydesired_terms
  openxlsx::write.xlsx(mydesired_terms,file ="/home/data/t040413/silicosis/selenium_genes_pathways/mydesired_terms.xlsx" )
  
  
  
}

head(mydesired_terms)



.libPaths(c("/home/data/t040413/R/x86_64-pc-linux-gnu-library/4.2","/home/data/t040413/R/yll/usr/local/lib/R/site-library","/home/data/refdir/Rlib/",   "/usr/local/lib/R/library"))
library(GO.db)
library(Seurat)
library(dplyr)
library(tibble)
library(readr)


ls(GO.db)#--------
ls("package:GO.db")

GO_dbInfo()
GOSYNONYM()


library(AnnotationDbi)
k <- keys(GO.db, keytype = "GOID")[1:3]
keys(GO.db)
keytypes(GO.db)
k=keys(GO.db,keytype ="GOID" )
length(k)
mygoterm=AnnotationDbi::select(GO.db,
                      keys = k,
                      columns = c("TERM","ONTOLOGY","DEFINITION"),
                      keytype="GOID")

head(mygoterm)
xx <- as.list(GOTERM)







library(stringr)#-----
  dim(mygoterm)
#mydesired_terms=mygoterm[str_detect(string = mygoterm$TERM, pattern = "selen"),1:3]  %>%head(n=100)

  mydesired_terms=mygoterm[grepl(pattern = "selen|Selen",mygoterm$TERM  ),1:3]  %>%head(n=100)
  
  mydesired_terms
dim(mydesired_terms)
get_GO_Env()

library(org.Hs.eg.db)
ls("package:org.Hs.eg.db")
k <- keys(org.Hs.eg.db, keytype = "ENTREZID") #[1:3]
keytypes(org.Hs.eg.db)
my_gene_go=select(org.Hs.eg.db,
         keys = k,
         columns = c("GO","GOALL", "ONTOLOGY","GENENAME","SYMBOL"),
         keytype="ENTREZID")

head(my_gene_go)


if(T)
{
  
  
  allgenes=c()
  result=list()
  for (eachid in  mydesired_terms$GOID) {# 1:length(mydesired_terms$GOID)
    
    print(eachid)
    #  eachid="GO:0001717"
    
    
    # 尝试执行第一个语句
    result <- try({
      eachlist=get(eachid, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()
      
      
    }, silent = TRUE)  # 设置 silent = TRUE 以捕获错误但不中断执行
    
    
    # eachlist=get(eachid, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()
    print(eachlist)
    
    allgenes=c(allgenes,eachlist)
    
  }
  
  "Inmt" %in% allgenes
  allgenes_human=c()
  for (eachid in  mydesired_terms$GOID) {# 1:length(mydesired_terms$GOID)
    
    print(eachid)
    #  eachid="GO:0001710"
    
    
    # 尝试执行第一个语句
    result <- try({
      eachlist=get(eachid, org.Hs.egGO2ALLEGS) %>% mget(org.Hs.egSYMBOL) %>% unlist()
      
      
    }, silent = TRUE)  # 设置 silent = TRUE 以捕获错误但不中断执行
    
    
    # eachlist=get(eachid, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()
    print(eachlist)
    
    allgenes_human=c(allgenes_human,eachlist)
    
  }
  
  allgene_huamn_mouse=c(allgenes,allgenes_human)
  
  
}

print(getwd())
save(allgene_huamn_mouse,file="allgene_huamn_mouse.rds")

"Sepp1" %in% allgene_huamn_mouse
"LRP8"  %in% allgene_huamn_mouse

allgene_huamn_mouse %>%unname() %>% unique() %>%sort()




#----------
library(tidyverse)
library(org.Hs.eg.db)
library(org.Mm.eg.db)

ls("package:org.Hs.eg.db")
GOID <- c("GO:0042573")

 GOgeneID <- get(GOID, org.Hs.egGO2ALLEGS) %>% mget(org.Hs.egSYMBOL) %>% unlist()

GOgeneID <- get(GOID, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()


GOgeneID <- get(mydesired_terms$GOID, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()

ls("package:org.Hs.eg.db")

allgenes=c()
result=list()
for (eachid in  mydesired_terms$GOID) {# 1:length(mydesired_terms$GOID)
  
  print(eachid)
  #  eachid="GO:0001717"
  
  
  # 尝试执行第一个语句
  result <- try({
    eachlist=get(eachid, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()
    
    
  }, silent = TRUE)  # 设置 silent = TRUE 以捕获错误但不中断执行
  
  
  # eachlist=get(eachid, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()
  print(eachlist)
  
  allgenes=c(allgenes,eachlist)
  
}

"Inmt" %in% allgenes
allgenes_human=c()
for (eachid in  mydesired_terms$GOID) {# 1:length(mydesired_terms$GOID)
  
  print(eachid)
  #  eachid="GO:0001710"
  
  
  # 尝试执行第一个语句
  result <- try({
    eachlist=get(eachid, org.Hs.egGO2ALLEGS) %>% mget(org.Hs.egSYMBOL) %>% unlist()
    
    
  }, silent = TRUE)  # 设置 silent = TRUE 以捕获错误但不中断执行
  
  
  # eachlist=get(eachid, org.Mm.egGO2ALLEGS) %>% mget(org.Mm.egSYMBOL) %>% unlist()
  print(eachlist)
  
  allgenes_human=c(allgenes_human,eachlist)
  
}

allgene_huamn_mouse=c(allgenes,allgenes_human)

猜你喜欢

转载自blog.csdn.net/qq_52813185/article/details/132285374