Skip to content

◷ 发表于: 2025-03-18

◷ 更新于: 2025-03-27

🅆 字数: 0

常用方法

日志打印

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

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 许可发布