moonbowterfly / dsh-bio-genie

Listed

🧬 dsh bio analysis plugin for DeepSeek Harness — wish-style bioinformatics & biology analysis: Biopython-powered sequence analysis, genomics, zero-install Python env (uv+venv)

masterOther View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:moonbowterfly/dsh-bio-genie

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit b6d59efSynced Aug 18, 2026

🧬 dsh-bio-genie

中文 | English

面向 DeepSeek Harness (dsh) 的生物信息学「许愿式分析」插件

dsh bio analysis · dsh biology analysis · deepseek harness bioinformatics · Biopython · sequence analysis · genomics

说人话,出结果。用户用自然语言描述生物学分析需求,dsh 的 agent 自动完成分析。

下载安装即用 —— 无需用户安装 Python 或 Biopython,插件首次运行自动引导完全隔离的 Python 环境。


✨ 特性

特性说明
🪄 许愿式分析(Wish Coding)说人话就能分析:"这条序列的 GC 含量和 EcoRI 酶切位点?"
🧩 双引擎全功能覆盖bio_python 执行器可运行任意 Biopython 代码(比对、PDB、Phylo、motif、BLAST…)+ bio_r 执行器内置 R 4.6/Bioconductor 3.23(DESeq2 差异表达、fgsea GSEA、phyloseq 微生物组),配合 21 个领域 skill 配方
高频语义化工具17 个固定参数工具(GC 含量、翻译、限制酶、k-mer、文件 IO、Entrez 检索、通路富集、PubMed 文献、参考基因组、出版级绘图)+ 6 个执行器工具(bio_python / bio_r / bio_env / bio_r_env / bio_log / bio_memory)——省 token、输出稳定、参数有校验
📦 零安装自动下载隔离的双环境(uv + venv + Biopython 绘图栈;R 4.6 安装器 + BiocManager 核心包集)到 $DSH_HOME/dsh-bio-genie/,不污染系统
🇨🇳 网络自动适配默认直连官方源,任一环节失败自动切换国内镜像(uv→清华 PyPI、CPython→npmmirror、PyPI 包→清华镜像),无需任何配置
🛡️ 环境隔离Python 子进程以 -I(isolated)模式运行,不受宿主 PYTHONPATH 污染
🔁 自愈执行(ACR)bio_python 失败返回 needs_repair 信号 + stderr,模型自动修复重试(最多 3 次),失败即如实报告
📜 透明性日志每次代码执行/工具调用异步记 JSONL 日志(哈希/预览/耗时),bio_log 可回溯任何一次分析
🧬 科学严谨性约束persona 强制「生物学结论必须可溯源到工具输出」,纯推断标注 [推断-未验证]
🧠 会话记忆成功代码模式 + 错误→修复经验自动沉淀(本地 JSON),bio_memory 查询,越用越聪明
⚙️ 设置面板dsh 设置面板(⚙️ 齿轮)侧栏「BioGenie」菜单——四标签页:总览(包元信息/配置默认值)、Skill 模块(50 个条目按领域/R/协议/指南分组)、Python 环境(venv 包列表)、R 环境(Bioconductor 包列表)
📚 协议知识库19 个高频任务协议(质控/比对/BLAST/克隆/建树/结构/富集/出版级绘图/坐标系统/统计检验/差异表达/GSEA…),每个含可执行代码模板 + 常见坑,随插件打包

📦 安装

本插件已发布为 npm 包 @dsh-bio/dsh-bio-genie,使用 dsh 官方标准的 dsh plugin 命令安装:

# 方式一:从 npm 安装(推荐,安装预构建代码)
dsh plugin --profile web add @dsh-bio/dsh-bio-genie

# 方式二:从 GitHub 安装(拉取源码;本插件为纯 ESM 无构建步骤,可直接加载)
dsh plugin --profile web add github:moonbowterfly/dsh-bio-genie

# 方式三:从本地目录安装(开发调试)
dsh plugin --profile web add ./dsh-bio-genie

安装后重启 dsh web 服务,插件即被加载。首次启动时插件会在后台自动引导 Python 环境(下载 uv → Python 3.12 → venv → biopython,约 1-2 分钟),之后秒级就绪。

验证插件层是否生效(无需启动):

dsh --profile web --dump-config   # 输出中应包含 "# == dsh-bio-genie" 层

故障排除:profile 已有本地包导致 pnpm 校验失败

若你的 profile 里已装过不在 npm registry 的本地包(如皮肤插件),dsh plugin add 触发的 pnpm 全量校验可能报 ERR_PNPM_FETCH_404。此时可手动挂载(已验证可行):

mkdir -p ~/.dsh/profiles/web/node_modules/@dsh-bio/dsh-bio-genie
cd /path/to/dsh-bio-genie
cp -r src index.js cordis.patch.yml package.json skills prompts python docs \
  README.md README.en.md LICENSE THIRD_PARTY_NOTICES.md \
  ~/.dsh/profiles/web/node_modules/@dsh-bio/dsh-bio-genie/

然后在 ~/.dsh/profiles/web/package.json 中:

  • dependencies 添加:"@dsh-bio/dsh-bio-genie": "file:.../dsh-bio-genie"
  • dsh.profile.bundles 数组添加:"@dsh-bio/dsh-bio-genie"

最后重启 dsh web 服务。


🛠 工具总览

执行器(双引擎,覆盖 100% 需求)

工具功能
bio_python运行任意 Biopython Python 程序(比对/PDB/Phylo/motif/复杂流程/自定义分析/出版级绘图)
bio_r运行任意 R 程序(R 4.6 + Bioconductor 3.23:DESeq2/edgeR/limma 差异表达、fgsea GSEA、phyloseq 微生物组、ggtree/ComplexHeatmap)
bio_envPython 环境诊断 / 重建
bio_r_envR 环境诊断 / 核心包集重建
bio_log执行日志回溯(bio_python/bio_r 代码哈希/预览/耗时 + 工具调用记录)
bio_memory会话记忆查询(成功代码模式 / 错误修复经验,越用越聪明)

语义化工具(高频稳定操作)

工具功能典型触发词
bio_seq_analyze长度 / GC% / 反向互补 / 六框翻译(正负链)/ 分子量 / 蛋白 AA 组成GC含量、序列特征、翻译
bio_seq_translateDNA→蛋白翻译(可指定密码子表)翻译、蛋白序列
bio_seq_gc_skewGC skew(复制起点识别)偏斜、复制起点
bio_seq_find_orf最长开放阅读框ORF、编码区
bio_seq_kmerk-mer 频率统计k-mer
bio_seq_io_read读 FASTA/GenBank(UTF-8/GBK 自适应)读取fasta、解析文件
bio_seq_io_write写序列文件写fasta、保存序列
bio_seq_restriction限制酶切位点(CommOnly 默认 / all 可选)限制酶、酶切位点
bio_entrez_searchNCBI 检索(esearch+esummary;db=gene 返回基因元数据摘要:全名/染色体位置/别名)NCBI、检索基因、查基因信息
bio_entrez_fetchNCBI 取序列下载序列
bio_enrichr通路/GO 富集分析(基因符号列表 → p 值排序条目;GO/KEGG/Reactome/MSigDB 等库)富集分析、通路、GO、KEGG
bio_pubmed_searchPubMed 文献检索(PMID/标题/期刊/作者/DOI)查文献、PubMed
bio_pubmed_abstract按 PMID 取结构化摘要(标题/摘要全文/作者/日期/DOI)读摘要、PMID
bio_ref_genome参考基因组 assembly 信息(Ensembl:assembly 名/染色体/下载目录)参考基因组、基因组版本

序列类型自动判断

bio_seq_analyzeseq_type 默认 auto,自动识别三类序列:

  • 含 U 无 T → RNA
  • 含 IUPAC 模糊碱基(R/Y/S/W/K/M/B/D/H/V)、X(未知/修饰碱基)、比对 gap 字符(-/.)→ DNA(引物/探针/SNP/比对结果安全)
  • 出现非核酸字母 → 蛋白质

X 与 gap 在翻译时按未知碱基处理(Biopython 标准行为),含 X/gap 的序列不会因模糊密码子崩溃。


📚 Skill 体系(22 个)

主 skill:dsh-bio-genie

工具分层决策树 + 双引擎路由表先查语义化工具表 → 命中就用;否则按任务选引擎(Python/R)写代码执行

21 个领域配方(15 Python + 6 R)

Skill覆盖的 Biopython 模块
bio-core核心工作流(任何分析先加载)
bio-ioBio.SeqIO(FASTA/FASTQ/GenBank/EMBL…)
bio-seqBio.Seq / Bio.SeqUtils(GC、Tm、分子量)
bio-alignBio.Align.PairwiseAligner / Bio.AlignIO
bio-blastBio.Blast(NCBIWWW / NCBIXML)
bio-searchioBio.SearchIO(BLAST/HMMER/Exonerate 解析)
bio-entrezBio.Entrez(esearch/efetch/esummary/elink)
bio-phyloBio.Phylo(Newick/Nexus、系统发育)
bio-structureBio.PDB(结构解析、距离、叠合)
bio-motifBio.motifs(PWM、JASPAR/MEME)
bio-restrictionBio.Restriction(酶切位点、片段)
bio-utilsBio.Data.CodonTable(遗传密码表、密码子用法)
bio-graphicsBio.Graphics.GenomeDiagram(图谱绘制)
bio-popgenBio.PopGen(群体遗传学)
bio-figure出版级科研绘图顾问(figurelib:选图决策、18 陷阱、期刊规格、CJK 中文)
bio-r-coreR 执行器核心(bio_r 契约、双引擎分工、ACR 信号表)
bio-r-basicsBiostrings / GenomicRanges / SummarizedExperiment(对象模型)
bio-r-rnaseqDESeq2 / edgeR 差异表达管道与解读纪律
bio-r-enrichmentfgsea GSEA + enricher ORA(与 bio_enrichr 分工)
bio-r-microbiomephyloseq 微生物组多样性(alpha/beta/PCoA/PERMANOVA)
bio-r-visggplot2 / ggtree / ComplexHeatmap(R 生态可视化)

🧞 精灵专家人设(bio-genie preset)

本插件同时提供一个 dsh agent preset(智能体预设)——bio-genie,让 AI 一进 dsh 就成为精通本插件的「生物基因精灵」专家人设。

它是什么

  • 人设文件preset/bio-genie/preset.yml + agent.cordis.yml)——覆盖 base persona,告诉 AI「你手头有 21 个工具 + 33 个 skill + 双引擎」。
  • 入门口诀skills/dsh-bio-genie-expert.md)——一个 meta-skill:「先看工作区 → 二选一(语义化工具 / bio_python / bio_r) → 失败按 ACR 三层修 → 报告带可追溯链」。
  • 一键安装pnpm install 跑 postinstall 钩子会自动把 preset 复制到 ~/.dsh/.agent-presets/bio-genie/;无需手动操作。

不是

  • 不接管 21 个工具——所有 bio_* 工具仍由本插件的 cordis.patch.yml 注入,preset 不重声明任何工具,避免冲突。
  • 不抢默认人设——postinstall 装完后,「生物基因精灵」出现在 dsh 预设选择器里;用户主动选择才激活。agent-presets.default 不会被改成 bio-genie
  • 不破坏其他插件——presets 与 plugins 是 dsh 的两个独立 seam,共存不冲突。

怎么用

  1. 安装本插件pnpm add @dsh-bio/dsh-bio-genie(postinstall 会自动装 preset)。
  2. 重启 dsh web
  3. 设置面板 → 选「生物基因精灵」人设。
  4. 之后 AI 启动会话即说:「我是生物基因精灵……你的工作区是 {{cwd}}……先看看你有什么数据再开工」。

手动安装 / 卸载

# 手动复制(postinstall 失败时)
node scripts/install-preset.js

# 强制覆盖(用户就地编辑过 preset 时也覆盖)
node scripts/install-preset.js --force

# 试运行(只看会做什么)
node scripts/install-preset.js --dry-run

# 卸载:直接删
#   Windows: rd /s /q %USERPROFILE%\.dsh\.agent-presets\bio-genie
#   macOS/Linux: rm -rf ~/.dsh/.agent-presets/bio-genie

故障排除

  • 预设选择器看不见「生物基因精灵」 → 检查 ~/.dsh/.agent-presets/bio-genie/preset.yml 是否存在;不存在则 node scripts/install-preset.js 手动装。
  • 切到 preset 后工具没出现 → 工具由插件注入,与 preset 无关;检查插件是否真在 dependenciespnpm ls @dsh-bio/dsh-bio-genie)。
  • 想自定义 persona → 直接编辑 ~/.dsh/.agent-presets/bio-genie/agent.cordis.yml(不被自动覆盖除非 --force)。

🚀 使用示例

场景 1:语义化工具路径(高频操作)

用户:"分析这个文件里的序列 GC 含量和 EcoRI 位点:D:/data/genes.fasta"

agent 自动:
1. bio_seq_io_read        → 读取 FASTA
2. bio_seq_analyze        → 逐条 GC 含量
3. bio_seq_restriction    → 检查 EcoRI
4. 汇总报告 + 生物学解读

场景 2:执行器路径(语义化工具覆盖不到的功能)

用户:"画一下这两个基因的蛋白结构比对"

agent 自动:
1. 加载 bio-align / bio-structure skill
2. bio_python 写 Biopython 程序执行
3. 产出文件 + 报告

场景 3:组合路径(实测)

用户:"读取 FASTA 分析每条序列的 GC、最长 ORF 和 EcoRI 位点"

agent 自动(实测行为):
1. 加载 dsh-bio-genie 主 skill(决策指引)
2. bio_seq_io_read 读取文件
3. bio_python 一次性完成 GC + ORF + 酶切组合分析
4. 输出汇总表(GC 48.28%、ORF 7aa、EcoRI nt 3-8)+ 生物学解读

🔧 环境引导(零依赖自举)

首次调用(或 dsh 启动后台预热)时插件自动执行:

1. 下载 uv            → $DSH_HOME/dsh-bio-genie/bin/uv
   (官方 GitHub 直连失败自动切换清华 PyPI 的 uv wheel,实测 18MB/约 2 秒)
2. uv python install  → $DSH_HOME/dsh-bio-genie/python/(私有 CPython 3.12)
   (官方源失败自动切换 npmmirror 的 python-build-standalone 镜像)
3. uv venv --seed     → $DSH_HOME/dsh-bio-genie/python-env/(预装 pip,方便按需补包)
4. uv pip install     → biopython + numpy + matplotlib + reportlab + pandas/scipy/seaborn/Pillow(出版级绘图栈;官方 PyPI 失败自动切换清华镜像)

R 环境(首次 bio_r 调用时惰性引导,默认不随插件加载预热)

1. 下载 R 4.6.0 安装器 → $DSH_HOME/dsh-bio-genie/r/(官方 CRAN 失败自动切清华镜像,MD5 校验)
2. 静默安装(/VERYSILENT,用户零操作)
3. Rscript install_packages.R → BiocManager 安装核心包集(DESeq2/edgeR/limma/
   fgsea/phyloseq/ggplot2/ggtree/ComplexHeatmap 等)到 r-lib/(CRAN 走清华镜像、
   Bioconductor 走官方源——清华 Bioc 镜像二进制 zip 缺失;Windows 二进制优先)
  • 网络自动适配:每个环节默认直连官方源,失败自动切换国内镜像,全程无需用户配置; 高级用户可用环境变量覆盖镜像地址(DSH_BIO_UV_BASE / DSH_BIO_PYTHON_MIRROR / DSH_BIO_PYPI_INDEX, 也尊重 uv 官方变量 UV_PYTHON_INSTALL_MIRROR / UV_DEFAULT_INDEX / UV_INDEX_URL); ⚠️ uv 二进制下载后一律做 SHA256 校验(官方/镜像通道均校验,校验失败拒绝执行)—— 自定义 DSH_BIO_UV_BASE 镜像需在镜像根目录提供 sha256sums.txt(与 uv 官方 release 同格式)
  • 全部产物$DSH_HOME/dsh-bio-genie/(默认 ~/.dsh/dsh-bio-genie/),删除即完全卸载
  • 不假设系统有任何 Python/uv(自举);引导失败自动回退系统 python(若有)
  • 升级插件不丢环境:环境在 DSH_HOME 私有目录,与插件本体(node_modules)分离
  • 幂等:已就绪则秒级复用;引导失败自动重试
  • 首次引导需网络;引导完成后可离线使用语义化工具

🔄 兼容性

维度要求
Node^22.19 || >=24(与 dsh 一致)
dshpeer 依赖 @deepseek-ai/dsh-tools 等为 ^0.1.0-rc.6,与 dsh 源码仓库当前构建版本匹配。若宿主 dsh 为 npm latest 旧版本(0.0.1-rc.1),可能解析出两份 dsh-tools 导致类型不匹配——建议使用与源码仓库同步构建的 dsh
平台Windows / macOS / Linux(x86_64 / arm64),按平台自动下载对应 uv/Python

🧩 开发

纯 ESM JavaScript,无构建步骤,改完即用:

git clone https://github.com/dsh-bio/dsh-bio-genie
# 直接调用引导器(首次会下载环境,约 1-2 分钟):
node --input-type=module -e "import('./src/runtime.js').then(m => m.ensureEnvironment({}))"
  • 架构设计详见 docs/ARCHITECTURE.md
  • 给 dsh agent 的使用说明书docs/agent-guide/——8 份指南(总览/工具参考/skill 导航/bio_python 编程/工作流/绘图专题/故障排查/严谨性),随插件注册为 dsh-bio-genie-guide-* 技能,agent 可随时加载
  • 加语义化工具:python/bio_ops.py 加 op + src/tools.js 加 bioTool 条目
  • 加领域 skill:skills/bio-xxx.md + src/skills.js 的 SKILL_MANIFEST
  • skill 语言标注约定:所有 skill(领域/协议/指南)开头 frontmatter 必须含 language: 字段(python/r/mixed/none),test-skills.mjs 强制校验

📄 许可证

  • dsh-bio-genie 本体:MIT License
  • Biopython:Biopython License Agreement / BSD 3-Clause(宽松,详见 THIRD_PARTY_NOTICES.md
  • numpy:BSD License
  • scipilot-figure-skill(figurelib 绘图脚本):MIT(Copyright Haojae,详见 THIRD_PARTY_NOTICES.md)
  • K-Dense scientific-agent-skills(figurelib 样式资产 + 知识型协议来源):MIT(Copyright K-Dense Inc.,详见 THIRD_PARTY_NOTICES.md)
  • R / Bioconductor 生态:GPL-2|GPL-3(R 本体)/ Artistic-2.0 / MIT / LGPL-3 / GPL-2 / AGPL-3(phyloseq)——运行时安装 + API 调用模型,零源码分发,逐包许可证清单与合规论证见 THIRD_PARTY_NOTICES.md
  • 不含 BioSQL(LGPL,刻意排除)

🙏 致谢

本项目的一切生物学计算能力都建立在 Biopython 之上 —— 感谢 biopython/biopython 项目及全体贡献者 25 年来的卓越工作:他们维护的序列分析、比对、结构生物学、系统发育等高质量实现,让"许愿式生物信息学"成为可能。Biopython 采用宽松的 Biopython License Agreement(兼容 BSD 3-Clause),允许自由复制、修改与分发,本插件因此得以安心地依赖并推广它。

出版级绘图能力(figurelib)借鉴了 Haojae/scipilot-figure-skill(MIT)的"可视化顾问"工作流与视觉自检设计,样式资产与部分知识型协议参考 K-Dense-AI/scientific-agent-skills(MIT)——一并致谢。

同时感谢 DeepSeek Harness 提供的插件化 Agent 框架,以及 numpy 社区的基础贡献。

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

DocumentationDetected

Repository information

Language
JavaScript
License
NOASSERTION
Latest release
v0.1.4
Last updated
Aug 18, 2026, 6:47 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.