***pySCENIC全部往期精彩系列
:
1、
PySCENIC(一):python版单细胞转录组转录因子分析
2、
PySCENIC(二):pyscenic单细胞转录组转录因子分析
3、
PySCENIC(三):pyscenic单细胞转录因子分析可视化
4、
PySCENIC(四):pyscenic结果之差异转录因子分析及其他可视化
首先说一句,我们之前也发过R语言版本的SCENIC,但是后来我们感觉容易出错,而且费时,所以就没有再探究过。可是总是有小伙伴喜欢跑R,然后说这里错了,那里找不见,其实我们的帖子写于2022年,但是数据库已经更新了,去官网下载新的数据库,不能无脑跑代码。回到pySCENIC,之前我们写过整个系列4篇帖子,分析可视化都是很完善了。可是近期跑的时候发现在第一步有点问题,要么跑不动,要么出错,怀疑是软件和数据库没有更新的缘故,故而更新一下测试。这个帖子主要有两部分内容。
Section1
首先准备单细胞数据,我们准备了27001个基因6000个细胞的数据:提取表达数据,这些操作和之前的一样,没有区别。
#====================================================================================
# 1、R中提取seurat单细胞counts矩阵
#====================================================================================
setwd("D:/KS项目/公众号文章/pySCENIC更新")
library(Seurat)
dim(uterus)
# [1] 27001 27914
table(uterus$orig.ident)
# AEH EEC HC
# 9525 12033 6356
#对于每个样本抽取2000个细胞进行分析,这里只是演示,太多细胞没有意义,也是为了降低文件大小
Idents(uterus) <- 'orig.ident'
sce_test <- subset(x = uterus, downsample = 2000)
table(sce_test$orig.ident)
# AEH EEC HC
# 2000 2000 2000
table(sce_test$celltype)
# Ciliated epithelial cells Endothelial cells Lymphocytes
# 427 631 2844
# Macrophages Smooth muscle cells Stromal fibroblasts
# 110 474 593
# Unciliated epithelial cells
# 921
dim(sce_test)#我们用这6000个细胞进行演示
# [1] 27001 6000
#提取表达矩阵,用于后续分析
Idents(sce_test) <- 'celltype'
write.csv(t(as.matrix(sce_test@assays$RNA@counts)),file = "sce_exp.csv")
saveRDS(sce_test, file = 'sce_test.rds')
我们这次干脆一不做二不休,将之前的pyscenic的环境删除干净,重新建立环境,重新下载最新版软件pyscenic0.12.1好了。准备的数据集也用最新的。数据库网址:cisTarget databases,需要什么自己下载选择即可。
#删除之前的环境,重新建立环境并下载软件
conda info --envs
conda env remove -n pyscenic
#创建环境
conda create -y -n pyscenic python=3.7
conda activate pyscenic
pip install pyscenic -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install scanpy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
#需要的数据库下载
#1、Databases ranking the whole genome :https://resources.aertslab.org/cistarget/databases/
#我这里是人的:#需要下载什么。自己实际选择
wget https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg38/refseq_r80/mc_v10_clust/gene_based/hg38_10kbp_up_10kbp_down_full_tx_v10_clust.genes_vs_motifs.rankings.feather
#2、Motif to TF annotations database
wget https://resources.aertslab.org/cistarget/motif2tf/motifs-v10nr_clust-nr.hgnc-m0.001-o0.0.tbl
#3、A list of transcription factors
wget https://resources.aertslab.org/cistarget/tf_lists/allTFs_hg38.txt
这是所有软件版本
image.png
分析的话很好办,还是和之前一样,标准的3步。第一步我们花了大概12多小时。后面的步骤就比较快了。运行是没有任何问题。甚至最后的结果loom文件我们用之前的R可视化代码直接“闭眼”运行,没有任何问题,所以在这里出问题的小伙伴,考虑下自己数据的问题,软件的问题。
pyscenic grn --num_workers 10 \
--sparse \
--method grnboost2 \
--output grn.csv \
sce.loom \
allTFs_hg38.txt
pyscenic ctx --num_workers 10 \
--output regulons.csv \
--expression_mtx_fname sce.loom \
--mode "custom_multiprocessing" \
--motifs-v10nr_clust-nr.hgnc-m0.001-o0.0.tbl\
grn.csv \
hg38_10kbp_up_10kbp_down_full_tx_v10_clust.genes_vs_motifs.rankings.feather
pyscenic aucell --num_workers 6 \
--output sample_SCENIC.loom \
sce.loom \
regulons.csv
image.png
到这里我们还想探讨一个问题,那就是第一步为什么那么慢,如果仔细了解过的话都知道,第一步的目的是推断转录因子与提供的表达矩阵基因的共表达模块,所以慢就是因为基因多,所以前面我们第一步就是因为运行了所有的基因。这里我们测试了两个数据,一个是1000个基因1500个细胞,一个是1000个6000个细胞,发现运行时间是一样的。
#一个比对
#1000个基因1500个细胞的运行时间
2023-05-30 09:06:44,608 - pyscenic.cli.pyscenic - INFO - Loading expression matrix.
2023-05-30 09:06:44,765 - pyscenic.cli.pyscenic - INFO - Inferring regulatory networks.
2023-05-30 09:09:02,645 - pyscenic.cli.pyscenic - INFO - Writing results to file.
#1000个基因6000个细胞的运行时间
2023-05-30 09:32:42,268 - pyscenic.cli.pyscenic - INFO - Loading expression matrix.
2023-05-30 09:32:42,531 - pyscenic.cli.pyscenic - INFO - Inferring regulatory networks.
2023-05-30 09:35:03,436 - pyscenic.cli.pyscenic - INFO - Writing results to file.
所以我们建议在运行之前,可以对基因进行过滤,例如只有几个细胞表达的基因,或者大多数细胞表达为0的基因可以过滤后在进行分析,因为这些基因没有实质的意义和贡献,对于数据的分析结果也没有影响,还能提高效率。这个思路我认为是没有什么问题的。
Section2
Section1的方式我们之前的帖子说过,相信很多小伙伴已经了解掌握了,只需要更新数据库和软件即可。那么这一部分我们增加的是利用docker镜像进行pyscenic分析。关于docker这里不展开说,可以自行百度。其实爱学习的小伙伴在pyscenic官网的步骤中已经看到了作者讲的,docker镜像分析的步骤。docker的一个优势是速快稍微快一点,不容易出错,我们也测试了,好像是快那么一点。docker的安装需要root权限,所以不懂linux的小伙伴最好不要动,因为sudo很容易搞坏电脑。如果是服务器,一般共享的也没root权限。docker的安装可联系管理员。本地的linux子系统当然是可以安装的。
#安装docker,需要root权限
# 参考:
# 知乎:https://zhuanlan.zhihu.com/p/433898505
# docker官网:https://docs.docker.com/engine/install/ubuntu/
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker --help
# Usage: docker [OPTIONS] COMMAND
# A self-sufficient runtime for containers
# Common Commands:
# run Create and run a new container from an image
# exec Execute a command in a running container
# ps List containers
# build Build an image from a Dockerfile
# pull Download an image from a registry
# push Upload an image to a registry
# images List images
# login Log in to a registry
sudo service docker start
service docker status
安装好docker后,我们就可以下载pyscenic了。
#docker安装最新版pyscenic
sudo docker pull aertslab/pyscenic:0.12.1
# sudo: /etc/sudoers.d is owned by uid 1000000, should be 0
# [sudo] password for tq_ziv:
# 0.12.1: Pulling from aertslab/pyscenic
# 1efc276f4ff9: Pull complete
# 126aaa6587b8: Pull complete
# 0dd06b55ca68: Pull complete
# 3950cece0b72: Pull complete
# a4cc5c9d5acb: Pull complete
# bdf10448670a: Pull complete
# 6c5350e3d2c5: Pull complete
# Digest: sha256:0c06b8b0a00117e1a4b61303e9ad775bf53c9e410d4c344151c15bf0d143a288
# Status: Downloaded newer image for aertslab/pyscenic:0.12.1
# docker.io/aertslab/pyscenic:0.12.1
# pySCENIC CLI version + ipython kernel + scanpy.
docker pull aertslab/pyscenic_scanpy:0.12.1_1.9.1
分析也是基本的三部:
#run pyscenic
#step1
sudo docker run -it --rm \
-v /home/tq_ziv/pyscenic:/pyscenic aertslab/pyscenic:0.12.1 \
pyscenic grn \
--num_workers 10 \
--method grnboost2 \
--output /pyscenic/grn.csv \
--sparse \
/pyscenic/sce.loom \
/pyscenic/allTFs_hg38.txt
#step2
sudo docker run -it --rm \
-v /home/tq_ziv/pyscenic:/pyscenic aertslab/pyscenic:0.12.1 \
pyscenic ctx \
/pyscenic/grn.csv \
/pyscenic/hg38_10kbp_up_10kbp_down_full_tx_v10_clust.genes_vs_motifs.rankings.feather \
--annotations_fname /pyscenic/motifs-v10nr_clust-nr.hgnc-m0.001-o0.0.tbl \
--expression_mtx_fname /pyscenic/sce.loom \
--mode "custom_multiprocessing" \
--output /pyscenic/regulons.csv \
--num_workers 10
#step3
sudo docker run -it --rm \
-v /home/tq_ziv/pyscenic:/pyscenic aertslab/pyscenic:0.12.1 \
pyscenic aucell \
/pyscenic/sce.loom \
/pyscenic/regulons.csv \
-o /pyscenic/sample_SCENIC.loom \
--num_workers 6
这样就完成了,分析结束后按照之前的帖子进行下游的分析和可视化即可。这就是pyscenic的全部内容了。时不时更新下数据库,更新下软件,切记不可拿到别人的代码不思考便运行,不可能顺利拿到结果。觉得分享有用的点个赞、分享一下再走呗!当然了一般的共享服务器是没有root权限的,也不可能用sudo命令进行操作。可以参考我们专属的服务器:专属注册链接:西柚云超算
**pySCENIC全部往期精彩系列首先说一句,我们之前也发过R语言版本的SCENIC,但是后来我们感觉容易出错,而且费时,所以就没有再探究过。可是总是有小伙伴喜欢跑R,然后说这里错了,那里找不见,其实我们的帖子写于2022年,但是数据库已经更新了,去官网下载新的数据库,不能无脑跑代码。回到pySCENIC,之前我们写过整个系列4篇帖子,分析可视化都是很完善了。可是近期跑的时候发现在第一步有点问题,要么跑不动,要么出错,怀疑是软件和数据库没有更新的缘故,故而更新一下测试。这个帖子主要有两部分内容。
DriverRegulators
识别scRNAseq数据集中细胞状态转换的基础转录因子
该存储库包含源代码和有关DriverRegulators管道的信息(Grimaldi等人2021)。
该python代码将pyscenic和scvelo这2个python库的输出组合到了转录因子和相关靶基因的网络中。 常规工作流程为:
1-运行scvelo并按簇将最重要的驱动基因保存为表格
2-在同一数据集上运行pyscenic并生成“ f_loom_final.loom”文件
3-使用DriverRegulators代码生成节点和边的表
4-使用诸如Gephi之类的程序来可视化网络
MAESTRO(S的基于Odel等M A nalys(E S)英格尔-T细胞的ranscriptome和R egulö我)是一个综合的单细胞RNA-SEQ和ATAC-SEQ分析西装使用内置 。 MAESTRO结合了数十种工具和软件包,以创建一个集成的管道,从而可以从原始测序数据(fastq文件)一直进行比对,质量控制,细胞过滤,归一化,无监督聚类,差异表达,从而对scRNA-seq和scATAC-seq进行分析以及峰调用,细胞类型注释和转录调控分析。 目前,MAESTRO支持用于scRNA-seq协议的 , , ; 和用于scATAC-seq协议。
v1.0.0
释放MAESTRO。
v1.0.1
提供docker映像以方便安装。 请注意,泊坞窗不包括cellranger / cellranger ATAC以及相应的基因组索引。 请按照安装说明安装cell
转录因子通过与基因上游特定序列结合,调控着靶基因在特定的时间和空间以一定的强度表达.不同的转录因子之间通过多种方式相互组合,为这一调控过程提供了更多的可能.为了研究与表达相关的转录因子的调控模式,以GM12878细胞系作为研究对象,基于该细胞系的两种RNA-seq数据,得到了高、低表达基因集合,根据83种转录因子结合的ChIP-seq数据,在两个数据集中分别构建了与基因表达紧密相关的转录因子互作网络,并利用软件Cytoscape对网络进行可视化,从而直观地展现了高低表达基因中转录因子的相互作用模式.同时,利用WGCNA(Weighted Correlation Network Analysis)构建了转录因子的共调控网络,发现高表达基因集合的转录因子调控网络中的一些子网模式与WGCNA构建的共调控模块得到对照.最终在高表达基因转录因子相互作用网络中发现占据重要地位的转录因子BCL11A和特异的组合模式(NFYA-NFYB-SP1),另一种组合模式(BATF-IRF4)则同时存在于高低表达基因的网络中.
可扩展的SCENIC工作流程,用于单细胞基因调控网络分析
该存储库描述了如何对单细胞数据运行pySCENIC基因调控网络推断分析以及基本的“最佳实践”表达分析。 这包括:
独立的Jupyter笔记本电脑,用于交互式分析
Nextflow DSL1工作流程,它提供了一种半自动化且简化的方法来运行这些步骤
pySCENIC安装,使用和下游分析的详细信息
另请参阅《自然规约》中的相关出版物: : 。
有关此协议中步骤的高级实现,请参阅 ,这是pySCENIC的Nextflow DSL2实现,具有用于表达式分析的全面且可自定义的管道。 这包括其他pySCENIC功能(多次运行,集成的基于主题和基于轨迹的regulon修剪,织机文件生成)。
PBMC 10k数据集(10x基因组学)
完整的SCENIC分析,以及过滤,群集,可视化和SCope就绪的织机文件创建: |
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笔记本现在正式发布。 有关详细信息
CCA(canonical correlation analysis)是一种常用的多变量统计分析方法,可以用于整合分析单细胞转录组和空间转录组的数据。
单细胞转录组是指对单个细胞的转录组进行测量和分析,可以了解细胞间的异质性和功能特征。而空间转录组是指在组织或器官水平上,对转录组进行测量和分析,可以了解细胞在空间上的分布和相互作用。
在整合分析单细胞转录组和空间转录组时,首先需要对两种数据进行预处理,例如数据清洗、标准化和归一化等。然后,可以利用CCA方法来识别两种数据之间共享的信息和变化模式。
CCA通过最大化两个数据集之间的相关性,找到两者之间最大化的公共变量。具体步骤包括:首先,计算两个数据集之间的相关性矩阵;然后,利用Singular Value Decomposition(奇异值分解)将相关性矩阵分解成特征向量和特征值;最后,根据特征值的大小选择最相关的特征向量,得到两个数据集之间的相关性。
通过整合分析单细胞转录组和空间转录组的数据,可以获得以下优势:一是可以揭示细胞类型和组织结构之间的关系,帮助我们了解细胞的空间分布模式;二是可以发现特定细胞类型在不同组织中的表达模式和功能特征;三是可以识别具有生物学意义的共同变化模式,为进一步研究和解读提供线索。
当然,整合分析单细胞转录组和空间转录组的数据还需要结合其他的统计方法和生物学解释来进行综合分析和解读。这样的整合方法可以为我们更好地理解细胞和组织的功能和相互作用提供重要的信息。