之前的文章我们写到了用SCENIC对单细胞RNA测序数据进行转录因子分析的原理: [scRNA-seq]单细胞转录因子分析——SCENIC算法简析 。在这篇推送中,我们就用数据实例来展示如何得到SCENIC分析结果。

SCENIC有R的版本,通过SCENIC实现。在http://htmlpreview.github.io/?https://github.com/aertslab/SCENIC/blob/master/inst/doc/SCENIC_Setup.html、http://htmlpreview.github.io/?https://github.com/aertslab/SCENIC/blob/master/inst/doc/SCENIC_Running.html网址中有详细的讲解。

但是SCENIC整个算法的计算量都比较大,如果使用R来获得结果,需要非常长的时间。一个10x的样本就需要计算两天左右,当数据量增多时,使用R版本就显得不太现实。因此,SCENIC的作者还开发了对应的python版本,名为pySCENIC。

使用pySCENIC分析,我们可以通过运行python代码,调用函数获得分析结果,也可以直接使用命令行、输入不同的参数得到结果。因为使用命令行更为直接了当,在这,我们就来看看怎么用命令行获得SCENIC的分析结果。

安装及文件准备

pySCENIC的安装较为简单,只需要在系统输入一下命令行,即可安装。详细信息可见https://pyscenic.readthedocs.io/en/latest/installation.html

pip install pyscenic

SCENIC还需要一些参考的数据,包括:

1. 转录起始子的信息。可以在https://resources.aertslab.org/cistarget/找到,在下面的例子中,我用了人类的两个数据hg38__refseq-r80__10kb_up_and_down_tss.mc9nr.feather和hg38__refseq-r80__500bp_up_and_100bp_down_tss.mc9nr.feather

2. 转录因子的信息。https://github.com/aertslab/pySCENIC/tree/master/resources,我们在下面的示例中使用的是hs_hgnc_tfs.txt

3. 包含motif信息的数据库。人类的在https://resources.aertslab.org/cistarget/motif2tf/motifs-v9-nr.hgnc-m0.001-o0.0.tbl,小鼠的在https://resources.aertslab.org/cistarget/motif2tf/motifs-v9-nr.mgi-m0.001-o0.0.tbl

正如我们之前介绍的,SCENIC的完整分析流程由三部分组成,grn、cistarget和AUCell,想要得到SCENIC的结果,其实也就是分别运行三行命令,得到这三部分的分析结果。下一步分析流程的输入为上一步分析流程的输出。而grn的输入为一个包含细胞基因表达矩阵的loom文件。想要获得这个loom文件,我们可以先将细胞基因表达矩阵存成一个csv文件,再在python中,将其转化成loom文件。

将细胞基因表达矩阵存成csv文件的代码如下,其关键点在于要对基因表达矩阵进行一个转置。因为我已经在Seurat里进行过初步的分析,就直接将需要用SCENIC分析的细胞存成名为相应的Seurat object,再保存它的基因表达矩阵,这一步在R中完成。

library(Seurat)
library(tidyverse)
load(<Seurat Object位置>)
write.csv(t(as.matrix(<Seurat Object>@assays$RNA@counts)),file = <csv文件位置>)

紧接着,就是将csv文件保存为loom文件,使其能符合grn的输入格式。这一步通过python完成。

import os, sys
os.getcwd()
os.listdir(os.getcwd()) 
import loompy as lp;
import numpy as np;
import scanpy as sc;
x=sc.read_csv(<csv文件位置>);
row_attrs = {"Gene": np.array(x.var_names),};
col_attrs = {"CellID": np.array(x.obs_names)};
lp.create(<loom文件>,x.X.transpose(),row_attrs,col_attrs);

上述代码中<>中的内容(包括<>)需要替换成自己的数据的相应信息,下同。在得到作为输入的loom文件,以及参考数据hg38__refseq-r80__10kb_up_and_down_tss.mc9nr.feather、hg38__refseq-r80__500bp_up_and_100bp_down_tss.mc9nr.feather、hs_hgnc_tfs.txt、motifs-v9-nr.hgnc-m0.001-o0.0.tbl之后,我们就完成了前期的文件准备工作,可以开始SCENIC的分析。

SCENIC分析

pySCENIC的使用还是比较简单,就是通过三行命令依次跑grn、cistarget和AUCell。

pyscenic grn --num_workers 20 --output <样本名>.adj.tsv --method grnboost2 <loom文件> hs_hgnc_tfs.txt
pyscenic ctx <样本名>.adj.tsv hg38__refseq-r80__10kb_up_and_down_tss.mc9nr.feather hg38__refseq-r80__500bp_up_and_100bp_down_tss.mc9nr.feather --annotations_fname motifs-v9-nr.hgnc-m0.001-o0.0.tbl --expression_mtx_fname <loom文件> --output <样本名>.reg.csv --num_workers 20
pyscenic aucell <loom文件> <样本名>.reg.csv --output <样本名>_SCENIC.loom --num_workers 20

--num_workers: 多少个线程并行计算

--output: 输出文件名字

--method: grn的算法,可以为genie3或grnboost2a

取决于数据的大小和使用多少计算资源,完成上述三步需要的时间可能在一到几个小时不等。使用上面的参数分析一个10x的数据,除了步骤一花了4个小时,步骤二三都只需要十几分钟。而步骤三的结果文件<样本名>_SCENIC.loom就包含了SCENIC的分析结果。

在实操过程中,小L在跑步骤二时曾遇到下面的报错:
ValueError: "/home/linxy29/data/reference/pySCENIC/hg38__refseq-r80__500bp_up_and_100bp_down_tss.mc9nr.feather" is a cisTarget Feather database in Feather v1 format, which is not supported anymore. Convert them with "convert_cistarget_databases_v1_to_v2.py" (https://github.com/aertslab/create_cisTarget_databases/) to Feather v2 format.

即使是用convert_cistarget_databases_v1_to_v2.py处理之后,也还是会遇到文件格式有问题的报错。这个报错可能和操作系统或者其它东西有关,因为小L安装pySCENIC时,是重新创建了一个新的conda环境,应该不存在版本问题。更换服务器后,使用相同的步骤和数据,是能够得到最终的结果而不会出现这个报错。

在得到结果文件之后,我们就可以利用它画出我们需要的图。以下是一个详细的教程:

http://htmlpreview.github.io/?https://github.com/aertslab/SCENIC/blob/master/Tutorials_JupyterNotebooks/SCENIC_tutorial_2-ExploringOutput.html

最后,祝大家吃好喝好睡好,科研快乐~

[1] https://cloud.tencent.com/developer/article/1854003

[2] https://scenic.aertslab.org/tutorials/

[3] Aibar, Sara, et al. "SCENIC: single-cell regulatory network inference and clustering." Nature methods 14.11 (2017): 1083-1086.

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笔记本现在正式发布。 有关详细信息 pyscenic micromamba activate SCpip install pyscenic -i https://mirrors.aliyun.com/pypi/simple/ 安装docker 需要有root权限或者在docker的用户组 #1.Update the apt package index and inst
单细胞论文 这个 repo 是 Pachter Lab 阅读小组的论文和笔记的集合。 到目前为止,这是一些单细胞 RNA-Seq (scRNA-Seq) 论文的非详尽列表。 粗体的论文是我稍微偏向于覆盖的论文。 这些论文包括分析方法、协议、评论和应用。 2015年 2014年 使用单细胞 RNA-seq 重建远端肺上皮的谱系层次 单细胞 RNA-seq 突出了原发性胶质母细胞瘤的瘤内异质性 单细胞 RNA-seq 揭示哺乳动物细胞中动态、随机的单等位基因表达 单细胞 RNA-seq 揭示细胞变异的动态旁分泌控制 单细胞 RNA 测序揭示 T 辅助细胞从头合成类固醇有助于免疫稳态 具有独特分子标识符的定量单细胞 RNA-seq 2013年 解释单细胞 RNA-seq 实验中的技术噪音 从单细胞 RNA 测序数据推断随机基因表达的动力学 单细胞RNA测序揭示人类和小鼠早期胚胎的遗
scFunctions Florian Wuennemann的单细胞数据分析功能集合。 主要对Seurat对象进行操作。 有关Seurat和对象结构的更多信息,请参见 。 使用devtools install_github函数安装软件包,如下所示: library(devtools) install_github("FloWuenne/scFunctions") SCENIC功能 您可以在此[tutorial]中找到有关如何使用此软件包中的功能来进一步处理和分析SCENIC结果的指南):
Scenic 场景描述语言的编译器和场景生成器。 请参阅以获取安装说明,以及有关 Scenic 语言、其实现及其与各种模拟器的接口的教程和其他信息。 有关该语言及其一些应用的描述,请参阅,它扩展了我们的(注意:自以来,Scenic 的语法略有变化,并且添加了许多功能,例如支持动态场景;这些在预印本中进行了描述)。 Scenic 由 Daniel J. Fremont、Edward Kim、Tommaso Dreossi、Shromona Ghosh、Xianyu Yu、Alberto L. Sangiovanni-Vincentelli 和 Sanjit A. Seshia 设计和实施。 如果您在使用 Scenic 时遇到任何问题,请向提交问题或通过联系 Daniel。 存储库的组织方式如下: src/scenic目录包含正确的包; examples目录中有很多 Sce
优美的风景 Scenic View是一个JavaFX应用程序,旨在使您可以轻松了解应用程序场景图的当前状态,并且还可以轻松地操作场景图的属性,而无需继续编辑代码。 这样一来,您就可以查找错误,并使像素完美无缺,而无需执行“编译-检查-编译”操作。 适用于Windows,Linux和MacOS的JDK 11的构建是由Azure Pipelines构建的。 这些构建的状态如下所示: 下载JDK 11 Linux 您还可以下载平台无关的发行版和 。 Java版本 Scenic View有针对JDK 8,JDK 9和JDK 11的版本: JDK 8版本处于维护模式。 没有积极的开发正在进行中,并且代码存在于jdk8分支中。 不建议使用JDK 9版本,建议开发人员使用JDK 8版本或JDK 11版本。 JDK 11版本是积极开发的分支,并且代码存在于m
当然,很高兴为您提供相关信息。单细胞水平的可变剪接分析通常使用单细胞RNA测序(scRNA-seq)来完成。您可以使用以下步骤来进行分析: 1. 样品收集:采集需要分析的细胞样品 2. 单细胞分离:使用技术如流式细胞术,将样品分离为单个细胞 3. RNA提取:使用RNA提取试剂盒提取细胞中的RNA 4. 标准化:使用标准化技术,将不同的细胞RNA数量归一化 5. scRNA-seq:对标准化的RNA进行scRNA-seq测序 6. 可变剪接分析:对scRNA-seq数据进行分析,以确定每个细胞中某基因的可变剪接情况 7. 可视化:使用软件如Cell Ranger,Seurat等,对分析结果进行可视化 如果您需要更详细的资料,您可以阅读以下文献: 1. Buenrostro, JD., et al. (2015) "Single-cell RNA-seq reveals changes in cell state upon treatment of chronic lymphocytic leukemia." Nat Biotechnol 33(7):741-747. 2. Zhang, F., et al. (2018) "Massively parallel digital transcriptional profiling of single cells." Nat Commun 9(1):1299. 希望这些资料能够帮助您。