单细胞SCENIC分析原理和流程介绍

SCENIC官网:https://rawcdn.githack.com/aertslab/SCENIC/701cc7cc4ac762b91479b3bd2eaf5ad5661dd8c2/inst/doc/SCENIC_Setup.html

1. SCENIC简介

组织内细胞异质性的基础是细胞转录状态的差异,转录状态的特异性又是由转录因子主导的基因调控网络(GRNs)决定并维持稳定的。因此分析单细胞的GRNs有助于深入挖掘细胞异质性背后的生物学意义,并为疾病的诊断、治疗以及发育分化的研究提供有价值的线索。然而单细胞转录组数据具有背景噪音高、基因检出率低和表达矩阵稀疏性的特点,给传统统计学和生物信息学方法推断高质量的GRNs带来了挑战。Single-cell regulatory network inference and clustering (SCENIC)是一种专为单细胞数据开发的GRNs算法,它的创新之处在于引入了转录因子motif序列验证统计学方法推断的基因共表达网络,从而识别高可靠性的由转录因子主导的GRNs。

2. 输入

输入:SCENIC需要输入的是单细胞RNA-seq表达矩阵—— 每列对应于样品(细胞),每行对应一个基因。基因ID应该是gene-symbol并存储为rownames (尤其是基因名字部分是为了与RcisTarget数据库兼容);表达数据是Gene的reads count。根据作者的测试,提供原始的或Normalized UMI count,无论是否log转换,或使用TPM值,结果相差不大。(Overall, SCENIC is quite robust to this choice, we have applied SCENIC to datasets using raw (logged) UMI counts, normalized UMI counts, and TPM and they all provided reliable results (see Aibar et al. (2017)).)

另外,运行单细胞转录因子分析之SCENIC流程还需要下载配套数据库,不同物种不一样, 在 https://resources.aertslab.org/cistarget/ 查看自己的物种,按需下载:

#  https://resources.aertslab.org/cistarget/
dbFiles <- c("https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg19/refseq_r45/mc9nr/gene_based/hg19-500bp-upstream-7species.mc9nr.feather",
             "https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg19/refseq_r45/mc9nr/gene_based/hg19-tss-centered-10kb-7species.mc9nr.feather")
# dir.create("cisTarget_databases"); setwd("cisTarget_databases") # if needed
dbFiles <- c("https://resources.aertslab.org/cistarget/databases/mus_musculus/mm9/refseq_r45/mc9nr/gene_based/mm9-500bp-upstream-7species.mc9nr.feather",
             "https://resources.aertslab.org/cistarget/databases/mus_musculus/mm9/refseq_r45/mc9nr/gene_based/mm9-tss-centered-10kb-7species.mc9nr.feather")
# mc9nr: Motif collection version 9: 24k motifs
dbFiles
for(featherURL in dbFiles)
{
  download.file(featherURL, destfile=basename(featherURL)) # saved in current dir
  #  (1041.7 MB)
  # 
}

3. SCENIC分析流程

SCENIC主要包含三个步骤:

  • GENIE3(随机森林)/GRNBoost(Gradient Boosting):基于共表达情况鉴定每个TF的潜在靶点,推断转录因子与候选靶基因之间的共表达模块。每个模块包含一个转录因子及其靶基因。(R语言版SCENIC这一步用的随机森林的算法,Python版用的是Gradient Boosting算法,两种算法不太一样,但算出来的结果是类似的)
  • RcisTarget:由于GENIE3只是推断共表达,因此会有假阳性和间接targets。使用RcisTarget基于DNA-motif分析识别具有正确上游调控子且显著富集的motif(转录因子直接结合的motif),修剪掉缺乏motif支持的间接靶标。修剪后的每个TF和其潜在的直接作用的target genes被称为为一个regulon。(这一步是SCENIC和其他大多数共表达算法的重要区别)
  • AUCell:分析每个细胞的regulons活性并进行打分,打分的基础是基因的表达值。对于regulon来说,比较细胞间的AUCell得分可以鉴定出哪种细胞具有显著更高的regulon活性。打分值可以进一步转化为二进制regulon活性矩阵(binarized activity matrix),这将最大化细胞类型的差异,确定regulon在哪些细胞中处于“开放”状态。
In the SCENIC workflow, coexpression modules between TFs and candidate target genes are first inferred using GENIE3 or GRNBoost. RcisTarget then identifies modules for which the regulator’s binding motif is significantly enriched across the target genes and creates regulons with only direct targets. AUCell scores the activity of each regulon in each cell, thereby yielding a binarized activity matrix. The prediction of cell states is based on the shared activity of regulatory subnetworks.

3.1 上游分析

在分析前首先要对initializeScenic()进行设置,后续的分析基于这个设定。
1. runCorrelation()
共表达分析的结果中既有正向调控也有负向调控,GENIE3无法区分。因此需要相关性矩阵帮助筛选共表达模块中和TF正相关的基因。
2. runGenie3()
参考数据库找出输入基因中哪些是TF,计算每个TF和各个基因之间的相关性权重。权重其实也就是TF对gene表达量的贡献。
3. runSCENIC_1_coexNetwork2modules()
得到上面的TF和gene的权重矩阵以后,就可以生成以TF为核心的geneset。(比如TF1它可能对gene1、gene5、gene12...的预测都比较好,就可以得到以TF1为核心的geneset)。随后使用以下6种方法过滤掉低相关性的TF-genes共表达基因集,得到以TF为核心的共表达基因集。这一步运行得到的结果中包含了一列corr,是runCorrelation()得到的结果。1代表激活,-1代表抑制,0代表中性,SCENIC只会采用corr值为1的数据用于后续分析,以得到正调控共表达模块。

6种方法 含义
w001 以每个TF为核心保留weight>0.001的基因形成共表达模块;
w005 以每个TF为核心保留weight>0.005的基因形成共表达模块;
top50 以每个TF为核心保留weight值top50的基因形成共表达模块;
top5perTarget 每个基因保留weight值top5的TF得到精简的TF-Target关联表,然后把基因分配给TF构建共表达模块;
top10perTarget 每个基因保留weight值top10的TF得到精简的TF-Target关联表,然后把基因分配给TF构建共表达模块;
top50perTarget 每个基因保留weight值top50的TF得到精简的TF-Target关联表,然后把基因分配给TF构建共表达模块;

4. runSCENIC_2_createRegulons()
通过RcisTarget数据库对得到的共表达模块进行修剪。通俗的讲就是在计算出的TF-gene对中,结合数据库查看该gene上游序列是否存在该TF结合的motif。从而剔除TF非直接调控基因的共表达模块,保留Motif分析共表达模块内与TF有直接调控关系的基因,得到Regulon。(RcisTarget数据库中的数据目前只支持人,鼠,果蝇三个物种。)
5. runSCENIC_3_scoreCells()
每个Regulon就是一个转录因子及其直接调控靶基因的基因集,SCENIC接下来的工作就是对每个regulon在各个细胞中的活性评分,得到每个基因集在每个细胞的AUC score矩阵(AUC代表来与细胞内其他基因相比,特征基因中代表基因的比例及其相对表达值)。评分是基于recovery analysis,根据基因的表达值进行,分数越高代表基因集的激活程度越高。
6. runSCENIC_4_aucell_binarize()
对于细胞类型清晰的数据集而言,构建regulons并对其活性打分足够后续分析。但是,在很多情况下将评分转换为二进制的“开/关”(on|off),则既方便解释,又能最大化体现细胞类型的差异。将特定的regulon转换为“0/1”有利于探索和解释关键转录因子。将所有的regulons转换为“0/1”后创建二进制的活性矩阵,则可以用于细胞聚类,由于regulon是基于整体评分的,对消除技术偏倚如个别基因的dropout特别有用。AUCell会自动计算可能的阈值进行“0/1”转换,作者建议在转换之前手工检查并调整这些阈值。

⚠️在内存不足的情况下,可以使用抽样的方法,选取部分基因来得到Regulons,在runSCENIC_3_scoreCells()和runSCENIC_4_aucell_binarize()这两步时,再把表达矩阵替换成全部基因的表达矩阵来计算评分。

3.2 下游分析

三个方向:
1、降维聚类发现新亚群(cell type/state由转录调控网络的差异决定)
2、case-control之间的regulons差异分析
3、寻找cell type/state特异性的regulon/TF

延伸参考:
https://www.jianshu.com/p/cd967c449177
https://cloud.tencent.com/developer/article/1692240

你可能感兴趣的:(单细胞SCENIC分析原理和流程介绍)