虚拟扰动的计算机仿真器:基于先验调控网络生成伪 Perturb-seq 训练标签
InSilicoPerturbationSimulator
00 Remarks
真实的 GEARS 使用 CROP-seq / Perturb-seq 实测数据做监督训练;当没有实测扰动数据时, 本仿真器沿先验调控网络做带衰减的多跳信号传播,合成出「扰动 → 全转录组响应」的标签, 使 GNN 可以先行拟合出「扰动沿网络级联传播」的一般规律,再泛化到未见过的扰动。
单基因扰动的生成过程:
- 直接效应:由
InterventionSpec.GetInterventionValue()给出被扰动基因的干预值; - 级联效应:沿 TF → Target 方向做多跳扩散,
每一跳乘以衰减系数 decay,并按入度归一化、按边类型取符号(抑制边取反);
- 饱和与噪声:用 tanh 做软饱和防止多跳叠加爆量,并叠加少量高斯噪声模拟生物变异。
组合扰动额外引入非加性效应:若某个基因是多个被扰动基因的共同下游, 其响应会被协同放大(乘性增强),这正是 GEARS 相对传统「效应线性叠加」方法的核心优势。
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| .ctor | 1 | 创建虚拟扰动仿真器 |
| Simulate | 1 | 仿真一次(组合)扰动 |
| Diffuse | 1 | 从单个被扰动基因出发,沿调控方向做多跳扩散,返回每个基因收到的累计贡献 |
| NextGaussian | 1 | 生成标准正态分布随机数(Box-Muller 变换) |
03 Fields
| Name | Overloads | Summary |
|---|---|---|
| graphData | 1 | 基因调控图(提供稀疏入边缓存与边类型符号) |
| controlMean | 1 | control 条件下每个基因的表达均值 |
| controlSD | 1 | control 条件下每个基因的表达标准差 |
| decay | 1 | 每一跳的信号衰减系数 |
| maxHops | 1 | 最大传播跳数 |
| synergyStrength | 1 | 组合扰动的协同放大系数 |
| noiseLevel | 1 | 标签噪声水平(以基因标准差为单位) |
| rand | 1 | 随机数发生器 |
| ContributionEpsilon | 1 | 信号传播的贡献阈值,低于该值的下游基因不参与「共同下游」判定 |
04 Members
创建虚拟扰动仿真器
| Name | Type | Description |
|---|---|---|
graph | GeneRegulatoryGraph | 基因调控图 |
controlMean | Double() | control 表达均值 [numGenes] |
controlSD | Double() | control 表达标准差 [numGenes](用于饱和上限与噪声尺度) |
decay | Double | 每跳衰减系数,取值建议在 0.3~0.8 之间 |
maxHops | Int32 | 最大传播跳数,通常取 3~4 |
synergyStrength | Double | 组合扰动的协同放大系数,0 表示退化为线性叠加 |
noiseLevel | Double | 标签噪声水平(以基因为单位的标准差倍数) |
seed | Int32 | 随机种子;给定后仿真结果可复现 |
IEnumerable(Of InterventionSpec))仿真一次(组合)扰动
| Name | Type | Description |
|---|---|---|
specs | IEnumerable(Of InterventionSpec) | 干预定义集合;单个元素为单基因扰动,多个元素为组合扰动 |
合成出的训练样本;若所有目标基因都不在图中则返回 Nothing
Int32, Double)从单个被扰动基因出发,沿调控方向做多跳扩散,返回每个基因收到的累计贡献
| Name | Type | Description |
|---|---|---|
source | Int32 | 被扰动基因的节点索引 |
directDelta | Double | 该基因的直接表达变化量 |
每个基因从本次扰动中收到的累计贡献 [numGenes]
生成标准正态分布随机数(Box-Muller 变换)
标准正态随机样本
基因调控图(提供稀疏入边缓存与边类型符号)
control 条件下每个基因的表达均值
control 条件下每个基因的表达标准差
每一跳的信号衰减系数
最大传播跳数
组合扰动的协同放大系数
标签噪声水平(以基因标准差为单位)
随机数发生器
信号传播的贡献阈值,低于该值的下游基因不参与「共同下游」判定