66 KiB
桃育种系统 · 规划对照总表
版本: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_stabilitysite/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_combinationcreate/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_mapadditive/dominance/recessive/allele/haplotype 五语义);批3 求解器核心:AR1×AR1 空间协方差(blup.solve_spatial:eN(0,σ²e·R)、R=AR1(ρ)⊗AR1(ρ) R⁻¹ 纯 numpy eigh、REML 对 (h²,ρ) 坐标上升黄金搜索、run_ablup(spatial=True)→method=AR1×AR1、与 G×E/G×R 互斥、缺坐标 409)+ 稀疏 A⁻¹+共轭梯度(F**——_build_ainv_sparseCOO +_cg_solve、n>N_SPARSE(1000) 阈值分派 solver=sparse-cg、Hutchinson k=100 估 PEV 对角 reliability 近似、稠密路径逐字节不变)。_DATA_VERSIONv2.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.pyNumberGenService +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_VERSIONv2.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_VERSIONv2.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_recommendEBV 回退重写: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 回归 phenotypesufficient/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)。e2eparent_validation10 断言(A1 不一致 409/一致放行/混合放行/update 同门禁 + A2 双侧警示/单侧仅父本/一致无警示/update 警示 + A3 create/update 同质 409)+inbreeding_depression4 断言(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_VERSIONv2.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)——F1bre_trial_study_entry.block_no(weld SQL 幂等)+POST /statistics/trial-designRCBD 生成器(按 block_count 均分到区组 +random.Random(seed)组内随机可复现、case() 批量落库、blocks 输出、无条目 409);F2anova.solve_rcbdRCBD 双因素 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 + 区组均值。e2etrial_design5 组断言(生成/复现/落库/block=True 区组效应/门禁)+gs_family_cv5 组断言(家系阻塞折 [3,6,6]/每折1家系/random 回归零变化/家系数折叠/单家系边界)+ 回归 gblup_cv/statsflow/spatial/busflow/kinship/gaps_base/molrigor 七套零回归 + vue-tsc EXIT=0 + HTTP 核验。_DATA_VERSIONv2.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_matrixrmat 组装、对角=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。e2eocs17 断言(Σc/c≥0/λ 梯度 avg_kinship 单调非增 1.0→0.5157→0.3211→0.2685/λ=0 退化=贪心/partial+warning/三 409)+mabc23 断言(前景 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_VERSIONv2.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 复合编码 rep100+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_VERSIONv2.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.pyok=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_VERSIONv2.26、blup.ENGINE_VERSION1.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.py17 断言全过 + 全量回归零回归(含审计切面残留检查限定entity_type根治跨表撞 id 误报)+ vue-tsc EXIT=0 + HTTP 核验;_DATA_VERSIONv2.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四个服务路径把 inttree_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_indexmtblup 分支/run_genetic_corr/run_type_b_heredity),run_ablup早已正确不受影响。新探针e2e_rg_golden_20260805.pyok=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_VERSIONv2.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.pyok=14(非基因型株 GBLUP EBV=0 / ssGBLUP EBV≠0——H⁻¹ 拼接判别)、test_bre_analysis_ocs_tc.pyok=23(投影梯度收敛/λ 单调/c'Ac/λ=0 退化)、test_bre_analysis_mabc_tc.pyok=24(前景/背景恢复率/晋级/童期)、test_bre_analysis_mendelian_tc.pyok=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=rep100+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.py9 套 @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 stagerun_ci.py(仓库根,step 0 探测 PG+Redis 失败指引 / step 1pytest -m pg/ step 2 EXIT=0「CI 全绿」,日志 Temp/claude/ci_logs/;不做 GitHub Actions——全工程无 git 仓库);验证 5 套 EXIT=0(122 断言)+pytest -m pg9 passed(146s)+ skipif 9 skipped 不红 + run_ci EXIT=0 + run_regression glob 自动纳入;备份镜像Temp/claude/backup_analysis_tc2_20260805/;交付流程:v8 验收 =python run_ci.pyEXIT=0。详见规格 §8.41 /桃育种系统统计引擎实施记录.md§18.19。);㉚ O2–O4 统计方法学广度(2026-08-05,用户系统核对统计引擎能力后确认三项 P2 方法学缺口——幼年–成年遗传相关 / 非线性基因组预测 / 约束选择指数,均零命中、不影响当前业务正确性属方法库广度,拍板「O2–O4 先落地」+ 两决策:① O4 用经典 Kempthorne–Nordskog =0 闭式解(纯 numpy 不迭代)② 前后端同步扩展;_DATA_VERSIONv2.28 → v2.29、genomic 1.4.0,无新表)——O2 幼年–成年遗传相关:_values_by_tree_env加 env_dim=stage 分支(coalesce(obs.stage, TraitModel.stage)分组)+run_type_b_heredityenv_dim 校验扩 stage——发育阶段当"环境"逐对mtblup.solve_bivariateREML 精确估 r_g(>0.5 表示童期可借力成株、早期间接选择有效),复用bre_type_b_result不建表,前端 Type-B 下拉加 stage;O3 非线性基因组预测:genomic.py1.4.0 加solve_rrblup(岭回归逐标记 u=(Xc'Xc+λI)⁻¹Xc'yc,与 GBLUP 数学对偶(同数据 EBV 逐位吻合)、输出 marker effects)+solve_bayesb(BayesB Gibbs 可变选择 δ_jBernoulli(1−π)、确定性 seed 可复现)+04-30)。验证:e2e 探针kfold_cv_genomicdosage 分派 rrblup/bayesb(实证 CV);run_gblupmethod 扩 rrblup/bayesb + seed 透传落 PredictionModel(method=RRBLUP/BayesB)+EBV 行、run_cvGS 分支 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.pyok=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.pyEXIT=0;备份镜像Temp/claude/backup_o234_20260805/。详见规格 §8.42 /桃育种系统统计引擎实施记录.md§18.20。;㉛ O1 花期数据消费补强(2026-08-06,用户系统核对花期字段零消费——bre_germplasm.flowering_period等从未被任何统计/决策逻辑消费,核实确认 + 定性 P1 数据消费补强 + 辅助信息(非 S-allele 级硬错误防呆),拍板三档位落地;_DATA_VERSIONv2.29 → v2.30,无新表)——① 花期数据建模升级(结构化区间,前置):bre_germplasm加双 Date 列bloom_start_date/bloom_end_date(weld SQL 幂等 + COMMENT),flowering_period5 档字典保留作粗粒度 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_SPAN5 档代表区间并标注「粗粒度」;窗口覆盖三态 covered(整段有批次 collect≤bs and expiry≥be)/partial/none(n_need_pollen 计 none);库存五态 full/expiring(窗口内到期)/entering(窗口内采集)/expired(窗口前失效)/not_started;前端花粉页「授粉窗口规划」卡(daterange + 生成 + 缺粉 alert + 花期覆盖表 + 库存状态表,默认 03-01e2e_o1_bloom_20260805.py4 段全断言(花期建模双 Date 落库 / 6 种质 15 对四态(区间三类 + 档位 store + 混合对 unknown)/ 窗口覆盖三态 + 档位投影 + 缺粉集合 / 库存五态 / 反向 409)+ vue-tsc EXIT=0 + 全量回归零回归 +run_ci.pyEXIT=0 + HTTP 核验;备份镜像Temp/claude/backup_o1_bloom_20260805/。详见规格 §8.43 /桃育种系统统计引擎实施记录.md§18.22。
一、主表:模块 ↔ 层 ↔ 规格 ↔ 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_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_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 - 顶层分层/波次/版本 →
桃育种系统功能规划(分层路线图).mdv1.1 - 字段级规格 →
桃育种系统模块扩展需求规格.mdv2.11 - 统计引擎落地台账 →
桃育种系统统计引擎实施记录.mdv1.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