🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

分子三维查看器 Kanade-Tachibana-Methyl/dsh-molecule-visualization

DeepSeek Harness
Kanade-Tachibana-Methyl14 天前有提交已提供中文文档扫描:含敏感能力

在会话中旋转缩放查看分子三维结构

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Kanade-Tachibana-Methyl/dsh-molecule-visualization
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · vision
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    lib/index.js:70
    return candidates.find(candidate => existsSync(candidate));
  • 读取本地文件
    lib/index.js:88
    const bytes = readFileSync(resolved);
  • 发起网络请求
    lib/client.js:6754
    var i = fetch(t).then(checkStatus).then(((t2) => t2.text()));
  • 发起网络请求
    lib/client.js:6759
    return s = "POST" == i ? fetch(t, { method: "POST", body: r }).then(((t2) => checkStatus(t2))).then(((t2) => t2.arrayBuffer())) : fetch(t).then(((t2)
  • 读取本地文件
    src/index.ts:86
    return candidates.find(candidate => existsSync(candidate))
  • 读取本地文件
    src/index.ts:106
    const bytes = readFileSync(resolved)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-tool@deepseek-ai/dsh-invariants@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

为 DeepSeek Harness 提供交互式 3D 分子可视化:支持 PDB/SDF/MOL/MOL2/XYZ/Gaussian 格式和球棍模型,失败原因可见。基于 PandaAIDD/dsh-molecule-viewer(MIT)。

README

由 DeepSeek 最新模型翻译生成
dsh-molecule-visualization 本仓库基于 PandaAIDD/dsh-molecule-viewer(MIT 许可)改写,独立演进。 上游实现了 DSH 插槽接入、3Dmol.js 本地打包与基础查看器;在此基础上修掉了 6 个已复现的渲染问题,并新增 XYZ / Gaussian 输入支持、球棍样式、卡片级错误原因与布局超时保护。 包名是 dsh-molecule-visualization(上游叫 dsh-molecule-viewer;工具名仍是 view_molecule)。 改动清单见 NOTICE.md(逐项)与 CHANGELOG.md;上游版权声明与 MIT 许可完整保留,见 LICENSE。 DSH(DeepSeek Harness)分子可视化插件:传入分子文件路径或 PDB/SDF/MOL/MOL2/XYZ/GJF 格式数据,在会话界面渲染交互式 3D 分子查看器(3Dmol.js,支持旋转/缩放/样式切换/着色)。 相对上游 0.2.0 修复的问题 | # | 问题 | 上游症状 | 本仓库的处理 | | 1 | mol 格式被静默丢弃 | 工具声明支持 mol,但格式被原样传给 addModel。
展开完整文档(README 剩余 1 节)
dsh-molecule-visualization

本仓库基于 PandaAIDD/dsh-molecule-viewer(MIT 许可)改写,独立演进。
上游实现了 DSH 插槽接入、3Dmol.js 本地打包与基础查看器;在此基础上修掉了 6 个已复现的渲染问题,并新增 XYZ / Gaussian 输入支持、球棍样式、卡片级错误原因与布局超时保护。
包名是 dsh-molecule-visualization(上游叫 dsh-molecule-viewer;工具名仍是 view_molecule)。
改动清单见 NOTICE.md(逐项)与 CHANGELOG.md;上游版权声明与 MIT 许可完整保留,见 LICENSE。

DSH(DeepSeek Harness)分子可视化插件:传入分子文件路径或 PDB/SDF/MOL/MOL2/XYZ/GJF 格式数据,在会话界面渲染交互式 3D 分子查看器(3Dmol.js,支持旋转/缩放/样式切换/着色)。

相对上游 0.2.0 修复的问题

| # | 问题 | 上游症状 | 本仓库的处理 |
| 1 | mol 格式被静默丢弃 | 工具声明支持 mol,但格式被原样传给 addModel。3Dmol.js 2.4.2 没有 mol 解析器,会打印 Unknown format: mol 并按文本猜格式;真实 molfile 多数会被猜成 xyz → 解析出 0 个原子、外框正常、分子不显示、无报错(实测 14 个真实 .mol 里 12 个渲染 0 原子) | 输入 mol 内部映射为 sdf 解析器;载荷里带 renderFormat 字段,客户端也会兜底映射(旧会话记录同样能修好) |
| 2 | 失败对用户不可见 | 解析失败/空模型只留下空白 canvas | 卡片上显示具体原因 + 修复建议 + 重试按钮:解析异常、0 原子、WebGL 不可用、容器不可见各有独立文案;渲染后还会核对「host 统计原子数 vs 3Dmol 实际载入数」 |
| 3 | 缺少球棍样式 | 只有 stick/line/sphere/cartoon | 新增 ballstick:{ stick: { radius: 0.15 }, sphere: { scale: 0.25 } } 两种表示叠加(3Dmol 没有原生球棍表示) |
| 4 | 无键模型什么都画不出来 | stick 靠键绘制;无键表(XYZ、空 bond 块)→ 空画面 | 载入后若键数为 0,先 model.assignBonds() 按距离推断;仍为 0 则降级为球状显示并在卡片上说明(不会空白) |
| 5 | 布局等待可能永久挂起 | awaitLayoutBox() 等待非零尺寸,祖先被折叠/隐藏时永不 resolve → 永远 "Loading 3D viewer…" | 加 10 秒超时,超时后显示「容器不可见」+ 原因(display:none / 0×0)+ 重试按钮 |
| 6 | 格式校验太松 | PDB 固定列错位仍被接受,3Dmol.js 静默丢原子(实测一份 Chem3D 导出的 PDB:host 数到 92 个原子,画面只有 1 个) | host 侧按 PDB 规范逐列校验(记录名 1-6、x 31-38、y 39-46、z 47-54、resName 18-20、第 30 列必须为空);识别「整份文件统一 altLoc」这一列错位特征并修复列 17(修复会以警告写进卡片),也可用 repairShiftedPdbAltLoc: false 关闭改为直接报错 |

实测细节(含未复现项)见 docs/verification.md。简言之:问题 1、2、5、6 全部复现;问题 3 是功能缺失(确认);问题 4 的描述与 2.4.2 的实际行为不符——3Dmol.js 对无 CONECT 的 PDB 已按距离补键(1CRN 去掉 CONECT 仍有 334 根键)。因此本仓库仍做了「无键 → 推断 → 球状降级」的兜底,但它是防御性的,而不是在修一个能复现的空白画面。

特性

- 🧬 六种格式:PDB、SDF、MOL、MOL2、XYZ,以及 Gaussian 输入(.gjf / .com,只取几何结构)
- 🧱 PDB 列校验 + 自动修复:错位/截断/非数字坐标直接给出「哪一行、哪一列」;整份文件统一的 altLoc 伪标记会被修复并提示
- 📁 路径优先:直接传文件路径,服务端读取——Windows(D:\dir\x.pdb)、WSL(/mnt/d/dir/x.pdb)与 ~/ 自动互转
- 🖱️ 交互式查看器:旋转、缩放,实时切换 ball & stick / stick / line / sphere / cartoon,背景色与分子着色
- 🔄 重启可恢复:载荷随 tool/result 事件持久化(presentationMeta),重启后照常渲染,无需自定义事件类型
- ⚠️ 失败可见:空白 canvas 不再可能——每类失败都有具体原因、建议与重试
- ⏱️ 超时保护:容器不可见时 10 秒后给出提示,而不是永久 Loading
- 📦 本地打包 3Dmol.js:vendor/3Dmol-min.cjs(2.4.2)构建时打进 client bundle——无 CDN 运行时请求,可离线
- 🔍 可验证:node scripts/verify.mjs 一条命令跑完类型检查、98 个测试(含 3 个 jsdom 渲染测试)、 3Dmol 解析探针、真实文件端到端探针与构建产物冒烟测试

安装

方式 A:从 GitHub 安装

dsh plugin --profile web add git+https://github.com/Kanade-Tachibana-Methyl/dsh-molecule-visualization.git

也可以直接用源码安装形式(不需要 npm 包):

dsh plugin --profile web add github:Kanade-Tachibana-Methyl/dsh-molecule-visualization
GitHub 访问不稳定时,可换成 SSH 形式:
dsh plugin --profile web add git+ssh://git@github.com/Kanade-Tachibana-Methyl/dsh-molecule-visualization.git

方式 B:本地目录(开发/自用)

node scripts/build.mjs # 产出 lib/index.js + lib/client.js
dsh plugin --profile web add file:<path-to-repo>

dsh plugin 是 pnpm 转发器:检测到 dsh.bundle.patch 就把它加入 dsh.profile.bundles。
如果 profile 里已经装过同功能插件(例如上游 dsh-molecule-viewer),先移除再用本包,否则两个插件会各自注册一次 view_molecule。

方式 C:手工覆盖 profile 里的目录

$dst = "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-molecule-visualization"
Copy-Item -Recurse -Force "<path-to-repo>\" $dst # 先备份

生效范围

- client 半边(渲染器):DSH 的 client-hmr 每 500 ms 轮询 bundle 文件,检测到变化就推送新 rev 并热替换—— 刷新页面即可,不必重启进程。
- host 半边(view_molecule 工具注册、格式枚举、校验):需要重启 DSH 进程:

dsh --profile web

使用

对话中描述需求即可,模型会自动调用:

"帮我可视化这个分子:D:\project\Dock\data\3IPQ.pdb"

支持的格式

| 格式 | 扩展名 | 渲染用解析器 | 说明 |
| PDB | .pdb .ent | pdb | 蛋白质/大分子(ATOM/HETATM 记录);keepH 保证氢原子不被丢弃 |
| SDF | .sdf .sd | sdf | 多分子结构(V2000/V3000);多分子文件只渲染第一条并提示 |
| MOL | .mol | sdf | MDL MOL(V2000/V3000)——3Dmol.js 没有 mol 解析器 |
| MOL2 | .mol2 | mol2 | TRIPOS 格式 |
| XYZ | .xyz | xyz | 无键表,载入后按距离感知成键 |
| GJF | .gjf .com | xyz | Gaussian 输入文件,host 侧把几何块转成 XYZ(忽略路由段/Link1/ECP) |

SMILES 不支持——必须有 3D 坐标(与上游一致)。

超过 2 MB 的分子内容不会内联进会话日志,查看器位置显示摘要卡片(原子数与格式仍可见)。

渲染样式

| 样式 | 参数 | 说明 |
| ballstick | 球棍 | 细棒 + 小球叠加(stick.radius 0.15、sphere.scale 0.25)——小分子推荐;默认仍是 stick |
| stick | 棒状 | 只有化学键 |
| line | 线框 | 最轻 |
| sphere | 空间填充 | 范德华半径 |
| cartoon | 飘带 | 蛋白二级结构;配体/小分子自动改用棒状以免看不见 |

工具参数

| 参数 | 类型 | 必填 | 说明 |
| path | string | 与 data 二选一(优先) | 分子文件路径,按你的原始写法传入(Windows/WSL 双向兼容,~/ 自动展开) |
| data | string | 与 path 二选一 | 分子文件纯文本内容——仅用于磁盘上没有文件的情况,不要 base64 |
| format | pdb \| sdf \| mol2 \| mol \| xyz \| gjf | 传 data 时必填 | 传 path 时按扩展名推断,可省略 |
| name | string | 否 | 显示名称,作为查看器标题 |
| style | stick \| ballstick \| line \| sphere \| cartoon | 否 | 初始样式(默认 stick;蛋白质建议 cartoon) |

插件配置

- id: molecule-visualization
name: 'dsh-molecule-visualization'
config:
defaultStyle: stick # 默认初始样式;小分子可改 ballstick repairShiftedPdbAltLoc: true # PDB 列错位(统一 altLoc)自动修复;false = 直接报错

卡片上会看到什么

| 情况 | 卡片表现 |
| 正常 | 3D 视图 + 样式/背景/着色控件;有警告时底部显示 ⚠ 提示条 |
| host 校验失败(列错位、截断、格式不符) | 红色标题「无法显示这份 PDB 结构(文件名):具体原因」+ 修复建议 + 校验警告 |
| 3Dmol.js 解析出 0 原子 | 「3Dmol.js 没有读出原子:…(host 侧统计到 N 个)」+ 建议 |
| host / 渲染原子数不符 | 视图照常渲染 + 提示「只载入了 45/92 个原子」 |
| 容器被折叠/隐藏 | 10 秒后「容器不可见,渲染超时:原因」+ 重试 |
| WebGL 不可用 | 「WebGL 不可用:…」+ 建议检查浏览器 GPU 设置 |

仓库规范(dsh-plugin)

本仓库按 DSH 插件的公开约定组织,dsh plugin / 插件清单可以直接识别:

| 约定 | 本仓库的取值 |
| 仓库名 = 包名 | dsh-molecule-visualization(GitHub 仓库与 package.json.name 一致) |
| 工具名保持稳定 | 仍为 view_molecule(改名会破坏已有提示词与历史调用) |
| dsh.manifestVersion | 1 |
| dsh.bundle.patch | ./cordis.patch.yml(一行 insert,id molecule-visualization) |
| dsh.client.platform | web |
| dsh.client.inject | ["@deepseek-ai/dsh-client-ui-tool"](tool.call.toolview 槽位的属主) |
| icon | ./assets/icon.svg(插件清单里显示) |
| engines | node >=22、dsh >=0.2.0-rc.2 |
| keywords | 含 dsh-plugin、deepseek-harness、3dmol、molecule-visualization 等 |
| GitHub topics | dsh-plugin、deepseek-harness、dsh、molecule-visualization、molecular-visualization、3dmol、pdb、sdf、chemistry、webgl |

发布流程、仓库元数据与 Release 文案见 docs/release-checklist.md。

验证

node scripts/verify.mjs # 类型检查 + 测试 + 探针
node scripts/verify.mjs <path-to-molecular-files> # 额外对指定目录下的真实文件跑端到端探针

6 条验收清单的实测结果见 docs/verification.md。

开发

npm install # .npmrc 里 legacy-peer-deps=true(@deepseek-ai/ 不在 npm 上)
node scripts/build.mjs # host: tsc → lib/,client: esbuild → lib/client.js
node scripts/typecheck.mjs # 两个 tsconfig 都跑
node test/run-all.ts # 单进程跑全部测试
node scripts/verify.mjs # 全部验证

类型检查需要 DSH 的 @deepseek-ai/* 包(npm 上没有):把它们链接进 node_modules/@deepseek-ai:

New-Item -ItemType Junction -Path node_modules\@deepseek-ai
-Target "$env:USERPROFILE\.dsh\profiles\node_modules\@deepseek-ai"

运行时不需要这个链接——插件装进配置档后,从配置档的 node_modules 解析。

License 与归属

- MIT,见 LICENSE:上游版权声明 Copyright (c) 2026 dsh-molecule-viewer contributors 完整保留,并新增本仓库的版权行 Copyright (c) 2026 dsh-molecule-visualization contributors。
- 上游:PandaAIDD/dsh-molecule-viewer。
- 本仓库不是「从零实现」:插槽接入(tool.call.toolview)、presentationMeta 载荷设计、 3Dmol.js 本地打包(vendor/3Dmol-min.cjs)与查看器 UI 骨架均来自上游;改动逐项列在 NOTICE.md,版本差异见 CHANGELOG.md。
- 3Dmol.js 本身也是 MIT(其许可与版权见 vendor/ 与上游发行包)。
预览分享卡片长什么样 ↓Kanade-Tachibana-Methyl/dsh-molecule-visualization
分享 · DeepSeek Harness Hub
Kanade-Tachibana-Methyl/dsh-molecule-visualization

在会话中旋转缩放查看分子三维结构

这是你的仓库?认领条目

回到顶部