pySCENIC转录因子分析

单细胞系列教程目录索引,持续更新...


Ubuntu 20.04为例,首先按照Anaconda官网方法安装Anaconda后配置conda为系统命令环境。
这里我们以conda创建虚拟隔离环境以避免和其他软件环境错乱。

conda config --add channels r   
conda config --add channels conda-forge   
conda config --add channels bioconda  
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/  
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/  
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/  
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/  
conda config --set show_channel_urls yes
##创建虚拟环境、激活、安装依赖包和pyscenic
conda create -n pyscenic python=3.7   
conda activate pyscenic   
conda install -y numpy  
conda install -y -c anaconda cytoolz  
conda install -y scanpy  
pip install pyscenic

使用R提取表达矩阵

library(Seurat)
load(file = "new.data/05.tumor_ep_clustered.rdata")
write.csv(t(as.matrix(sce@assays$RNA@counts)),file = "/home/xuran/Desktop/pyscience/ep.csv",quote = F)

写一个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("fibo_1000.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);

将从R提取的表达矩阵文件与python脚本放在同一目录下并运行脚本.

python change.py

运行成功后会在目录下生成一个sample.loom文件用于后续分析

pyscenic 之 grn

方法1

#注意修改num_workers线程数
pyscenic grn \
    --num_workers 32 \
    --output adj.sample.tsv \
    --method grnboost2 \
    sample.loom \
    hs_hgnc_tfs.txt#转录因子文件,1839  个基因的名字列表

方法2

arboreto_with_multiprocessing.py \
    sample.loom \
    hs_hgnc_tfs.txt \
    --method grnboost2 \
    --output adj.tsv \
    --num_workers 32 \
    --seed 777

hs_hgnc_tfs.txt转录因子文件获取自作者Github
这一步骤使用随机森林,运行速度很慢,我的2.5W细胞使用32核3.2gHz服务器运行大概6-8小时。运行成功后会在当前目录下生成adj.sample.tsv 文件

pyscenic 之 cistarget

代码如下所示,复制粘贴后运行即可:

同样的需要下载数据库文件,https://resources.aertslab.org/cistarget/

pyscenic ctx \
adj.tsv \
hg38__refseq-r80__10kb_up_and_down_tss.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 32 \
--mask_dropouts

pyscenic 之 AUCell

这个步骤超级快,代码如下所示,复制粘贴后运行即可:

pyscenic aucell \
    sample.loom \
    reg.csv \
    --output sample_SCENIC.loom \
    --num_workers 32

参考来源:
https://github.com/aertslab/pySCENIC

问题交流:
Email: xuran@hrbmu.edu.cn

推荐阅读更多精彩内容