SCENIC分析(一)

setwd("D:/R/project/project1")#设置路径
rm(list = ls()) #释放Enviroment中的空间(删除数据)
library(SCENIC)

## Load data 使用SCENIC中自带的mouseBrian_toy数据
loomPath <- system.file(package="SCENIC", "examples/mouseBrain_toy.loom")
library(SCopeLoomR)
loom <- open_loom(loomPath)
exprMat <- get_dgem(loom)#共表达矩阵
cellInfo <- get_cell_annotation(loom)
close_loom(loom)

dim(exprMat)#矩阵的大小
exprMat[1:4,1:4]#展示矩阵前4*4
class(cellInfo)
dim(cellInfo)
head(cellInfo)#展示cellInfo数据的前6行
table(cellInfo$CellType)#统计cellInfo数据中CellType的种类和每一类各自的数量

### Initialize settings数据库文件的使用
#解决报错:object 'motifAnnotations_mgi' not found
data(list="motifAnnotations_mgi_v9", package="RcisTarget")
motifAnnotations_mgi <- motifAnnotations_mgi_v9
# 保证 cisTarget_databases_mc9 文件夹下面有下载好2个大约1G的小鼠mc9(或者人类hg19/hg38文件)
#nCore的数值可能与硬件设备相关,一般推荐设置为1
# scenicOptions@inputDatasetInfo$cellInfo <- "int/cellInfo.Rds"
#会在路径中生成output文件夹
scenicOptions <- initializeScenic(org="mgi", dbDir="cisTarget_databases_mc9", nCores=1)
#将生成的scenicOptions.Rds放在D:/R/project/project1/路径中的新文件夹int
saveRDS(scenicOptions, file="D:/R/project/project1/int/scenicOptions.Rds")

### Co-expression network构建共表达网络
genesKept <- geneFiltering(exprMat, scenicOptions)
exprMat_filtered <- exprMat[genesKept, ]
exprMat_filtered[1:4,1:4]
runCorrelation(exprMat_filtered, scenicOptions)
exprMat_filtered_log <- log2(exprMat_filtered+1) 
runGenie3(exprMat_filtered_log, scenicOptions)
runSCENIC_1_coexNetwork2modules(scenicOptions)
runSCENIC_2_createRegulons(scenicOptions, coexMethod=c("top5perTarget")) # Toy run settings
#报错:could not find function "%dopar%"使用下面的代码(可能不好用),但是重启RStudio有时候也能解决,建议重启
#install.packages("doSNOW")
#install.packages("doParallel") 
#install.packages("doMPI")
#library(foreach)
#library(iterators)
#library(snow)
#library(doSNOW)
#library(parallel)
#library(doParallel)
#install.packages("Rmpi")
#library(Rmpi)
#library(doMPI)
runSCENIC_3_scoreCells(scenicOptions, exprMat_filtered_log) 
runSCENIC_4_aucell_binarize(scenicOptions)
#结果会放在output文件夹中


##构建网络的另一种方式,替换上面的四行代码(展示如下),可以调整一些参数
##runSCENIC_3_scoreCells(scenicOptions, exprMat_filtered_log) 
##runSCENIC_4_aucell_binarize(scenicOptions)
##runSCENIC_1_coexNetwork2modules(scenicOptions)
##runSCENIC_2_createRegulons(scenicOptions, coexMethod=c("top5perTarget")) # Toy run 
#library(foreach)
#library(iterators)
#library(parallel)
#library(doParallel)
#exprMat_log <- log2(exprMat+1)
#scenicOptions@settings$dbs <- scenicOptions@settings$dbs["10kb"] # Toy run settings
#scenicOptions <- runSCENIC_1_coexNetwork2modules(scenicOptions)
#scenicOptions <- runSCENIC_2_createRegulons(scenicOptions,coexMethod=c("top5perTarget"))
#scenicOptions <- runSCENIC_3_scoreCells(scenicOptions, exprMat_log ) 
#scenicOptions <- runSCENIC_4_aucell_binarize(scenicOptions)
#tsneAUC(scenicOptions, aucType="AUC") 

以上为初步实现SCENIC示例(小鼠)的完整代码 。

参考文章:

单细胞转录因子分析之SCENIC流程 - 知乎 (zhihu.com)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值