Skip to content

敲掉一个基因,看细胞往哪走——云服务器预装 CellOracle,登录即模拟 ​

上一篇我们用 scTenifoldKnk 做了“虚拟敲除”:敲掉一个基因,看下游哪些基因跟着变。这篇更进一步——不只看哪些基因变,还要看细胞会往哪个方向走。

用的工具是 CellOracle:给它一份单细胞数据,它先推断基因调控网络,然后就能在电脑里做模拟实验——把指定基因人为敲除(表达置零)或过表达(拉高表达),预测全基因组怎么变、各类细胞的状态可能往哪边偏移,最后用向量场箭头图直观展示。整套流程已在我们云服务器上部署完毕,开箱即用。

一、CellOracle 比虚拟敲除多走了哪一步 ​

scTenifoldKnk 回答的是“敲掉基因 A,哪些基因受影响”;CellOracle 回答的是一个更有画面感的问题:

敲掉(或拉高)这个基因之后,这群细胞可能往哪种类型的方向“漂”?

它基于推断出的调控网络,把每个细胞的预测变化画成一支箭头,成千上万支箭头叠在细胞分群图上,就是一张“细胞走向预测图”——箭头整体指向哪,提示细胞状态可能往哪边偏。药物靶点筛选、转录因子功能研究,都可以参考这张图缩小验证范围。

而且它是双向的:同一个基因,敲除(KO)和过表达(OE)各模拟一轮。两个方向的预测结果互为“镜像”,本身就是结果可靠性的一个天然佐证(后面会用到这个知识点)。

二、用大白话讲一遍原理 ​

把单细胞数据想象成一个班级的档案:每个细胞是一名学生,每个基因是一门科目,表达量就是成绩。

  1. 推断调控网络(GRN):分析全班成绩,反推“谁是课代表、各管哪几门课”——某门课的成绩波动总能带动另外几门课一起动,那它大概率就是这几门课的“课代表”(转录因子)。
  2. 模拟扰动:把某位课代表自己那门课的成绩改成 0 分(敲除)或拔到全班前 5%(过表达),顺着推断出的“负责关系表”一层层传下去,直到传遍全班。
  3. 画走向图:每个学生每门课都有了“新成绩”,和原成绩的差就是预测变化量,画成箭头,就是全班的“成绩走向图”。

三、环境:登录即用 ​

CellOracle 全套流程已预置在服务器公共路径 /media/share/share_code/celloracle 下:分析脚本、示例数据、Conda 环境一应俱全。登录服务器后用绝对路径直接调用即可,不需要自己安装任何依赖。

使用前先激活公共环境(绝对路径):

bash
source /media/share/share_code/celloracle/celloracle/bin/activate

激活后命令行提示符前出现 (celloracle) 即成功:环境内含全部 Python 组件(CellOracle 0.22.0),R 端使用服务器自带的 R 4.4.1(Seurat、Matrix 已预装),后续所有命令都在该环境中执行。工作目录请设到自己目录,不在公共路径下读写。

环境的部署与更新由技术团队统一维护,客户侧无需关心版本细节。

光装好还不算完,我们又做了一个验证动作:换用一个普通账号,激活公共环境,把四步流程完整重跑了一遍——结果与首次部署数字级一致:ATF3 敲除后自身变化量 -0.675095(首次为 -0.675101,小数点后四位相同),下游基因排序完全重合。也就是说,任何账号登录服务器,都能复现同一套结果。

四、实战:46,747 个细胞里敲除 ATF3 ​

数据是一份皮肤来源单细胞转录组数据:46,747 个细胞、13 种细胞类型、15,166 个基因。项目研究基因名单共 36 个,公共示例默认以 ATF3(经典应激反应转录因子)为演示基因。

整个流程四步,每步一条命令。先激活公共环境、再在自己目录下建工作文件夹执行——结果图就生成在你的目录里:

bash
# 激活公共环境(绝对路径)
source /media/share/share_code/celloracle/celloracle/bin/activate

# 工作目录设到自己目录(首次使用先创建),结果输出到当前目录
mkdir -p ~/celloracle_demo
cd ~/celloracle_demo

# 第一步:R 端整理数据,生成 CellOracle 标准输入
Rscript /media/share/share_code/celloracle/run_celloracle_from_rdata.R

# 第二步:推断基因调控网络(13 种细胞类型各推各的,最后汇总)
python /media/share/share_code/celloracle/run_celloracle_grn.py

# 第三步:敲除/过表达模拟(自动从名单选第一个可扰动基因,KO+OE 各一轮)
python /media/share/share_code/celloracle/run_ko_oe_separate.py

# 第四步:出彩底向量场图(按细胞类型着色)
python /media/share/share_code/celloracle/generate_celloracle_target_figures.py ATF3

脚本自带“上岗资格检查”:目标基因得在表达矩阵里存在、得是调控因子、还得真的在活跃调控,三个条件都满足才会被模拟——不满足自动换名单里的下一个。

想换成你自己的基因名单:在工作目录里新建一个 gene.txt,每行写一个基因名即可,不用改代码;不新建则默认使用公共示例名单。

五、结果:敲除与过表达,两张镜像的“细胞走向图” ​

ATF3 敲除(KO) ​

每种颜色是一种细胞类型,箭头是模型预测的细胞状态偏移方向。

ATF3 敲除彩底向量场图

ATF3 过表达(OE) ​

与上图对照,箭头方向整体相反——反向扰动,预测偏移方向相反,呈“镜像”关系。

ATF3 过表达彩底向量场图

需要说明的是,图中箭头反映的是基于单细胞数据与推断网络得到的预测结果,提示扰动后细胞状态的可能变化趋势。图好看不算数,我们还立了三条验收标准,全部通过:

  • 被扰动基因自身的预测变化量排在全基因组第一梯队——提示调控网络“听见”了这次扰动(ATF3 敲除后自身变化量 -0.675,全基因组排名第一;CEBPB 敲除后 -0.678,在 2,028 个基因中排第 1)。
  • KO 与 OE 的全基因组变化呈镜像(相关系数接近 -1)。
  • 箭头有组织、有方向,不是无规则的随机抖动。

另一个有意思的细节:ATF3 敲除后预测变化最大的基因是 FOS、JUN、ZFP36、GADD45B、NFKBIA 等经典应激反应基因——其中 FOS/JUN(AP-1 复合体)正是文献报道中 ATF3 的已知搭档。计算预测与已有生物学认知互相印证,提示这套网络推断与模拟结果具有生物学合理性,候选下游基因值得进一步实验验证。

CEBPB 敲除与过表达 ​

名单里另一个转录因子 CEBPB 的两轮模拟,KO 后 716 个基因下调、219 个上调,预测变化最大的下游基因包括 PERP、GAPDH、ID3、MT2A 等,KO 与 OE 同样呈现清晰的镜像关系。

CEBPB 敲除向量场图

CEBPB 过表达向量场图

六、小结 ​

  • CellOracle = 基因调控网络推断 + 敲除/过表达双向模拟 + 细胞走向向量场预测图。
  • 四步脚本全自动:整理输入 → 推断网络 → 扰动模拟 → 出彩底图。
  • 36 个研究基因按名单顺序自动筛选、自动模拟,一轮跑出全套结果。
  • 脚本、数据、环境已归档公共路径,并经第二个账号完整重跑验证——带上你自己的单细胞数据和基因名单,登录就能跑出同款图。

想给自己的基因也“改改分”,欢迎联系我们的技术团队开通体验。

本文分析脚本、示例数据与公共环境已归档至公共路径 /media/share/share_code/celloracle,登录服务器即可复现。