DBNConfig {SMRUCC.genomics.Analysis.BNLearn.DBN} .NET clr documentation

DBNConfig

Description

Configuration options for the Dynamic Bayesian Network. Controls discretization thresholds, smoothing, transcription rate mapping, etc.

Declare

            
# namespace SMRUCC.genomics.Analysis.BNLearn.DBN
export class DBNConfig {
   # 激活得分判定为"高表达"的下限(默认 0.58)。
   # 
   # 得分由 noisy-OR 组合得到,父节点数为 P 时单个父节点由 Medium 变 Low 只会让得分变动约 0.5^P(P=8 时约 0.06)。若沿用较宽的区间(0.34/0.66, 区间宽度 0.32),单基因敲降带来的得分变化远不足以跨越区间, 所有基因都会被钉死在 Medium,虚拟扰动也就观测不到任何响应。 默认取 0.42/0.58(区间宽度 0.16),使单基因扰动能够跨越状态边界。
   ActivationHighThreshold: double;
   # 激活得分判定为"低表达"的上限(默认 0.42),见 DBNConfig.ActivationHighThreshold。
   ActivationLowThreshold: double;
   # Transcription rate for "Medium" expression state (basal)
   BasalTranscriptionRate: double;
   # 级联传播触发下游模块整体状态偏置的阈值(默认 0.005)。
   # 
   # 传播量是"模块内基因状态相对基线的平均变化"(状态值 Low=0/Medium=1/High=2)。 单基因敲降通常只影响其直接靶标(实测约占模块基因的 0.3%~0.5%, 对应传播信号量级 0.003~0.005)。原实现固定取 0.1,且用的是恒为正的速率均值, 导致级联要么永远不触发、要么被单向锁定为 High。 设为 0 可让任何扰动都跨模块传播(放大效应强),调大则只有强扰动才传播。
   CascadeStateThreshold: double;
   # Upper threshold for discretization (values above this = "High")
   HighThreshold: double;
   # Transcription rate for "High" expression state
   HighTranscriptionRate: double;
   # Lower threshold for discretization (values below this = "Low")
   LowThreshold: double;
   # Transcription rate for "Low" expression state
   LowTranscriptionRate: double;
   # 计算惰性节点的边缘分布时使用的蒙特卡洛采样数(配置空间过大时无法枚举)。
   MarginalSampleSize: integer;
   # 惰性 CPT 的记忆化缓存上限:单个节点最多缓存多少个"现场计算过"的父配置。 超过后不再写入缓存,每次查询直接计算,保证稀疏缓存不会无限增长 (父节点多时每个 key 字符串可达数百字节,缓存条目数需要设上限)。
   MaxCPTCacheRows: integer;
   # 单个节点 CPT 允许"完整展开"的最大行数。
   # 
   # 不超过该阈值(默认 10000,即 3 态下 P<=8)时按原逻辑展开全表; 超过时改为按需计算(惰性 CPT,见 ConditionalProbabilityTable.OnDemandProvider): 拓扑先验分布本身就是父状态的纯函数,查询时现场计算的结果与全表展开完全一致, 但内存占用从 O(3^P) 降为 O(实际访问过的配置数)。
   MaxCPTRows: integer;
   # 单个节点允许的最大父节点数(拓扑构建阶段的兜底保护)。
   # 
   # CPT 的行数为各父节点状态数之积(默认 3 态即 3^P),父节点数不受限时 规模会指数爆炸(实测模块内 hub 基因的父节点数可达 39)。
   # 
   # 默认值 8 的另一层意义是模型判别力:激活得分用 noisy-OR 组合, 当父节点数为 P 时,单个父节点从 Medium 变为 Low 只会让 activationScore 从 1-0.5^P 变为 1-0.5^(P-1),P 越大变化越小 (P=39 时差异约 1e-12),单基因敲降将完全无法产生可观测的响应。 取 8 既符合转录调控 fan-in 的一般规模,也让每个父节点保持足够影响权重。
   MaxParents: integer;
   # 每个节点(基因)的离散化阈值:key = 节点 ID,value = (low_threshold, high_threshold)。
   # 
   # 默认阈值 DBNConfig.LowThreshold / DBNConfig.HighThreshold(0.33 / 0.66)是按 "已归一化到 [0,1] 的数据"设计的;而时间序列常常是原始 log1p 表达值(量级 0~10+), 此时几乎所有基因都会被判为 High,导致学习到的 CPT 与推理证据都严重偏向 High。
   # 
   # 由训练流程按数据的经验分位数填好该字典后,参数学习(LearnParameters)与 推理(PredictNextState)都会经 GetThresholds 命中这里,保证两侧使用同一套阈值。
   NodeThresholds: list;
   # Learning rate for online parameter updates (exponential moving average)
   OnlineLearningRate: double;
   # 自适应阈值所使用的高分位数(默认 0.66,即约 1/3 的样本落入 High)。
   QuantileHigh: double;
   # 自适应阈值所使用的低分位数(默认 0.33,即约 1/3 的样本落入 Low)。
   QuantileLow: double;
   # Random seed for reproducible stochastic sampling
   Seed: integer;
   # Smoothing parameter for parameter learning (Dirichlet prior concentration). Larger values give more weight to the topology-based prior. When alpha = 0: pure Maximum Likelihood Estimation (data only). When alpha is large: prior dominates (topology only). Default = 1.0 (Laplace smoothing with topology prior).
   SmoothingAlpha: double;
   # If true, sample from the probability distribution (stochastic prediction). If false, take the most likely state (deterministic, argmax). Default = false (deterministic).
   UseMultinomialSampling: boolean;
}

        

.NET clr type reference tree

  1. use by property member NodeThresholds: list

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