转录因子调控网络

SCENIC (Single-Cell rEgulatory Network Inference and Clustering) 是从单细胞RNA数据推断基因调控网络及其相关细胞状态的工具。

原作者将SCENIC应用于肿瘤和小鼠大脑单细胞图谱数据,证明了顺式调控网络分析能够有助于深入挖掘细胞异质性背后的生物学意义,并为疾病的诊断、治疗以及发育分化的研究提供有价值的线索。

SCENIC在2017年首先发表于nature methods,2020年又将流程整理后发表于nature protocls。有R版和python版本。

SCENIC 工作流程

vignetteFile <- file.path(system.file('doc', package='SCENIC'), "SCENIC_Running.Rmd")
file.copy(vignetteFile, "SCENIC_myRun.Rmd")
# or: 
vignetteFile <- "https://raw.githubusercontent.com/aertslab/SCENIC/master/vignettes/SCENIC_Running.Rmd"
download.file(vignetteFile, "SCENIC_myRun.Rmd")

构建基因调控网络(GRN):

  • 根据共表达确定每个 TF 的潜在靶基因:
  • 过滤表达式矩阵并运行 GENIE3/GRNBoosrt
  • 将GENIE3/GRNBoost中的目标格式化为共表达模块。
  • 基于DNA-motif分析选择潜在的直接结合靶标(调控子)(RcisTarget: TF motif analysis)
  • 识别细胞状态及其调节因子:

  • 分析每个单独单元(AUCell)中的网络活动
  • 细胞中的评分规则(计算AUC)
  • 将网络活动转换为二进制活动矩阵
  • 基于基因调控网络活性(细胞聚类)鉴定稳定的细胞状态并探索结果
  • 准备包和数据

    SCENIC的workflow主要依赖三个R包的支持:

  • GENIE3:用于共表达网络的计算(也可以用GRNBoost2替代)
  • RcisTarget:转录因子结合motif的计算
  • AUCell:识别单细胞测序数据中的激活基因集(gene-network)
  • dir.create("./SCENIC") #构建SCENIC分析文件夹
    setwd("SCENIC")
    dir.create("D:/R/seurat/SCENIC/cisTarget_databases")#构建数据库文件夹
    setwd("D:/R/seurat/SCENIC/cisTarget_databases")
    #导入相关R包
    if(!require(SCENIC))
       BiocManager::install(c("AUCell", "RcisTarget"),ask = F,update = F);
    BiocManager::install(c("GENIE3"),ask = F,update = F)#这三个包显然是必须安装的
    if(!require(SCopeLoomR))
       devtools::install_github("aertslab/SCopeLoomR", build_vignettes = TRUE)#SCopeLoomR用于获取测试数据
    if (!requireNamespace("arrow", quietly = TRUE)) 
       BiocManager::install('arrow')
    if(!require(SCENIC))
       devtools::install_github("aertslab/SCENIC") 
    # if (!requireNamespace("BiocManager", quietly = TRUE))
    #    install.packages("BiocManager")
    # options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
    # options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
    install.packages("feather")
    install.packages("doRNG")
    install.packages("KernSmooth")
    install.packages("doMC", repos="http://R-Forge.R-project.org")
    install.packages("DT")
    # install.packages("shiny")
    BiocManager::install('shiny')
    
    #bioconductor版本小于4.0或你的R(3.6)的版本也比较老,你可能得试试下面的方法进行安装
    devtools::install_github("aertslab/SCENIC@v1.1.2")
    devtools::install_github("aertslab/AUCell")
    devtools::install_github("aertslab/RcisTarget")
    devtools::install_github("aertslab/GENIE3")
    

    输入数据的表达矩阵为gene-summarized counts,不同于其他进阶分析的是,输入的数据最好是raw countsnormalized counts。计算后的TPMFPKM/RPKM之类也是允许的, 但是这些可能会导致人为的共变量引入,避免节外生枝,推荐用raw count。但总的来说,** raw (logged) UMI counts**, normalized UMI counts, 和TPM都能产生值得信赖的效果

    ### Load data
    loomPath <- system.file(package="SCENIC", "examples/mouseBrain_toy.loom")
    library(SCopeLoomR)
    loom <- open_loom(loomPath)#获取loom文件
    exprMat <- get_dgem(loom)#取出表达信息
    cellInfo <- get_cell_annotation(loom)#获取注释信息
    close_loom(loom)
    

    而Python版的SCENIC是推荐使用loom作为输入数据的,在参考文章SCENIC单细胞转录因子预测|3.软件安装与数据准备中会教大家如何利用表达矩阵和注释信息创建loom文件(to loom)

    SCENIC工作流的主要命令的概述

    在后面会有更详细的步骤

    ###初始化 SCENIC 设置,设置分析环境
    library(SCENIC)
    #options(max.connections = 256)#增加最大连接数
    data(list="motifAnnotations_mgi_v9", package="RcisTarget")
    motifAnnotations_mgi <- motifAnnotations_mgi_v9
    scenicOptions <- initializeScenic(org="mgi", dbDir="D:/R/seurat/SCENIC/cisTarget_databases", nCores=10)
    # scenicOptions@inputDatasetInfo$cellInfo <- "int/cellInfo.Rds"
    saveRDS(scenicOptions, file="int/scenicOptions.Rds") 
    ##### 构建Co-expression network
    #基因过滤/选择,去除最有可能是噪音的基因
    genesKept <- geneFiltering(exprMat, scenicOptions,minCountsPerGene=3*.01*ncol(exprMat),minSamples=ncol(exprMat)*.01)
    exprMat_filtered <- exprMat[genesKept, ]
    runCorrelation(exprMat_filtered, scenicOptions)##计算相关性矩阵,1.2_corrMat.Rds:基因之间的相关性矩阵
    exprMat_filtered_log <- log2(exprMat_filtered+1) 
    runGenie3(exprMat_filtered_log, scenicOptions)
    ### 建立GRN并评分
    exprMat_log <- log2(exprMat+1)
    scenicOptions@settings$dbs <- scenicOptions@settings$dbs["10kb"]
    scenicOptions <- runSCENIC_1_coexNetwork2modules(scenicOptions)
    scenicOptions <- runSCENIC_2_createRegulons(scenicOptions, coexMethod=c("top5perTarget"))
    scenicOptions 
    基因转录调控网络——转录因子调控网络分析 转录因子(Transcription Factors, TFs)是指能够以序列特异性方式结合DNA并且调节转录的蛋白质。 转录因子通过识别特定的DNA序列来控制染色质和转录,以形成指导基因组表达的复杂系统。 转录水平的调控是基因调控的重要环节,其中转录因子(Transcription Factor,TF)转录因子结合位点(Transcription Factor Binding Site,TFBS)转录调控的重要组成部分。 基因转录调控网络由于其可以直观地显示基
    SCENIC 框架使用教程 SCENICSingle-Cell rEgulatory Network Inference and Clustering)是一个用于从单细胞RNA测序数据中推断基因调控网络和细胞类型的RSCENIC框架通过整合多个分析步骤,括基因共表达模块的识别、转录因子活动的评估以及细胞状态的聚类,来揭示细胞间的调控关系和细胞类型。 项目快速启动 安装SCENIC...
    SCENIC(单细胞重组网络推断和聚类)是一种从单细胞RNA序列数据推断基因调控网络和细胞类型的计算方法。 该方法的描述和一些使用示例可在《。 当前在R(此存储库)和Python中有SCENIC的实现。 如果您不太喜欢使用R,我们建议您检查一下SCENIC(其中含Nextflow工作流程)和Python / Jupyter笔记本,以轻松运行SCENIC (强烈建议您批量运行SCENIC或更大的数据集)。 然后,可以在R,Python或SCope(Web界面)中浏览任何实现的输出。 有关在R运行SCENIC的更多详细信息和安装说明,请参阅以下教程: 这些示例的输出位于: : 常见问题: 2021/03/26: 2020/06/26: 该SCENICprotocol括Nextflow工作流程,并pySCENIC笔记本现在正式发布。 有关详细信息
    可扩展的SCENIC工作流程,用于单细胞基因调控网络分析 该存储库描述了如何对单细胞数据运行pySCENIC基因调控网络推断分析以及基本的“最佳实践”表达分析。 这括: 独立的Jupyter笔记本电脑,用于交互式分析 Nextflow DSL1工作流程,它提供了一种半自动化且简化的方法来运行这些步骤 pySCENIC安装,使用和下游分析的详细信息 另请参阅《自然规约》中的相关出版物: : 。 有关此协议中步骤的高级实现,请参阅 ,这是pySCENIC的Nextflow DSL2实现,具有用于表达式分析的全面且可自定义的管道。 这括其他pySCENIC功能(多次运行,集成的基于主题和基于轨迹的regulon修剪,织机文件生成)。 PBMC 10k数据集(10x基因组学) 完整的SCENIC分析,以及过滤,群集,可视化和SCope就绪的织机文件创建: |