Skip to content
Snippets Groups Projects
Commit feb93b44 authored by Alexander Rose's avatar Alexander Rose
Browse files

added StructureSymmetryFromModel

parent 9d0815a2
No related branches found
No related tags found
No related merge requests found
...@@ -31,6 +31,7 @@ export const DefaultPluginSpec: PluginSpec = { ...@@ -31,6 +31,7 @@ export const DefaultPluginSpec: PluginSpec = {
PluginSpec.Action(StateTransforms.Data.ParseCif), PluginSpec.Action(StateTransforms.Data.ParseCif),
PluginSpec.Action(StateTransforms.Data.ParseCcp4), PluginSpec.Action(StateTransforms.Data.ParseCcp4),
PluginSpec.Action(StateTransforms.Model.StructureAssemblyFromModel), PluginSpec.Action(StateTransforms.Model.StructureAssemblyFromModel),
PluginSpec.Action(StateTransforms.Model.StructureSymmetryFromModel),
PluginSpec.Action(StateTransforms.Model.StructureFromModel), PluginSpec.Action(StateTransforms.Model.StructureFromModel),
PluginSpec.Action(StateTransforms.Model.ModelFromTrajectory), PluginSpec.Action(StateTransforms.Model.ModelFromTrajectory),
PluginSpec.Action(StateTransforms.Model.VolumeFromCcp4), PluginSpec.Action(StateTransforms.Model.VolumeFromCcp4),
......
...@@ -14,7 +14,7 @@ import { ParamDefinition as PD } from 'mol-util/param-definition'; ...@@ -14,7 +14,7 @@ import { ParamDefinition as PD } from 'mol-util/param-definition';
import { PluginStateObject } from '../objects'; import { PluginStateObject } from '../objects';
import { StateTransforms } from '../transforms'; import { StateTransforms } from '../transforms';
import { Download } from '../transforms/data'; import { Download } from '../transforms/data';
import { StructureRepresentation3DHelpers, VolumeRepresentation3DHelpers } from '../transforms/representation'; import { StructureRepresentation3DHelpers } from '../transforms/representation';
import { getFileInfo, FileInput } from 'mol-util/file-info'; import { getFileInfo, FileInput } from 'mol-util/file-info';
import { Task } from 'mol-task'; import { Task } from 'mol-task';
......
...@@ -134,6 +134,32 @@ const StructureAssemblyFromModel = PluginStateTransform.BuiltIn({ ...@@ -134,6 +134,32 @@ const StructureAssemblyFromModel = PluginStateTransform.BuiltIn({
} }
}); });
export { StructureSymmetryFromModel }
type StructureSymmetryFromModel = typeof StructureSymmetryFromModel
const StructureSymmetryFromModel = PluginStateTransform.BuiltIn({
name: 'structure-symmetry-from-model',
display: { name: 'Structure Symmetry', description: 'Create a molecular structure symmetry.' },
from: SO.Molecule.Model,
to: SO.Molecule.Structure,
params(a) {
return {
ijkMin: PD.Vec3(Vec3.create(-1, -1, -1), { label: 'Min IJK', fieldLabels: { x: 'I', y: 'J', z: 'K' } }),
ijkMax: PD.Vec3(Vec3.create(1, 1, 1), { label: 'Max IJK', fieldLabels: { x: 'I', y: 'J', z: 'K' } })
}
}
})({
apply({ a, params }, plugin: PluginContext) {
return Task.create('Build Symmetry', async ctx => {
const { ijkMin, ijkMax } = params
const model = a.data;
const base = Structure.ofModel(model);
const s = await StructureSymmetry.buildSymmetryRange(base, ijkMin, ijkMax).runInContext(ctx);
const props = { label: `Symmetry [${ijkMin}] to [${ijkMax}]`, description: structureDesc(s) };
return new SO.Molecule.Structure(s, props);
})
}
});
export { StructureSelection } export { StructureSelection }
type StructureSelection = typeof StructureSelection type StructureSelection = typeof StructureSelection
const StructureSelection = PluginStateTransform.BuiltIn({ const StructureSelection = PluginStateTransform.BuiltIn({
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment