单细胞数据分析中scran包进行细胞周期分析时细胞周期marker基因的转换
2023-02-18 16:31:10 时间
scran包cyclone函数是利用‘marker基因对’表达来对细胞所在周期阶段进行预测的方法Scialdone (2015)
“maker基因对”由作者根据训练集细胞(已注释了cell cycle)的基因表达特征产生,我们可以直接使用。对于每一细胞周期阶段(人/鼠)都有一组“maker基因对”集合。
# 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转换。下面是对小鼠的基因对进行转换。
###基因转换
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)
对于人的也一样,换一下数据库就行了。
# 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)
相关文章
- ? Vue 深入组件开发☞#异步组件#
- 带你体验一次类型编程实践
- Spring基础(八):注解方式创建对象IOC
- 上手体验TailwindCSS
- Spring基础(九):代理模式介绍
- 项目越写越大,我是这样做拆分的
- Spring基础(十):AOP概念和原理
- 【全干】从零搞定微信SDK授权
- Spring基础(十一):AOP注解和XML方式实现
- Spring基础(十二):JDBCTemplate的使用
- 【入门教程】Rollup模块打包器整合
- Spring基础(十三):JDBCTemplate的批操作
- 【消息通知】用公众号模板消息怎么样?
- Spring基础(十四):Spring的事务回顾
- Spring基础(十五):Spring事务环境搭建
- 【入门】你连Babel都不会配?那插件不成乱装了
- 开发 Babel 插件可以试试这个 CLI 工具
- Spring基础(十六):Spring事务管理注解方式和XML配置方式
- 「35分钟」开发刷题功能
- Spring基础(十七):Spring日志框架和测试支持