6.1 KiB
Executable File
6.1 KiB
Executable File
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:
- 集成V6脚本 - 自动生成5面板组合图
- 保留其他统计图 - 甜甜圈、柱形图、UpSet等
- 移除旧版 -
_02_combined.png不再生成 - 修复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 热图颜色分级
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 画布自适应计算
# 根据内容自动计算画布大小
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 生成文件验证
$ 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验证
{
"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. 下一步建议
- 用户反馈收集 - 根据实际使用调整面板宽度
- 颜色方案优化 - 如有需要可调整7大分类颜色
- 字体大小调整 - 根据期刊要求调整
- 批量测试 - 测试更多基因家族数据
记录时间: 2026-03-29 02:00
记录位置: /home/xia-lab/wutx/00test/bbav20311/memory/2026-03-28.md
状态: ✅ 已保存