pySCENIC对单细胞转录因子分析可视化(上)






pySCENIC对单细胞转录因子分析可视化(上)

大海哥  生信果  2023-08-12 19:02:04

点击蓝字 关注我们


SCENIC(Single-Cell rEgulatory Network Inference and Clustering)是一个基于共表达和motif分析,用于计算单细胞转录组数据基因调控网络重建及细胞状态鉴定的方法,可以简单理解为单细胞转录因子分析。


官方教程https://github.com/aertslab/SCENIC

这里使用python版本的pyscenic和R可视化相结合的方法,利用单细胞注释完整的Seurat对象,得到不同组别和不同细胞类型中高表达的转录因子热图。


注意:1、SCENIC数据库支持的物种包括人类、小鼠和果蝇,如果研究其他物种需要手动构建RcisTarget databases

2、SCENIC对电脑要求较大、耗时长,最好在服务器中运行。如我们常见的PBMC数据库的1w个细胞在服务器中运行需要占用CPU约两个小时、消耗60G左右的内存。


#表达矩阵

#表达矩阵首先在R里将Seurat对象的表达量矩阵输出为csv文件write.csv(t(as.matrix(sce@assays$RNA@counts)),          file = "count.csv") #pyscenic的输入文件是行为基因名,列为细胞ID的矩阵,所以在seurat对象中导出矩阵的时候记得转置一下哦~


#格式转换

#格式转换再在linux环境写一个python脚本(csv2loom.py),将csv转换为loom文件import os, sysos.getcwd()os.listdir(os.getcwd()) 
import loompy as lp;import numpy as np;import scanpy as sc;x=sc.read_csv("count.csv");row_attrs = {"Gene": np.array(x.var_names),};col_attrs = {"CellID": np.array(x.obs_names)};lp.create("sample.loom",x.X.transpose(),row_attrs,col_attrs)
如果提前配置好了pyscenic环境conda activate pyscenicpython csv2loom.py#这一步运行可能需要一段时间,可以使用”nohup &”命令挂后台哦。运行结束后就得到了我们需要的loom文件。


#文件准备

#文件准备运行pyscenic之前需要在linux提前下载好三个文件(这里针对人类样本)1、hs_hgnc_tfs.txt(转录组因子列表)https://github.com/aertslab/pySCENIC/blob/master/resources/hs_hgnc_tfs.txt2、hg19-tss-centered-10kb-7species.mc9nr.feather(reference数据库)https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg19/refseq_r45/mc9nr/gene_based/hg19-tss-centered-10kb-7species.mc9nr.feather3、motifs-v9-nr.hgnc-m0.001-o0.0.tbl(TF注释)https://resources.aertslab.org/cistarget/motif2tf/motifs-v9-nr.hgnc-m0.001-o0.0.tbl#下载后记得用md5核对哦


接下来就可以正式开始pyscenic啦

第一步grn:过滤共表达矩阵,将target格式化为共表达模块

pyscenic grn --num_workers 20  #最好设置一下,否则可能会把服务器CPU占满--output adj.sample.tsv --method grnboost2 sample.loom hs_hgnc_tfs.txt


第二步cistarget:基于DNA-motif的分析,选择潜在的直接结合的target(regulons)

pyscenic ctx adj.sample.tsv hg19-tss-centered-10kb-7species.mc9nr.feather --annotations_fname motifs-v9-nr.hgnc-m0.001-o0.0.tbl --expression_mtx_fname sample.loom --mode "dask_multiprocessing" --output reg.csv --num_workers 3 --mask_dropouts


第三步AUCell:计算细胞中的regulon得分,鉴定细胞的状态及其调控因子

pyscenic aucell sample.loom reg.csv --output sample_SCENIC.loom --num_workers 3


经过这三步,我们能得到sample_SCENIC.loom文件,之后就可以导入R并结合Seurat对象进行热图分析了。我们先来看一下文章里呈现的效果是怎样的吧~



#图片来源:《Single-cell RNA sequencing highlights the role of inflammatory cancer-associated fibroblasts in bladder urothelial carcinoma》


上游处理就是这样啦,下一篇推送里我们将介绍R的可视化内容,大家感兴趣的欢迎期待一下~


单细胞相关分析内容可以尝试使用本公司新开发的云平台生物信息分析小工具,不用代码就能傻瓜式完成分析,欢迎大家来尝试哟!

http://www.biocloudservice.com/home.html


点击“阅读原文”进入网址