Skip to content

◷ 发表于: 2025-03-18

◷ 更新于: 2025-08-16

🅆 字数: 0

MolStarCommon开发片段

常用方法

日志打印

插件底部中心的内置控制台显示日志条目

typescript
plugin.log.info("This info will appear in the Mol* console");
typescript
plugin.log.warn("This warn will appear in the Mol* console");
typescript
plugin.log.message("This message will appear in the Mol* console");
typescript
plugin.log.error("This error will appear in the Mol* console");

显示 toast 消息

Toast 消息将出现在插件的右下角,并在消失之前停留有限的时间。

typescript
import { PluginCommands } from "molstar/lib/mol-plugin/commands";

PluginCommands.Toast.Show(plugin, {
  title: "Custom Message",
  message: "A custom toast message that will disappear after 2 seconds.",
  key: "toast-custom",
  timeoutMs: 2000,
});

相机聚焦

typescript
plugin.managers.camera.focusLoci(loci);

重置聚焦

typescript
plugin.managers.camera.reset();

Structure 聚焦

typescript
plugin.managers.structure.focus.setFromLoci(loci);

聚焦扩展

typescript
plugin.managers.structure.focus.addFromLoci(loci);

重置聚焦

typescript
plugin.managers.structure.focus.clear();

高亮

interactivity.ts 设置高亮
typescript
plugin.managers.interactivity.lociHighlights.highlightOnly({ loci });
interactivity.ts 检查是否高亮
typescript
plugin.managers.interactivity.lociHighlights.isHighlighted({ loci });
interactivity.ts 唯一高亮
typescript
plugin.managers.interactivity.lociHighlights.highlightOnly({ loci });
interactivity.ts 清除高亮
typescript
plugin.managers.interactivity.clearHighlights();

查询

typescript
import { Script } from "molstar/lib/mol-script/script";
import { StructureSelection } from "molstar/lib/mol-model/structure/query";

const data =
  plugin.managers.structure.hierarchy.current.structures[0]?.cell.obj?.data;
if (!data) return;

const selection = Script.getStructureSelection(
  (Q) =>
    Q.struct.generator.atomGroups({
      "chain-test": Q.core.rel.eq(["B", Q.ammp("label_asym_id")]),
    }),
  data
);
const loci = StructureSelection.toLociWithSourceUnits(selection);

设置基础属性

typescript
import { ColorNames } from "molstar/lib/mol-util/color/names";
import { PluginCommands } from "molstar/lib/mol-plugin/commands";

const renderer = plugin.canvas3d!.props.renderer;
PluginCommands.Canvas3D.SetSettings(plugin, {
  settings: {
    renderer: {
      ...renderer,
      backgroundColor: ColorNames.red /* or: 0xff0000 as Color */,
    },
  },
});

基于 CC BY-NC-SA 4.0 许可发布