ElasticNet {SMRUCC.genomics.Analysis.CellPhenotype} .NET clr documentation

ElasticNet

Description

基于弹性网络线性调控网络(GeneRegulatoryNetwork)的虚拟扰动引擎。

每一个基因的回归方程 x_t = c_t + sum(beta_t,r * x_r) 被当作一条结构方程, 于是整个网络构成一个线性动力系统。施加扰动的时候采用 Pearl 的 do 算子语义: 被扰动基因的入边被"切断",在每一轮迭代之中都被强制固定为干预值,其余基因 迭代求解干预之后的稳态:

 x_t(k+1) = x_t(k) + lambda * [ (c_t + sum(beta_t,r * x_r(k))) - x_t(k) ]

由于所有模型都带截距并且在同样的样本上面最小二乘拟合,样本均值本身就是一个 近似不动点,因此从基线起步的迭代等价于对变化量做 delta(k+1) = B * delta(k): 第一步即为一阶直接效应,后续步骤为多跳传播。

使用约束与已知偏差:

  1. 回归系数是"其它调控因子保持不变"之下的条件效应,与被扰动基因高度共线的 另一批基因在模型里面仍然停留在基线之上,因此共线模块之中的单基因扰动 其效应量是不可辨识的(符号可靠、幅度不可靠),只有整个模块的效应之和才有意义。
  1. 候选调控因子池会被 GrnFittingOptions.maxCandidates、 GrnFittingOptions.minAbsCorrelation 与 GrnFittingOptions.maxRegulatorsPerGene 截断,因此部分真实的 调控边并没有进入模型,级联效应会被系统性地低估。请结合 ElasticNetInterventionResult.UnmodelledRegulatorGenes 判断结果。
  1. 本引擎只能用于假说生成与靶点排序,不能替代真实的 Perturb-seq 定量实验。

Declare

            
# namespace SMRUCC.genomics.Analysis.CellPhenotype
export class ElasticNet {
   # 野生型基线(原始表达量尺度),默认是每一个基因的样本均值。
   # 
   # 可以显式赋值以指定对照组基线(例如某个对照样本子集的均值), 赋值 Nothing 可以恢复默认行为。
   Baseline: double;
   # 被模拟的线性调控网络。
   Network: GeneRegulatoryNetwork;
   # 虚拟扰动的参数配置。
   Options: ElasticNetPerturbationOptions;
   # 当前网络是否建立在 z-score 标准化之后的表达量之上。
   # 
   # 标准化模式之下回归系数位于 z-score 空间,本引擎会在内部完成 原始表达量与模型空间之间的换算,对外的结果始终是原始表达量尺度。
   Standardized: boolean;
   # 严格模式,默认为 True。
   # 
   # True:当扰动目标基因不在网络之中时抛出 MissingMemberException; False:打印一条警告,不执行虚拟扰动,直接以野生型数据作为扰动结果返回, 并把结果标记为未定义(InterventionResult.Undefined = True)。
   # 
   # 这个语义与 BnInterventionAnalyzer.Strict 保持一致。
   Strict: boolean;
   # 从未作为调控因子(非零出边)出现过的基因编号。
   # 
   # 这些基因的扰动效应恒为零,通常是因为候选调控因子池被截断, 不能解读为"该基因没有调控作用"。
   UnmodelledGenes: string;
}

        

.NET clr type reference tree

  1. use by property member Network: GeneRegulatoryNetwork
  2. use by property member Options: ElasticNetPerturbationOptions

[Package {$package} version {$version} Index]