前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单细胞数据分析中scran包进行细胞周期分析时细胞周期marker基因的转换

单细胞数据分析中scran包进行细胞周期分析时细胞周期marker基因的转换

作者头像
DoubleHelix
发布2022-12-16 18:43:17
6550
发布2022-12-16 18:43:17
举报
文章被收录于专栏:生物信息云生物信息云

scran包cyclone函数是利用‘marker基因对’表达来对细胞所在周期阶段进行预测的方法Scialdone (2015)

“maker基因对”由作者根据训练集细胞(已注释了cell cycle)的基因表达特征产生,我们可以直接使用。对于每一细胞周期阶段(人/鼠)都有一组“maker基因对”集合。

代码语言:javascript
复制
# BiocManager::install("scran")
library(scran)
mm.pairs <- readRDS(system.file("exdata", "mouse_cycle_markers.rds", 
                                package="scran"))

str(mm.pairs)
head(mm.pairs$G1)

这里默认提供marker基因对是ensemble格式,如果Seurat对象中表达数据提供的是其它类型的基因ID,通常就是SYMBOL或者Ensemble,如果是Seurat对象中表达数据的基因名称是SYMBOL,那么我们需要转化一下ID。各种基因ID转换参考文章:生信中各种ID转换。下面是对小鼠的基因对进行转换。

代码语言:javascript
复制
###基因转换
library(clusterProfiler)
library(org.Mm.eg.db)
# x <- names(mm.pairs)[1]
trs <- lapply(names(mm.pairs), function(x){
  df <- mm.pairs[[x]]
  first <- bitr(mm.pairs[[x]][,1],
                fromType= "ENSEMBL", toType="SYMBOL",
                OrgDb="org.Mm.eg.db")
  
  second <- bitr(mm.pairs[[x]][,2],
                 fromType= "ENSEMBL", toType="SYMBOL",
                 OrgDb="org.Mm.eg.db")
  df <- df[first$ENSEMBL %in% df$first,]
  df <- df[second$ENSEMBL %in% df$second,]
  
  df$first <-  lapply(df$first, function(x){
    first[first$ENSEMBL == x,2][1] 
  })  %>% unlist()
  
  df$second <-  lapply(df$second, function(x){
    second[second$ENSEMBL == x,2][1] 
  })  %>% unlist()
  
  return(df)
})
names(trs) <- names(mm.pairs)

对于人的也一样,换一下数据库就行了。

代码语言:javascript
复制
# BiocManager::install("scran")
library(scran)
hs.pairs <- readRDS(system.file("exdata", "human_cycle_markers.rds", 
                                package="scran"))

str(hs.pairs)
head(hs.pairs$G1)

###基因转换
library(clusterProfiler)
library(org.Hs.eg.db)
# x <- names(hs.pairs)[1]
htrs <- lapply(names(hs.pairs), function(x){
  df <- hs.pairs[[x]]
  first <- bitr(hs.pairs[[x]][,1],
                fromType= "ENSEMBL", toType="SYMBOL",
                OrgDb="org.Hs.eg.db")
  
  second <- bitr(hs.pairs[[x]][,2],
                 fromType= "ENSEMBL", toType="SYMBOL",
                 OrgDb="org.Hs.eg.db")
  df <- df[first$ENSEMBL %in% df$first,]
  df <- df[second$ENSEMBL %in% df$second,]
  
  df$first <-  lapply(df$first, function(x){
    first[first$ENSEMBL == x,2][1] 
  })  %>% unlist()
  
  df$second <-  lapply(df$second, function(x){
    second[second$ENSEMBL == x,2][1] 
  })  %>% unlist()
  
  return(df)
})
names(htrs) <- names(hs.pairs)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MedBioInfoCloud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档