lovy2004/dsh-molbio-tools1

dsh-molbio-tools

Zero-dependency molecular-biology plugin bundle for the DeepSeek Harness: sequence analysis, primer design (incl. cross-intron qPCR primers), cloning simulation, SnapGene .dna parsing and plasmid maps, Sanger verification, protein tools, qPCR analysis and plotting, multiple sequence alignment and conservation analysis, sequence logos, CRISPR gRNA design with off-target search, plus a browser-side right-sidebar panel (plasmid maps and sequence logos drawn in the Web GUI) and a literature/protocol/experiment record system.

包名
dsh-molbio-tools
版本
0.8.0
许可证
MIT
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:lovy2004/dsh-molbio-tools

dsh-molbio-tools

面向 DeepSeek Harness 的零依赖分子生物学研究插件:序列分析、引物自动设计与检查、限制性酶切模拟、GenBank 解析与质粒图谱、qPCR 分析、文献助手与实验台计算。除文献检索与存储外全部为确定性纯计算;插件由纯 .mjs 文件构成,可随 agent preset 目录整体复制分发。

提供的工具(46 个,模型可调用)

序列分析

工具功能
molbio_reverse_complement反向互补 / 互补链(IUPAC 简并码,自动忽略空白与数字)
molbio_gc_content整体 GC 含量 + 可选分窗口 GC 百分比
molbio_translate1/2/3/-1/-2/-3 或六框翻译(3 套密码子表),ORF 查找
molbio_restriction_sites内置 90+ 限制酶(v10 起含 IIS 型:BsaI/BsmBI/BbsI/BspQI/SapI/PaqCI/AarI/BtgZI/BsmFI/FokI 等,切点在识别位点外,显示标准 (N₁/N₂) 记法)位点搜索与酶切片段计算(线性/环状)
molbio_enzyme_lookupv13 酶目录查询:按名称/识别位点/切点几何/突出端长度查 90+ 酶表;给定序列时报告双链向全部切点(IIS 酶的反向识别位点如 GAGACC 也会被切,这是 molbio_restriction_sites 不报告的)与片段大小

引物

工具功能
molbio_design_primers自动设计 PCR 引物对:Tm(SantaLucia 1998 NN,默认 50 mM Na⁺/1.5 mM Mg²⁺/200 nM,v13 起可用 na_mm/mg_mm/dntp_mm/primer_nm 调节)、GC、GC clamp(0-3 分级)、run/发夹/自互补/二聚体约束,按 amplicon 窗口配对并排序。v12 起结构筛查对齐 Primer3 模型:自互补为比对分(match +1/mismatch −1/gap −0.25,阈值 8.0/3.0),发夹与引物二聚体用同一套 NN 参数折成 Tm(默认 47 °C 阈值),3' 端稳定性(末 5 碱基 ΔG(37°C) ≤ 9 kcal/mol)与末 5 碱基 GC 数。v12 起支持错配容差max_mismatches > 0 时允许引物与模板有少量错配(3' 末端碱基绝不错配、默认避开 3' 端关键区),每处错配在 mismatches 中报告并计入排序罚分,精确引物总是优先。check_mispriming: true 检查 3' 尾在模板上的非特异结合位点并拒绝/罚分。v13 起支持 3' 目标位置偏好target_position + target_penalty 按"较近引物 3' 端到目标位点的距离"罚分排序(SNP/定点设计用),每对报告 target_distance
molbio_design_intron_primers跨内含子 qPCR 引物(v10):给定基因组序列 + 外显子坐标,正向引物跨外显子-外显子连接点(两侧各 ≥ min_junction_bases),反向引物位于另一外显子,基因组 DNA 无法扩增;min_genomic_span 强制最小基因组间距;输出剪接坐标 + 基因组坐标双套位置。v12 起支持错配容差(参数同 molbio_design_primers,错配在 spliced/genomic 双坐标下报告)。v13 起同样支持盐/浓度旋钮与 target_position(剪接坐标)
molbio_primer_tm单条引物 Tm 估算(Na⁺/Mg²⁺/dNTP 盐校正,von Ahsen 2001)
molbio_primer_check引物结构筛查:重复序列、自互补(3' 端加权)、发夹、引物对二聚体;v12 起增加 Primer3 同款热力学指标(self-any/self-end 比对分、发夹 Tm、二聚体 Tm、3' 端稳定性/GC)

质粒

工具功能
molbio_parse_snapgeneSnapGene .dna 文件解析(研究者最常用的格式):图谱名称、拓扑(环状/线形)、注释特征(类型/区段/链向/标签,支持多段 join 与 HTML 文本清洗)、序列、描述、accession、已保存引物
molbio_plasmid_map_file一步成图:直接读 .dna(SnapGene)或 .gb/.gbk(GenBank)文件,把 SVG 图谱写入工作区文件并返回 svg_path(默认 .svg,可用 output_path 指定);写入后自动用系统默认应用打开auto_view,默认开启)
molbio_parse_genbankGenBank flatfile 文本解析(complement/join 定位、/gene、/product 等)
molbio_plasmid_map从序列 + 特征数组渲染并直接写入 SVG 文件(环形默认/线形可选):特征分道、链向箭头、酶切标记、bp 刻度;同样返回 svg_path 并自动打开

克隆构建

工具功能
molbio_unique_cutters克隆选酶:载体单切 + 插入零切的"理想酶"列表(可限定 MCS 区间)、区间双切酶(片段切出)、排除切插入的酶
molbio_clone_simulate酶切-连接(1-2 酶,orientation=auto 默认自动反向互补方向写反的插入片段)与 Gibson 组装(自动生成同源臂和 insert-to-order)模拟:输出最终质粒序列、特征坐标平移、连接点序列、验证酶切预测(对比空载体,单酶时含反向连接预测);save_path 存 FASTA、map_path 一步写出新质粒图谱 SVG(含平移后的特征与验证酶标记)
molbio_golden_gatev13 Golden Gate 组装:IIS 酶(BsaI 等)多片段组装模拟——自动设计唯一、非回文、非互补的 4 bp 突出端(载体已有盒子则读取、裸载体给 replace_region 则自动加盒子并设计两端突出端)、检查酶不切片段/裸载体、生成带识别位点的订购片段(fragments_to_order)、拼出最终质粒(连接处无酶切位点;载体盒子位点保留在骨架上,下一级组装换另一种 IIS 酶)、特征坐标平移与验证酶切;save_path/map_path 直接出 FASTA/SVG
molbio_clone_primers扩增引物加尾:酶切位点 + 保护碱基(内置推荐表)或 Gibson 同源臂;自动复检全长 Tm(NN 估算)/GC/二聚体,并警告"酶也切模板内部"
molbio_mutagenesis_primersQuickChange 式定点突变引物:支持 A123G/123A>G/123_125del/after123insGCT,突变居中、G/C 端、Tm/GC/结构复检,报告氨基酸变化(frame 1 假设)

克隆验证

工具功能
molbio_verify_sanger.ab1(ABIF 二进制:碱基 + 质量值)或 .seq/.txt/.fasta 测序文件 → 与参考质粒比对(环状感知,跨 origin 的读段也能对齐)→ 错配/缺失/插入报告(含质量标注)、同一性、CDS 内氨基酸后果(错义/沉默/移码)

实验与统计

工具功能
molbio_qpcr_analysisΔΔCt 法:各组均值/SD、ΔCt、ΔΔCt、fold change(可设扩增效率)
molbio_qpcr_efficiency稀释系列 → 标准曲线:斜率/截距/R²、扩增效率 E=10^(−1/slope)−1;plot_path 直接写出带拟合线的 SVG 标准曲线并自动打开
molbio_plot通用 SVG 图表:柱状图(均值±SD 误差棒)与散点图(可选最小二乘拟合线),写成工作区文件并自动打开
molbio_virtual_gelv13 虚拟琼脂糖凝胶:各泳道给出预期片段大小(酶切/PCR/连接检查)→ SVG 凝胶图 + 分子量 ladder(1kb/100bp),与真实胶对照;output_path 写工作区文件并自动打开
molbio_lab_math稀释计算(C₁V₁=C₂V₂)、摩尔浓度、DNA 拷贝数

蛋白质

工具功能
molbio_protein_propsMW(平均残基质量)、等电点(Bjellqvist 1993 pK)、A280 消光系数(还原/全二硫键两种)、A280(0.1%)、GRAVY(Kyte-Doolittle)、脂肪族指数(Ikai 1980)——均为估算
molbio_peptide_digest质谱用酶切模拟:trypsin/chymotrypsin/LysC/GluC(P 前不切规则)、漏切 0-3、单同位素/平均 [M+H]+ 质量、质量范围过滤
molbio_codon_optimizeE. coli/酵母/人宿主密码子优化(公开发表的高频密码子表,启发式);avoid_enzymes 通过同义替换尽量避开指定酶切位点

序列分析扩展

工具功能
molbio_alignSmith-Waterman 局部比对:可读的比对线(
molbio_fasta_fastq工作区 FASTA/FASTQ 处理:条目统计(长度/GC)、按 id 提取(可写 FASTA)、FASTQ→FASTA 转换、FASTQ QC(Phred 均值/低质量比例/位点质量分布)
molbio_extract_region从质粒文件按特征名(如 "AmpR"、"MCS")或坐标提取子序列,可选反向互补与 FASTA 保存——克隆/设计的下游输入

多序列比对与保守性(v15)

工具功能
molbio_msa_align多序列比对(v15):2-50 条 IUPAC DNA 序列的渐进式比对——两两/谱-谱全局比对用带自由末端缺口的仿射罚分(match +4 / mismatch −4 / 缺口开 −6 / 延伸 −2),合并顺序来自 5-mer 距离 + UPGMA 引导树,"一旦有缺口、永远有缺口";返回输入顺序的比对序列(sequences 数组或 fasta_path 工作区 FASTA)与两两同一性统计,save_path 直接写出比对后的 FASTA
molbio_conservation保守性分析(v15):共识序列(最高频碱基 ≥50% 直接给出,否则给出覆盖碱基的 IUPAC 简并码)、逐列 identity(最高频残基占比,缺口不计)、熵基保守性打分(1 − H/2)、保守/可变列统计(threshold 默认 0.8,可变位点列出至多 200 个;全缺口列计为保守)、两两同一性;输入可给 alignment(已比对等长序列,- 为缺口——如 molbio_msa_align 的输出)、sequencesfasta_path(后两者自动先比对)

序列标识图与 CRISPR 设计(v16)

工具功能
molbio_sequence_logo序列标识图(sequence logo):把保守性分析背后的逐列碱基组成画成 SVG——字母高度 = 信息量 Rᵢ = log₂4 − (Hᵢ + e_n)(bits,纵轴 0-2),堆叠高度按碱基频率分配,字母按经典配色(A 绿 / C 蓝 / G 黄 / T 红)。频率只按残基统计(缺口排除并在每列上报),简并碱基按其碱基集合摊分权重(R = A/G 各半)。small_sample(默认开)扣掉小样本熵校正 e_n =(K−1)/(2·ln2·n)——序列数少时这一项很关键(2 条完全相同的序列每列只有 0.918 bits 而不是名义上的 2);score_type: "frequency" 切换成纯频率图(字母和 = 1,纵轴 0-1)。输入可给 alignment / sequences / fasta_path,写得 SVG 后自动打开;返回 svg_path、总/平均 bits、最保守列、含缺口列数
molbio_grna_designCRISPR gRNA 设计(默认 SpCas9 NGG PAM):双链扫描 PAM 锚定的 20 nt protospacer,逐条报告 1-based 顶链坐标、链向、GC%、NN Tm、Primer3 式自互补(self-any/self-end)、种子区自互补、发夹 Tm、最长 poly-T,以及一个逐项公开的启发式评分。硬过滤(GC 上下限、poly-T、3' 自互补、G/C 同聚)可用 gc_min/gc_max/max_t_run/max_self_end 调节,被过滤的条数照常报告。check_off_target(默认开)在同一条序列(双链)上建 k-mer 索引,对得分最高的若干候选做错配容差脱靶搜索(仅替换、无 bulge/indel,PAM 必须完好;种子末端 2 位不允许错配),每个脱靶扣 8 分——想在基因组尺度搜索就把基因组当作 target 传入。save_path 出订购用 CSV,map_path 出带 gRNA 标记的质粒图谱

图谱增强

  • molbio_plasmid_map / molbio_plasmid_map_file 新增 gc_skew: true(GC skew 环)与 show_unique_cutters: true(绿色标记所有单切酶)

浏览器内面板(bundle 渠道,可选)

除了工具与"写 SVG 文件 + 系统查看器"这条链路,本包还有浏览器内的右栏面板与图谱调用卡

落点内容
Molbio(右栏 tab)列出当前会话工作区的序列文件,选中当场在面板里画出来——.dna/.gb/.gbk 出质粒图谱 + 特征表,.fa/.fasta 出序列标识图
Papers(右栏 tab)molbio_paper_* 工具维护的 papers.json 渲染成可搜索的阅读列表(标题/作者/期刊/年份/PMID/URL/标签/笔记,标题链接到 PubMed 或原 URL)
图谱调用卡(对话内)molbio_plasmid_map / molbio_plasmid_map_file 的调用直接在对话里画出这次产出的图谱(摘要 + 写入路径;失败时显示错误文本与 Inspect 入口),不必再去开文件

解析与渲染在浏览器里跑的就是本仓库自己的模块(lib/genbank/snapgene/plasmid/msa/logo 的同一份源码),不落盘、不弹外部窗口。

它走的是 bundle 渠道dsh.client 双面包),因为 preset 渠道挂不了客户端 UI:

# 只要面板(不把 46 个工具带进该 profile 的每个会话)——推荐给共享的 web profile
dsh plugin --profile 
 add D:\path\to\dsh-molbio-tools\packages\molbio-panel
# 或:工具 + 面板一起(分子生物学专用的 profile)
dsh plugin --profile 
 add D:\path\to\dsh-molbio-tools

装上后重启一次服务并刷新页面(新插件行需要在启动时组合;之后改客户端代码才只靠刷新), 右栏引导页里会出现 MolbioPapers 两个胶囊。与 preset 渠道可以共存:preset 给 46 个工具,bundle 给面板。

若升级后 GUI 顶栏出现 Failed to load pluginsfailed to apply loader entry …),那是某个 客户端 entry 的 apply() 抛了异常,加载器拒绝启动——不是"面板没挂上"。0.7.1 的图谱调用卡 就踩过一次(裸 register() 抢一个还没被声明的座位);0.7.2 起所有座位都改成 slots.inject 等待声明。升级到 0.7.2+、重启并刷新即可;排查清单见 docs/maintainer.md("UI 起不来"一节)。

细节(产物格式、服务契约、上限、验证方式、已知限制)见 docs/client-panel.md

文献助手

工具功能
molbio_pubmed_search通过 harness 的 web 检索服务搜文献(自动提取 URL 中的 PMID)
molbio_paper_add把文献加入阅读库(默认工作区 papers.json,按 PMID→URL→标题+年份去重)
molbio_paper_list列出阅读库
molbio_paper_update按 id 更新笔记/标签等字段
molbio_paper_remove从阅读库删除一条文献

文献与记录

工具功能
molbio_pubmed_abstractNCBI E-utilities efetch 按 PMID 拉取摘要(依赖部署提供 web fetch 能力,不支持时明确报错)
molbio_paper_export_bibtexpapers.json → BibTeX .bib 文件(可选按 tag 过滤)
molbio_protocol_add / protocol_list / protocol_update协议库(protocols.json):步骤列表、自由参数对象、来源文献 id
molbio_experiment_log / experiment_list实验日志(experiments.json):关联协议与文献、笔记与结果

目录结构

dsh-molbio-tools/
├── index.mjs        # 插件入口:export { name, inject, apply },注册 46 个工具
├── lib.mjs          # 基础库:IUPAC、翻译、酶表(含双链向切点查找)、NN 热力学、qPCR、lab math
├── design.mjs       # 引物自动设计(含跨内含子 qPCR)
├── genbank.mjs      # GenBank flatfile 解析器
├── snapgene.mjs     # SnapGene .dna 二进制解析器(含极简 XML 扫描器)
├── plasmid.mjs      # SVG 质粒图谱渲染器(环形/线形,GC skew/标记)
├── align.mjs        # Smith-Waterman 局部比对 + 锚点窗口(Sanger 验证用)
├── msa.mjs          # 多序列渐进式比对(仿射缺口 NW + UPGMA)与保守性分析
├── logo.mjs         # 序列标识图:逐列碱基组成/信息量 + SVG 渲染
├── crispr.mjs       # CRISPR gRNA 设计:PAM 扫描、质量指标与评分、脱靶搜索
├── cloning.mjs      # 克隆模拟:选酶/酶切连接/Gibson/Golden Gate/克隆引物/突变引物
├── sanger.mjs       # ABIF (.ab1) 解析 + 测序验证报告
├── protein.mjs      # 蛋白性质/肽段酶切/密码子优化
├── plot.mjs         # SVG 柱状/散点图 + 虚拟琼脂糖凝胶渲染
├── seqio.mjs        # FASTA/FASTQ 解析与统计
├── records.mjs      # 协议库/实验日志存储
├── papers.mjs       # 文献库存储(经 harness fs 服务 + 沙箱政策)
├── view.mjs         # 自动查看:把生成的 SVG 交给系统默认应用打开(镜像 host.openPath 语义)
├── build/           # 浏览器半的源码与打包器(见下)
│   ├── client-bundle.mjs # 零依赖打包器:产出 lazy-CJS 客户端产物
│   ├── browser-api.mjs   # 浏览器安全面:从包根 .mjs 再导出面板可用的一切
│   ├── panel-core.mjs    # 面板数据通路(分类/解码/解析/渲染,无 React)
│   └── client-entry.mjs  # 浏览器半本体:右栏 tab 类型 + 正文 + 标题
├── lib/
│   └── client.js    # 客户端产物(exports["./client"];npm run build:client 生成)
├── cordis.patch.yml # bundle 补丁层(可选安装渠道用,按包名插入 tool-molbio 行)
├── preset/
│   ├── install.mjs  # 渠道 B 安装脚本:把包内 preset 注册为该 profile 的额外扫描根
│   └── molbio-lab/  # 推荐的专属模式预设(agent.cordis.yml + preset.yml + plugins/dsh-molbio-tools-v16/)
├── test/
│   ├── smoke.mjs    # 冒烟测试(复用 harness 自身的 JSON Schema 校验器)
│   ├── slots-stub.mjs # 客户端座位桩:复刻 shell 的 SlotCore 声明规则(见下)
│   └── preset-health.mjs # preset 组合健康检查(逐行按该包自己的 Config schema 校验,对照官方 standard 预设)
├── docs/
│   ├── maintainer.md # 维护者文档(合规对照/开发测试/路线图)
│   ├── client-panel.md # 浏览器内面板的实现记录(产物格式/服务契约/上限/验证)
│   ├── route-b.md   # 安装渠道 B:把包内 preset 注册进 profile(升级 Runbook/取舍/实测)
│   └── client-pipeline-exploration.md # 浏览器内面板的可行性与实现路径调研
├── CHANGELOG.md     # 变更日志(包版本 + preset 版本目录对照)
├── package.json
└── README.md

安装(推荐:专属模式 preset)

推荐给最终用户的方式:安装后预设选择器出现 Molecular Biology Lab 专属模式, molbio 工具只在该模式出现,不会把 46 个工具和提示段注入到其它会话(避免污染无关场景)。

装进对方的 harness 有两条渠道,可以共存:

渠道 A:复制预设目录渠道 B:注册包内 preset(新)
做法preset/molbio-lab/ 复制到 ~/.dsh/.agent-presets/molbio-lab/跑一次 preset/install.mjs,把包内 preset 目录注册为 profile 的额外扫描根
自包含是(不依赖已装的包,可离线带走)否(依赖 profile 里已装的包)
升级每个新版本都要重新复制到新的 vN 目录`dsh plugin --profile
update dsh-molbio-tools`,不用复制、不用改配置
可否被用户编辑可以(在 user 根下)否(trust: system,只读)
适用场景无法改 profile 配置的环境;交付一个"带走即用"的目录自己的机器/团队 profile;长期使用并跟随升级

渠道 A(复制):仓库的 preset/molbio-lab/ 即完整预设目录,复制过去即可:

~/.dsh/.agent-presets/molbio-lab/
├── agent.cordis.yml                 # 标准编码 Agent + 末尾的 tool-molbio 行
├── preset.yml                       # 显示名称与描述
└── plugins/
    └── dsh-molbio-tools-v16/        # 插件文件(版本目录,见下文)

对方重启(或刷新预设列表)后,在预设选择器中选择 Molecular Biology Lab 新建会话。 代价是每个新版本都要把目录重新复制到新的 vN(复制的那份会冻结在旧版本)。

渠道 B(注册,新):前提是该 profile 本来就装了本包(dsh plugin add 会把 46 个工具 装进该 profile,但不会让 preset 出现在选择器里):

dsh plugin --profile web add dsh-molbio-tools    # 1. 装包(工具 + bundle 层)
node \preset\install.mjs --profile web   # 2. 注册包内 preset(幂等)

脚本只改 profile 的 cordis.patch.yml:追加一条 - id: agent-presets 补丁,把 /preset 加进 config.rootstrust: system)。三个特性:

  • 幂等:重复运行零字节改动;--check 可当健康检查(未注册时退出码 1),--dry-run 只打印不落盘;
  • 先备份后写cordis.patch.yml.bak-
  • 写完自检:跑 dsh --profile --dump-config,确认组合树确实带上了新 root。

之后重启该 profile,选择器里就会出现 Molecular Biology Lab;以后升级只跑 dsh plugin --profile update dsh-molbio-tools —— root 路径跨版本恒定,所以不用重新复制、 也不用再动配置。两条渠道共存时,重复 id 由配置根(渠道 B)胜出。

机制细节、升级 Runbook、完整取舍表与已知限制见 docs/route-b.md

兼容性:当前 preset 组合已对齐 DSH 0.1.5-alpha.2persona 行的 prefix/suffix 契约、present 行)。DSH 侧插件包改名或改配置契约时,preset 会 硬挂载失败(该模式直接从选择器里消失),而插件代码本身仍然是好的——用 node test/preset-health.mjs 可以把每一行的 config 交给对应包自己的 schema 复核, 一眼看出是哪一行、哪个字段坏了。

插件更新(版本目录规则)

DSH 的 standing 挂载按 ESM 模块 URL 缓存模块。每次更新必须新建版本目录 (如 dsh-molbio-tools-v16/)并同步修改 agent.cordis.yml 中的插件行;绝不在已发布 目录里原地改文件。分发者从包根目录把 .mjs 文件复制进新版本目录即可:

cp *.mjs preset/molbio-lab/plugins/dsh-molbio-tools-v16/
# 并把 agent.cordis.yml 的行改为 './plugins/dsh-molbio-tools-v16/index.mjs'

安装(可选:官方组合包 bundle,全局可见)

本包同时是官方的组合包(bundle)dsh.bundle manifest → cordis.patch.yml)。 注意:bundle 把插件行注册到 profile 的全局 tools 层——该 profile 的所有会话都会 加载 molbio 工具与提示段。适合"整个 profile 专用于分子生物学"的用户,不适合混合用途。

方式命令用户安装
GitHub推送到仓库dsh plugin --profile add github:lovy2004/dsh-molbio-tools(纯 JS 零构建,无需 prepare 脚本与构建授权)
npm 发布npm publishdsh plugin --profile add dsh-molbio-tools
tarballpnpm packdsh plugin --profile add ./dsh-molbio-tools-0.1.0.tgz

验证方式(官方推荐):

dsh plugin --profile demo add       # 需要用户机器装有 pnpm(官方流程依赖)
dsh --profile demo --dump-config        # 组合树中应出现 "# == dsh-molbio-tools" 层

本仓库已验证:--dump-config 输出以 # == dsh-molbio-tools + - id: tool-molbio / name: dsh-molbio-tools 开头(层序在 dsh-base 之上),且从 profile 目录按包名 import('dsh-molbio-tools') 成功注册全部 46 个工具。两种安装方式可以共存(同名工具 由 preset 层 shadow 全局层,无冲突),但通常二选一即可。

版本目录规则的原理(维护者必读):DSH 的 standing preset 挂载在整个进程生命周期 内存在,且 Node 的 ESM 模块缓存以文件 URL 为键——同一 URL 的 import() 永远返回 第一次加载的模块,包括插件内部的相互 import(给入口加查询串只能破坏入口自身的 缓存,依赖文件仍会命中旧缓存)。因此原地替换 .mjs 不会让新会话加载新代码;目录名 变化使所有模块 URL 一次性更新。旧目录可删除(已运行的 generation 持有内存中的模块, 不受磁盘删除影响)。

行为与假设

  • 纯计算工具(序列/引物/统计)确定性、无副作用;输入输出均为可持久化的 JSON。
  • 图谱工具直接写文件molbio_plasmid_map / molbio_plasmid_map_file 把 SVG 写入工作区(ctx.fs + 会话沙箱政策),模型上下文里只出现文件路径,避免大文本截断。
  • 自动查看(auto-view):所有生成图片的工具(molbio_plasmid_mapmolbio_plasmid_map_filemolbio_clone_simulate/molbio_golden_gatemap_pathmolbio_qpcr_efficiencyplot_pathmolbio_plotmolbio_virtual_gel)写完 SVG 后自动用操作系统默认应用打开(Windows 为 Invoke-Item、macOS 为 open、桌面 Linux 为 xdg-open/$BROWSER、WSL 自动转译为 Windows 路径),结果中的 auto_viewed 字段报告交接是否成功。每调用可用 auto_view: false 关闭;无桌面环境(headless Linux)与 MOLBIO_AUTO_VIEW=0 时自动跳过。
  • 克隆模拟约定:酶切-连接要求"插入片段按 5'→3' 书写、上游酶在 5' 端";单酶连接会给出双向连接说明与两种方向的验证酶切;特征坐标按插入/缺失自动平移,跨越连接点的特征标注 spans_insertion
  • Sanger 验证:参考序列按环状处理(读段跨 origin 也能正确对齐);.ab1 低质量( 0时,若某窗口没有精确引物通过全部约束,设计器用**最少的替换**尝试挽救(只针对可修复的约束:GC 失衡、run、Tm 微差)。3' 末端碱基永远不错配,默认在 3' 端mismatch_3prime_zone(默认 5 bp)关键区内也不放错配(max_3prime_mismatches` 可放宽)。每处错配逐条报告:引物内位置、模板位置、模板碱基/引物碱基、距 3' 端距离;每个错配都会加重排序罚分——存在精确引物时精确引物永远优先。
  • Primer3 对齐的结构筛查(v12):自互补(self-any/self-end)为比对分(match +1 / mismatch −1 / gap −0.25,阈值 8.0/3.0);发夹与引物二聚体(any/end)用与 Tm 相同的 SantaLucia NN 参数折成 Tm(默认阈值 47 °C