Compare commits

..

5 Commits

Author SHA1 Message Date
Alexander Rose
24274cc53b 2.0.0-dev.9 2021-03-09 22:50:34 -08:00
Alexander Rose
870cef2fd4 add collapse-left-panel to viewer query params 2021-03-09 22:46:53 -08:00
Alexander Rose
bf7b1f5bfd move StateActions to PluginSpec 2021-03-09 22:46:13 -08:00
Alexander Rose
9c9a0312db gpu mc attribution 2021-03-09 22:42:52 -08:00
dsehnal
724fa2a7cd package lock 2021-03-08 18:32:27 +01:00
7 changed files with 3069 additions and 3332 deletions

6280
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "molstar",
"version": "2.0.0-dev.8",
"version": "2.0.0-dev.9",
"description": "A comprehensive macromolecular library.",
"homepage": "https://github.com/molstar/molstar#readme",
"repository": {

View File

@@ -49,11 +49,13 @@
if (debugMode) molstar.setDebugMode(debugMode, debugMode);
var hideControls = getParam('hide-controls', '[^&]+').trim() === '1';
var collapseLeftPanel = getParam('collapse-left-panel', '[^&]+').trim() === '1';
var pdbProvider = getParam('pdb-provider', '[^&]+').trim().toLowerCase();
var emdbProvider = getParam('emdb-provider', '[^&]+').trim().toLowerCase();
var viewer = new molstar.Viewer('app', {
layoutShowControls: !hideControls,
viewportShowExpand: false,
collapseLeftPanel: collapseLeftPanel,
pdbProvider: pdbProvider || 'pdbe',
emdbProvider: emdbProvider || 'pdbe',
});

View File

@@ -68,6 +68,7 @@ const DefaultViewerOptions = {
layoutShowSequence: true,
layoutShowLog: true,
layoutShowLeftPanel: true,
collapseLeftPanel: false,
disableAntialiasing: false,
pixelScale: 1,
enableWboit: true,
@@ -106,6 +107,12 @@ export class Viewer {
isExpanded: o.layoutIsExpanded,
showControls: o.layoutShowControls,
controlsDisplay: o.layoutControlsDisplay,
regionState: {
bottom: 'full',
left: o.collapseLeftPanel ? 'collapsed' : 'full',
right: 'full',
top: 'full',
}
},
},
components: {

View File

@@ -192,6 +192,15 @@ export function createIsosurfaceBuffers(ctx: WebGLContext, activeVoxelsBase: Tex
//
/**
* GPU isosurface extraction
*
* Algorithm from "Highspeed Marching Cubes using HistoPyramids"
* by C Dyken, G Ziegler, C Theobalt, HP Seidel
* https://doi.org/10.1111/j.1467-8659.2008.01182.x
*
* Implementation based on http://www.miaumiau.cat/2016/10/stream-compaction-in-webgl/
*/
export function extractIsosurface(ctx: WebGLContext, volumeData: Texture, gridDim: Vec3, gridTexDim: Vec3, gridTexScale: Vec2, transform: Mat4, isoValue: number, packedGroup: boolean, vertexTexture?: Texture, groupTexture?: Texture, normalTexture?: Texture) {
// console.time('calcActiveVoxels');
const activeVoxelsTex = calcActiveVoxels(ctx, volumeData, gridDim, gridTexDim, isoValue, gridTexScale);

View File

@@ -5,13 +5,10 @@
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { StateActions } from '../mol-plugin-state/actions';
import { AssignColorVolume } from '../mol-plugin-state/actions/volume';
import { StateTransforms } from '../mol-plugin-state/transforms';
import { StateTransformParameters } from '../mol-plugin-ui/state/common';
import { DefaultPluginSpec, PluginSpec } from '../mol-plugin/spec';
import { StateAction, StateTransformer } from '../mol-state';
import { BoxifyVolumeStreaming, CreateVolumeStreamingBehavior, InitVolumeStreaming } from '../mol-plugin/behavior/dynamic/volume-streaming/transformers';
export { PluginUISpec };
@@ -40,50 +37,4 @@ namespace PluginUISpec {
export const DefaultPluginUISpec = (): PluginUISpec => ({
...DefaultPluginSpec(),
actions: [
PluginSpec.Action(StateActions.Structure.DownloadStructure),
PluginSpec.Action(StateActions.Structure.AddTrajectory),
PluginSpec.Action(StateActions.Volume.DownloadDensity),
PluginSpec.Action(StateActions.DataFormat.DownloadFile),
PluginSpec.Action(StateActions.DataFormat.OpenFiles),
PluginSpec.Action(StateActions.Structure.EnableModelCustomProps),
PluginSpec.Action(StateActions.Structure.EnableStructureCustomProps),
// Volume streaming
PluginSpec.Action(InitVolumeStreaming),
PluginSpec.Action(BoxifyVolumeStreaming),
PluginSpec.Action(CreateVolumeStreamingBehavior),
PluginSpec.Action(StateTransforms.Data.Download),
PluginSpec.Action(StateTransforms.Data.ParseCif),
PluginSpec.Action(StateTransforms.Data.ParseCcp4),
PluginSpec.Action(StateTransforms.Data.ParseDsn6),
PluginSpec.Action(StateTransforms.Model.TrajectoryFromMmCif),
PluginSpec.Action(StateTransforms.Model.TrajectoryFromCifCore),
PluginSpec.Action(StateTransforms.Model.TrajectoryFromPDB),
PluginSpec.Action(StateTransforms.Model.TransformStructureConformation),
PluginSpec.Action(StateTransforms.Model.StructureFromModel),
PluginSpec.Action(StateTransforms.Model.StructureFromTrajectory),
PluginSpec.Action(StateTransforms.Model.ModelFromTrajectory),
PluginSpec.Action(StateTransforms.Model.StructureSelectionFromScript),
PluginSpec.Action(StateTransforms.Representation.StructureRepresentation3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsDistance3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsAngle3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsDihedral3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsLabel3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsOrientation3D),
PluginSpec.Action(StateTransforms.Representation.ModelUnitcell3D),
PluginSpec.Action(StateTransforms.Representation.ExplodeStructureRepresentation3D),
PluginSpec.Action(StateTransforms.Representation.UnwindStructureAssemblyRepresentation3D),
PluginSpec.Action(StateTransforms.Representation.OverpaintStructureRepresentation3DFromScript),
PluginSpec.Action(StateTransforms.Representation.TransparencyStructureRepresentation3DFromScript),
PluginSpec.Action(AssignColorVolume),
PluginSpec.Action(StateTransforms.Volume.VolumeFromCcp4),
PluginSpec.Action(StateTransforms.Volume.VolumeFromDsn6),
PluginSpec.Action(StateTransforms.Volume.VolumeFromCube),
PluginSpec.Action(StateTransforms.Volume.VolumeFromDx),
PluginSpec.Action(StateTransforms.Representation.VolumeRepresentation3D),
]
});

View File

@@ -17,6 +17,10 @@ import { PluginBehaviors } from './behavior';
import { StructureFocusRepresentation } from './behavior/dynamic/selection/structure-focus-representation';
import { PluginConfigItem } from './config';
import { PluginLayoutStateProps } from './layout';
import { StateActions } from '../mol-plugin-state/actions';
import { AssignColorVolume } from '../mol-plugin-state/actions/volume';
import { StateTransforms } from '../mol-plugin-state/transforms';
import { BoxifyVolumeStreaming, CreateVolumeStreamingBehavior, InitVolumeStreaming } from '../mol-plugin/behavior/dynamic/volume-streaming/transformers';
export { PluginSpec };
@@ -55,6 +59,52 @@ namespace PluginSpec {
}
export const DefaultPluginSpec = (): PluginSpec => ({
actions: [
PluginSpec.Action(StateActions.Structure.DownloadStructure),
PluginSpec.Action(StateActions.Structure.AddTrajectory),
PluginSpec.Action(StateActions.Volume.DownloadDensity),
PluginSpec.Action(StateActions.DataFormat.DownloadFile),
PluginSpec.Action(StateActions.DataFormat.OpenFiles),
PluginSpec.Action(StateActions.Structure.EnableModelCustomProps),
PluginSpec.Action(StateActions.Structure.EnableStructureCustomProps),
// Volume streaming
PluginSpec.Action(InitVolumeStreaming),
PluginSpec.Action(BoxifyVolumeStreaming),
PluginSpec.Action(CreateVolumeStreamingBehavior),
PluginSpec.Action(StateTransforms.Data.Download),
PluginSpec.Action(StateTransforms.Data.ParseCif),
PluginSpec.Action(StateTransforms.Data.ParseCcp4),
PluginSpec.Action(StateTransforms.Data.ParseDsn6),
PluginSpec.Action(StateTransforms.Model.TrajectoryFromMmCif),
PluginSpec.Action(StateTransforms.Model.TrajectoryFromCifCore),
PluginSpec.Action(StateTransforms.Model.TrajectoryFromPDB),
PluginSpec.Action(StateTransforms.Model.TransformStructureConformation),
PluginSpec.Action(StateTransforms.Model.StructureFromModel),
PluginSpec.Action(StateTransforms.Model.StructureFromTrajectory),
PluginSpec.Action(StateTransforms.Model.ModelFromTrajectory),
PluginSpec.Action(StateTransforms.Model.StructureSelectionFromScript),
PluginSpec.Action(StateTransforms.Representation.StructureRepresentation3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsDistance3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsAngle3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsDihedral3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsLabel3D),
PluginSpec.Action(StateTransforms.Representation.StructureSelectionsOrientation3D),
PluginSpec.Action(StateTransforms.Representation.ModelUnitcell3D),
PluginSpec.Action(StateTransforms.Representation.ExplodeStructureRepresentation3D),
PluginSpec.Action(StateTransforms.Representation.UnwindStructureAssemblyRepresentation3D),
PluginSpec.Action(StateTransforms.Representation.OverpaintStructureRepresentation3DFromScript),
PluginSpec.Action(StateTransforms.Representation.TransparencyStructureRepresentation3DFromScript),
PluginSpec.Action(AssignColorVolume),
PluginSpec.Action(StateTransforms.Volume.VolumeFromCcp4),
PluginSpec.Action(StateTransforms.Volume.VolumeFromDsn6),
PluginSpec.Action(StateTransforms.Volume.VolumeFromCube),
PluginSpec.Action(StateTransforms.Volume.VolumeFromDx),
PluginSpec.Action(StateTransforms.Representation.VolumeRepresentation3D),
],
behaviors: [
PluginSpec.Behavior(PluginBehaviors.Representation.HighlightLoci),
PluginSpec.Behavior(PluginBehaviors.Representation.SelectLoci),