GrnFittingOptions {SMRUCC.genomics.Model.Network.Regulons.LinearRegression} .NET clr documentation

GrnFittingOptions

Description

基因调控网络的线性拟合参数

Declare

            
# namespace SMRUCC.genomics.Model.Network.Regulons.LinearRegression
export class GrnFittingOptions {
   # 自动模式下,候选调控因子数量占样本数量的最大比例(默认为 1/3)。
   # 
   # 这个上限是必须的:参与拟合的自变量个数应当显著小于样本数量,否则 FittingMethod.MultipleLinear 的 QR 分解会因为秩不足而失效, 而 DataFittings 的 LASSO 求解器也会因为内部数组的维度缺陷而越界崩溃。
   candidateSampleRatio: double;
   # 是否计算回归系数的 t 值与显著性 p 值(仅对 FittingMethod.MultipleLinear 有效)。
   computeStatistics: boolean;
   # 候选调控因子的相关性筛选后端。
   # 
   # 为空(默认)的时候使用内置的逐基因扫描(行为与原实现逐位一致); 非空的时候由后端一次性算出每个目标基因的候选集, 从而把 "每个基因各扫一遍全表" 降为一次分块矩阵乘法。
   # 
   # 后端的 Initialize 会在 GeneRegulatoryNetwork.Fit() 开始时 被调用一次,Query 会被并行拟合过程并发调用,因此实现必须是线程安全的只读。
   correlationBackend: ICorrelationScreener;
   # 弹性网络的超参数配置,只在 FittingMethod.ElasticNet 模式下生效。
   elasticNet: ElasticNetOptions;
   # 每一个目标基因最多纳入多少个候选调控因子。
   # 
   # 小于或者等于零的时候按照 GrnFittingOptions.candidateSampleRatio 自动推算。
   maxCandidates: integer;
   # 并行拟合的最大并发度,小于或者等于零的时候由运行时自行决定。
   maxDegreeOfParallelism: integer;
   # 使用 LASSO 求解的时候,每一个目标基因最多允许保留多少个非零的调控关系。 小于或者等于零的时候不做限制。
   maxRegulatorsPerGene: integer;
   # 线性拟合的求解方法,默认为普通最小二乘(OLS)。
   method: FittingMethod;
   # 候选调控因子与目标基因的 pearson 相关性的绝对值下限, 低于这个阈值的基因不会被纳入设计矩阵(默认为 0,即不施加相关性过滤)。
   minAbsCorrelation: double;
   # 导出调控边的时候的回归系数绝对值阈值,小于这个阈值的边会被丢弃(默认为 0,即保留全部)。
   minAbsWeight: double;
   # 是否只保留互为因果(|权重|在两个方向上都显著且符号一致)的调控关系。
   # 
   # 开启之后,只有在 A -> B 与 B -> A 两个方向都被拟合出来、 并且回归系数同号的时候才会保留这条边,边的权重取两个方向的均值。
   mutualOnly: boolean;
   # 为负相关的候选调控因子保留的名额,默认 -1(不启用)。
   # 
   # 共表达网络里负相关的边极少,L1 会优先保留强正相关的候选, 于是敲降一个基因只会把整片基因一起拖下去(全下凋)。 设置成例如 15 之后,每个目标基因的候选集里会强制包含 15 个负相关基因 (其余名额仍给正相关),网络里才会出现抑制型边,扰动响应才可能同时有升有降。
   # 
   # 该配额只在触发候选筛选的时候生效(候选池大于 GrnFittingOptions.maxCandidates 或设置了 GrnFittingOptions.minAbsCorrelation)。
   negativeCandidateQuota: integer;
   # GrnFittingOptions.partialCorrelation 开启时,用作条件集的 hub 基因数量,默认 5。
   partialConditionSize: integer;
   # 是否使用偏相关(而不是零阶 Pearson)来给候选调控因子排序,默认关闭。
   # 
   # 开启之后,会先找出表达谱最"像全局程序"的若干个 hub 基因 (与随机抽样基因的平均 |r| 最大的一批,通常是线粒体/核糖体基因), 把每个基因对这批 hub 做线性回归、取残差,再在残差上计算相关。
   # 
   # 这等价于以 hub 基因为条件集的偏相关(Frisch-Waugh-Lovell 残差回归, 与 WGCNA/PartialCorrelation.vb::FromData 使用的是同一个算法), 可以显著削弱"所有基因共享同一个全局因子"造成的伪边。
   # 
   # 注意:只有当候选池大于 GrnFittingOptions.maxCandidates 或者设置了 GrnFittingOptions.minAbsCorrelation 的时候才会触发候选筛选; 候选池本身很小(例如限定为 300 个靶基因)时本选项不起作用。
   partialCorrelation: boolean;
   # 优先注入的基因数量上限,默认 0(不限制)。
   # 
   # GrnFittingOptions.priorityRegulators 列出 1600+ 个基因的时候,每个目标基因的 候选数会从 GrnFittingOptions.maxCandidates 膨胀到 1900 左右,而求解器要为每个 基因分配 p x n 的列数组(大对象堆)。并发较高时这会触发 OutOfMemoryException,表现为大量基因"没有任何调控关系"。 把本属性设为与 GrnFittingOptions.maxCandidates 相同的量级,可以避免候选集爆炸。
   priorityBudget: integer;
   # 需要优先纳入候选调控因子池的基因集合(例如转录因子列表)。
   # 
   # 与 GrnFittingOptions.regulators 的"限定"语义不同:这里列出的基因不受 GrnFittingOptions.maxCandidates 与 GrnFittingOptions.minAbsCorrelation 的截断影响, 总是会被追加进每一个目标基因的候选集(目标基因自身除外)。
   # 
   # 为空的时候不产生任何影响。大小写不敏感,表达矩阵之中不存在的基因会被忽略。
   priorityRegulators: string;
   # 采纳先验的最低置信度,默认 0.9(即只使用 High 置信度的边)。
   # 
   # 低于该阈值的边既不参与候选注入,也不参与惩罚放松。
   priorMinConfidence: double;
   # curated 数据库之中的 TF -> target 调控关系先验,默认空。
   # 
   # 提供之后会启用两项机制:
   # 
   # 
   # 
    #
  1. 候选注入:对于某个目标基因,先验中指向它的 TF 会被追加进候选集, 即使它被 top-k 相关性排名挤出了名单也会保留下来;
  2. #
  3. 自适应惩罚:先验支持的边在 L1 惩罚上乘以 GrnFittingOptions.priorPenalty, 在稀疏化过程中更容易存活。
  4. #
# # # 先验为空时,拟合行为与不提供先验时逐位一致。 priorNetwork: PriorEdge[]; # 先验支持的边所享有的 L1 惩罚乘子,默认 1.0(不放松)。 # # 取值越小,先验边越容易被保留;0.3 是一个稳健的默认选择 (先验提供倾斜,但仍然由数据决定去留)。设为 1.0 等价于关闭方案 B。 priorPenalty: double; # 是否把先验的因果符号(激活/抑制)作为回归系数的可行域约束,默认开启。 # # 开启之后,先验中标记为 Activator 的边只允许 β ≥ 0、标记为 Inhibitor 的边 只允许 β ≤ 0(符号未知的边不受约束)。这就是 signed lasso: 幅度仍由数据决定,但方向由外部知识固定。 # # 之所以需要它:共表达数据无法区分激活与抑制(Inhibitor 边的相关系数同样为正), 而 L1/L2/图拉普拉斯这些偶次惩罚对 β → -β 完全对称, 只有把可行域限制到半空间才能确定绝对符号。 priorSignMode: PriorSignMode; # p 值计算的容差:小于这个数值的 p 值会被修正为零。 pvalueTolerance: double; # 可选的调控因子集合(例如转录因子列表)。 # # 为空的时候,所有的基因都可以作为候选调控因子; 非空的时候,只有这个集合之内的基因才会被作为自变量参与拟合, 而目标基因仍然可以是表达矩阵之中的任意一行。 regulators: string; # 是否关闭拟合过程之中的进度提示输出。 silent: boolean; # 是否在进行拟合之前把每一个基因的表达向量标准化(z-score)。 # # 开启之后回归系数可以在不同基因之间横向比较,代价是丢失了原始的表达量尺度, 同时模型的截距项在理论上会退化为零。 standardize: boolean; }

.NET clr type reference tree

  1. use by property member correlationBackend: ICorrelationScreener
  2. use by property member elasticNet: ElasticNetOptions
  3. use by property member method: FittingMethod
  4. use by property member priorNetwork: PriorEdge
  5. use by property member priorSignMode: PriorSignMode

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