SCENIC (Single-Cell rRegulatory Network Inference and Clustering)是一種能夠從單細胞 RNA-seq 數據(SCENIC)或單細胞 RNA-seq+單細胞 ATAC-seq 的組合(SCENIC+, 今年新發(fā)的Nature Methods, 2023, 20, 1355–1367)中同時進行轉錄因子推斷、基因調控網絡重建的方法。
工作流程主要分為三個步驟:共表達網絡推斷畸写、通過基因 motif 驗證的調控網絡模塊(regulons)、regulons 活性計算。
pySCENIC中共表達推斷方法GRNBoost2相比于R中GENIE3有很大的速度提升,所以建議前面的分析使用pySCENIC盾舌,后面可視化還是在R中進行(因為本人不怎么會python……)。- R中提取轉置后的表達矩陣
mat <- as.matrix(sc@assays$RNA@counts)
#mat <- mat[rowSums(mat)>10,]
write.csv(t(mat),file="./counts.csv")
2.conda安裝
conda create -n pyscenic python=3.7 #注意自己的python版本
conda activate pyscenic
conda install -y numpy
conda install -y -c anaconda cytoolz
conda install -y scanpy
pip install pyscenic
3.制作一個trans.py蘸鲸,主要目的是把提取的表達矩陣轉成loom文件妖谴,python trans.py運行
os.getcwd()
os.listdir(os.getcwd())
import loompy as lp;
import numpy as np;
import scanpy as sc;
x=sc.read_csv("counts.csv");
row_attrs={"Gene":np.array(x.var_names),};
col_attrs={"CellID":np.array(x.obs_names)};
%lp.create("sc.loom",x.X.transpose(),row_attrs,col_attrs);
4.準備好三個文件ranking database, motif database, TF list(注意物種),下載地址:
Welcome to the cisTarget resources website! (aertslab.org)
pySCENIC/resources at master · aertslab/pySCENIC (github.com)
5.三步搞定棚贾,最后得到sc_SCENIC.loom, reg.csv, adj.sc.tsv這三個文件就可以進行下一步可視化了
#推斷轉錄因子與候選靶基因之間的共表達模塊
pyscenic grn \
--num_workers 20 \
--output adj.sc.tsv \
--method grnboost2 \
sc.loom \
mm_mgi_tfs.txt
#DNA-motif分析選擇TF潛在直接結合的靶點(regulon)
pyscenic ctx \
adj.sample.tsv /mm9-tss-centered-10kb-7species.mc9nr.genes_vs_motifs.rankings.feather \
--annotations_fname /mm10/cisTarget_database/motifs-v9-nr.mgi-m0.001-o0.0.tbl \
--expression_mtx_fname sc.loom \
--mode "dask_multiprocessing" \
--output reg.csv \
--num_workers 20 \
--mask_dropouts
#計算Regulons的活性
pyscenic aucell \
sc.loom \
reg.csv \
--output sc_SCENIC.loom \
--num_workers 8