nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.BNLearn / BlockBayesianNetwork

BlockBayesianNetwork

Full name SMRUCC.genomics.Analysis.BNLearn.ModularNetwork.BlockBayesianNetwork Assembly SMRUCC.genomics.Analysis.BNLearn Members 31

01 Syntax

SMRUCC.genomics.Analysis.BNLearn.ModularNetwork.BlockBayesianNetwork

02 Methods

NameOverloadsSummary
.ctor 1
CascadeIntervene 1 对单个扰动基因执行全局级联虚拟扰动: - 在其所属模块内固定 Low 并多步推演本模块基因状态轨迹; - 计算本模块 eigengene 变化,沿模块关联图 BFS 逐级注入下游模块(作为模块整体状态偏置), 在下游模块内做受迫推演,形成级联; - 汇总所有模块基因的最终状态为全局响应向量(按 allGenes 顺序,Low=0/…
RunModuleSteps 1 在单个模块子网络内多步推演(扰动基因固定 Low)。返回各基因最终 RNA 丰度变化率。
RunModuleForced 1 受迫推演:下游模块接收上游 eigengene 变化偏置,初始整体状态偏移后多步推演。
StateDelta 1 计算一组基因相对野生型稳态的平均状态变化(状态值 Low=0 / Medium=1 / High=2 的差值均值)。 正值表示整体上调、负值表示下调,用作模块间级联传播的驱动信号。 相比 RNA 速率均值,状态值对扰动更敏感:速率是连续量且被平均到 1e-4 量级, 单基因敲降几乎测不到差异,级联传播等同于关闭。
GetBaselineStates 1 取指定模块的野生型稳态基因状态(未缓存时返回 Nothing,调用方需容错)
SaveModel 1 save model as zip archive file
LoadModel 1 load model from zip archive file
ModuleDir 1 模块在 zip 内的目录名(用序号命名,避免模块颜色中的特殊字符影响 entry 名)
ExportLinks 1 从已训练网络的节点状态反推出调控边集合(用于重建拓扑)。 网络内部保存的是 ParentIds / RegulatorTFs / TFEffectors 等"展开后"的结构, 而 DynamicBayesianNetwork.BuildFromTopology()) 需要的是调控边, 这里把前者还原成后者:一条 (基因, 其调控 TF) 对应一条边…
WriteLinks 1 写出调控边(制表符分隔 8 列: TF_id / TF_family / TFBS_id / target_operon / genes / effectors / regulationType / confidence)
WriteCPT 1 流式写出全部 CPT 条目:nodeId / key / p1,p2,p3 必须使用制表符而非 "|" 作为字段分隔符:CPT 的 key 本身就是用 "|" 连接各父状态 得到的,用 "|" 切分会把 key 截断(既有的 SaveToFile / LoadFromFile 就有这个问题)。 概率用 G17 保证 double 往返无损。
ImportCPT 1 回填 CPT 条目。只写 node.CPT.Table(key),不触碰 OnDemandProvider / MaxCacheRows, 否则惰性节点会退化成均匀分布。
WriteThresholds 1 写出每个基因的离散化阈值:gene / low / high(制表符分隔)。 阈值由训练流程按数据分位数计算得到,必须与 CPT 一起持久化: 若丢失,加载后的模型在推理时会回退到默认的固定阈值 0.33/0.66, 与训练时使用的自适应阈值不一致,破坏 round-trip 保真性。
ReadThresholds 1 读回每个基因的离散化阈值并写入网络配置(见 BlockBayesianNetwork.WriteThresholds()))
WriteWildtype 1 写出野生型基线丰度:gene / abundance(制表符分隔)。 必须与 CPT、离散化阈值一起持久化:缺失它,加载后的模型会从错误的基线出发推演。
ReadWildtype 1 读回野生型基线丰度(见 BlockBayesianNetwork.WriteWildtype()))
Text 1 文本字段规整:Nothing 转空串,并剔除会破坏行/列结构的制表符与换行
SetWildtypeBaseline 1 设置野生型(未受扰动)各基因的表达丰度,作为后续虚拟扰动实验的基线。 语义与 BNLearnWorkflow.SetExternalExpression()) 保持一致: - 只保留与网络中已建模基因重叠的部分,忽略未建模基因; - 未覆盖的基因回退到"训练数据各基因的平均表达水平"(由训练流程自动计算); - 基因名大小写不敏感。…
ApplyWildtypeStates 1 依据当前的野生型丰度,按各基因自身的离散化阈值计算其野生型离散状态。
WildtypeStateOf 1 取某个基因的野生型状态(未设置基线时回退 Medium)

03 Properties

NameOverloadsSummary
graph 1 ③ 模块间关联图(基于 eigengene 轨迹相关度)
blocks 1 get length of BlockBayesianNetwork.moduleDBs array
moduleDBs 1
TF 1
allgenes 1

04 Fields

NameOverloadsSummary
_baselineRates 1 各模块的野生型基线转录速率(模块颜色 → 速率均值),按步数缓存。 级联传播时必须使用"相对基线的变化量":DBNPredictionResult.RNAAbundanceChanges 给出的是绝对转录速率水平(恒为正),直接拿它当传播量会让下游模块被强制初始化为 High,形成单向正反馈。基线只依赖模块构成与推演步数,故按 steps 缓存复用…
_baselineStates 1 各模块野生型稳态推演结束时的基因状态(模块颜色 → 基因 → 状态)
_wildtypeAbundance 1 野生型(未受扰动)各基因的表达丰度:基因 ID → 丰度值。 由训练流程按时间序列中位数自动计算,可被 SetWildtypeBaseline 覆盖。
_wildtypeStates 1 由野生型丰度离散化得到的各基因野生型状态:基因 ID → Low/Medium/High。 用作级联推演的初始状态,以及计算扰动响应增量时的参照基准。
ModelFormatVersion 1 模型文件格式版本(用于 LoadModel 的兼容性校验)

05 Members

method .ctor #
#ctor(IEnumerable(Of ModuleDBN), IEnumerable(Of String), Double)
Parameters
NameTypeDescription
subblocksIEnumerable(Of ModuleDBN)

-

TFsIEnumerable(Of String)

-

crossModuleCorThresholdDouble

模块 eigengene 相关阈值:|cor| 超过才建立模块间关联,默认 0.3。

method CascadeIntervene #
CascadeIntervene(String, Int32, Dictionary(Of String, Dictionary(Of String, List(Of Double))))

对单个扰动基因执行全局级联虚拟扰动:

  • 在其所属模块内固定 Low 并多步推演本模块基因状态轨迹;
  • 计算本模块 eigengene 变化,沿模块关联图 BFS 逐级注入下游模块(作为模块整体状态偏置), 在下游模块内做受迫推演,形成级联;
  • 汇总所有模块基因的最终状态为全局响应向量(按 allGenes 顺序,Low=0/Med=1/High=2)。
method RunModuleSteps #
RunModuleSteps(ModuleDBN, Dictionary(Of String, String), String, Int32, HashSet(Of String), Dictionary(Of String, List(Of Double)))

在单个模块子网络内多步推演(扰动基因固定 Low)。返回各基因最终 RNA 丰度变化率。

method RunModuleForced #
RunModuleForced(ModuleDBN, Double, String, Int32, HashSet(Of String), Dictionary(Of String, String), Dictionary(Of String, List(Of Double)))

受迫推演:下游模块接收上游 eigengene 变化偏置,初始整体状态偏移后多步推演。

method StateDelta #
StateDelta(String(), Dictionary(Of String, String), Dictionary(Of String, String))

计算一组基因相对野生型稳态的平均状态变化(状态值 Low=0 / Medium=1 / High=2 的差值均值)。

正值表示整体上调、负值表示下调,用作模块间级联传播的驱动信号。 相比 RNA 速率均值,状态值对扰动更敏感:速率是连续量且被平均到 1e-4 量级, 单基因敲降几乎测不到差异,级联传播等同于关闭。

method GetBaselineStates #
GetBaselineStates(String)

取指定模块的野生型稳态基因状态(未缓存时返回 Nothing,调用方需容错)

method SaveModel #
SaveModel(Stream)

save model as zip archive file

Parameters
NameTypeDescription
fileStream

目标输出流。由 R# 的 writeBin 传入(文件路径或连接),调用方负责流的释放, 因此这里以 leaveOpen 的方式使用 ZipArchive。

method LoadModel #
LoadModel(Stream)

load model from zip archive file

Parameters
NameTypeDescription
fileStream

zip 压缩包输入流(由 R# 的 readBin 传入,调用方负责释放)

Returns

还原后的模块化贝叶斯网络模型,可直接用于级联虚拟扰动

method ModuleDir #
ModuleDir(Int32)

模块在 zip 内的目录名(用序号命名,避免模块颜色中的特殊字符影响 entry 名)

method WriteCPT #
WriteCPT(TextWriter, DynamicBayesianNetwork)

流式写出全部 CPT 条目:nodeId / key / p1,p2,p3

必须使用制表符而非 "|" 作为字段分隔符:CPT 的 key 本身就是用 "|" 连接各父状态 得到的,用 "|" 切分会把 key 截断(既有的 SaveToFile / LoadFromFile 就有这个问题)。 概率用 G17 保证 double 往返无损。

method ImportCPT #
ImportCPT(ZipArchiveEntry, DynamicBayesianNetwork)

回填 CPT 条目。只写 node.CPT.Table(key),不触碰 OnDemandProvider / MaxCacheRows, 否则惰性节点会退化成均匀分布。

method WriteThresholds #
WriteThresholds(TextWriter, DynamicBayesianNetwork)

写出每个基因的离散化阈值:gene / low / high(制表符分隔)。

阈值由训练流程按数据分位数计算得到,必须与 CPT 一起持久化: 若丢失,加载后的模型在推理时会回退到默认的固定阈值 0.33/0.66, 与训练时使用的自适应阈值不一致,破坏 round-trip 保真性。

method ReadThresholds #
ReadThresholds(ZipArchiveEntry, DynamicBayesianNetwork)

读回每个基因的离散化阈值并写入网络配置(见 BlockBayesianNetwork.WriteThresholds())

method WriteWildtype #
WriteWildtype(TextWriter, Dictionary(Of String, Double))

写出野生型基线丰度:gene / abundance(制表符分隔)。 必须与 CPT、离散化阈值一起持久化:缺失它,加载后的模型会从错误的基线出发推演。

method ReadWildtype #
ReadWildtype(ZipArchiveEntry)

读回野生型基线丰度(见 BlockBayesianNetwork.WriteWildtype())

method Text #
Text(String)

文本字段规整:Nothing 转空串,并剔除会破坏行/列结构的制表符与换行

method SetWildtypeBaseline #
SetWildtypeBaseline(Dictionary(Of String, Double))

设置野生型(未受扰动)各基因的表达丰度,作为后续虚拟扰动实验的基线。

语义与 BNLearnWorkflow.SetExternalExpression() 保持一致:

  • 只保留与网络中已建模基因重叠的部分,忽略未建模基因;
  • 未覆盖的基因回退到"训练数据各基因的平均表达水平"(由训练流程自动计算);
  • 基因名大小写不敏感。

丰度会按各基因自身的离散化阈值(训练时写入 Config.NodeThresholds) 转成 Low/Medium/High,作为级联推演的初始状态与响应参照基准。 在此之前推演一律从"全部 Medium"出发,导致未受影响的基因恒为 Medium。

Parameters
NameTypeDescription
baselineDictionary(Of String, Double)

基因 ID → 表达丰度 的字典

method ApplyWildtypeStates #
ApplyWildtypeStates

依据当前的野生型丰度,按各基因自身的离散化阈值计算其野生型离散状态。

method WildtypeStateOf #
WildtypeStateOf(String)

取某个基因的野生型状态(未设置基线时回退 Medium)

property graph #
graph

③ 模块间关联图(基于 eigengene 轨迹相关度)

property blocks #
blocks

get length of BlockBayesianNetwork.moduleDBs array

field _baselineRates #
_baselineRates

各模块的野生型基线转录速率(模块颜色 → 速率均值),按步数缓存。

级联传播时必须使用"相对基线的变化量":DBNPredictionResult.RNAAbundanceChanges 给出的是绝对转录速率水平(恒为正),直接拿它当传播量会让下游模块被强制初始化为 High,形成单向正反馈。基线只依赖模块构成与推演步数,故按 steps 缓存复用。

field _baselineStates #
_baselineStates

各模块野生型稳态推演结束时的基因状态(模块颜色 → 基因 → 状态)

field _wildtypeAbundance #
_wildtypeAbundance

野生型(未受扰动)各基因的表达丰度:基因 ID → 丰度值。 由训练流程按时间序列中位数自动计算,可被 SetWildtypeBaseline 覆盖。

field _wildtypeStates #
_wildtypeStates

由野生型丰度离散化得到的各基因野生型状态:基因 ID → Low/Medium/High。 用作级联推演的初始状态,以及计算扰动响应增量时的参照基准。

field ModelFormatVersion #
ModelFormatVersion

模型文件格式版本(用于 LoadModel 的兼容性校验)

property moduleDBs #
moduleDBs
property TF #
TF
property allgenes #
allgenes