biofigure-self-evolve
消息通讯 活跃维护

biofigure-self-evolve

Zessi-C/biofigure-self-evolve

支持从学术论文PDF、公众号文章、屏幕截图中自动解析生信图表,生成可复用的R/Python绘图配方,使用中自动扩充配方库,可直接调用生成对应图表,简化生信绘图操作。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
Python
主要语言
NOASSERTION
开源协议
309 KB
仓库大小
22 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:Zessi-C/biofigure-self-evolve
git clone https://github.com/Zessi-C/biofigure-self-evolve.git
git clone git@github.com:Zessi-C/biofigure-self-evolve.git
README.md main

English

biofigure-self-evolve

自进化的生信 figure 学习库与复用引擎。agent 把文献里看到的图画法存成本地图库条目,你要画图时先查库复用,条目与偏好随使用不断更新。条目组织参考 FigureYa(iMetaMed 2025),差异在于维护交给 agent 而非人工。

工作方式

  • 学习:把文献、PDF、文章、截图发给 agent,它判断按单图、成组还是组合版式记录,并优先追溯原始绘图代码(正文内嵌代码 > GitHub 仓库 > 论文 DOI → PMC code availability),都找不到才看图反推且如实标注;
  • 复用:画图时按 use_when / data_shape 检索相近条目,借鉴其技术骨架,轴、阈值、配色按当前数据重新决定;多候选时按数据形状 > 意图 > 验证状态排序取前三;
  • 回流:满意的结果回收为新条目;对已有条目的意见写入其模板缺省值并记入演化记录;跨图反复出现的习惯沉淀到 library/PREFERENCES.md
  • 迁移:条目可打包成 bundle(zip,带清单与逐文件校验和)导入其他设备的图库,冲突可跳过/覆盖/换编号;新环境导入后跑 verify_library.py 体检。

学习是否完成由完工清单判定。记录格式见 references/figure-record.md,触发行为见 SKILL.md。

安装

git clone https://github.com/Zessi-C/biofigure-self-evolve.git ~/.agents/skills/biofigure-self-evolve

适用于任何遵循 agents/skills 约定的 agent(目录含带 name/description frontmatter 的 SKILL.md 即为技能)。其他 harness 只要能读文件、抓网页、跑脚本即可驱动,有自有插件格式的加一层薄适配。依赖:

  • 脚本只需 Python 3 标准库(PyYAML 可选,缺省走内置受限解析器);
  • 模板验证需要 R(ggplot2)和/或 Python(matplotlib),缺哪边哪边的条目标 unverified
  • 不依赖任何厂商 API、MCP 或联网服务。

仓库结构

SKILL.md                    # 技能入口:触发、学习/复用/回流的行为规范
library/
├── INDEX.json / INDEX.md   # 索引,脚本从所有 figure.md 全量重建,不入公开仓库
├── PREFERENCES.md          # 跨图偏好档案(个人数据,不入公开仓库)
└── figures/NNN-slug/
    ├── figure.md           # 唯一事实源:frontmatter + 视觉解剖 + 配方 + 复用要点 + 演化记录
    ├── reference.png       # 原图参考(仅个人学习用)
    ├── template.R / template.py   # 自包含双模板,无参数运行即出图
    └── template_output_*   # 模板运行产物,作为已知良好输出
references/                 # 记录 schema、各来源取图方法、chart_types 受控词表(近 40 种)、偏好档案格式
scripts/                    # init_library / build_index / export_figure / import_figure / verify_library

frontmatter 是刻意收窄的 YAML 子集(标量、单行列表、一层嵌套),没有 YAML 库的环境也能可靠解析。关键字段:chart_types(受控词表选词)、data_shape(一行写清输入格式)、use_when / not_when(复用时的语义匹配依据)、related(同功能条目互指)、verified(只认实际运行结果)。

library/figures/*INDEX.*PREFERENCES.md 被 .gitignore 忽略,学到的条目不进公开仓库;随仓库发布的 000-example-grouped-boxplot 是格式示例,也是新建条目的骨架。公开分享学到的条目请注意原文献版权。

脚本

python3 scripts/init_library.py    # 初始化图库骨架(幂等;--path 可放别处并自动写配置)
python3 scripts/build_index.py     # 全量重建索引并做一致性校验;改过任何 figure.md 后必须重跑
python3 scripts/build_index.py --check      # 只比对索引与记录是否一致(不一致退出码 1),不写文件

# 跨设备迁移条目(典型:本机读文献学图 → 服务器跑分析复用)
python3 scripts/export_figure.py 003 --with-related   # 打包条目为 bundle(id/数字前缀/all 均可)
python3 scripts/import_figure.py bundle.zip           # 校验完整性后导入,自动重建索引;冲突默认拒绝(--force 覆盖 / --rename 换编号)
python3 scripts/verify_library.py                     # 体检:模板复制到临时目录试运行,只报告不改库

许可

MIT,见 LICENSE