Files

219 lines
6.1 KiB
Markdown
Raw Permalink Normal View History

# 2026-03-28 ~ 2026-03-29 工作记录 - bbav20311 Promoter分析可视化优化
> 日期: 2026-03-28 15:09 ~ 2026-03-29 02:00
> 参与: xialab的幸运星
> 主题: Promoter分析模块可视化升级与热图融合
---
## 1. 工作目标
优化Promoter(启动子顺式作用元件)分析模块的可视化输出,融合多种热图绘制方法,创建更符合发表要求的组合图。
---
## 2. 主要工作内容
### 2.1 热图绘制方法对比与融合
| 脚本 | 来源 | 特点 | 问题 |
|:---|:---|:---|:---|
| `promoter_v4_final.R` | 现有V4版本 | 7大分类、外部树图、红绿配色 | 连续渐变不够清晰 |
| `promoter_analysis_complete.R` | complete版本 | 方块+数字、蓝白分级 | 元件命名处理逻辑有问题 |
| `promoter_v5_fused_heatmap.R` | **融合版** | V4分类 + complete显示方式 | ✅ 采用 |
**融合策略**:
- 保留V4的7大分类逻辑
- 采用complete的方块+数字显示
- 9级蓝白分级配色
### 2.2 5面板组合图开发 (V6)
创建全新的5面板组合图布局:
```
A (左) B (中左) C (中) D (右) E (最右)
进化树 + 亚家族竖线 + 7大分类堆叠 + 热图(方块+数字) + 图例
```
**文件**: `scripts/promoter_v6_combined.R`
**特点**:
- 画布自动调整 (9000×6000)
- Panel C宽度增加 (8 → 12)
- 热图方格为正方形
- 实线边框 (grey60)
- 0值显示白色背景
### 2.3 集成到分析流程
修改 `apps/cli/run_promoter.py`:
1. **集成V6脚本** - 自动生成5面板组合图
2. **保留其他统计图** - 甜甜圈、柱形图、UpSet等
3. **移除旧版** - `_02_combined.png` 不再生成
4. **修复manifest** - 添加`figures`字段供前端显示
---
## 3. 关键修改文件
### 3.1 新增/修改的R脚本
| 文件 | 路径 | 说明 |
|:---|:---|:---|
| `promoter_v5_fused_heatmap.R` | `scripts/` | 融合版热图 (V5) |
| `promoter_v6_combined.R` | `scripts/` | **5面板组合图 (V6)** |
### 3.2 修改的Python脚本
| 文件 | 路径 | 修改内容 |
|:---|:---|:---|
| `run_promoter.py` | `apps/cli/` | 集成V6,添加figures字段 |
### 3.3 生成的可视化文件
| 文件 | 说明 |
|:---|:---|
| `Ft.SPL_promoter_v6_combined.png` | **新版5面板组合图** |
| `Ft.SPL_promoter_01_heatmap.png` | 独立热图 |
| `Ft.SPL_promoter_03_element_barplot.png` | 元件柱形图 |
| `Ft.SPL_promoter_03b_big7_barplot.png` | 7大分类柱形图 |
| `Ft.SPL_promoter_04_category_stacked.png` | 分类堆叠图 |
| `Ft.SPL_promoter_05_upset.png` | UpSet图 |
| `Ft.SPL_promoter_06_category_donut.png` | 甜甜圈图 |
---
## 4. 7大分类定义
| 分类 | 颜色 | 包含元件 |
|:---|:---|:---|
| Core promoter | #e41a1c | TATA-box, CAAT-box, Inr, Y-patch |
| Light response | #377eb8 | G-box, GT1, I-box, Sp1, Box.4, GATA |
| Hormone signaling | #4daf4a | ABRE, GARE, CGTCA, TCA, TGA, ERE |
| Stress response | #984ea3 | DRE, LTR, ARE, STRE, W-box |
| TF binding | #ff7f00 | MYB, MYC, WRKY |
| Development | #f781bf | RY, AAGAA, CAT, GCN4 |
| Other | #999999 | 未分类 |
---
## 5. 技术细节
### 5.1 热图颜色分级
```r
count_colors <- c(
"[0,1)" = "#f7fbff", # 白色(0值)
"[1,2)" = "#c6dbef", # 浅蓝
"[2,3)" = "#9ecae1",
"[3,5)" = "#6baed6",
"[5,10)" = "#4292c6",
"[10,20)" = "#2171b5",
"[20,50)" = "#08519c",
"[50,100)"= "#08306b",
"[100,200]"="#041d3a" # 深蓝
)
```
### 5.2 画布自适应计算
```r
# 根据内容自动计算画布大小
total_width <- (x_D_right - x_A_left) + 3 # 加上图例空间
total_height <- max_y + 2
max_width <- 30
max_height <- 20
final_width <- min(total_width, max_width)
final_height <- min(total_height, max_height)
```
---
## 6. 测试结果
### 6.1 测试任务
- **任务ID**: job_1774711833127
- **基因**: 24个 Ft.SPL 基因
- **启动子元件**: 3699条记录
### 6.2 生成文件验证
```bash
$ ls final/Ft.SPL_promoter*.png
Ft.SPL_promoter_01_heatmap.png (131K)
Ft.SPL_promoter_03b_big7_barplot.png (38K)
Ft.SPL_promoter_03_element_barplot.png (21K)
Ft.SPL_promoter_04_category_stacked.png (68K)
Ft.SPL_promoter_05_upset.png (32K)
Ft.SPL_promoter_06_category_donut.png (60K)
Ft.SPL_promoter_v6_combined.png (701K) # 新版5面板
```
### 6.3 Manifest验证
```json
{
"figures": [
{"name": "Ft.SPL_promoter_01_heatmap", ...},
{"name": "Ft.SPL_promoter_03_element_barplot", ...},
{"name": "Ft.SPL_promoter_03b_big7_barplot", ...},
{"name": "Ft.SPL_promoter_04_category_stacked", ...},
{"name": "Ft.SPL_promoter_05_upset", ...},
{"name": "Ft.SPL_promoter_06_category_donut", ...},
{"name": "Ft.SPL_promoter_v6_combined", ...} # 新版
]
}
```
---
## 7. 问题与解决
| 问题 | 原因 | 解决方案 |
|:---|:---|:---|
| V6图不显示在结果中 | manifest缺少figures字段 | 添加figures数组 |
| 堆叠图太拥挤 | Panel C宽度不足 | width_C从8增加到12 |
| 热图方格变形 | element_width设置不当 | 改为正方形 (gene_height * 2) |
| 旧版_02_combined仍在生成 | 未移除V2调用 | 修改流程,只生成V6和其他统计图 |
| 其他统计图丢失 | V2调用被跳过 | 先运行V6,再运行V2生成其他图 |
---
## 8. 时间记录
| 时间段 | 时长 | 内容 |
|:---|:---|:---|
| 15:09 - 17:18 | 2小时 | 分析热图绘制方法,创建V5融合版 |
| 17:18 - 20:00 | 3小时 | 开发V6 5面板组合图 |
| 20:00 - 23:30 | 3.5小时 | 集成到流程,修复manifest |
| 23:30 - 02:00 | 2.5小时 | 调试优化,测试验证 |
| **总计** | **11小时** | **完成所有目标** |
---
## 9. 状态
- **V5融合版热图**: ✅ 完成
- **V6 5面板组合图**: ✅ 完成
- **集成到分析流程**: ✅ 完成
- **manifest修复**: ✅ 完成
- **测试验证**: ✅ 通过
---
## 10. 下一步建议
1. **用户反馈收集** - 根据实际使用调整面板宽度
2. **颜色方案优化** - 如有需要可调整7大分类颜色
3. **字体大小调整** - 根据期刊要求调整
4. **批量测试** - 测试更多基因家族数据
---
*记录时间: 2026-03-29 02:00*
*记录位置: `/home/xia-lab/wutx/00test/bbav20311/memory/2026-03-28.md`*
*状态: ✅ 已保存*