本文不仅涵盖环境配置、数据准备、PySCENIC 三步分析,还贴心标注了常见报错与避坑点,全流程一文打尽!
我们先在 R 中使用 Seurat
筛选目标细胞群(如 fibroblast & myofibroblast),并将表达矩阵导出:load("/home/data/.../subset.Rdata")
DimPlot(subset_data2, label = TRUE)
write.csv(
t(as.matrix(subset_data2@assays$RNA@counts)),
file = "/.../fibo_1000.csv"
)
💡 提示:PySCENIC 要求行为细胞、列为基因,因此必须转置!
⚙️ 二、创建 Python 环境并注册 Jupyter 内核
在终端执行以下命令,创建 PySCENIC 专属环境,并在 Jupyter Notebook 中注册:
conda create -n pyscenic python=3.10
conda activate pyscenic
pip install pyscenic
conda install ipykernel
python -m ipykernel install --user --name pyscenic --display-name "pyscenic"
📂 三、安装依赖工具包
PySCENIC 需要 loompy
、scanpy
等包:
pip install loompy scanpy
pip install numpy==1.22 pandas==1.5.3
⚠️ numpy 与 numba 版本需匹配,强烈建议固定 numpy==1.22
!import scanpy as sc
import loompy as lp
import numpy as np
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.T, row_attrs, col_attrs)
pyscenic grn sample.loom allTFs_mm.txt \
--num_workers 40 \
--output adj.sample.tsv \
--method grnboost2
📌 allTFs_mm.txt 是转录因子列表,可从官方数据库下载或自建。🔹 Step 2:富集 motif 匹配(ctx)pyscenic ctx adj.sample.tsv \
/path/to/mm10.genes_vs_motifs.rankings.feather \
--annotations_fname /path/to/motifs.tbl \
--expression_mtx_fname sample.loom \
--output reg.csv \
--mode "dask_multiprocessing" \
--num_workers 40 \
--mask_dropouts
🧠 该步骤将 motif 匹配信息与调控网络整合,生成 regulons
。🔹 Step 3:AUCell 打分,评估 regulon 活性pyscenic aucell sample.loom reg.csv \
--output sample_SCENIC.loom \
--num_workers 3
✨ 得到的 .loom
文件可用于 regulon 打分、tSNE/UMAP 可视化等后续分析。🧩 六、常见报错 & 避坑提醒
| |
---|
SyntaxError: invalid syntax | |
pyscenic: command not found | |
numpy 不兼容 | 安装 numpy==1.22 与 numba 匹配 |
loompy 找不到 | pip install loompy -U |
| |
🎁 七、进阶用法:Singularity镜像运行(HPC 推荐)singularity run aertslab-pyscenic-0.12.1.sif \
pyscenic grn sample.loom allTFs_mm.txt \
--output adj.tsv --num_workers 6