Files
dpb/doc/桃育种系统统计分析技术说明.md
T
34047007@qq.com 7e449b5c9d checkpoint: 统计分析文档化——操作手册与技术说明双文档
按用户澄清的「操作手册与技术说明分开」落地:操作手册面向育种团队(20 个核心分析
四段式:目的/数据准备/操作步骤/结果解读),技术说明面向方法学/开发者(模型公式、
输入依赖与降级、落库表、API 索引)。常用核心表型分析优先,分子类第二批。
2026-08-07 22:44:00 +08:00

285 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 桃育种系统统计分析技术说明
> 版本:v1.02026-08-07
> 面向读者:**统计方法学 / 研发与维护人员**(需了解混合线性模型、REML、基因组选择的背景)
> 配套文档:使用操作见《桃育种系统统计分析操作手册》;逐版本迭代记录见《桃育种系统统计引擎实施记录》;运行维护见《桃育种系统生产上线与运营手册》。
本文说明每个统计分析的**模型与公式、参数与边界、输入数据依赖、结果落库与接口**,是操作手册的底层技术对位。
---
## 一、总体架构
### 1.1 任务系统
重计算分析(ABLUP/EBV、配合力、交叉验证、稳定性、遗传相关、Type-B、基因组选择、GWAS)以**异步任务**方式执行,任务记录落 `bre_statistics_job`
- 状态:`SUCCESS` / `FAILED``error_msg` 携带失败原因);
- 调度 jobstore 持久化到 PostgreSQL`apscheduler_jobs`),重启自动恢复;
- 轻量计算(描述统计、ANOVA、选择指数、聚类、数据质量、ΔG、选配、MABC、决选预览、公平性、模型健康)同步直出。
### 1.2 确定性
统计引擎输入顺序敏感性已收口:`blup._order_pedigree` 对 base 与同世代并列个体一律按 **id 确定性排序**`sorted(key=str)`),系谱与表型键空间以统一 `_tree_individual_keys` 生成。服务层构建系谱不再受 DB 行序影响,同输入必同输出(复现性 / MLOps input_hash 语义的前提)。
### 1.3 MLOps
每次批次落库 `input_hash`(输入快照哈希):漂移检测重算当前哈希对比;相邻批次对比输出 h² 跌幅 / EBV 排名翻转 / 可靠性变化(模型健康);手动重训同参数重跑、版本回滚把指定批次设为当前生效版本(同性状其余 inactive)。
---
## 二、输入数据依赖
### 2.1 硬依赖(缺则报错)
| 数据 | 表 | 说明 |
|---|---|---|
| 性状 | `bre_trait` | 核心数值性状(统计下拉仅列 core 性状) |
| 观测 | `bre_trait_observation` | 逐株观测值,是建模的 y |
| 树 | `bre_tree` | 个体身份(单株/克隆/家系/区组),是建模的单位 |
| 基因型调用 | 基因型四表 + `bre_genotyping_dataset` | **仅分子分析**GBLUP/ssGBLUP/rrBLUP/BayesB/GWAS/QTL/MAS)硬依赖;缺则报"基因型数据集不存在"/"该数据集无基因型调用记录" |
### 2.2 可选增强(缺则静默降级,不阻断)
| 数据 | 表 | 降级行为 |
|---|---|---|
| 系谱 | `parent_of` 亲子关系 | 无系谱 A → 按单株独立建模;近交/亲缘/ΔG 的 σ_A 不可用 |
| 种质 | `germplasm` | 无种质编号回显;配合力亲本、S-等位过滤不可用 |
| 克隆 | `clone` | 无无性系级聚合/EBV 排行 |
| 砧木 | `rootstock` | G×R 不可用 |
| 研究点 | `trial_study` | G×E(site)、稳定性环境表不可用 |
### 2.3 数据就绪门禁(G1
`data_gate=true` 时对每 clone/家系最小 n`min_clone_n`)、系谱完整率(`min_pedigree_rate`)、缺失率(`max_missing_rate`)做前置校验,不达标返回明确拒绝原因。
---
## 三、模型与算法
### 3.1 ABLUP / EBV(混合线性模型)
模型(以克隆随机效应为例,含固定环境效应与协变量):
```
y = Xβ + Z₁u_clone + e, u_clone ~ N(0, Aσ²a)(有系谱)或 N(0, Iσ²a)(无系谱)
```
- 求解:MME`solve`(稠密)/ `solve_spatial` / `solve_multi` 分派;结果落 `bre_prediction`(批次级:h²、σ²a、σ²e、PA)+ `bre_prediction_value`(逐树 EBV / reliability / PA / rank)。
- **发育阶段拆分**`stage=juvenile|evaluation` 只取该阶段观测建模并拆独立批次(避免童期/成株混合)。
- 协变量:`crop_load`(负载量)等用于 BLUP 校正。
### 3.2 MET 扩展(G×E / G×R / AR1×AR1 / 区组)——四者互斥
| 选项 | 加入项 | 前置 |
|---|---|---|
| `gxe` | clone×site(或组合×site`gxe_env=site|year`)随机互作 | trial_study / 年份维度 |
| `gxr` | 砧木×接穗随机互作(rootstock 由固定效应升入随机效应,占用第二随机效应槽 Z₂,故与 G×E **互斥** | rootstock |
| `spatial` | 残差 AR1×AR1`R_ij = ρ_row^(|Δrow|) · ρ_col^(|Δcol|)`1.4.0 起 aniso 双参 ρ_row/ρ_col,纯 numpy eigh REML | 观测株均有 row_no/col_no |
| `block` | `bre_tree.block_no` 作第二随机效应(不完全区组/增广/α-格子),需 ≥2 区组 | block_no 已生成 |
### 3.3 ANOVA / 广义遗传力
单因素方差分解 + `block=true` 走 RCBD 双因素(从残差析出区组效应);输出 F、p、σ²g、σ²e、家系均值、广义遗传力 H²。**试验设计生成**(`trial-design`)三种:
- `rcbd`:随机完全区组;
- `augmented`:增广——对照种质每区组重复、新品系不重复(`check_germplasm_ids`);
- `alpha`:α-格子——`block_no` 复合编码 `rep*100+block`,区组大小 k、重复 r。
### 3.4 配合力 GCA / SCA
交配设计 `design_type`
- `full_diallel` 完全双列 / `partial_diallel` 部分双列;
- `line_tester`line×testerNCII);
- `nciii`NCIII 测交。
输出 GCA(亲本)+ SCA(组合)+ ANOVA 摘要,落 `bre_combining_ability`
### 3.5 遗传相关(MT-BLUP 成对双性状)
对选入性状**两两**跑双性状 BLUP,逐对 REML 估计 `r_g = σa₁₂ / √(σa₁·σa₂)`,同时给出 σa₁、σa₂、σe₁、σe₂、共同个体数 `n_common`、收敛标记 `converged`,落 `bre_genetic_corr_result`(矩阵 JSON)。
### 3.6 Type-B 多环境遗传相关
把**环境当"性状"**,同一性状逐对双性状 BLUP 估 `r_B``env_dim`
- `site`:跨研究点一致性(r_B→1 则 G×E 弱);
- `year`:跨年份;
- `stage`:童期-成株遗传相关(幼年选择有效性)。
方法 `reml` / `calo`;结果含热图数据,落 `bre_type_b_result`
### 3.7 选择指数
| 方法 | 权重向量 |
|---|---|
| `zsum` | 加权标准分:`I = Σ w_i·z_i` |
| `smith_hazel` | 真 Smith-Hazel`b = P⁻¹·G·a`(P=表型协方差,G=遗传协方差,a=经济权重) |
| `restricted` | 受限指数:`b = P⁻¹G(IM)a`,其中 `M = C'(CG·P⁻¹G·C')⁻¹·CG·P⁻¹G`(C 为受限性状约束行),使受限性状 ΔG = 0(机器精度) |
- `g_method`:遗传相关来源 `calo`(可靠性校正 EBV 相关)/ `mtblup`(成对双性状 REML),smith_hazel / restricted 生效;
- `economic_weights`:绝对尺度经济权重(不归一化,未列性状按 0);
- `auto_weights`:按实测 h² 生成权重(强制 `use_h2=False` 防双重相乘,缺省 `default_h2=0.1` 兜底);
- `aggregate=clone|tree`:聚合层级;
- 结果落 `bre_selection_index``apply` 前 N 名写决选 `bre_selection_result`EBV 可靠性低于 `min_reliability` 跳过)。
### 3.8 交叉验证(k-fold
- 表型模式:ABLUP 模型 k 折(k=2~10**掩蔽留出**masked leave-out),评估 EBV 外部预测准确度;
- GS 模式:`dataset_id` + `method`gblup/ssgblup/rrblup/bayesb+ `maf_min` + `split`
- `random`:固定种子随机分层(可复现);
- `family`:家系阻塞折——同父半同胞同折,**防亲缘泄漏**。
- 输出:`mean_pearson` / `mean_rmse` / `pooled_*` / `cv_accuracy` / `h2`,落 `bre_cv_result` + 折明细 `bre_cv_fold`
### 3.9 稳定性 AMMI / Finlay-Wilkinson
基于两因素均值表(genotype × environment):
- **AMMI**:主效应 + 乘性互作项分解,输出 IPC1/IPC2、`ASV = √(IPC1² + IPC2²)`、ecovalence(互作方差)、ASV 排名;`ipc_variance` 给出各 IPC 占比;
- **FW**:基因型对**环境指数**回归 `y = a + b·x`,输出斜率 b、截距、r²、`se_b``dev_ms``flag_stable`b≈1 稳定型)。
结果落 `bre_stability_result`detail_json)。
### 3.10 UPGMA 层次聚类
`distance=corr|euclidean``mode=pheno|genetic``entity_type=tree|clone`;k 空时按合并距离最大跳变自动定类;计算端点,**不落库**。
### 3.11 数据质量(离群值诊断)
- 缺失率统计;
- IQR 超界;
- MAD 稳健 z 双通道;
- **方向语义**:同向偏离 = 精英(高值方向离群);反向偏离 = 疑似记录错误。
### 3.12 遗传增益 ΔG
`ΔG = k · r_g · σ_A`,逐批次投影:
- `k`:截断选择强度,标准正态分位数 φ 经 **Acklam 算法近似 Φ⁻¹**(无 scipy 依赖)由 top_p / top_n 换算;
- `r_g`:预测准确性(取批次 PA);
- `σ_A`:遗传标准差。
`ΔG` 是期望投影,前提为模型无偏、无近交负效应累积。
### 3.13 近交 / 亲缘 / 近交衰退
- 系谱 A 矩阵(`relationship_matrix`)→ 近交系数 `F = A_ii 1`、个体对亲缘 `A_ij`;阈值预警,落亲缘分析结果;
- **近交衰退**`F → 表型` 线性回归(`lstsq`),斜率即衰退代价;`inbreeding` 字典只含 F>0 个体,样本为空时兜底为 0 处理。
### 3.14 主动选配推荐
评分 `EBV 互补 w_kin·亲缘惩罚`,过滤逻辑:
- **S-等位不相容硬过滤**germplasm.s_alleles + 交配兼容性 409/半兼容);
- **花期软警示**四态:overlap(花期重叠)/ store(花粉库存可用)/ offset(花期错开,需贮藏)/ unknown(花期未知),overlap 不进 flags、不硬阻断;
- 亲缘多源解析(系谱 + 分子指纹),EBV 缺失时回退方法学(direct 优先 / 子代测验降权)。
**OCS 最优贡献选择**`max Σcᵢ·ebvᵢ λ·c'Ac`,约束 `Σc = n_select``c ≥ 0`,投影梯度求解,纯计算不落库。
### 3.15 MABC 标记辅助回交
前景面板命中数 + 背景面板恢复率 + 回交代建议(`generation` 判定是否该继续回交 / `background_target`),纯计算不落库;前景/背景面板来自 MAS 面板数据。
### 3.16 基因组选择(GBLUP / ssGBLUP / rrBLUP / BayesB
- **GBLUP**dosage 0/1/2 → VanRaden **G 矩阵**`u ~ N(0, Gσ²a)` 求解 MME
- **ssGBLUP**:单步法,H 矩阵合并系谱 A 与基因型 G(非基因型亲属通过系谱信息参与);
- **rrBLUP**:岭回归逐标记(与 GBLUP **对偶**——EBV 逐位一致),输出标记效应;
- **BayesB**Gibbs 采样 + 确定性 `seed`(可复现),可变选择(大部分标记效应收缩为 0)。
参数:`maf_min``seed`;结果统一落 `bre_prediction`method=GBLUP/ssGBLUP/RRBLUP/BayesB+ `bre_prediction_value`。大群体走稀疏生产档(索引化 Z / 稀疏 A⁻¹ / EM-REML / 精确迹二分,可靠性分档:n≤1000 稠密逆精确、n 大 Hutchinson 近似)。
### 3.17 GWAS / QTL / MAS
- **GLM+PC 求解器**:纯 numpy,显著性经 `fdist` 计算;共线时岭回归兜底;
- **EMMAX**:零模型 `_profile_solve + eigh` 估方差分量再逐标记检验(gwas 1.1.0);
- **ssGWAS**:单步 GWASMEM 对角近似(gwas 1.2.0);
- **QTL×E 分层 GWAS**:按环境分层分别关联;
- **MAS 面板**:显著标记构建面板(`bre_mas_panel` + `bre_mas_panel_marker`),供 MABC 前景/背景选择与决策预览(童期幼苗可标记辅助选入)。
> 数据设计教训:PC 数量过大会**吞噬 QTL 信号**,需控制协变量维度。
---
## 四、结果数据表(落库)
| 表 | 内容 |
|---|---|
| `bre_prediction` | 育种值批次(ABLUP / GXEBLUP / GXRBLUP / GBLUP / ssGBLUP / RRBLUP / BayesB);h²、σ²、PA、input_hash、engine_version、is_active |
| `bre_prediction_value` | 逐树 EBV / reliability / PA / rank |
| `bre_combining_ability` | 配合力 GCA/SCA 结果 |
| `bre_selection_index` | 选择指数批次 |
| `bre_selection_result` | 决选写入(前 N 名) |
| `bre_anova_result` | ANOVA / H² |
| `bre_cv_result` / `bre_cv_fold` | 交叉验证批次 + 折明细 |
| `bre_statistics_job` | 异步任务记录(状态 / error_msg / result_ref |
| `bre_genetic_corr_result` | 遗传相关矩阵 |
| `bre_type_b_result` | Type-B 多环境遗传相关 |
| `bre_stability_result` | AMMI / FW 稳定性 |
| `bre_gwas_result` / `bre_gwas_snp` / `bre_qtl` | GWAS 结果、SNP、QTL 定位 |
| `bre_mas_panel` / `bre_mas_panel_marker` | MAS 面板与标记 |
---
## 五、API 索引
统一前缀 `/bre/statistics`(前端 `frontend/web/src/api/module_bre/statistics.ts`):
| 端点 | 方法 | 说明 |
|---|---|---|
| `/describe` | GET | 描述性统计(均值/标准差/CV/极值/缺失) |
| `/trait-values` | GET | 统一性状值长表视图 |
| `/correlation` | GET | 相关性矩阵(pheno/genetic |
| `/ablup/run` | POST | ABLUP/EBV(异步,MET/G×E/G×R/空间/区组/stage |
| `/predictions` | GET | 育种值批次列表 |
| `/predictions/{id}/values` | GET | EBV 排行 |
| `/predictions/{id}/clones` | GET | 无性系级 EBV 排行 |
| `/predictions/{id}/compare` | GET | 模型健康(相邻批次对比) |
| `/combining/run` | POST | 配合力 GCA/SCA(异步) |
| `/combining` / `/combining/{id}` | GET | 配合力列表 / 详情 |
| `/anova/run` | POST | ANOVA / H²(同步) |
| `/anova` / `/anova/{id}` | GET | ANOVA 列表 / 详情 |
| `/trial-design` | POST | 试验设计生成(RCBD/增广/α-格子) |
| `/cv/run` | POST | 交叉验证(异步,ABLUP/GS |
| `/cv` / `/cv/{id}` | GET | CV 列表 / 详情(含折明细) |
| `/stability/run` | POST | 稳定性 AMMI/FW(异步) |
| `/stability` / `/stability/{id}` | GET | 稳定性列表 / 详情 |
| `/genetic-corr/run` | POST | 遗传相关(异步) |
| `/genetic-corr` / `/genetic-corr/{id}` | GET | 遗传相关列表 / 详情 |
| `/type-b-heredity` | POST | Type-B(异步) |
| `/type-b` / `/type-b/{id}` | GET | Type-B 列表 / 详情 |
| `/selection-index` | POST | 选择指数(同步) |
| `/selection-index` | GET | 指数批次列表 |
| `/selection-index/{id}/apply` | POST | 写入决选 |
| `/cluster` | POST | UPGMA 聚类(不落库) |
| `/combination-funnel` | GET | 组合得失漏斗 |
| `/data-quality` | POST | 数据质量诊断 |
| `/inbreeding-depression` | POST | 近交衰退回归 |
| `/genetic-gain` | POST | ΔG 投影 |
| `/kinship` | POST | 亲缘/近交 |
| `/mating-recommend` | POST | 主动选配推荐 |
| `/ocs` | POST | OCS 最优贡献选择(不落库) |
| `/mabc-progress` | POST | MABC 进度(不落库) |
| `/gblup/run` | POST | GBLUP/ssGBLUP/rrBLUP/BayesB(异步) |
| `/gblup/datasets` | GET | 基因型数据集列表 |
| `/decision-preview` | POST | 决选预览 |
| `/fairness` | GET | 按 site 公平性报告 |
| `/jobs` / `/jobs/{id}` | GET | 任务列表 / 状态 |
| `/traits` | GET | 可用性状下拉(core/selection |
| `/model/drift` | GET | 漂移检测 |
| `/model/retrain` | POST | 手动重训 |
| `/model/activate/{id}` | POST | 版本回滚/设当前 |
GWAS/QTL/MAS(独立页面,`frontend/web/src/api/module_bre/gwas.ts`):`/bre/statistics/gwas/run``/qtl``/mas-panel``/gwas-qtl-x-e`
---
## 六、数值与工程注意事项
1. **引擎版本**blup 1.6.0、genomic 1.4.0、gwas 1.2.0`_DATA_VERSION` 随结构演进(当前 v2.14+),input_hash 语义一致。
2. **确定性**:任何新增走系谱/表型键的求解必须经 `_order_pedigree`id 排序)与 `_tree_individual_keys` 收口,禁止依赖 DB 行序。
3. **互斥约束**G×E / G×R / AR1×AR1 / 区组四选项互斥(第二随机效应槽 Z₂ 与残差结构 R 只能择一)。
4. **分子分析前置**GBLUP/GWAS 等必须先有基因型数据集与调用记录;基因型四表与表型观测的键空间必须对齐(`_tree_individual_keys`)。
5. **数值坑**numeric 列量化(如 `numeric(12,4)`)会引入舍入差;跨端比对注意服务层 3 位舍入 vs 引擎高精度。
6. **回归基线**:全量回归 `run_regression`72 套)串行跑,均写真 PG。