以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