基于 WGCNA 模块划分的贝叶斯子网络训练 + 全局虚拟扰动流水线
ModularNetworkPipeline
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| Learn | 1 | 模块切分 → 子网络训练 → 全局矩阵拼接 |
| InsilicoPerturbation | 1 | 各源基因全局扰动。 |
| SaveResults | 1 | 写出全局扰动响应矩阵(行=基因,列=各扰动源)与每个源的明细 TSV,并打印摘要。 |
| SaveModel | 1 | Save current model as zip archive file |
| LoadModel | 1 | load ModularNetworkPipeline model from a zip archive file. |
| IndexDir | 1 | 模块 / 子网络在 zip 内的目录名(用序号命名,避免模块颜色中的特殊字符影响条目名) |
| WriteText | 1 | 将一段文本写入 zip 包内的指定条目 |
| GetEntry | 1 | 按条目名查找 zip 内的条目(路径分隔符统一为 /,大小写不敏感) |
| ReadLines | 1 | 读取文本条目的全部非空行 |
| ReadNames | 1 | 读取名称清单(节点名 / 基因名 / 样本名)。 与 ModularNetworkPipeline.ReadLines()) 不同,这里保留空行,否则行号会与索引错位, 仅剔除文件末尾换行所产生的那一个空行。 |
| ReadMeta | 1 | 读取 key=value 形式的元数据条目 |
| WriteNet | 1 | 写出一个贝叶斯网络的三段:nodes.txt(行号即节点索引)/ edges.tsv / cpt.tsv。 全局聚合网络与各模块子网络共用这一对读写函数。 |
| ReadNet | 1 | 读回 ModularNetworkPipeline.WriteNet()) 写出的贝叶斯网络(含全部 CPD) |
| WriteDoubles | 1 | 以二进制块写出 double 向量(Int32 长度 + 数据体),避免大数组走文本解析。 |
| ReadDoubles | 1 | 读回 ModularNetworkPipeline.WriteDoubles()) 写出的 double 向量 |
| WriteMatrix | 1 | 以二进制块写出二维 double 矩阵:Int32 行数 + Int32 列数 + 行优先数据体。 用于全局雅可比矩阵 A 与标准化表达矩阵(后者行列分别为基因与样本)。 |
| ReadMatrix | 1 | 读回 ModularNetworkPipeline.WriteMatrix()) 写出的矩阵,条目缺失或为空时返回 Nothing |
| Num | 1 | 以 G17 无损格式写出数值(固定使用不变区域文化,避免受系统区域设置影响) |
| ParseNum | 1 | 解析 ModularNetworkPipeline.Num()) 写出的数值,解析失败时返回 0 而不是抛出 |
| Sanitize | 1 | 清理文本字段中的制表符与换行符,避免破坏 TSV / 逐行文本格式。 先验网络动辄数十万条边,这里先做一次快速探测,不含非法字符时直接原样返回。 |
| GetValue | 1 | 取元数据字符串值,缺失时返回缺省值 |
| GetBool | 1 | 取元数据的布尔值,兼容 True/False 与 1/0 两种写法 |
| GetModuleHubSources | 1 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| Propagation | 1 | 传播方法,默认 Jacobian(线性化雅可比多步传播) |
| MaxSteps | 1 | 最大传播步数(雅可比收敛上限 / 级联采样时间步数) |
| Tolerance | 1 | 雅可比收敛阈值:||e_{t+1}|| / ||e_t|| 小于该值即停止 |
| NSamples | 1 | 参数学习与采样所用样本数 |
| RandomSeed | 1 | 随机种子 |
| NormalizeData | 1 | 是否对表达数据做标准化(z-score),默认 True |
| StructureParams | 1 | 结构学习参数(算法/显著性阈值/最大父节点数/随机种子) |
| HubTopN | 1 | 每个模块取 kME 最高的前 N 个基因作为模块接口(hub) |
| CrossModuleCorThreshold | 1 | 模块 eigengene 相关阈值:|cor| 超过才尝试补模块间边 |
| CrossGeneCorThreshold | 1 | hub 基因间相关阈值:|r| 超过才在对应基因间补跨模块边 |
| CrossScale | 1 | 跨模块边的初始权重缩放(最终由全局参数学习覆盖) |
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| ModelFormatVersion | 1 | zip 压缩包内的模型格式版本号 |
| IllegalChars | 1 | 文本字段中不允许出现的字符:制表符、CR、LF(会破坏 TSV / 逐行文本格式) |
05 Members
模块切分 → 子网络训练 → 全局矩阵拼接
| Name | Type | Description |
|---|---|---|
assignment | GeneModuleColor() | WGCNA 模块划分结果(geneID / moduleColor / kME) |
expr | GeneExpressionData | 全局表达矩阵(基因 × 样本) |
IEnumerable(Of String), InterventionMode)各源基因全局扰动。
| Name | Type | Description |
|---|---|---|
sources | IEnumerable(Of String) | 扰动源基因列表 |
每个扰动源的全局扰动结果
IReadOnlyCollection(Of GlobalPerturbationResult), String)写出全局扰动响应矩阵(行=基因,列=各扰动源)与每个源的明细 TSV,并打印摘要。
Stream)Save current model as zip archive file
| Name | Type | Description |
|---|---|---|
s | Stream | 目标输出流,由调用方提供并负责释放,因此这里以 leaveOpen 的方式使用 |
Stream)load ModularNetworkPipeline model from a zip archive file.
| Name | Type | Description |
|---|---|---|
s | Stream | zip 压缩包输入流,由调用方提供并负责释放 |
还原后的流水线对象:全局基因索引、雅可比矩阵 A、全局聚合网络及其 CPD、 标准化表达矩阵、WGCNA 模块划分与 hub 基因、各模块子网络以及全部训练/传播参数 均与保存前一致,可直接执行 ModularNetworkPipeline.InsilicoPerturbation() 与 ModularNetworkPipeline.SaveResults()。
String, Int32)模块 / 子网络在 zip 内的目录名(用序号命名,避免模块颜色中的特殊字符影响条目名)
ZipArchive, String, Action(Of TextWriter))将一段文本写入 zip 包内的指定条目
ZipArchive, String)按条目名查找 zip 内的条目(路径分隔符统一为 /,大小写不敏感)
不存在时返回 Nothing,调用方按缺省值降级处理
ZipArchiveEntry)读取文本条目的全部非空行
ZipArchiveEntry)读取名称清单(节点名 / 基因名 / 样本名)。 与 ModularNetworkPipeline.ReadLines() 不同,这里保留空行,否则行号会与索引错位, 仅剔除文件末尾换行所产生的那一个空行。
ZipArchiveEntry)读取 key=value 形式的元数据条目
写出一个贝叶斯网络的三段:nodes.txt(行号即节点索引)/ edges.tsv / cpt.tsv。 全局聚合网络与各模块子网络共用这一对读写函数。
ZipArchive, String)读回 ModularNetworkPipeline.WriteNet() 写出的贝叶斯网络(含全部 CPD)
ZipArchive, String, Double())以二进制块写出 double 向量(Int32 长度 + 数据体),避免大数组走文本解析。
ZipArchiveEntry)读回 ModularNetworkPipeline.WriteDoubles() 写出的 double 向量
ZipArchive, String, Double[0:,0:])以二进制块写出二维 double 矩阵:Int32 行数 + Int32 列数 + 行优先数据体。 用于全局雅可比矩阵 A 与标准化表达矩阵(后者行列分别为基因与样本)。
ZipArchiveEntry)读回 ModularNetworkPipeline.WriteMatrix() 写出的矩阵,条目缺失或为空时返回 Nothing
Double)以 G17 无损格式写出数值(固定使用不变区域文化,避免受系统区域设置影响)
String)解析 ModularNetworkPipeline.Num() 写出的数值,解析失败时返回 0 而不是抛出
String)清理文本字段中的制表符与换行符,避免破坏 TSV / 逐行文本格式。 先验网络动辄数十万条边,这里先做一次快速探测,不含非法字符时直接原样返回。
Dictionary(Of String, String), String, String)取元数据字符串值,缺失时返回缺省值
Dictionary(Of String, String), String, Boolean)取元数据的布尔值,兼容 True/False 与 1/0 两种写法
传播方法,默认 Jacobian(线性化雅可比多步传播)
最大传播步数(雅可比收敛上限 / 级联采样时间步数)
雅可比收敛阈值:||e_{t+1}|| / ||e_t|| 小于该值即停止
参数学习与采样所用样本数
随机种子
是否对表达数据做标准化(z-score),默认 True
结构学习参数(算法/显著性阈值/最大父节点数/随机种子)
每个模块取 kME 最高的前 N 个基因作为模块接口(hub)
模块 eigengene 相关阈值:|cor| 超过才尝试补模块间边
hub 基因间相关阈值:|r| 超过才在对应基因间补跨模块边
跨模块边的初始权重缩放(最终由全局参数学习覆盖)
zip 压缩包内的模型格式版本号
文本字段中不允许出现的字符:制表符、CR、LF(会破坏 TSV / 逐行文本格式)