參考生信技能樹(shù):pyscenic的轉(zhuǎn)錄因子分析結(jié)果展示之5種可視化娃磺、pyscenic的轉(zhuǎn)錄因子分析結(jié)果展示之各個(gè)單細(xì)胞亞群特異性激活轉(zhuǎn)錄因子
本教程復(fù)現(xiàn)系列:
pySCENIC的轉(zhuǎn)錄因子分析及數(shù)據(jù)可視化(二)
pySCENIC的轉(zhuǎn)錄因子分析及數(shù)據(jù)可視化(三)
1. 安裝pyscenic
對(duì)于這些陌生的軟件抱冷,現(xiàn)在發(fā)現(xiàn)最好還是直接給它弄個(gè)conda小環(huán)境來(lái)折騰俊抵,不然更難折騰出來(lái)教程內(nèi)容。
這一步是在linux下面操作
# 需要一些依賴,尤其是這個(gè)python 3.7版本
conda create -n pyscenic python=3.7 #創(chuàng)建小環(huán)境
conda activate pyscenic #激活小環(huán)境
conda install -y numpy #安裝依賴
conda install -y -c anaconda cytoolz
conda install -y scanpy
# conda install pip #如果沒(méi)有pip屯碴,還要運(yùn)行conda install pip安裝pip
pip install pyscenic -i https://mirrors.aliyun.com/pypi/simple/ #這里用阿里云鏡像竟趾,嗖嗖快
2. loom 文件制備
以pbmc3k為例,降維聚類焦匈,輸出csv矩陣文件。
這一步是在R里面操作
library(SeuratData) #加載seurat數(shù)據(jù)集
#InstallData("pbmc3k") #安裝pbmc3k數(shù)據(jù)
data("pbmc3k")
sce <- pbmc3k.final
library(Seurat)
table(Idents(sce))
p1=DimPlot(sce,label = T)
p1
write.csv(t(as.matrix(sce@assays$RNA@counts)), file = "pbmc_3k.all.csv")
這一步會(huì)生成一個(gè)70M的pbmc_3k.all.csv文件
接下來(lái)需要在Linux操作了昵仅。寫(xiě)一個(gè) Python腳本 ( csv2loom.py )把 csv格式的表達(dá)量矩陣 轉(zhuǎn)為 .loom 文件缓熟。
這一步是在linux下面操作
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("pbmc_3k.all.csv"); ## 曾老師的代碼這里是x=sc.read_csv("pbmc_3k.csv");
row_attrs = {"Gene": np.array(x.var_names),};
col_attrs = {"CellID": np.array(x.obs_names)};
lp.create("pbmc_3k.loom",x.X.transpose(),row_attrs,col_attrs);
上面的腳本寫(xiě)了后,就可以 運(yùn)行 Python腳本 ( csv2loom.py )把 csv格式的表達(dá)量矩陣 轉(zhuǎn)為 .loom 文件:
#conda activate pyscenic
python csv2loom.py
這一步會(huì)生成一個(gè)6.7M的pbmc_3k.loom文件摔笤。
3. pyscenic運(yùn)行
3.1 三大文件下載
但是在這之前需要提前下載好3個(gè)重要文件够滑。
文件1:hs_hgnc_tfs.txt,https://github.com/aertslab/pySCENIC/blob/master/resources/hs_hgnc_tfs.txt
文件2: hg19-tss-centered-10kb-7species.mc9nr.feather吕世,https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg19/refseq_r45/mc9nr/gene_based/hg19-tss-centered-10kb-7species.mc9nr.feather
文件3: motifs-v9-nr.hgnc-m0.001-o0.0.tbl彰触,https://resources.aertslab.org/cistarget/motif2tf/motifs-v9-nr.hgnc-m0.001-o0.0.tbl
第1個(gè)文件12k,第2個(gè)文件1.02G命辖,第三個(gè)文件99M况毅,大小一定要正確。下載時(shí)用wget尔艇,千萬(wàn)別用wget -c (不要問(wèn)我為什么尔许,因?yàn)槲矣脀get -c下載的第三個(gè)文件有120M,后面一直失斨胀蕖)母债。
3.2 run_pyscenic.sh腳本編寫(xiě)
# 不同物種的數(shù)據(jù)庫(kù)不一樣,這里是人類是human
dir=/home/data/wangxiong/project/pyscenic #改成自己的目錄
tfs=$dir/TF/TFs_list/hs_hgnc_tfs.txt
feather=$dir/hg19-tss-centered-10kb-7species.mc9nr.feather
tbl=$dir/TF/TFs_annotation_motif/human_TFs/motifs-v9-nr.hgnc-m0.001-o0.0.tbl
# 一定要保證上面的數(shù)據(jù)庫(kù)文件完整無(wú)誤哦
input_loom=pbmc_3k.loom
ls $tfs $feather $tbl
# pyscenic 的3個(gè)步驟之 grn
pyscenic grn \
--num_workers 20 \
--output adj.sample.tsv \
--method grnboost2 \
$input_loom \
$tfs
#pyscenic 的3個(gè)步驟之 cistarget
pyscenic ctx \
adj.sample.tsv $feather \
--annotations_fname $tbl \
--expression_mtx_fname $input_loom \
--mode "dask_multiprocessing" \
--output reg.csv \
--num_workers 20 \
--mask_dropouts
#pyscenic 的3個(gè)步驟之 AUCell
pyscenic aucell \
$input_loom \
reg.csv \
--output out_SCENIC.loom \
--num_workers 20
這一步會(huì)得到11M的out_SCENIC.loom文件尝抖。
最重要的三個(gè)文件如下
11M 3月 15 09:21 out_SCENIC.loom
6.7M 3月 13 20:59 pbmc_3k.loom
14M 3月 15 09:18 reg.csv
70M 3月 13 18:18 pbmc_3k.all.csv
下一步將復(fù)現(xiàn)pySCENIC結(jié)果初級(jí)和高級(jí)可視化。