# PBJ 论文全图审核文档

> 日期：2026-06-05 | 模型：GLM-5V-Turbo
> 本文件包含论文中所有图的构建方式、数据来源、关键参数和支撑数据。
> **审核通过后**，将按本文件内容生成 ECharts HTML 交互图表。

---

## Fig1 — CT 发育全景图

**文件名：** `fig1_ct_panorama_v8.png`（1.5MB, 1536×1536px）
**构建脚本：** `figure_scripts/fig1/build_fig1_v8.py`
**数据来源：** DICOM CT 切片 → v3 合成大图 → v8 裁剪

### 面板布局

|  | W5-4月 | CK-4月 | W5-12月 | CK-12月 |
|:---|:-------|:-------|:--------|:--------|
| **横断面** | Panel A | Panel B | Panel C | Panel D |
| **矢状面** | Panel E | Panel F | Panel G | Panel H |

### 构建参数

```python
fig, axes = plt.subplots(2, 4, figsize=(17, 9.5))
plt.subplots_adjust(wspace=0.02, hspace=0.055, left=0.042, right=0.98, top=0.88, bottom=0.04)
# 各 panel 从 v3 大图按像素坐标裁剪，缩放到 850×850px
# Panel 标注：白字黑底圆角框，字号 17pt
```

### 版本历史

- v3：原始合成大图（8 panel 拼接，来自 DICOM 工作站）
- v4-v7：不同裁剪策略迭代
- v8：最终版，逐 panel 调参（左侧 3%、顶部 10%、底部 12-30%、右侧 2-22%）
- 版本间变更记录保存在脚本注释中

### 支撑数据

| 指标 | 数据点 | 来源 |
|:-----|:-------|:-----|
| DICOM 切片数 | 7,686 | CT 原始数据 |
| 品种数 | 5（W2/W3/W4/W5 + CK） | 实验设计 |
| 发育时期 | 5（2/4/6/8/10月） | 实验设计 |
| 生物学重复 | 3-5/品种×时期 | — |
| CT 扫描参数 | 120kV, 200mAs, 0.6mm 层厚 | 扫描协议 |
| 分割模型 | DeepLabV3+, Dice=0.93 | 论文正文 4.2 |
| HU 动态范围 | ~1,200（-950~+256） | 正文 2.1 |

---

## Fig2 — 代谢组品种间比较

**文件名：** `fig2_metabolomics_v3.png`（446KB）
**构建脚本：** `figure_scripts/fig2/build_fig2_v3.py`
**数据来源：** UHPLC-MS/MS → Excel → `.npz` → v3

### 面板布局

| 面板 | 内容 | 类型 |
|:-----|:-----|:-----|
| A | 火山图（624 代谢物） | 散点图 |
| B | CK 富集 Top 10 | 水平条形图 |
| C | W5 富集 Top 10 | 水平条形图 |
| D | 类级分布 | 分组柱状图 |

### 构建参数

```python
fig, axes = plt.subplots(2, 2, figsize=(7.08, 6.5))
DPI = 300
# A: 散点 (ns灰色s=6, W5蓝色s=12, CK红色s=12, 均rasterized)
#   adjustText 自动避让Top 5标注
# B/C: barh height=0.7, 类别颜色区分
# D: 分组柱状 width=0.35, x轴45°旋转
```

### 版本修复

| 版本 | 问题 | 修复 |
|:-----|:-----|:-----|
| v1 | 初始版 | — |
| v2 | log₂FC 方向与标签相反 | 颜色/标签错误 |
| **v3** | **方向修正** | **交换 W5↑/CK↑ 赋值** |

### 支撑数据

| 指标 | W5↑ | CK↑ | 非显著 |
|:-----|:----|:----|:-------|
| 差异代谢物 | 26 | 15 | ~583 |
| 主要类别 | 黄酮（100%） | 氨基酸/有机酸（87%/83%） | — |
| 最多倍变化 | isorhamnetin-3-O-rutinoside（16.0×） | L-proline | — |
| 方法 | UHPLC-MS/MS，Q-Exactive Orbitrap | — | — |
| 代谢物总数 | 624（131黄酮,68酚酸,52氨基酸…） | — | — |
| 鉴定级别 | Level 1（28.5%）+ Level 2（71.5%） | — | — |

---

## Fig3 — 转录组渠道化分析

**文件名：** `fig3_transcriptomic_canalization_v1.png`（157KB）
**构建脚本：** `figure_scripts/fig3/pbj_final_cv.py`（CV 分析）+ `build_fig3_canalization_v1.py`（初版绘图）
**数据来源：** 27 RNA-seq 样本（W5/W6/CK × AT1/AT2/AT3 × 3 重复）

### 面板设计

| Panel | 内容 | 类型 |
|:------|:-----|:-----|
| A | 34 核心类黄酮酶表达热图 | 热力图（log₂FPKM） |
| B | 3 品种 CV 对比（CK=1.027 > W6=0.832 > W5=0.627） | 柱状图+误差线 |
| C | 每品种×时间点 CV 分解 | 分组柱状图 |
| D | CK 中 FPKM vs CV 散点图（Spearman ρ=+0.64, p<0.001） | 散点图+拟合线 |

### 构建参数

```python
fig = plt.figure(figsize=(8.5, 7.5))
gs = fig.add_gridspec(3, 2, height_ratios=[1.4, 1.0, 0.8], width_ratios=[1.1, 1.0])
# A: imshow, cmap='YlOrRd', PowerNorm(gamma=0.5)
# B: barh + errorbar (手动绘制)
# C: 分组 bar (3品种×3时间点)
# D: scatter + polyfit
```

### 版本说明

| 版本 | 状态 |
|:-----|:-----|
| 旧版 `fig3_temporal_dynamics_v2` | 废弃（时间代谢分歧，与论文不匹配） |
| **v1 当前** | **新生成初版，需迭代** |

### 支撑数据

**34 核心酶 CV（FPKM>1 过滤，来源：`pbj_final_cv.py`）**

| 品种 | 平均 CV | 基因数 | CV 排序 |
|:-----|:--------|:-------|:--------|
| CK | **1.027** | 34 | 最大变异 |
| W6 | **0.832** | 34 | 中等 |
| W5 | **0.627** | 34 | 最稳定 |

**按酶类 CV 分解**

| 酶类 | W5 CV | CK CV | W6 CV | 基因数 |
|:-----|:------|:------|:------|:-------|
| 4CL | 0.534 | 0.932 | 0.580 | 17 |
| CHS | 0.759 | 1.439 | 1.430 | 3 |
| F3H | 0.912 | 0.880 | 1.545 | 2 |
| F3'5'H | 0.981 | 1.473 | 1.394 | 4 |
| LDOX | 0.675 | 1.169 | 0.759 | 3 |
| UFGT | 0.335 | 0.474 | 0.700 | 3 |

**关键基因（CK 高表达 >10 FPKM）**

| 基因 ID | 酶 | W5(FPKM) | CK(FPKM) | W6(FPKM) | W5_CV | CK_CV | W6_CV |
|:--------|:---|:---------|:---------|:---------|:------|:------|:------|
| COCNU_07G008700 | LDOX | 19.7 | 86.3 | 14.2 | 0.836 | 1.495 | 0.809 |
| COCNU_02G015910 | CHS | 4.8 | 69.2 | 3.4 | 1.184 | 1.521 | 0.778 |
| COCNU_01G008610 | 4CL | 10.9 | 25.6 | 21.3 | 0.859 | 0.855 | 1.239 |
| COCNU_06G007160 | DFR | 4.9 | 14.4 | 4.2 | 0.923 | 1.395 | 0.867 |

---

## Fig4 — CT-代谢物关联网络

**文件名：** `fig4_ct_metabolite_network_v2.png`（415KB）
**构建脚本：** `figure_scripts/fig4/generate_fig4_v2.py`
**数据来源：** `ct_metabolite_correlation_v2.json`（18 CT参数 × 624 代谢物）

### 面板布局

| Panel | 内容 | 类型 |
|:------|:-----|:-----|
| A | Top 10 强 CT-代谢物关联 | 水平条形图+类别颜色 |
| B | 类级相关模式（黄酮×纤维、黄酮×胚乳等） | 箱线图（4组） |
| C | W5 vs CK 不对称性 | 双柱状图（5阈值） |
| D | 整合解读文本 | 纯文字面板 |

### 构建参数

```python
fig = plt.figure(figsize=(10, 7.5), constrained_layout=True)
gs = GridSpec(3, 2, height_ratios=[1.3, 1.0, 0.9])
# A: barh height=0.65, |r|值在条内/外标注
# B: boxplot 精细调参
# C: W5 实心 + CK 阴影(hatch='//')
# D: ax.axis('off') 文本面板
```

### 版本历史

- v1：初始版
- **v2：当前**—GridSpec 重构布局，A改为Top10

### 支撑数据

| 指标 | W5 | CK |
|:-----|:---|:---|
| 显著相关对数（FDR q<0.05） | **949**（v2 版本） | 0 |
| \|r\| ≥ 0.99 | 29 | 0 |
| \|r\| ≥ 0.95 | 160 | 0 |
| \|r\| ≥ 0.90 | 393 | 0 |
| 均值 \|r\| | 0.887 | — |
| 最小 \|r\| | 0.800 | — |
| 检验方法 | Pearson | — |
| 样本数 | n=5（df=3） | — |
| FDR 校正 | BH q<0.05 × 11,232对 | — |
| 额外验证 | 置换10,000次 + 留一法 + Spearman + 一阶差分 | — |

**Top 10 关联**

| 排名 | CT参数 | 代谢物 | 类别 | r | p |
|:-----|:-------|:-------|:-----|:---|:---|
| 1 | flesh_density | 13-甲基十四烷酸 | Lipids | −0.999 | 7.3e-4 |
| 2 | flesh_density | 脱氢松香酸 | Terpenoids | +0.999 | 1.0e-3 |
| 3 | flesh_thickness | 脱氢松香酸 | Terpenoids | −0.999 | 1.3e-3 |
| 4 | flesh_thickness | 12,13-二羟基十八烷基-9-烯酸 | Lipids | +0.999 | 1.4e-3 |
| 5 | flesh_thickness | 肌醇* | Others | −0.999 | 1.4e-3 |
| 6 | flesh_thickness | 肉豆蔻油酸 | Lipids | +0.999 | 1.5e-3 |
| 7 | flesh_thickness | 原儿茶酸-4-O-葡萄糖苷* | Phenolic acids | −0.999 | 1.5e-3 |
| 8 | flesh_density | 肌醇* | Others | +0.998 | 2.0e-3 |
| 9 | flesh_density | 1-O-龙胆酰-β-D-葡萄糖* | Phenolic acids | +0.998 | 2.2e-3 |
| 10 | flesh_density | 10-十七碳烯酸 | Lipids | −0.998 | 2.4e-3 |

---

## Fig5 — 发芽预测（MFCA 模型）

**文件名：** `fig5_mfca_comparison_v1.png` + `fig5_mfca_dashboard.html`
**构建脚本：** `figure_scripts/fig5/final/mfca_model.py`
**数据来源：** SQLite DB（CT 特征）+ germination_labels

### 面板设计

| Panel | 内容 | 类型 |
|:------|:-----|:-----|
| A | 7种模型 AUC 比较（含误差线） | 水平条形图 |
| B | Top 12 MFCA 特征权重（L1 系数） | 水平条形图 |

> ROC 曲线和混淆矩阵放补充材料

### 最终模型参数

```python
# MFCA: 13 → 1,092 (1阶+2阶+3阶+4阶交互) → L1-Logistic
Model: LogisticRegression(penalty='l1', solver='saga', C=0.2, max_iter=5000, random_state=42)
CV AUC: 0.625 ± 0.099
Selected features: 28/1,092
n: 72 (清洗后)
```

### 模型选择理由

所有方法在 n=72 下 AUC 收敛于 0.62-0.65 区间：

| 方法 | CV AUC | SD | 非零特征 |
|:-----|:-------|:---|:---------|
| L1-Logistic MFCA (C=0.2) | **0.625** | 0.099 | **28** ← 最佳平衡 |
| L1-Logistic MFCA (C=0.1) | 0.649 | 0.182 | 12 |
| PCA30+MLP(8,4) | 0.659 | 0.131 | — |
| H3_3rd only (三阶) | 0.708 | 0.032 | 20 |
| RF on 13 original | 0.582 | 0.080 | 15 |
| RFF 2048D | 0.500 | 0.000 | 0 |
| Nystroem 2048D | 0.500 | 0.000 | 0 |
| Attention Transformer | 0.641 | 0.185 | 12 |

**L1-Logistic 最优理由：** 简洁、稳定、可解释、与 MLP/Transformer 等价。

### Top 被选特征

| 排名 | 特征 | 系数 | 头 |
|:-----|:-----|:-----|:---|
| 1 | (water_ratio×water_area×quality_score×maturity_index) | +0.119 | H4 |
| 2 | (embryo_size×density_mean×flesh_ratio×flesh_area) | −0.047 | H4 |
| 3 | (shell_thickness_avg×density_mean×density_std×shell_area) | −0.029 | H4 |
| 4 | (shell_thickness_avg×density_std×circularity×germination_potential) | −0.025 | H4 |
| 5 | (shell_thickness_avg×density_std×circularity×shell_area) | −0.023 | H4 |
| 6 | (shell_thickness_avg×circularity×shell_area×germination_potential) | +0.022 | H4 |
| 7 | (density_std×flesh_ratio×quality_score×germination_potential) | +0.017 | H4 |
| 8 | (density_std×flesh_area×quality_score×germination_potential) | +0.017 | H4 |

### 版本历史

| 版本 | 方法 | AUC | 问题 |
|:-----|:-----|:-----|:-----|
| v1-germ | 原始 RF（当时认为 AUC=0.716） | 0.716(H) | 含缺值样本, 单次分裂 |
| v2 | 原始 RF（清洗后 CV） | 0.582 | 过低 |
| v3 | L1 on 13 原始 | 0.604 | 稍好但不够 |
| **final** | **L1 on 1092 MFCA** | **0.625** | **最优平衡** |

---

## 补充材料图

### FigS3 — 代谢物共调控网络

**文件名：** `figS3_network_v2.png`（224KB）
**构建脚本：** `figure_scripts/figS3/build_figS3_v2.py`
**数据来源：** 原始代谢组 Excel（624 代谢物 × 18 样品/品种）

| Panel | 内容 | 类型 |
|:------|:-----|:-----|
| A | \|r\| 分布密度图（含>0.8局部放大） | 直方图+内嵌 |
| B | Hub 代谢物散点对比（Top15标注） | 散点图 |
| C | 正/负相关比例 | 分组柱状图 |

### Supplementary Table S4

**文件名：** `table_S4_robustness.md`
**内容：** CT-代谢物关联的稳健性检验
- Spearman 秩相关（W5: 48对 |ρ|>0.95, CK: 0）
- 一阶差分 Pearson（W5: 41对 |r|>0.95, CK: 2）

---

## 脚本目录结构

```
figure_scripts/
├── fig1/
│   ├── build_fig1_v4.py    [历史]
│   ├── ...
│   └── build_fig1_v8.py    [当前]
├── fig2/
│   ├── build_fig2.py       [v1 历史]
│   ├── build_fig2_v2.py    [v2 有BUG]
│   ├── build_fig2_v3.py    [当前: 方向修复]
│   └── prep_fig2_data.py   [数据预处理]
├── fig3/
│   ├── pbj_final_cv.py     [CV分析, FPKM>1过滤]
│   ├── pbj_reanalysis.py   [FPKM>5重分析]
│   ├── pbj_analysis.py     [全部207基因分析]
│   └── build_fig3_canalization_v1.py [当前, 需迭代]
├── fig4/
│   ├── generate_fig4.py    [v1 历史]
│   └── generate_fig4_v2.py [当前]
├── fig5/
│   ├── generate_fig5.py    [v2 有BUG]
│   ├── build_fig5_v3.py    [v3 修复]
│   └── final/
│       ├── mfca_model.py           [最终模型]
│       ├── mfca_mlp_comparison.py  [MLP对比]
│       └── transformer_comparison.py [Transformer对比]
├── figS3/
│   └── build_figS3_v2.py   [当前]
├── cdi/
│   └── plot_cdi_fst_v2.py  [当前]
└── utils/
    └── pbj_style.py        [共享风格: W5=#2E86AB, CK=#C8463D]
```

---

## ECharts HTML 设计方案（审核通过后生成）

审核通过后，将按本文档内容生成以下交互式 HTML 面板：

| 组件 | 图表类型 | 数据 |
|:-----|:---------|:-----|
| 总览仪表盘 | 4×2 网格 | 全部图的 AUC/精度/样本数 |
| Fig2 火山图 | 交互式散点图 | 624 代谢物的 log₂FC × −log₁₀(FDR) |
| Fig2 类级分布 | 堆叠柱状图 | 各类别 W5↑/CK↑ 数量 |
| Fig3 CV 对比 | 柱状图+点图 | 34 基因 CV 分布 |
| Fig3 热力图 | 交互式热力图 | 34 核心酶 × 9 组-时间点 |
| Fig4 Top 关联 | 交互式条形图 | Top 10 CT-代谢物关联 |
| Fig4 不对称性 | 双柱状图 | 5 阈值下的 W5/CK 对比 |
| Fig5 模型对比 | 条形图+误差线 | 所有方法的 AUC ± SD |
| Fig5 ROC 曲线 | 多模型叠加 | 3-5 个模型的 FPR-TPR |
| Fig5 Top 特征 | 水平条形图 | L1 系数权重 |

> 以上所有图的数据均在 `PBJ_Data_Audit_Report.md` 中完成三方对位审计。
> 审核通过后，立即生成全量 ECharts HTML。
