BlockModules
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| SplitModules | 1 | 按 WGCNA 模块划分将基因分组(跳过 grey 模块,仅保留出现在 timeSeries 中的基因)。 |
| BuildModuleRegulatoryLinks | 1 | 从合并先验网络中筛选两端都属于当前模块基因的定向边,转为 DBN 拓扑所需的 RegulatoryLink 集合。调控方向沿用 prior 的 RegulationType; 若某模块无任何模块内先验边,返回空集合(DBN 退化为无父节点拓扑,仅学习自身时序分布)。 |
| ComputeModuleEigengene | 1 | 计算模块 eigengene 轨迹:各时间点上模块基因均值(顺序与 timeSeries 一致)。 时间点不足时返回长度为 1 的均值向量,关联图仍可工作(相关退化为常数)。 |
| BuildModuleCorrelationGraph | 1 | 基于模块 eigengene 轨迹的 Pearson 相关构建模块间关联图(邻接表,权重 = |cor|)。 仅保留 |cor| 超过阈值的双向关联。 |
| ApplyQuantileThresholds | 1 | 按每个基因在时间序列上的经验分布计算分位数阈值,写入网络的 per-node 离散化阈值。 时间序列通常是原始 log1p 表达值(量级 0~10+),而 DBN 的默认阈值(0.33 / 0.66) 是按"已归一化到 [0,1]"的数据设计的:log1p(x)=0.66 仅对应原始 count≈0.94, 直接使用会让几乎所有有表达的基因都被判为… |
| InferRegulationDirections | 1 | 用模块内的时间序列表达数据,重新推断每条调控边的方向(激活 / 抑制)。 WGCNA 先验网络的权重是非负的共表达强度(|cor| 的软阈值变换),不含方向符号; 伪速率先验也只生成激活边。因此若完全依赖先验,网络中将 100% 是激活边, 激活得分恒为正、CPT 的 Low 分支不可达,虚拟扰动也就无法产生任何下调响应。 这里改由表达数据本… |
| DifferencedLaggedCorrelation | 1 | 差分滞后相关:先对两条序列做一阶差分(去除伪时间轨迹的共同趋势), 再取 cor(Δx[t], Δy[t+1])。 直接用原始序列的滞后相关会被共同趋势主导:细胞沿伪时间连续变化, 相邻 bin 高度相似,几乎所有基因对的滞后相关都为正(实测 100% 为正, 完全无法区分激活与抑制)。差分后保留的是同步波动,才能反映真实的耦合方向。 |
| LaggedCorrelation | 1 | 滞后 Pearson 相关 cor(x[0..n-2], y[1..n-1]): 刻画"上游 t 时刻状态 → 下游 t+1 时刻状态"的时序关联(2TBN 语义)。 |
| ComputeWildtypeAbundance | 1 | 计算每个基因的野生型表达丰度:取该基因在全部时间点上的中位数。 用中位数而非均值,是因为单细胞 log1p 表达存在大量 dropout 零值与右尾异常值, 中位数刻画的是"典型表达水平",对它们稳健;均值会被异常高表达拉偏。 |
| Median | 1 | 中位数(对升序排序后的数组取中值,偶数个元素时取中间两个的均值) |
| Quantile | 1 | 取已升序排序数组的分位数(最近秩法) |
| Pearson | 1 | Pearson 相关(对不等长序列按较短者截断),用于模块 eigengene 轨迹相关度。 |
03 Members
IEnumerable(Of GeneModuleColor), GeneExpressionData)按 WGCNA 模块划分将基因分组(跳过 grey 模块,仅保留出现在 timeSeries 中的基因)。
String())从合并先验网络中筛选两端都属于当前模块基因的定向边,转为 DBN 拓扑所需的 RegulatoryLink 集合。调控方向沿用 prior 的 RegulationType; 若某模块无任何模块内先验边,返回空集合(DBN 退化为无父节点拓扑,仅学习自身时序分布)。
IReadOnlyCollection(Of Dictionary(Of String, Double)))计算模块 eigengene 轨迹:各时间点上模块基因均值(顺序与 timeSeries 一致)。 时间点不足时返回长度为 1 的均值向量,关联图仍可工作(相关退化为常数)。
IReadOnlyCollection(Of ModuleDBN), Double)基于模块 eigengene 轨迹的 Pearson 相关构建模块间关联图(邻接表,权重 = |cor|)。 仅保留 |cor| 超过阈值的双向关联。
按每个基因在时间序列上的经验分布计算分位数阈值,写入网络的 per-node 离散化阈值。
时间序列通常是原始 log1p 表达值(量级 0~10+),而 DBN 的默认阈值(0.33 / 0.66) 是按"已归一化到 [0,1]"的数据设计的:log1p(x)=0.66 仅对应原始 count≈0.94, 直接使用会让几乎所有有表达的基因都被判为 High,使学习到的 CPT 与推理证据都偏向 High。 用分位数自适应阈值可以保证 Low / Medium / High 三态在数据侧获得合理比例。
用模块内的时间序列表达数据,重新推断每条调控边的方向(激活 / 抑制)。
WGCNA 先验网络的权重是非负的共表达强度(|cor| 的软阈值变换),不含方向符号; 伪速率先验也只生成激活边。因此若完全依赖先验,网络中将 100% 是激活边, 激活得分恒为正、CPT 的 Low 分支不可达,虚拟扰动也就无法产生任何下调响应。
这里改由表达数据本身推断方向:按 2TBN 的时序因果语义,取 TF[t] 与 target[t+1] 的滞后相关,正相关判为激活、负相关判为抑制。
Double(), Double())差分滞后相关:先对两条序列做一阶差分(去除伪时间轨迹的共同趋势), 再取 cor(Δx[t], Δy[t+1])。
直接用原始序列的滞后相关会被共同趋势主导:细胞沿伪时间连续变化, 相邻 bin 高度相似,几乎所有基因对的滞后相关都为正(实测 100% 为正, 完全无法区分激活与抑制)。差分后保留的是同步波动,才能反映真实的耦合方向。
Double(), Double())滞后 Pearson 相关 cor(x[0..n-2], y[1..n-1]): 刻画"上游 t 时刻状态 → 下游 t+1 时刻状态"的时序关联(2TBN 语义)。
List(Of Dictionary(Of String, Double)), String())计算每个基因的野生型表达丰度:取该基因在全部时间点上的中位数。
用中位数而非均值,是因为单细胞 log1p 表达存在大量 dropout 零值与右尾异常值, 中位数刻画的是"典型表达水平",对它们稳健;均值会被异常高表达拉偏。
List(Of Double))中位数(对升序排序后的数组取中值,偶数个元素时取中间两个的均值)
Double(), Double)取已升序排序数组的分位数(最近秩法)
Double(), Double())Pearson 相关(对不等长序列按较短者截断),用于模块 eigengene 轨迹相关度。