init 后首次落盘,累计工作: - 数据侧:simulate_breeding_data real-scale 3.5万树重建 + 分层观测 - 引擎侧:ABLUP 稀疏生产档 EM-REML(blup 1.6.0/1.7.0);性能倒挂修复—— 系谱闭包收口为 BFS 可达祖先 + N_EXACT 3000 对齐 N_SUBSAMPLE(选中 200~3000 树 不再顶进数小时精确迹尾),A/B 数值等价实证 + 守卫探针 - 前端:观测过滤 + 表单/HTTP 工具链完善 - 文档:业务链/观测梳理 + 引擎实施记录 + 规划对照总表 - gitignore:排除 Temp/调试脚本/一次性验证输出
98 lines
66 KiB
Markdown
98 lines
66 KiB
Markdown
# 桃育种系统 · 规划对照总表
|
||
|
||
> **版本**:2026-07-29 新增
|
||
> **定位**:统一三份文档(业务功能规划报告 / 分层路线图 v1.1 / 模块扩展需求规格 v2.11)的模块级映射,消除口头"指回§3/§4"。
|
||
> **状态约定**:✅ 已落地(基础字段) | ⏳ 待建(规划已定,待生成器落地) | ⏳ 待灌(数据) | — 引擎/端点(不建表)。**2026-08-04 追加**:① 统计引擎两轮 P0 已代码落地(G×E + 性状方向标注);② 花粉档案 §3.19 落地(bre_pollen + 授粉窗口校验);③ 选择指数升级为**无性系级聚合**(决策正确性,可靠加权聚合 + 自株退化 + 系级决选);④ 配合力 GCA/SCA 支持**交配设计 `design_type`**(统计严谨:完全双列/部分双列/line×tester(NCII)/NCIII,`combining.solve` 按设计分支双因素模型 + 运行按设计过滤组合);⑤ **统计严谨·MLOps 复现性**(① Smith-Hazel 遗传相关改 **Calo 可靠性校正** r_g=r_EBV/√(rel_i·rel_j);② **PA 落库** pa=√reliability + 批次 accuracy 真 PA;③ **MLOps 溯源** data_version/input_hash/engine_version(同数据重跑哈希一致、改观测必变);④ **germplasm_id 填充**(亲本级 EBV 查询可用);⑤ **砧木字典扩列** 矮化类/砧穗亲和性;⑥ **空间竞争协变量** covariate=competition(Chebyshev 邻域株数,无坐标显式报错));⑥ **组合得失漏斗 v_combination_funnel**(按组合汇总 花→果→种→苗→定植→树→入选 六级派生指标——结实率/出苗率/选择强度滚到组合层,配合力第一手证据,只读端点可查);⑦ **分子育种「建数据能力」**(§3.7 四表落地:bre_marker / bre_genotyping_dataset / bre_genotype_sample(weld 补 sample_name)/ bre_genotype_call,全量 CRUD + Excel 导入导出 + **VCF 导入**(marker/sample 自动建号、GT 编码、幂等)+ **DNA 指纹防错**(无性系混杂检测,同源不一致/异源一致两类标记));⑧ **精修项四连发**(① **DUS/品种保护「数据能力(三表)」** bre_dus_descriptor/test/observation + UPOV TG/53 桃描述符种子 15 条 + 菜单 900230 真实页与 G 段按钮 900800-900808;② **stage 感知** bre_trait.stage(童期/成株)驱动 BLUP/选择指数/决策预览的过滤与警示 + 批次 stage 落库;③ **k-fold 交叉验证外部验证** ABLUP+GXEBLUP 双支持(sire 家系分层留出、逐折容错,bre_cv_result/fold 落库,MLOps 溯源复用);④ **按 site EBV 公平性报告** site 系统性偏差 deviation/flagged + 排名一致性 Spearman + G×E 模式);⑨ **六项能力完善**(① **MT-BLUP 遗传相关**——成对双性状 REML(`mtblup.solve_bivariate`:y 堆叠 Var(u)=G0⊗A,Va/Ve 取单性状 REML、仅对 ρ 黄金分割求极大精确 REML),`run_genetic_corr` 逐对 bivariate 组装 G0 + Higham 半正定投影,落 `bre_genetic_corr_result`(job_type=GENCORR),Smith-Hazel 增 `g_method="mtblup"`(单对不收敛回退 Calo+warning、G 非正定特征值截断、`g_source` 落库可审计);② **GBLUP/ssGBLUP 引擎**——`genomic.py`:VanRaden G method1/2 + MAF 过滤 + blend 岭;`solve_gblup` 仅基因型株、`solve_ssgblup` 单步法 H⁻¹=A⁻¹+[[0,0],[0,G⁻¹−A22⁻¹]] 且 **V 块用 H 协方差**;`run_gblup` 样本 tree 直连/名称兜底、未映射+多等位跳过+warning,落 PredictionModel(GBLUP/ssGBLUP)+EBV 行;③ **DUS 特异性统计检验**——QN LSD(t_crit 由 `fdist.f_icdf` 二分反解 F(1,df))+ PQ/QL 状态众数、**必测描述符**驱动建议、参照=同 trial_study 自动 + 显式覆盖、落 `analysis_json` + conclusion 自动建议;④ **AMMI/Finlay-Wilkinson 稳定性**——FW 环境指数回归 b/R²/se_b/flag_stable(完美拟合 b≈1 判稳)、AMMI 残差 SVD→IPC/ASV/ecovalence、`run_stability` site/year 两维、格子 <2×2→409,落 `bre_stability_result`;⑤ **MLOps 重训+版本回滚**——`bre_prediction.is_active` 版本链(无 active 时首批 active)、`model/drift` 输入哈希漂移检测(轻量 `_gather_digest_inputs`)、`model/retrain` 漂移才重训+active 转移、`model/activate` 回滚原语;⑥ **BLUP stage 拆分**——`bre_trait_observation.stage` 观测级发育阶段、`run_ablup(stage)` 按 coalesce(obs.stage,trait.stage) 过滤+model_name `_{stage}` 后缀+批次 stage 落库、未指定但有分歧→note 警示);⑩ **田间试验精度补强·砧木×接穗随机互作(G×R)**——rootstock 由固定哑变量升级为**第三随机效应槽**(`run_ablup(gxr=True)` → method=GXRBLUP/job_type=GXR,按 `(基因型,砧木)` 分组建 Z₂ 随机互作、克隆坍缩系谱与 G×E 共享、rootstock 强制移出固定效应防共线、不可辨识门禁(同基因型无跨砧木/单元内无重复/残差 df<1)→409、σ²gxr/gxr_ratio/n_cross_rootstock 落批次 note;**Z₂ 单槽位 → G×E/G×R 互斥**(双开 409 + 前端互斥 watcher);求解器 `_solve_gxe` 加 factor_label/factor_name(G×E 警告文案逐字节不变、G×R 显「砧木」)、ENGINE_VERSION 1.2.0;G×E tab 加 G×R 复选框、批次表同显 σ²gxr);⑪ **基因组选择(GS)实证严谨性·GBLUP/ssGBLUP 专用 k-fold 交叉验证**——`run_cv` 加 `dataset_id/method/maf_min`(method=KFCV/GBLUP·KFCV/ssGBLUP),`genomic.kfold_cv_genomic` 掩蔽留出 GEBV vs 表型实证 pearson/RMSE(G/H/Hinv 只建一次、固定种子随机分层——GS 同世代样本无家系树,区别于 ABLUP 的 sire 家系留出)、`_gather_gblup_inputs` 提取(run_gblup↔GS CV 复用)、`_build_h` 缺失基因型补 base、ENGINE_VERSION 1.1.0、_DATA_VERSION v2.11;SSR 多等位 dummy 编码留待后续);⑫ **现代桃育种领域覆盖·S-等位基因交配兼容性 + 抗病/需冷量性状字典**(① `bre_germplasm.s_alleles`(String32,Sf=自交亲和型)+ `cross_combination` create/update 兼容校验——任亲本含 Sf→放行、共享 2 个 S 等位→409「配了不结」硬门禁、共享 1 个→`out.s_compat` 半兼容警示;②③ `bre_trait` 种子 5 条 numeric(细菌性穿孔病/褐腐病/白粉病 0-5 级病情指数 + 需冷量 h + 需热量 GDD,category「抗病性」「生态适应性」,into_ebv=1、direction=asc 进选种目标——统计引擎仅消费 numeric);④ **MAS/QTL/GWAS 闭环**(GWAS 引擎 GLM+PC:SVD 群体结构校正 + 逐标记单标记回归 + Bonferroni/BH-FDR + QTL 区间合并,纯 numpy 复用 fdist 零新依赖;bre_gwas_result/bre_gwas_snp/bre_qtl/bre_mas_panel/bre_mas_panel_marker 五新表;服务端 gwas/run|list|{id} + qtl CRUD + mas-panel CRUD(选标记 favorable_dose/direction/effect);decision_preview 加 marker 条件——童期幼苗无表型/无 EBV 也可被标记辅助选入;前端 900214 GWAS/QTL 页翻转(Manhattan/QQ 裸 echarts + 运行对话框 + 三 tab);e2e 7 段全过 + GBLUP/ssGBLUP 回归零回归,2026-08-04);⑭ **九缺口补齐(2026-08-04,用户重扫 12 项缺口剔除 A1/A4 余 9 项拍板全做,三批独立 e2e + 回归)**——批1 经典侧计算端点(纯计算不建表):**数据质量** `POST /statistics/data-quality`(缺失率/CV + IQR + MAD 稳健 z-score 双法异常标记)+ **遗传增益** `POST /statistics/genetic-gain`(ΔG=k·r_g·σ_A,k 经 Acklam 有理近似 Φ⁻¹ 纯 numpy 零 scipy)+ **主动选配** `POST /statistics/mating-recommend`(S-等位硬过滤 + 亲缘 A 惩罚 score=w_ebv·mid_parent_EBV−w_kin·max(0,r−threshold),不落库);批2 分子侧严谨性:**EMMAX 混合模型 GWAS**(`gwas._emmax`:零模型方差分量复用 `genomic._profile_solve` + eigh 对角化 K→V⁻¹ + 逐标记 GLS t²→fdist,method=emmax,run_gwas 后处理抽共享函数 GLM 逐字节不变)+ **SSR 多等位虚拟编码**(VCF 按 ALT 数定 ssr/snp、`_allelic_from_gt` 每等位一列、`build_g_matrix` 多等位 VanRaden 推广)+ **QTL×E 环境互作**(`POST /statistics/gwas-qtl-x-e` 分环境 GWAS 合并 stable/env-specific/异号 G×QTL 警示,不建表)+ **MAS 面板语义**(bre_mas_panel_marker.mode/favorable_allele/haplotype_group 三列 + `_mas_hit_map` additive/dominance/recessive/allele/haplotype 五语义);批3 求解器核心:**AR1×AR1 空间协方差**(`blup.solve_spatial`:e~N(0,σ²e·R)、R=AR1(ρ)⊗AR1(ρ) R⁻¹ 纯 numpy eigh、REML 对 (h²,ρ) 坐标上升黄金搜索、run_ablup(spatial=True)→method=AR1×AR1、与 G×E/G×R 互斥、缺坐标 409)+ **稀疏 A⁻¹+共轭梯度**(`_build_ainv_sparse` COO + `_cg_solve`、n>N_SPARSE(1000) 阈值分派 solver=sparse-cg、Hutchinson k=100 估 PEV 对角 reliability 近似、稠密路径逐字节不变)。`_DATA_VERSION` v2.13、blup 1.3.0 / genomic 1.2.0 / gwas 1.1.0。详见 `桃育种系统统计引擎实施记录.md`);⑮ **十二项真缺口补齐(2026-08-05,用户全量现状盘点收敛 12 件真缺口、剔除过时「待建」标记,拍板只补这 12 件,分三批独立 e2e + 全量回归零回归)**——批1 引擎三件(solver 扩展独立路径):**ssGWAS**(`gwas._ssgwas`:`build_g_matrix` 岭保正定构 G → `solve_gblup` 全样本 GEBV û → **Wang et al. 单步 GWAS MEM 对角近似**反推标记效应 `ê_j=(M_j'Z'G⁻¹û)/(2Σp_j(1−p_j))`、Wald t=ê/SE → fdist,共享 `_finalize`/`_bh_qvalues`/`_cluster` 后处理,method=ssgwas 透传+前端下拉,gwas 1.2.0)+ **全 MT-BLUP solve_multi**(m 性状 y 堆叠 Var(u)=G0⊗A、**EM-REML 迭代** G0+ve 单性状初始+特征值截断/Higham 投影保正定、max_iter 兜底,输出 G0 全元素+r_g 矩阵+n_iter/converged/warning,`run_genetic_corr(full_mtblup=True)` 一次 m 性状给完整 G0,逐对 bivariate 保活,mtblup 1.1.0)+ **AR1×AR1 双参 ρ aniso**(R_ij=ρ_row^|Δrow|·ρ_col^|Δcol|、ρ_row/ρ_col 交替坐标上升,`run_ablup(spatial_aniso=True)` → method=AR1×AR1(aniso)、note 落 rho_row/rho_col,**aniso=False 与 v1 逐字节一致**,blup 1.4.0);批2 模块四件(标准 CRUD 五件套+前端+菜单翻转+文案清理):**field_operation 农事操作 900051**(op_type 字典施肥/喷药/修剪/灌溉/疏果/套袋/采收 bre_dict 灌入)+ **observation 通用观测 900050**(EAV plot 级通用录入、obs_type numeric/text/date)+ **breeding_report 育种报告 900075**(CRUD + `POST /report/generate` 聚合 bre_prediction/bre_stability_result/bre_cv_result 结构化报告)+ **analysis_dataset 分析数据集 900070**(新表 bre_analysis_dataset jsonb×3 + status,「查看性状值」跳 statistics trait-values 复用既有视图);批3 底座五件:**审计切面**(base_crud 三写注入 CREATE/UPDATE 字段级 diff/DELETE + 批量导入仅汇总 IMPORT 一条 + `GET /bre/audit/list`)+ **统一编号服务**(`app/utils/number_gen.py` NumberGenService + `bre_sequence` + **pg_advisory_xact_lock 原子取号**,迁移 cross_combination/tree/selection_result/seedling 4 处格式保持)+ **超期预警定时任务**(每日 job 按 selection_rule 扫描树 N 年未决策/花粉批次过期/seed_lot 超期 → `bre_alert` + `GET /bre/alert/list` + 前端「预警中心」)+ **备份容灾**(`backend/scripts/pg_backup.sh`/`pg_restore.sh`,Temp/backup 按日期 + N 天轮转,每日 02:00 系统 job)+ **BrAPI + MIAPPE 互操作**(`/brapi/v2` 只读五端点 germplasm/observationvariables/studies/observations/miappe,BrAPI 2.x metadata+pagination+result 包裹,bre_germplasm→germplasmDbId/genus=Prunus/species=persica/subtaxa 映射);`_DATA_VERSION` v2.14、gwas 1.2.0 / mtblup 1.1.0 / blup 1.4.0。详见规格 §8.24–8.26 / `桃育种系统统计引擎实施记录.md` §十七);⑯ **桃育种业务流全面完善(2026-08-05,用户要求「对现有功能,结合桃育种实际业务流程与需求,进行全面测试分析,并完善」,三路审计收敛 10 项真缺口,拍板全部实施 + 两裁决:**导入按钮维持隐藏**(23+ 页显式隐藏非缺口)/ **采收入口走农事操作**(op_type=harvest 结构化产量表单,非独立模块),分三批独立 e2e + 全量回归零回归)**——批A 业务数据链(A1-A6):**果实采收结构化入口**(bre_field_operation 加 yield_kg/fruit_count/avg_fruit_weight/marketable_rate,op_type=harvest 树级采收同步写 bre_trait_observation 4 行、plot 级只留操作记录)+ **产量构成/物候/品质/生长量/描述性状种子 19 条**(bre_yield_phenology_traits.sql:单株产量/果数/均果重/好果率/裂果率 + 盛花期/果实成熟期/落叶期 + 可溶性固形物/可滴定酸/固酸比 + 主干周长/树高/冠幅 + 果形/茸毛/离核/果皮底色/着色类型)+ **种质级观测**(bre_observation.germplasm_id 描述数据入口)+ **授粉→收种→种子处理补链**(seed_lot.pollination_id + seed_treatment.seed_lot_id)+ **EAV 观测校验**(numeric/date parse + valid_min/max 越界 + 同(tree/plot/germplasm,trait,year,date)重复 409)+ **育种阶段自动设置 + 成株性状门禁**(tree stage 按 breeding_generation 推断、童期树录成株性状 409);批B 统计算法(B1-B4):**Type-B 多环境遗传力**(run_type_b_heredity 复用 mtblup.solve_bivariate 把环境当"性状"、env_dim=site/year、落 bre_type_b_result + /type-b-heredity + /type-b/{id})+ **遗传相关 genetic 模式**(correlation mode=genetic 逐对 bivariate 组装 G0,pheno 分支逐字节不变、不落库)+ **选择指数自动权重**(auto_weights=True → default_h2 兜底 0.1、强制 use_h2=False、direction 翻转)+ **UPGMA 层次聚类**(run_cluster 纯 numpy,POST /statistics/cluster 不落库);批C 前端(C1-C4):观测录入增强(observation plot/站点/germplasm 过滤 + germplasm 表单、field_operation harvest 结构化表单)+ 统计可视化 ECharts(correlation 热图 + gblup 可靠性热图/趋势折线 + type-B tab + cluster 树状图)+ combination-funnel 前端入口对话框 + stage_phenotype 容器同步(通用观测/农事操作翻真实页);`_DATA_VERSION` v2.15。详见规格 §8.27 / `桃育种系统统计引擎实施记录.md` §十八);⑰ **遗传链完整性两次修复(2026-08-05,用户先后报告「建种质断链」与「近交惩罚静默关闭」,核实确认 + 拍板落地,e2e 验证通过)**——① **世代闭环修复**:`selection_result._promote_tree_to_clone` 单株晋级到 line/regional_trial/released 建种质时**同步落 `bre_pedigree`**(child_code=品种名、dam/sire=tree.dam/sire 回退组合 female/male_parent_id、combination_id、generation、child_code 幂等)→ 晋升种质不再被统计引擎当 founder,跨世代系谱链闭合(判别点 A[T2,T3]=0→0.125、A[gT1,gA]=0.5);② **近交惩罚「静默关闭」修复**:`mating_recommend` 亲缘矩阵旧靠 `bre_pedigree.child_code` 精确字符串匹配建系谱,名称大小写/空格/代号错配即全空 → 所有配对 r=0 → kin_pen=0 → 近交规避失效且无告警;重写 `_germplasm_pedigree` **多源级联**(① 规范化 strip+casefold 名称反查显式系谱为权威 → ② `tree.germplasm_id` 直连 FK 兜底(多对去重后唯一一致才采纳、歧义回退 founder)→ ③ founder;祖先 BFS 展开 + 去重,修复候选既是 child 又是祖先时系谱重复抛『系谱个体重复』崩溃);`mating_recommend` 新增 **kinship_status(ok/partial/none) + kinship_warning + 逐对『亲缘未解析(r 按 0 计)』旗标**,绝不静默 no-op;设计红线 **FK 只兜底不覆盖显式系谱**(A6 回归 r=0.5 保真)。e2e 14 组断言 + 回归 A6/batch/gaps_base 零回归 + HTTP 核验新字段。详见规格 §8.28 / `桃育种系统统计引擎实施记录.md` §18.5/§18.6。);⑱ **选配「亲本 EBV」回退逻辑方法学修复(2026-08-05,用户报告 `mating_recommend` 旧实现对缺直接 EBV 的候选用「其子代树 EBV 均值」代表亲本育种值——① progeny-test 值非亲本自身值;② 双亲都缺时同一子代树等权计入 dam 与 sire 两侧稀释;③ 跨组合混合无区分,会误导选配排序。核实确认 + 拍板落地)**——`mating_recommend` EBV 回退重写:**direct(germplasm_id 直连亲本自身预测值)优先**、有 direct 绝不被子代树值污染;回退仅当无自身值时用、**显式标注「子代测验近似」并降权 0.5 参与打分**(`_EBV_SOURCE_FACTOR={direct:1.0,progeny:0.5,missing:0.0}`,mid=(f_a·ebv_a+f_b·ebv_b)/2,回退不掩盖 direct);**双亲均缺直接值的子代树剔除**(防双侧等权重复计);记 n_progeny/n_combos 辨别跨组合;返回体加 `candidate_ebv` + `ebv_source.coverage` + 逐对旗标「亲本EBV为子代测验近似(降权0.5)」/「亲本无EBV(按0计)」——EBV 来源显式可查绝不静默降级。e2e 5 组断言 + 回归 A6/亲缘/batch/gaps_base 零回归 + HTTP 核验(真实数据 coverage={direct:0,progeny:0,missing:12})。详见规格 §8.29 / `桃育种系统统计引擎实施记录.md` §18.7。);⑲ **数据质量报告「离群值」方向语义错位修复(2026-08-05,用户报告 §8.23 数据质量端点 IQR/MAD 把任何偏离分布的值都标「离群株」,与育种目标方向错位——正向偏离正是要选的精英单株,核实确认 + 拍板落地)**——`data_quality_report` 方向感知分流:按 `bre_trait.direction`(desc/None=高值优、asc=低值优)判定 `desirable_high`,IQR/MAD 命中的株按偏离侧**双通道分类**(`is_high=v>med`、`is_elite=is_high==desirable_high`):**同向偏离 → `extreme_candidates` 极值候选(精英)**(class=extreme_candidate)/ **反向偏离 → `outliers` 疑似录入错误**(class=outlier,高值优的异常低值、低值优的异常高值),两表互斥;返回体加 `direction` + `extreme_candidates` + `summary.n_extreme_candidates`、`has_warning/n_outliers` 语义收紧为疑似录入错误计数;前端数据质量 tab 改双表(精英 success / 错误 danger)+ 选育方向指示 + 无误报绿色 info alert。e2e 17 株断言(精英 16.0 进 extreme_candidates/side=high、错误 2.0 进 outliers/side=low、互斥不串表)+ 回归 A6/亲缘/batch/gaps_base 零回归 + HTTP 核验(asc 裂果率 bB_DIR5668 与 desc 果重 dA_DIR5668 方向/双表/计数经真实端点正确返回,真实数据无极端值→双表空无误报)。详见规格 §8.30 / `桃育种系统统计引擎实施记录.md` §18.8。);⑳ **ΔG 投影假设声明 + 工程健壮性打磨(2026-08-05,用户报告两点均非功能 bug,核实确认 + 拍板落地,e2e 验证通过)**——① **ΔG 投影假设显式声明**:`genetic_gain` 旧实现 `next_pheno_mean = pheno_mean ± dg` 隐含「环境均值恒定」,年际气候漂移会使投影偏;属投影演示性质,返回体新增 `note` 假设声明(环境均值恒定、未计入年际气候漂移与栽培措施变化;ΔG=k·r_g·σ_A 仅含遗传增益分量,next_pheno_mean 为投影演示值而非实测预测),前端 gain tab info alert 展示;② **空间模型缺坐标优雅降级**:`run_ablup(spatial=True)` 旧实现任一观测树缺 row/col 即整批 ValueError,现改为**剔除缺坐标株表型(保留系谱 → EBV 仍由系谱预测)、仅全缺坐标才整批 409**,剔除数显式写批次 note「缺坐标剔除N株表型(EBV由系谱预测)」、input_hash 用剔除后子集;③ **numpy 工程清理**:7 处函数体内重复 `import numpy` 收敛为模块级单次 + `data_quality_report` 逐株 flag 循环改 numpy 布尔掩码向量化(输出逐字节不变)。e2e spatial 降级场景(5 株含 1 缺坐标 → method=AR1×AR1/train_n=4/note 含剔除/5 株均有 EBV)+ A6 note 断言 + 回归 spatial/A6/亲缘/batch/gaps_base 五套零回归 + vue-tsc EXIT=0 + HTTP 核验(genetic-gain 返回 note、data-quality 返回 direction)。详见规格 §8.31 / `桃育种系统统计引擎实施记录.md` §18.9。);㉑ **A–F 六项功能级缺口·批1 父本验证 + 近交衰退(2026-08-05,用户全模块 grep 实证 A–F 六项缺口均为「有无/深度」问题、非正确性 bug,逐项复核确认 + 拍板「全部六项分批落地」;批1 独立 e2e + 全量回归零回归)**——**A 父本验证(consistency 不落库)**:① `pollination` 花粉来源一致性——`_validate_pollen_parent`(create/update 统一):花粉批次声明采集父本树(pollen.male_tree_id)时授粉声明父本树须一致否则 409(含「不一致」文案),批次无采集父本(混合/外地)或授粉未声明放行不武断;② `tree` 显式亲本 vs 组合父母本警示——`_resolve_parents` 返回 `(dam,sire,warning)`:显式 dam/sire 偏离组合 female/male_parent 时返回体 `warning`「显式母本/父本与组合母本/父本不一致(以显式为准)」(双侧/单侧聚合),**warning 不阻断**(tree 可独立建,武断 409 误伤),schema 只读字段不落库;③ `cross_combination` 同质自交门禁——`_check_parent_roles` 中 `female_parent_id==male_parent_id` → 409「母本与父本同为「{名}」,自交组合请确认」(create/update 生效亲本统一,与 S-等位 409 语义一致);**C 近交衰退分析(计算端点不建表)**——`POST /statistics/inbreeding-depression`(入参 trait_id/trait_code + year/trial_study_id 可选 + min_n=10):`blup.relationship_matrix` 的 F=A_ii−1(按树,**非近交树从 individuals 默认 F=0 兜底**否则被排除)+ trait 树级表型 group_by(tree_id) 均值 → **纯 numpy lstsq 回归 phenotype~F**——`sufficient/reason/n_obs/mean_F/max_F/direction/regression{intercept,slope,r2,t_slope,depression_rate,has_depression,interpretation}/high_inbreeding`(F 降序前 10 含 tree_no/value);`has_depression=slope<0 且 t_slope≤−1.645`(单侧 95% 大样本近似);n<min_n 优雅降级 sufficient=false+reason(不 409);前端「亲缘/近交」tab 加衰退区(trait/year + el-alert + el-descriptions + 高 F 株表,el-alert `'error'` 修复 TS2322)。e2e `parent_validation` 10 断言(A1 不一致 409/一致放行/混合放行/update 同门禁 + A2 双侧警示/单侧仅父本/一致无警示/update 警示 + A3 create/update 同质 409)+ `inbreeding_depression` 4 断言(12 树 F 梯度:衰退 y=100−60F → slope≈−60/has_depression=true/前 6 高 F=自交株;无衰退 slope≈0/未检出;min_n=20 insufficient 含「12 棵」「≥20」;性状不存在 409)+ 回归 spatial/statsflow/A6/亲缘/batch/gaps_base 六套零回归 + vue-tsc EXIT=0 + HTTP 核验(真实稀疏数据 code=0/sufficient=false/n_obs=2/reason)。`_DATA_VERSION` v2.22。详见规格 §8.32 / `桃育种系统统计引擎实施记录.md` §18.10。;㉒ **A–F 六项功能级缺口·批2 GS 家系 CV + 试验设计深度(2026-08-05,批1 已落地 ㉑/v2.22;批2 = B+F,独立 e2e + 全量回归零回归)**——**B GS 家系 CV(深度:随机分层 → 家系阻塞折)**——`genomic.kfold_cv_genomic` 加 `split="random"|"family"` + `family_of`:random 现有 round-robin 逐字节不变(回归零变化);family 照 blup.kfold_cv 的 sire 家系留出模式——同家系个体同折(防亲缘泄漏高估准确度)、无家系个体自成一族、**家系数<折数 k 折叠并 warning**、单家系 folds=[]+warning,输出 n_families;`run_cv` 加 split 透传——ped_rows 已取 sire_id/male_parent_id → `family_of={t{tid}: s{sire}}`(sire 缺失回退组合 male_parent),note 记 `split=family · n_families=N`;前端 runCv 加 split 下拉 + n_families 列;**F 试验设计深度(RCBD 生成 + 设计基 ANOVA)**——F1 `bre_trial_study_entry.block_no`(weld SQL 幂等)+ `POST /statistics/trial-design` RCBD 生成器(按 block_count 均分到区组 + `random.Random(seed)` 组内随机可复现、case() 批量落库、blocks 输出、无条目 409);F2 `anova.solve_rcbd` RCBD 双因素 Type I 顺序(析出 SS_block/F_block/p_block + 校正后遗传差异)+ `run_anova(block=True)`(method=ANOVA/H2/RCBD、<2 区组 409 提示先运行 trial-design;block=False 单因素路径逐字节不变);前端 ANOVA tab 加「生成 RCBD 设计」工具条 + 设计区组表 + block 校正 checkbox + 区组均值。e2e `trial_design` 5 组断言(生成/复现/落库/block=True 区组效应/门禁)+ `gs_family_cv` 5 组断言(家系阻塞折 [3,6,6]/每折1家系/random 回归零变化/家系数折叠/单家系边界)+ 回归 gblup_cv/statsflow/spatial/busflow/kinship/gaps_base/molrigor 七套零回归 + vue-tsc EXIT=0 + HTTP 核验。`_DATA_VERSION` v2.23、genomic 1.3.0。详见规格 §8.33 / `桃育种系统统计引擎实施记录.md` §18.11。);㉓ **A–F 六项功能级缺口·批3 OCS 最优贡献选择 + MABC 标记辅助回交(2026-08-05,批1/批2 已落地 ㉑/v2.22、㉒/v2.23;批3 = D+E,A–F 六项闭环收官;独立 e2e + 全量回归零回归)**——共享 **`_candidate_ebv_map` 抽取**(mating_recommend 内联 EBV 解析原样提取为共享 helper:direct germplasm_id 优先 / progeny 子代均值降权 0.5 / **双亲均缺直接值子代树剔除(v2.19 双侧去重方法论随抽取原样保留,非回归)**/ n_progeny·n_combos/coverage,mating 回归 14/14 零变化);**D OCS 最优贡献选择**——`POST /statistics/ocs`(纯计算不落库):**max Σc_i·ebv_i − λ·c'Ac,s.t. Σc=n_select、c≥0**(纯 numpy **欧氏投影梯度** `_proj_simplex` + `_solve_ocs`,无 scipy;A 由系谱+`blup.relationship_matrix` rmat 组装、对角=1、覆盖<100% → kinship_status=partial+warning);输出 `contributions`(c 降序含 ebv/source/可选 n_progeny·n_combos)+ `mean_ebv` + `avg_kinship`(c'Ac)+ `kinship_quad` + `vs_top_n`(贪心 top-n 对照:mean_ebv 相当 + kinship_reduction,量化 OCS 亲缘控制价值);门禁 n_select>候选/空候选/λ<0 409;**E MABC 标记辅助回交**——`POST /statistics/mabc-progress`(纯计算不落库):**前景选择**复用 `_mas_hit_map`(五语义、stage 无关、童期幼苗可用)`foreground_pass`=命中≥阈值;**背景基因组恢复率**对 background 面板逐标记候选 vs 轮回亲本「纯合剂量一致」比例(`_pure_homologous`,杂合不计)均值=恢复率 %;**回交代建议**按 `_BC_LADDER`(F1→BC1→…→BC5→自交固定)+ `_MABC_GENERATIONS`:晋级下一代 / 再回交一代 / 恢复无法评估(轮回亲本缺背景基因型)补测后判定 / 前景未通过;输出 per_tree{前景命中/恢复率/bc_generation/reason} + `recommended`(前景通过按恢复率降序)+ summary + warning;门禁空候选/空面板/generation 非法/background_target∉(0,100]/轮回亲本不存在 409。e2e `ocs` 17 断言(Σc/c≥0/λ 梯度 avg_kinship 单调非增 1.0→0.5157→0.3211→0.2685/λ=0 退化=贪心/partial+warning/三 409)+ `mabc` 23 断言(前景 5pass+1fail/恢复复算 100·75·75·0/reason 晋级·再回交·前景未通过/recommended 恢复率降序/童期 C6/轮回亲本缺基因型 None+warning/六 409)+ 回归 molrigor/gwas/mating_kinship/mating_ebv/gblup_cv/statsflow/spatial/busflow/gaps_base/b8/prediction_rigor/audit_fix 全套零回归 + vue-tsc EXIT=0 + HTTP 核验。`_DATA_VERSION` v2.24。详见规格 §8.34 / `桃育种系统统计引擎实施记录.md` §18.12。);㉔ **A–F 六项功能级缺口·批4 分子亲本验证 + 试验设计深度(2026-08-05,用户实证 grep 指出 genotype_call 对 mendelian/parentage 零命中 + trial_design 仅 RCBD,逐项复核确认 + 拍板「平方格子+一般循环回退」,独立 e2e + 全量回归零回归)**——**A 孟德尔/亲本一致性检验**(`GET /bre/genotype_call/mendelian/check`,纯计算不落库):子代树样本基因型 vs 声明亲本(tree.dam_id/sire_id→germplasm)逐标记 union 规则(子代等位集 ⊆ dam∪sire 并集)判兼容,单株兼容率=兼容/信息位点、rate<compat_threshold(0.98 对齐指纹)判 flag,亲本基因型跨数据集解析(同数据集优先否则全库最低 id 兜底)、双亲空→no_declared_parents/亲本声明但无 germplasm 基因型→missing_parent_genotype(不 409,数据现状)、incompatible_markers 明细(marker_id/allele/dam/sire)——填补 genotype_call 仅 fingerprint_check 的 parentage 零命中缺口;**B 试验设计深度(trial_design 仅 RCBD → augmented+alpha,rcbd 路径逐字节不变)**——**增广** check_germplasm_ids 显式对照每区组重复(anchors、block_no 不落库)+ 新品系 rng.shuffle round-robin 均分区组落 1..block_count(对照非条目子集/无对照 409);**α-格子** block_size=k+reps=r 可选——平方 v=k² 闭式格子(rep m 直线 y≡m·x+(b−1) mod k、m=k=竖列、完全格子 r=k+1 任一对至多同块一次 λ≤1、k 素数完全平衡否则 balance_warning=True 保守告警)、非平方 v 贪心可分解构造(used_pairs 避免同块对重复+卡死复用告警)、block_no 复合编码 rep*100+block 落库(探针抓出平方分支 0-based off-by-one 真 bug 已修)、校验 v%k≠0/非平方缺 k/重复数越界 409。e2e mendelian_check 8 断言(跨数据集解析/alien 等位 rate=0.8 flag/双亲空与缺基因型状态/空数据集零值)+ trial_design_ext 19 断言(增广 anchoring/平方格子 λ≤1/部分 r/非素数告警/一般贪心/四 409)+ rcbd 路径零变化 + 全套 13 套回归零回归 + vue-tsc EXIT=0 + HTTP 核验(mendelian/check 200 零值 + trial-design augmented/alpha 分派 409 + latin 非法 409)。`_DATA_VERSION` v2.25。详见规格 §8.36 / `桃育种系统统计引擎实施记录.md` §18.14。);㉕ **批5 区组随机效应 ABLUP + 孟德尔检验落库/隔离/进报告 + 统计引擎全量数值校验(2026-08-05,用户实证复查三项全部成立、拍板落地,独立三探针 + 27 套全量回归零回归)**——**N3 区组随机效应**:`blup.solve` 加 `block` 参数分派 `_solve_block`(第二随机效应、镜像 `_solve_gxe`,σ²block/block_ratio/block_effects/n_blocks,ENGINE_VERSION 1.5.0);`run_ablup(block=True)` → method=ABLUP-BLOCK,`bre_tree.block_no` 作区组(增广/α-格子不完全区组结构终于被 BLUP 消费)、缺 block_no 树降级剔表型留系谱、<2 区组 409、与 gxe/gxr(Z₂ 槽)及 spatial(残差结构)互斥 409,前端 GxE tab block 开关;**N1 孟德尔检验落库 + 自动隔离 + 进报告**:纯计算核心抽共享 `_compute_mendelian`,新 `POST /bre/genotype_call/mendelian/check/run` 落 `bre_mendelian_check`+每树子表+`bre_pedigree_exclusion` 隔离注册表(flag→upsert 隔离、未 flag→清除,**可逆**),GET 只读预览零回归;`data_quality_report(dataset_id)` 加 mendelian 段(flagged>0→has_warning);系谱消费方断开隔离树亲本链(退化为 founder 表型保留:`_build_pedigree`/`run_ablup`/`inbreeding_depression`/`kinship_matrix`/`run_cv`/`_germplasm_pedigree`,GBLUP/ssGBLUP 基因型样本不受影响);**N2 统计引擎全量数值真值校验**:新探针 `e2e_stats_numerics_20260805.py` **ok=101 fail=0** 逐段独立 ground-truth 对照(blup/gxe/block/spatial-aniso/gblup/ssgblup/bivariate/multi/FW/ammi/rcbd/diallel/ocs/UPGMA/ΔG/data-quality/kinship 全验证),探针自身两处 fixture 缺陷修复(低 h² 小样本 r_g 假收敛换高遗传力良态设计、B4.2 硬编码 tree_id),**引擎本体零缺陷**;`_DATA_VERSION` v2.26、`blup.ENGINE_VERSION` 1.5.0。详见规格 §8.37 / `桃育种系统统计引擎实施记录.md` §18.15。);㉖ **批6 规划↔目标↔试验 可追溯性闭环(2026-08-05,用户全代码库 grep 实证 `bre_plan` 彻底孤立根表——零传入外键、`bre_trial` 无 plan_id/target_id、无 project/program 表;拍板「加试验挂目标」最小双链,独立 e2e 探针 17 断言 + 全量回归零回归)**——**三可空 FK 双链闭合**:`bre_target.plan_id` + `bre_trial.plan_id`(目标链 plan→target→cross_combination→tree)+ `bre_trial.target_id`(试验链 plan→trial→trial_study→tree),weld SQL 幂等、target/trial 三件套透传 + get_list 解析 `plan_name`/`target_name`;**父校验**(target/trial create 坏 plan_id/target_id → 409,None 跳过——孤目标/独立试验仍可建)+ **删除守卫**(plan.delete 有 target/trial 子 409、target.delete 有 combo/trial 子 409);**计划可追溯端点** `GET /bre/plan/trace/{id}`(plan 基础 + targets[] 组合株数 + trials[] 试验点株数 + totals,软删过滤、孤目标不入链、不存在 409);前端 target/trial 「所属计划/目标」select + plan 页「追溯」弹窗。验证:`e2e_plan_trace_20260805.py` 17 断言全过 + 全量回归零回归(含审计切面残留检查限定 `entity_type` 根治跨表撞 id 误报)+ vue-tsc EXIT=0 + HTTP 核验;`_DATA_VERSION` v2.27。详见规格 §8.38 / `桃育种系统统计引擎实施记录.md` §18.16。);㉗ **批7 统计引擎全量十模块 golden 复查·系谱键空间错位修复(2026-08-05,用户质疑 GBLUP/ssGBLUP、genetic_corr、type_b、cluster、stability、OCS、MABC、inbreeding_depression、trial_design、mendelian 十新建模块缺逐模块数值校验(golden-test 缺失)、历史上 G–L 静默失效都靠校验暴露,拍板「全量十项逐一复查」)**——复查确认 **8/10 已 golden**(GBLUP/ssGBLUP、cluster、stability、OCS、MABC、inbreeding_depression、trial_design、mendelian 既有探针已具严格数值断言),**type_b 与 genetic_corr 补齐 golden 缺口**——审计深处暴露**系谱键空间错位真 bug**:`run_type_b_heredity`/`correlation_matrix`(mtblup)/`run_genetic_corr` 四个服务路径把 **int `tree_id` 表型键**传给 `mtblup.solve_bivariate`,而 `_build_pedigree` 系谱用 **str `"t{id}"`**,`blup.solve` 把系谱外个体自动并入 base(无关 founder)→ **系谱被静默丢弃**(平衡数据同株跨环境掩盖;**分裂家系数据**无同株跨环境、靠全同胞链桥接暴露——int 键 → r_B/r_g 锁死 ±0.99 平剖面端点假收敛假阴性)。修复:共享 helper `_tree_individual_keys`(int→`"t{id}"` 对齐系谱键空间)收口**四个调用点**(`_genetic_corr_matrix`/`_smith_hazel_index` mtblup 分支/`run_genetic_corr`/`run_type_b_heredity`),`run_ablup` 早已正确不受影响。新探针 `e2e_rg_golden_20260805.py` **ok=21 fail=0**(20 founder×10 全同胞家系×3 同胞=30 株、3 站点、高遗传力 h²≈0.89:P0 诊断 str 键恢复 r_B=0.7+/int 键锁死 −0.99;P1 type_b 分裂家系 r_B(1,2)>0.5 + **n_common=0**(无共有树、系谱桥接生效直接证据);P2 correlation 平衡 r_g(A,B)>0.65/AC,BC<0.4/判别间隙>0.3/h²∈(0,1);P2b 分裂家系 discriminator r_g(S1,S2)>0.5)。验证:`e2e_statsflow`(单家系 fixture 对键 bug 不敏感 15 断言零变化)+ `e2e_advanced_mtblup` 回归通过 + **全量回归零回归**(60 套件,含版本断言同步)+ vue-tsc EXIT=0 + 后端重启 HTTP 核验(type-b-heredity / genetic-corr/run 分裂家系判别经真实端点)+ 备份镜像 `Temp/claude/backup_keyspace_20260805/`;`_DATA_VERSION` v2.28。详见规格 §8.39 / `桃育种系统统计引擎实施记录.md` §18.17;㉘ **回归基建:统一回归 + 高风险模块正式 tc 套件(2026-08-05,用户三点质疑——tc 零覆盖分析模块 / 批7 无 golden / 新模块算偏当正常输出(G/I 静默失效同款隐患)——核实全部成立,拍板「两者都要」;纯测试基建不 bump 版本)**——`run_regression.py`(仓库根)顺序串跑 `Temp/claude/e2e_*.py` + `backend/scripts/test_bre_analysis_*_tc.py` = **63 测试**、每测试独立子进程 log 到 `regression_logs/`、EXIT 汇总、`DPB_PYTHON` 覆盖解释器、utf-8 防 GBK;**4 个正式 tc 套件**(TestClient 真实 API + golden 数值断言,高风险模块必测):`test_bre_analysis_ssgblup_tc.py` ok=14(非基因型株 GBLUP EBV=0 / ssGBLUP EBV≠0——H⁻¹ 拼接判别)、`test_bre_analysis_ocs_tc.py` ok=23(投影梯度收敛/λ 单调/c'Ac/λ=0 退化)、`test_bre_analysis_mabc_tc.py` ok=24(前景/背景恢复率/晋级/童期)、`test_bre_analysis_mendelian_tc.py` ok=9(POST run 落库 + 隔离注册表 + 阈值 0.0 可逆);教训:HTTP schema 校验 → 422 / 服务层 CustomException → 409、tc 须显式 import UserModel、隔离断言时序、启动残留预清理 `_wipe`。全量回归 58/59(gaps_engines 批量卡死单跑 RC=0 确认);备份镜像 `Temp/claude/backup_test_rigor_20260805/`;交付流程:改统计引擎/业务链后端后跑 `python run_regression.py` 全量 EXIT=0。详见规格 §8.40 / `桃育种系统统计引擎实施记录.md` §18.18。);㉙ **回归基建 2:分析模块 tc 补齐(5 套)+ pytest 接入 + 本机 CI stage(2026-08-05,用户对 4 套 tc 认可后拍板补齐 genetic_corr/type_b_heredity/inbreeding_depression/trial_design/run_stability 五个静默失效风险较低模块,v8 验收标准定为「CI 跑通 pytest 全绿」;纯测试基建不 bump 版本,`_DATA_VERSION` 保持 v2.28)**——**补 5 套正式 tc**(`backend/scripts/test_bre_analysis_{genetic_corr,type_b,inbreeding,trial_design,stability}_tc.py`,TestClient 真实 API + `-X utf8` + `_wipe()` 残留预清理):genetic_corr ok=19(平衡 3 性状 r_g(AB)>0.65/间隙>0.3 + **分裂家系判别** r_g(S1,S2)>0.5 且 n_common=0,独立种子 SEED_S=3)、type_b ok=18(3 站点分裂家系 r_B>0.5 且 n_common=0,复刻 tY-first rng 序→0.990)、inbreeding ok=44(方向感知:衰退 slope<−40/无衰退/上升 slope>30 + deep 系谱 F=0.125 + min_n insufficient)、trial_design ok=25(增广对照 block_no=None 不落库 + α-格子平方 λ≤1/非素数告警/一般贪心 + **block_no=rep*100+block DB 读回** + 四 409)、stability ok=16(FW b≈2/1/0 + flag_stable C1=True + AMMI ASV rank + engine_version 落库);**pytest 接入**——`backend/tests/test_stat_analysis_tc.py` 9 套 @pytest.mark.pg + subprocess 串跑真实脚本、skipif 探测真实 PG16+Redis(**protocol=2**——redis-py 7.x 默认 RESP3 对老 WSL redis-server 报 ResponseError,与 app redis_connect 对齐)、env 显式构建剥 conftest 污染解析 .env.dev 可 TC_CI_* 覆盖;pyproject 注册 pg marker、conftest collect_ignore_glob 排除 scripts;**本机 CI stage `run_ci.py`**(仓库根,step 0 探测 PG+Redis 失败指引 / step 1 `pytest -m pg` / step 2 EXIT=0「CI 全绿」,日志 Temp/claude/ci_logs/;不做 GitHub Actions——全工程无 git 仓库);验证 5 套 EXIT=0(122 断言)+ `pytest -m pg` 9 passed(146s)+ skipif 9 skipped 不红 + run_ci EXIT=0 + run_regression glob 自动纳入;备份镜像 `Temp/claude/backup_analysis_tc2_20260805/`;交付流程:v8 验收 = `python run_ci.py` EXIT=0。详见规格 §8.41 / `桃育种系统统计引擎实施记录.md` §18.19。);㉚ **O2–O4 统计方法学广度(2026-08-05,用户系统核对统计引擎能力后确认三项 P2 方法学缺口——幼年–成年遗传相关 / 非线性基因组预测 / 约束选择指数,均零命中、不影响当前业务正确性属方法库广度,拍板「O2–O4 先落地」+ 两决策:① O4 用经典 Kempthorne–Nordskog =0 闭式解(纯 numpy 不迭代)② 前后端同步扩展;`_DATA_VERSION` v2.28 → v2.29、genomic 1.4.0,无新表)**——**O2 幼年–成年遗传相关**:`_values_by_tree_env` 加 env_dim=stage 分支(`coalesce(obs.stage, TraitModel.stage)` 分组)+ `run_type_b_heredity` env_dim 校验扩 stage——发育阶段当"环境"逐对 `mtblup.solve_bivariate` REML 精确估 r_g(>0.5 表示童期可借力成株、早期间接选择有效),复用 `bre_type_b_result` 不建表,前端 Type-B 下拉加 stage;**O3 非线性基因组预测**:`genomic.py` 1.4.0 加 `solve_rrblup`(岭回归逐标记 u=(Xc'Xc+λI)⁻¹Xc'yc,**与 GBLUP 数学对偶**(同数据 EBV 逐位吻合)、输出 marker effects)+ `solve_bayesb`(BayesB Gibbs 可变选择 δ_j~Bernoulli(1−π)、**确定性 seed 可复现**)+ `kfold_cv_genomic` dosage 分派 rrblup/bayesb(实证 CV);`run_gblup` method 扩 rrblup/bayesb + seed 透传落 PredictionModel(method=RRBLUP/BayesB)+EBV 行、`run_cv` GS 分支 KFCV/RRBLUP·KFCV/BayesB;**O4 约束选择指数**:`_smith_hazel_index` 加 restricted(**Kempthorne-Nordskog Lagrange 闭式投影** b=P⁻¹·G·(I−M)·a、M=C'(C·G·P⁻¹·G·C')⁻¹·C·G·P⁻¹·G → 受限性状 **ΔG=0**;对照旧公式 M=C'(C·P⁻¹·C')⁻¹·C·P⁻¹ 实测 ΔG=4.46 不满足证明修正必要)+ economic_weights(绝对尺度不归一化、可与 restricted 叠加、asc 翻转),method 校验扩 zsum/smith_hazel/restricted、落库 SI_RES;**顺手修复 tc 暴露的既有缺口**:`cv_detail` 折明细缺 `cv_result_id` → 任意 GET /cv/{id} 400(既有 tc 未触达静默失效)——补上可查;验证:e2e 探针 19 断言(对偶逐位 1.42e-13 / BayesB 可复现 / 受限 ΔG=0 机器精度 −8.88e-16 / O2 真实 PG r_g=0.6145)+ 正式 tc 第 10 套 `test_bre_analysis_o234_tc.py` ok=41 fail=0(r_g=0.8995 / bayesb 同 seed 两次 EBV 逐位一致 / rrblup·GBLUP EBV 相关 1.000 / b_受限=0.0 / economic desc>0·asc<0 / 三 409)+ 全量回归零回归 + `run_ci.py` EXIT=0;备份镜像 `Temp/claude/backup_o234_20260805/`。详见规格 §8.42 / `桃育种系统统计引擎实施记录.md` §18.20。;㉛ **O1 花期数据消费补强(2026-08-06,用户系统核对花期字段零消费——`bre_germplasm.flowering_period` 等从未被任何统计/决策逻辑消费,核实确认 + 定性 P1 数据消费补强 + 辅助信息(非 S-allele 级硬错误防呆),拍板三档位落地;`_DATA_VERSION` v2.29 → v2.30,无新表)**——① **花期数据建模升级(结构化区间,前置)**:`bre_germplasm` 加双 Date 列 `bloom_start_date`/`bloom_end_date`(weld SQL 幂等 + COMMENT),`flowering_period` 5 档字典保留作粗粒度 fallback;model/schema/service(Excel 导入导出/模板 header 同步)+ 前端 germplasm 表单改两个独立 date 字段直绑(useCrudForm 无提交前 transform → 弃 daterange,与 acquisition_date 同模式零转换)——花期字段首次被消费;② **mating_recommend 花期重叠软警示(不硬阻断)**:`_bloom_overlap`(结构化区间月日年际比较 `_md()` 取 tm_yday 优先;缺区间 fallback 5 档 `_BLOOM_TIER_ORDER` 相邻/同档视为重叠)四态——overlap(重叠可同期授粉,**不进 flags[] 不阻断**)/ store(父本先开花需采粉贮藏)/ offset(母本先开花注意柱头可授期)/ unknown(缺花期数据提示补录),pairs 加 bloom_status/bloom_msg、非重叠三态追加 flags[](前端红色 tag);③ **授粉窗口规划消费 bre_pollen**:新端点 `GET /bre/pollen/window-plan?window_start=&window_end=`(`window_plan` 服务方法,窗口反向 409)——花期种质 `_project_bloom` 结构化区间按年际月日投影到窗口起始年(3-4 月单年窗口假设)、缺区间 fallback `_BLOOM_TIER_SPAN` 5 档代表区间并标注「粗粒度」;**窗口覆盖三态** covered(整段有批次 collect≤bs and expiry≥be)/partial/none(n_need_pollen 计 none);**库存五态** full/expiring(窗口内到期)/entering(窗口内采集)/expired(窗口前失效)/not_started;前端花粉页「授粉窗口规划」卡(daterange + 生成 + 缺粉 alert + 花期覆盖表 + 库存状态表,默认 03-01~04-30)。验证:e2e 探针 `e2e_o1_bloom_20260805.py` 4 段全断言(花期建模双 Date 落库 / 6 种质 15 对四态(区间三类 + 档位 store + 混合对 unknown)/ 窗口覆盖三态 + 档位投影 + 缺粉集合 / 库存五态 / 反向 409)+ vue-tsc EXIT=0 + 全量回归零回归 + `run_ci.py` EXIT=0 + HTTP 核验;备份镜像 `Temp/claude/backup_o1_bloom_20260805/`。详见规格 §8.43 / `桃育种系统统计引擎实施记录.md` §18.22。;**2026-08-06 追加**:业务链路与数据模型说明书 v1.1 已与代码同步(O1 花期 / N4 血缘 / 亲本校验 / 世代闭环 / §九 QA 与 CI)。
|
||
|
||
---
|
||
|
||
## 一、主表:模块 ↔ 层 ↔ 规格 ↔ SOP ↔ 一期 ↔ 数据表 ↔ 状态
|
||
|
||
| 模块 | 层 | 规格章节(v2.7) | 报告SOP阶段 | 一期 | 数据表 | 状态 |
|
||
|---|---|---|---|---|---|---|
|
||
| 种质资源 | L1 | §4 germplasm | 阶段1 | 是 | breeding_germplasm | ✅落地(基础+**s_alleles** S-等位基因,Sf=自交亲和型,2026-08-04) |
|
||
| 性状字典 | L1 | §3.1 | 阶段6 表型 | 是 | breeding_trait | ✅落地(基础+direction/into_ebv/default_h2+**抗病/需冷量 5 条 numeric 种子**:细菌性穿孔病/褐腐病/白粉病 0-5 级病情指数 + 需冷量 h + 需热量 GDD,into_ebv=1 进选种目标,2026-08-04;**产量构成/物候/品质/生长量/描述性状种子 19 条**:单株产量/果数/均果重/好果率/裂果率 + 盛花期/果实成熟期/落叶期 + 可溶性固形物/可滴定酸/固酸比 + 主干周长/树高/冠幅 + 果形/茸毛/离核/果皮底色/着色类型,2026-08-05) |
|
||
| 砧木字典 | L1 | — | 阶段6 表型 | 是 | breeding_rootstock | ✅落地(矮化类/砧穗亲和性;**G×R 随机互作** rootstock 由固定哑变量升随机效应槽,2026-08-04) |
|
||
| 选择规则 | L1 | §3.11 | 阶段7 评价 | 是 | breeding_selection_rule | ✅落地(方向感知 conditions_json) |
|
||
| 试验基地 | L1 | §4 site | 阶段5 | 是 | breeding_site | ✅落地(基础) |
|
||
| 试验地块 | L1 | — | 阶段5 | 是 | breeding_plot | ✅落地 |
|
||
| 育种人员 | L1 | — | 全程 | 是 | breeding_personnel | ✅落地 |
|
||
| 育种目标 | L1 | — | 阶段1 | 是 | breeding_target | ✅落地 |
|
||
| 系谱链(pedigree) | L1 | §3.18 | 阶段1 | 是 | breeding_pedigree | ✅落地(独立系谱表,dam/sire 递归闭环,clone+germplasm 统一覆盖,A 矩阵唯一权威,2026-08-04;**mating_recommend 亲缘矩阵多源解析**——显式系谱规范化名称反查权威 + `tree.germplasm_id` 直连 FK 兜底(唯一一致)+ BFS 祖先展开去重,kinship_status/warning 显式告警,2026-08-05) |
|
||
| 杂交组合 | L2 | §4 cross_combination | 阶段2 | 是 | breeding_cross_combination | ✅落地(基础+**S-等位基因交配兼容性校验**:任亲本含 Sf→放行、共享 2 个→409「配了不结」硬门禁、共享 1 个→s_compat 半兼容警示,2026-08-04;**同质自交门禁**:female==male → 409「自交组合请确认」(create/update 生效亲本统一,A3),2026-08-05) |
|
||
| 授粉管理 | L2 | §4 pollination(含 §3.19 关联) | 阶段2 | 是 | breeding_pollination | ✅落地(基础+pollen_lot_id/授粉方式/窗口校验,2026-08-04;**花粉来源父本一致性**:批次采集父本≠授粉声明父本→409(混合/外地批次放行,A1),2026-08-05) |
|
||
| 花粉档案 | L2 | §3.19 | 阶段2 | 是 | breeding_pollen | ✅落地(采集/贮藏/活力/有效期+available_lots,2026-08-04;**pollination 来源一致性消费** male_tree_id,2026-08-05) |
|
||
| 种子处理 | L2 | — | 阶段3 | 是 | breeding_seed_treatment | ✅落地(基础+**seed_lot_id 关联补链**(收种→种子处理,A4),2026-08-05) |
|
||
| 种子批库存 | L2 | §3.13 | 阶段3 | 是 | breeding_seed_lot | ✅落地(基础+超期预警接入+**pollination_id 关联补链**(授粉→收种,A4),2026-08-05) |
|
||
| 育苗管理 | L2 | §4 seedling | 阶段4 | 是 | breeding_seedling | ✅落地(基础) |
|
||
| 定植管理 | L2 | §4 planting | 阶段5 | 是 | breeding_planting | ✅落地(基础) |
|
||
| 单株评价 | L2 | §4 tree_evaluation | 阶段6 | 是 | breeding_tree_evaluation | ✅落地(基础) |
|
||
| 育种单株 | L2 | §4 tree | 阶段6 | 是 | breeding_tree | ✅落地(基础+**stage 自动设置**(create 按 breeding_generation 推断 juvenile/evaluation,A6),2026-08-05;**显式亲本 vs 组合父母本警示**:显式 dam/sire 偏离组合时返回体 warning「以显式为准」(不阻断,A2),2026-08-05) |
|
||
| 单株照片 | L2 | — | 阶段6 | 是 | breeding_tree_photo | ✅落地 |
|
||
| 扩展观测(EAV) | L2 | §3.2 | 阶段6 | 是 | breeding_observation | ✅落地(EAV 通用录入可挂 plot 级、obs_type numeric/text/date,900050;**germplasm 级观测**(bre_observation.germplasm_id 描述性数据入口,A3)+**EAV 校验**(numeric/date parse、valid_min/max 越界、同键重复 409,A5),2026-08-05) |
|
||
| 农事操作 | L2 | §3.3 | 阶段6 | 是 | breeding_field_operation | ✅落地(op_type 字典施肥/喷药/修剪/灌溉/疏果/套袋/采收,900051;**采收结构化入口** op_type=harvest 产量表单 yield_kg/fruit_count/avg_fruit_weight/marketable_rate,树级采收同步写统计性状观测、plot 级只留操作记录,A1,2026-08-05) |
|
||
| 选育结果 | L2 | §4 selection_result | 阶段7 | 是 | breeding_selection_result | ✅落地(基础;**晋级同步落系谱**——单株晋级 line/regional_trial/released 建种质时自动写 bre_pedigree(tree.dam/sire 回退组合亲本),跨代系谱链闭合,2026-08-05) |
|
||
| 克隆扩繁 | L2 | §3.8 | 阶段8 | 是 | breeding_propagation | ✅落地 |
|
||
| 分组/标签 | L2 | §3.5 | 阶段8 | 否(二期) | breeding_group / member | ✅落地(2026-08-05) |
|
||
| DUS/品种保护 | L2 | §8.17 台账 | 阶段9 | 否 | breeding_dus_descriptor / breeding_dus_test / breeding_dus_observation | ✅落地(数据能力三表 + UPOV TG/53 描述符种子,2026-08-04) |
|
||
| 区域试验/登记 | L2 | — | 阶段10 | 否 | (target 关联) | ⏳待建 |
|
||
| MET 试验结构 | L3 | §3.4 | 阶段5 | 否(二期) | breeding_trial / trial_study / study_entry | ✅落地(trial/trial_study/trial_study_entry 全模块,2026-08-05;**RCBD 试验设计深度**——`POST /statistics/trial-design` 按 block_count 均分 entry 到区组 + random.Random(seed) 组内随机可复现、`bre_trial_study_entry.block_no` 落库;`run_anova(block=True)` 设计基 ANOVA 析出区组效应 SS_block/F_block/p_block(method=ANOVA/H2/RCBD),A–F 六缺口·批2,v2.23,2026-08-05;**增广/α-格子设计深度**——augmented 对照 anchoring(check_germplasm_ids 每区组重复、block_no 不落库)+ 新品系 round-robin 均分区组;alpha 平方闭式格子(v=k² 直线构造、完全格子 r=k+1、k 素数完全平衡否则 balance_warning 保守告警)/ 一般 v 贪心可分解回退,block_no=rep*100+block 复合编码,A–F 六缺口·批4,v2.25,2026-08-05) |
|
||
| 环境因子(G×E) | L3 | §3.9 | 全程 | 否(二期) | breeding_environment_condition | ✅落地(2026-08-05) |
|
||
| 统一性状值视图 | L3 | §4 末尾 | 阶段6 | 是(视图) | v_trait_value | ✅落地(v_trait_value + /statistics/trait-values 长表查询,2026-08-04) |
|
||
| 描述统计 / ANOVA | L3 | §5 3.6–3.8 | — | 是(地基) | (引擎) | ✅落地(/describe 描述统计 + /anova/run ANOVA+H²,纯 numpy 零 R,2026-08-04) |
|
||
| **配合力 GCA/SCA** | L3 | §5 3.9 | — | **是(一期2个)** | (引擎 + prediction) | ✅落地(交配设计 design_type) |
|
||
| **育种值 EBV/ABLUP** | L3 | §3.12 / §5 3.10 | — | **是(一期2个)** | breeding_prediction / breeding_prediction_value | ✅落地(ABLUP+GXEBLUP+G×E,2026-08-03;**PA 落库**+**MLOps 溯源** data_version/input_hash/engine_version+**germplasm_id 填充**+**空间竞争协变量** covariate=competition+**stage 感知**(童期/成株过滤与警示、批次 stage 落库)+**k-fold CV 外部验证**(ABLUP/GXEBLUP 双支持,sire 家系分层留出,bre_cv_result/fold 落库)+**MT-BLUP 成对双性状遗传相关**+**GBLUP/ssGBLUP 基因组选择引擎**+**AMMI/Finlay-Wilkinson 稳定性**+**BLUP stage 拆分**(观测级 stage 过滤,model_name `_{stage}` 后缀)+**MLOps 重训/版本回滚**(is_active 版本链 + drift/retrain/activate 端点)+**G×R 砧木×接穗随机互作**(method=GXRBLUP,rootstock 升级第三随机效应槽、与 G×E 互斥、σ²gxr 落 note,2026-08-04)+**GS 专用 k-fold 交叉验证**(GBLUP/ssGBLUP 掩蔽留出 GEBV vs 表型实证 pearson,method=KFCV/GBLUP·KFCV/ssGBLUP,固定种子随机分层、G/H/Hinv 只建一次,`genomic.kfold_cv_genomic`,2026-08-04)+**AR1×AR1 空间协方差**(run_ablup(spatial=True) → method=AR1×AR1/model_name=SPATIAL_*,e~N(0,σ²e·R) R=AR1(ρ)⊗AR1(ρ) 纯 numpy eigh 求 R⁻¹、REML 对 (h²,ρ) 坐标上升黄金搜索、与 G×E/G×R 互斥、缺 row/col 坐标 409,blup 1.3.0,2026-08-04)+**稀疏 A⁻¹+共轭梯度**(n>N_SPARSE(1000) 阈值分派 solver=sparse-cg、`_build_ainv_sparse` COO + `_cg_solve` + Hutchinson k=100 可靠性近似、稠密路径零变化,2026-08-04)+**经典侧计算端点**(数据质量 data-quality IQR+MAD 异常诊断 / 遗传增益 genetic-gain ΔG=k·r_g·σ_A 逐轮投影 / 主动选配 mating-recommend S-等位硬过滤+亲缘惩罚,纯计算不建表,2026-08-04;**EBV 来源置信修复**——direct 亲本自身值优先、缺直接值回退「子代测验近似」显式标注+降权 0.5、双亲均缺的子代树剔除防双侧等权重复计、candidate_ebv/coverage/逐对旗标显式可查,2026-08-05;**离群值方向语义修复**——IQR/MAD 偏离株按 bre_trait.direction 双通道分流:同向偏离→`extreme_candidates` 极值候选(精英)/ 反向偏离→`outliers` 疑似录入错误(高值优的异常低值、低值优的异常高值),返回体加 direction/extreme_candidates/summary.n_extreme_candidates、outliers 只含反向株、前端双表+方向指示,2026-08-05)+**Type-B 多环境遗传力**(run_type_b_heredity:`mtblup.solve_bivariate` 把环境当"性状"逐对精确 REML、env_dim=site/year、落 `bre_type_b_result`、POST /statistics/type-b-heredity + GET /type-b/{id})+**遗传相关 genetic 模式**(correlation mode=genetic 逐对 bivariate 组装 G0、pheno 分支逐字节不变、不落库)+**UPGMA 层次聚类**(POST /statistics/cluster 纯 numpy、输出 clusters/merges/order、不落库),2026-08-05)+**近交衰退分析**(POST /statistics/inbreeding-depression:`relationship_matrix` 的 F=A_ii−1(非近交树 F=0 兜底)+ trait 树级表型均值 → numpy lstsq 回归 phenotype~F——slope/r2/t_slope/depression_rate/has_depression/interpretation + high_inbreeding 高 F 株清单(前 10),n<min_n 优雅降级 sufficient=false 不 409,`_DATA_VERSION` v2.22,A–F 六缺口·批1,2026-08-05)+**GS 家系阻塞折 CV**(`genomic.kfold_cv_genomic` 加 `split="family"` + `family_of`:同家系个体同折防亲缘泄漏高估准确度、无家系个体自成一族、家系数<折数折叠并 warning、单家系边界、输出 n_families;`run_cv` 加 split 透传——family_of 由树 sire(回退组合 male_parent)构建,note 记 split=family·n_families;random 路径逐字节不变,A–F 六缺口·批2,`_DATA_VERSION` v2.23,2026-08-05)+**OCS 最优贡献选择**(POST /statistics/ocs:max Σc·ebv − λ·c'Ac 投影梯度求解,n_select/λ 权衡、vs_top_n 贪心对照量化亲缘控制价值、kinship_status 显式告警,EBV 复用共享 `_candidate_ebv_map`、纯计算不落库,A–F 六缺口·批3)+**MABC 标记辅助回交**(POST /statistics/mabc-progress:前景 MAS 命中+背景纯合剂量一致恢复率+`_BC_LADDER` 回交代建议、recommended 恢复率降序、童期幼苗可筛,A–F 六缺口·批3,`_DATA_VERSION` v2.24,2026-08-05)+**区组随机效应 ABLUP**(`run_ablup(block=True)` → method=ABLUP-BLOCK:`bre_tree.block_no`(增广/α-格子已落库的不完全区组结构)作第二随机效应 `_solve_block`(镜像 `_solve_gxe`,σ²block/block_ratio/n_blocks 落 note、PEV 可靠性)、缺 block_no 树降级剔表型留系谱、<2 区组 409、与 gxe/gxr(Z₂ 槽)及 spatial(残差结构)互斥 409、blup 1.5.0,批5)+**统计引擎全量数值真值校验**(`e2e_stats_numerics_20260805.py` ok=101 fail=0:blup/gxe/block/spatial-aniso/gblup/ssgblup/bivariate/multi/FW/ammi/rcbd/diallel/ocs/UPGMA/ΔG/data-quality/kinship 逐段独立 ground-truth 对照,探针 fixture 两处缺陷修复、引擎本体零缺陷,批5,`_DATA_VERSION` v2.26,2026-08-05) |
|
||
| 遗传力 h²/H² | L3 | §5 3.11 | — | 否 | (引擎) | ✅落地(随BLUP批次落主表,2026-08-03) |
|
||
| 选择指数 | L3 | §5 3.15 | — | 否 | (引擎) | ✅落地(zsum+smith_hazel,方向翻转+default_h2兜底;**无性系级聚合** aggregate=clone 可靠加权+自株退化+系级决选;**Smith-Hazel 遗传相关** g_method=calo(可靠性校正 r_g=r_EBV/√(rel_i·rel_j))|mtblup(**成对双性状 BLUP**,G 非对角用 bivariate REML,单对失败回退 Calo+warning)+g_corr/g_note/g_source 落库可审计,2026-08-04;**自动权重** auto_weights=True → default_h2 兜底 0.1、强制 use_h2=False 防双重相乘、direction 翻转、weights_json 记 __auto,B3,2026-08-05) |
|
||
| 选择强度链 / 组合得失漏斗 | L3 | §3.13 | — | 否 | seed_lot 计数 | ✅落地(组合得失漏斗 v_combination_funnel:花→果→种→苗→定植→树→入选六级派生指标 结实率/出苗率/选择强度,只读端点,2026-08-04;**前端入口** statistics 页「组合得失漏斗」对话框,C3,2026-08-05) |
|
||
| 育种报告 | L3 | §3.6 | — | 否 | breeding_report | ✅落地(CRUD + POST /report/generate 聚合预测/稳定性/CV,900075,2026-08-05) |
|
||
| 分析数据集 | L3 | — | — | 否 | breeding_analysis_dataset | ✅落地(trait_codes/sample_ids/config jsonb + status,900070,2026-08-05) |
|
||
| 超期预警 | L0 | — | 全程 | 否 | breeding_alert | ✅落地(每日 job 按 selection_rule 扫描树超期/花粉过期/种子超期 → bre_alert + /bre/alert/list + 前端预警中心,2026-08-05) |
|
||
| 审计切面 | L0 | §3.10 | 全程 | 是(切面) | breeding_audit_log | ✅落地(base_crud 三写注入 CREATE/UPDATE 字段级 diff/DELETE + 批量导入汇总,/bre/audit/list,2026-08-05) |
|
||
| 互操作 BrAPI | L0 | 原则7/§6 | — | 否 | (只读端点/不建表) | ✅落地(/brapi/v2 germplasm/observationvariables/studies/observations,2026-08-05) |
|
||
| 互操作 MIAPPE | L0 | 原则6 | — | 否 | (元数据模板/不建表) | ✅落地(/brapi/v2/miappe 模板导出,2026-08-05) |
|
||
| 统一编号服务 | L0 | §3.10 | 全程 | 是 | breeding_sequence | ✅落地(NumberGenService + pg_advisory_xact_lock 原子取号,4 处迁移 YY+3位/组合-序号/clone_code/batch_no,2026-08-05) |
|
||
| 备份容灾 | L0 | — | 全程 | 是 | (脚本+每日 02:00 job) | ✅落地(pg_backup.sh/pg_restore.sh,Temp/backup 按日期 + N 天轮转,2026-08-05) |
|
||
| 分子标记 | L4-2 | §3.7 | — | 否(V2.0) | breeding_marker | ✅落地(CRUD+Excel,2026-08-04) |
|
||
| 基因型数据集 | L4-2 | §3.7 | — | 否 | breeding_genotyping_dataset | ✅落地(CRUD+Excel,2026-08-04) |
|
||
| 基因型样品 | L4-2 | §3.7 | — | 否 | breeding_genotype_sample | ✅落地(CRUD+Excel,2026-08-04) |
|
||
| 基因型调用 | L4-2 | §3.7 | — | 否 | breeding_genotype_call | ✅落地(CRUD+VCF+指纹,2026-08-04;**孟德尔/亲本一致性检验**——`GET /genotype_call/mendelian/check`:子代树样本 vs 声明亲本(tree.dam_id/sire_id)逐标记 union 规则判兼容、rate<0.98 判 flag、亲本基因型跨数据集解析、双亲空/缺基因型归状态不 409、incompatible_markers 明细,填补 parentage 零命中,A–F 六缺口·批4,v2.25,2026-08-05;**落库+自动隔离+进报告**——`POST /genotype_call/mendelian/check/run` 落 `bre_mendelian_check`+每树子表+`bre_pedigree_exclusion` 隔离注册表(flag→隔离、未 flag→清除可逆),`data_quality_report(dataset_id)` 含 mendelian 段,系谱消费方断开隔离树亲本链退化为 founder,GET 只读预览零回归,批5,v2.26,2026-08-05) |
|
||
| GWAS/QTL/MAS 标记辅助选择 | L4-2 | §3.7 | — | 否 | bre_gwas_result / bre_gwas_snp / bre_qtl / bre_mas_panel / bre_mas_panel_marker | ✅落地(900214 GWAS/QTL 页翻转 + GLM+PC 关联扫描 + QTL 定位 + MAS 决策 hook,2026-08-04;**EMMAX 混合模型** method=emmax 零模型 `_profile_solve` + eigh 对角化 + 逐标记 GLS、**QTL×E 环境互作** 分环境 GWAS 合并 stable/env-specific 计算端点不建表、**MAS 面板语义** mode/favorable_allele/haplotype_group 五语义命中,gwas 1.1.0,2026-08-04;**MABC 标记辅助回交** POST /statistics/mabc-progress——前景 MAS 命中(复用 `_mas_hit_map` 五语义、stage 无关童期可筛)+ 背景基因组恢复率(候选 vs 轮回亲本纯合剂量一致比例)+ `_BC_LADDER` 回交代建议,`_DATA_VERSION` v2.24,A–F 六缺口·批3,2026-08-05) |
|
||
| ML辅助/图像/LLM | L4-2/3 | §6 | — | 否 | (外部服务) | ⏳待建 |
|
||
|
||
---
|
||
|
||
## 二、各层模块级落位(2026-07-29 定稿)
|
||
|
||
- **L0 系统底座**:RBAC(✅) · 部门隔离 sys_dept=课题组(✅) · 数据字典(✅四类已灌) · 操作审计 sys_log(✅)+breeding_audit_log 切面(✅,2026-08-05) · 文件(✅) · 编号服务(✅ NumberGenService 原子取号,2026-08-05) · 定时任务(✅ ap_scheduler 3 系统 job,2026-08-05) · **BrAPI 只读适配(✅)+MIAPPE 元数据模板(✅),/brapi/v2 五端点,2026-08-05** · **性能(纯 numpy 引擎异步 job 队列,零 R,✅)** · **备份容灾(PG 备份 pg_backup.sh+每日 02:00 job,✅,2026-08-05)**。
|
||
- **L1 基础数据**:种质(✅)/性状字典(✅ 含抗病/需冷量 numeric 种子)/选择规则(✅)/基地(✅)/地块(✅)/人员(✅)/目标(✅)/系谱(✅ breeding_pedigree)。
|
||
- **L2 育种流程**:杂交/授粉/种子/育苗/定植/评价/单株/照片/选育(✅基础) + observation(✅ 900050)/field_operation(✅ 900051)/seed_lot(✅)/propagation(✅)/group(✅)/analysis_dataset(✅ 900070)/breeding_report(✅ 900075)/alert(✅ 超期预警);**数据接入=Excel 导入,一期先性状记录模板(yz.sql 蓝本),余表分批**。
|
||
- **L3 统计决策**:地基(统一视图/ MET/ 环境/ 系谱A/ 审计) + 计算(描述/ANOVA/相关PCA + **一期2个:配合力+EBV**) + 决策(遗传力/指数/报告/预警,后续)。
|
||
- **L4-2 分子层(V2.0)**:marker / genotyping_dataset / genotype_sample / genotype_call 四表(✅数据能力:CRUD+VCF 导入+DNA 指纹防错+**孟德尔/亲本一致性检验**(子代 vs 声明亲本 union 规则、跨数据集亲本基因型解析、flag 阈值、incompatible_markers 明细,A–F 六缺口·批4,2026-08-05;**落库+自动隔离**——POST /genotype_call/mendelian/check/run 落 bre_mendelian_check+每树子表+bre_pedigree_exclusion 隔离注册表(flag→隔离、未 flag→清除可逆)、data_quality_report(dataset_id) mendelian 段、系谱消费方断开隔离树亲本链退化为 founder 表型保留,批5,v2.26,2026-08-05),2026-08-04) + **GBLUP/ssGBLUP 引擎(✅:VanRaden G(method1/2)+MAF+blend 岭、单步法 H⁻¹=A⁻¹+[0,0;0,G⁻¹−A22⁻¹] 且 V 块用 H 协方差、run_gblup 样本 tree 直连/名称兜底、未映射+多等位跳过,2026-08-04)** + **GS 专用 k-fold 交叉验证(✅:`genomic.kfold_cv_genomic` 掩蔽留出 GEBV vs 表型实证 pearson/RMSE,KFCV/GBLUP·KFCV/ssGBLUP、固定种子随机分层、G/H/Hinv 只建一次,run_cv 加 dataset_id/method/maf_min,2026-08-04)** + **GWAS/QTL/MAS 闭环(✅:GLM+PC 关联扫描 + QTL 定位 + MAS 面板,bre_gwas_result/snp + bre_qtl + bre_mas_panel/marker 五新表,decision_preview marker 条件,900214 页翻转,2026-08-04)**。
|
||
- **L4-3 AI 前瞻(V4.0)**:占位,触发细化=一期 Web 跑通真实数据 + 分子/统计数据到位。
|
||
|
||
---
|
||
|
||
## 三、时间线统一(波次 ↔ 版本,2026-07-29 定稿)
|
||
|
||
| 版本 | 周期(估) | 波次 | 交付 |
|
||
|---|---|---|---|
|
||
| V0.5 | 0–2 周 | 0–1 | 底座 + 基础数据闭环 + 性状导入模板 |
|
||
| V1.0 | 2–12 周 | 2–4 | 育种流程核心 + 统计地基 + **统计一期2个(EBV+配合力)** |
|
||
| V1.1 | 12–18 周 | 4余+6部 | 遗传力/选择指数/EBV持久化 + 育种报告 |
|
||
| V1.2 | 18–24 周 | 5部 | 移动端田间采集 |
|
||
| V2.0 | 分子层 | 5深+§6(4.3–4.5) | 分子四表 + GS/GWAS/GBLUP |
|
||
| V3.0 | 保护+互操作 | §4(2.14–2.15)+§7(0.8) | DUS/登记 + BrAPI/MIAPPE |
|
||
| V4.0 | AI 前瞻 | §6(4.6–4.9)+图层 | 触发=一期跑通+分子/统计数据到位 |
|
||
|
||
---
|
||
|
||
## 四、与三份文档关系
|
||
|
||
- 本文 = **统一映射总表**,是模块级交叉引用的唯一真相。
|
||
- 业务背景/10阶段 SOP → `桃育种系统业务功能规划报告.md`
|
||
- 顶层分层/波次/版本 → `桃育种系统功能规划(分层路线图).md` v1.1
|
||
- 字段级规格 → `桃育种系统模块扩展需求规格.md` v2.11
|
||
- **统计引擎落地台账** → `桃育种系统统计引擎实施记录.md` v1.5(2026-08-04,G×E 引擎 + 性状方向标注 + 花粉档案 §3.19 + 选择指数无性系级聚合 + 配合力交配设计 + 统计严谨·MLOps 复现性①Calo②PA③溯源④germplasm_id⑤砧木⑥空间竞争 + 组合得失漏斗 + 精修项四连发(DUS 数据能力三表 / stage 感知 / k-fold CV / 按 site 公平性报告)+ **十一、六项能力完善**(MT-BLUP 遗传相关 / GBLUP-ssGBLUP 引擎 / DUS 特异性统计检验 / AMMI-FW 稳定性 / MLOps 重训回滚 / BLUP stage 拆分)+ **十二、田间试验精度补强·砧木×接穗随机互作 G×R**(rootstock 第三随机效应槽,G×E 互斥,含探针验证与备份)+ **十三、十四**(2026-08-04 前段)+ **十五、GWAS/QTL/MAS 标记辅助选择闭环**(GLM+PC 求解器 / 5 新表 / gwas·qtl·mas-panel 端点 / decision_preview marker 条件 / 前端 900214 翻转 / 验证 7 段+回归零回归)+ **十六、九缺口补齐**(经典侧计算端点 A5 数据质量/A3 遗传增益/A6 主动选配 + 分子侧严谨性 B1 EMMAX/B2 SSR 多等位虚拟编码/B3 QTL×E/B4 MAS 面板语义 + 求解器核心 A2 AR1×AR1 空间协方差/A7 稀疏 A⁻¹+共轭梯度+Hutchinson 可靠性,三批 e2e+回归全过)+ **十八、桃育种业务流全面完善**(批A 业务数据链 A1-A6 / 批B 统计算法 B1-B4 / 批C 前端 C1-C4)+ **§18.5 世代闭环修复**(单株晋级落系谱)+ **§18.6 近交惩罚静默关闭修复**(亲缘多源解析)+ **§18.7 EBV 回退方法学修复**(direct 优先+子代测验降权+双侧去重)+ **§18.8 数据质量离群值方向语义修复**(同向=精英 / 反向=疑似录入错误)+ **§18.9 ΔG 投影假设 + 工程健壮性打磨**(note 假设声明 / spatial 缺坐标降级 / numpy 收敛向量化))
|
||
- 数据表脚本(含本表所有表的最新建表 SQL)→ `backend/sql/breeding_tables.sql`
|