moorhen 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moorhen",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "private": false,
5
5
  "main": "moorhen.js",
6
6
  "types": "./types/main.d.ts",
@@ -64,12 +64,13 @@
64
64
  },
65
65
  "dependencies": {},
66
66
  "scripts": {
67
+ "transpile-protobuf": "npx pbjs -t static-module -w es6 -o ./src/protobuf/MoorhenSession.js ./src/protobuf/MoorhenSession.proto",
67
68
  "create-version": "npx genversion -e -p ./package.json -d -s ./src/version.js",
68
69
  "transpile-ts-worker": "npx tsc --module es2015 --lib webworker --skipLibCheck public/baby-gru/CootWorker.ts && sed -i.bak '/export {}/d' public/baby-gru/CootWorker.js && rm public/baby-gru/CootWorker.js.bak",
69
70
  "transpile-ts-worker-jest": "npx tsc --module es2015 --lib webworker --skipLibCheck public/baby-gru/CootWorker.ts && sed -i.bak 's/export {}/export { doCootCommand, setModules }/g' public/baby-gru/CootWorker.js && sed -i.bak '/importScripts.*;/d' public/baby-gru/CootWorker.js && sed -i.bak 's/onmessage/function setModules(arg0, arg1) { molecules_container = arg0; cootModule = arg1 }; let postMessage = () => {}; let onmessage/g' public/baby-gru/CootWorker.js && rm public/baby-gru/CootWorker.js.bak",
70
- "prestart": "npm run create-version && npm run transpile-ts-worker",
71
+ "prestart": "npm run create-version && npm run transpile-ts-worker && npm run transpile-protobuf",
71
72
  "start": "vite",
72
- "prebuild": "npm run create-version && npm run transpile-ts-worker",
73
+ "prebuild": "npm run create-version && npm run transpile-ts-worker && npm run transpile-protobuf",
73
74
  "build": "vite build",
74
75
  "build-release": "npm run prebuild && webpack --mode production --devtool inline-source-map",
75
76
  "dev": "concurrently -k \"BROWSER=none npm start\" \"npm:electron\"",
@@ -79,8 +80,8 @@
79
80
  "make-linux": "npm run build && electron-forge make --platform linux",
80
81
  "make-win32": "npm run build && electron-forge make --platform win32",
81
82
  "create-docs": "npm run create-version && npx jsdoc -c jsdoc.json",
82
- "test": "npm run create-version && npx tsc && npm run transpile-ts-worker-jest && ln -s ./public/baby-gru/wasm/moorhen.data ./moorhen.data && ln -s ./public/baby-gru ./baby-gru && node --trace-warnings --experimental-vm-modules --experimental-wasm-threads node_modules/jest/bin/jest.js --forceExit",
83
- "test-react": "npm run create-version && npx tsc && node --trace-warnings --experimental-vm-modules --experimental-wasm-threads node_modules/jest/bin/jest.js --forceExit --testPathIgnorePatterns=moorhenContainer.test.jsx --selectProjects react-components"
83
+ "test": "npm run create-version && npm run transpile-protobuf && npx tsc && npm run transpile-ts-worker-jest && ln -s ./public/baby-gru/wasm/moorhen.data ./moorhen.data && ln -s ./public/baby-gru ./baby-gru && node --trace-warnings --experimental-vm-modules --experimental-wasm-threads node_modules/jest/bin/jest.js --forceExit",
84
+ "test-react": "npm run create-version && npm run transpile-protobuf && npx tsc && node --trace-warnings --experimental-vm-modules --experimental-wasm-threads node_modules/jest/bin/jest.js --forceExit --testPathIgnorePatterns=MoorhenContainer.test.jsx --testPathIgnorePatterns=MoorhenLigandMenu.test.jsx --testPathIgnorePatterns=MoorhenEditMenu.test.jsx --selectProjects react-components"
84
85
  },
85
86
  "eslintConfig": {
86
87
  "extends": [
@@ -162,6 +163,8 @@
162
163
  "plotly.js": "^2.12.1",
163
164
  "prismjs": "^1.29.0",
164
165
  "prop-types": "^15.8.1",
166
+ "protobufjs": "^7.2.6",
167
+ "protobufjs-cli": "^1.1.2",
165
168
  "protvista-manager": "^3.4.0",
166
169
  "protvista-navigation": "^3.5.1",
167
170
  "protvista-sequence": "^3.5.1",
@@ -429,6 +429,22 @@ export namespace libcootApi {
429
429
  psi: number;
430
430
  is_pre_pro: boolean;
431
431
  }
432
+ type textureAsFloats = {
433
+ width: number;
434
+ height: number;
435
+ x_size: number;
436
+ y_size: number;
437
+ z_position: number;
438
+ image_data: emscriptem.vector<number>;
439
+ }
440
+ type textureAsFloatsJS = {
441
+ width: number;
442
+ height: number;
443
+ x_size: number;
444
+ y_size: number;
445
+ z_position: number;
446
+ image_data: number[];
447
+ }
432
448
  type fitLigandInfo = {
433
449
  imol: number;
434
450
  cluster_idx: number;
package/types/main.d.ts CHANGED
@@ -5,6 +5,56 @@ import { gemmi } from "./gemmi";
5
5
  import { privateer } from "./privateer";
6
6
 
7
7
  declare module 'moorhen' {
8
+ let moleculesReducer: any;
9
+ module.exports = moleculesReducer
10
+
11
+ let mapsReducer: any;
12
+ module.exports = mapsReducer
13
+
14
+ let mouseSettingsReducer: any;
15
+ module.exports = mouseSettingsReducer
16
+
17
+ let backupSettingsReducer: any;
18
+ module.exports = backupSettingsReducer
19
+
20
+ let shortcutSettingsReducer: any;
21
+ module.exports = shortcutSettingsReducer
22
+
23
+ let labelSettingsReducer: any;
24
+ module.exports = labelSettingsReducer
25
+
26
+ let sceneSettingsReducer: any;
27
+ module.exports = sceneSettingsReducer
28
+
29
+ let miscAppSettingsReducer: any;
30
+ module.exports = miscAppSettingsReducer
31
+
32
+ let generalStatesReducer: any;
33
+ module.exports = generalStatesReducer
34
+
35
+ let hoveringStatesReducer: any;
36
+ module.exports = hoveringStatesReducer
37
+
38
+ let activeModalsReducer: any;
39
+ module.exports = activeModalsReducer
40
+
41
+ let activePopUpsReducer: any;
42
+ module.exports = activePopUpsReducer
43
+
44
+ let mapContourSettingsReducer: any;
45
+ module.exports = mapContourSettingsReducer
46
+
47
+ let moleculeMapUpdateReducer: any;
48
+ module.exports = moleculeMapUpdateReducer
49
+
50
+ let sharedSessionReducer: any;
51
+ module.exports = sharedSessionReducer
52
+
53
+ let refinementSettingsReducer: any;
54
+ module.exports = refinementSettingsReducer
55
+
56
+ let MoorhenReduxStore: any;
57
+ module.exports = MoorhenReduxStore
8
58
 
9
59
  let MoorhenContainer: any;
10
60
  module.exports = MoorhenContainer;
@@ -118,7 +168,8 @@ declare module 'moorhen' {
118
168
  module.exports.MoorhenMoleculeRepresentation = MoorhenMoleculeRepresentation
119
169
 
120
170
  class MoorhenMolecule implements _moorhen.Molecule {
121
- constructor(commandCentre: React.RefObject<_moorhen.CommandCentre>, glRef: React.RefObject<webGL.MGWebGL>, monomerLibrary: string)
171
+ constructor(commandCentre: React.RefObject<_moorhen.CommandCentre>, glRef: React.RefObject<webGL.MGWebGL>, store?: any, monomerLibrary?: string)
172
+ transferLigandDicts(toMolecule: _moorhen.Molecule, override?: boolean): Promise<void>;
122
173
  minimizeEnergyUsingCidAnimated(cid: string, ncyc: number, nIterations: number, useRamaRestraints: boolean, ramaWeight: number, useTorsionRestraints: boolean, torsionWeight: number): Promise<void>;
123
174
  addColourRule(ruleType: string, cid: string, color: string, args: (string | number)[], isMultiColourRule?: boolean, applyColourToNonCarbonAtoms?: boolean, label?: string): void;
124
175
  splitMultiModels(draw?: boolean): Promise<_moorhen.Molecule[]>;
@@ -208,6 +259,7 @@ declare module 'moorhen' {
208
259
  excludedCids: string[];
209
260
  commandCentre: React.RefObject<_moorhen.CommandCentre>;
210
261
  glRef: React.RefObject<webGL.MGWebGL>;
262
+ store: any;
211
263
  atomsDirty: boolean;
212
264
  name: string;
213
265
  molNo: number;
@@ -250,7 +302,7 @@ declare module 'moorhen' {
250
302
  module.exports.MoorhenMolecule = MoorhenMolecule
251
303
 
252
304
  class MoorhenMap implements _moorhen.Map {
253
- constructor(commandCentre: React.RefObject<_moorhen.CommandCentre>, glRef: React.RefObject<webGL.MGWebGL>)
305
+ constructor(commandCentre: React.RefObject<_moorhen.CommandCentre>, glRef: React.RefObject<webGL.MGWebGL>, store?: any)
254
306
  exportAsGltf(): Promise<ArrayBuffer>;
255
307
  getHistogram(nBins?: number, zoomFactor?: number): Promise<libcootApi.HistogramInfoJS>;
256
308
  setMapWeight(weight?: number): Promise<_moorhen.WorkerResponse>;
@@ -286,6 +338,7 @@ declare module 'moorhen' {
286
338
  setActive(): Promise<void>;
287
339
  setupContourBuffers(objects: any[], keepCootColours?: boolean): void;
288
340
  setOtherMapForColouring(molNo: number, min?: number, max?: number): void;
341
+ store: any;
289
342
  isEM: boolean;
290
343
  suggestedContourLevel: number;
291
344
  suggestedRadius: number;
@@ -312,7 +365,7 @@ declare module 'moorhen' {
312
365
  }
313
366
  module.exports.MoorhenMap = MoorhenMap
314
367
 
315
- function loadSessionData(
368
+ function loadSessionFromJsonString(
316
369
  sessionDataString: string,
317
370
  monomerLibraryPath: string,
318
371
  molecules: _moorhen.Molecule[],
@@ -320,6 +373,34 @@ declare module 'moorhen' {
320
373
  commandCentre: React.RefObject<_moorhen.CommandCentre>,
321
374
  timeCapsuleRef: React.RefObject<_moorhen.TimeCapsule>,
322
375
  glRef: React.RefObject<webGL.MGWebGL>,
376
+ store: any,
377
+ dispatch: (reduxStoreAction: any) => void,
378
+ ): Promise<number>;
379
+ module.exports = loadSessionFromJsonString;
380
+
381
+ function loadSessionFromProtoMessage(
382
+ sessionProtoMessage: any,
383
+ monomerLibraryPath: string,
384
+ molecules: _moorhen.Molecule[],
385
+ maps: _moorhen.Map[],
386
+ commandCentre: React.RefObject<_moorhen.CommandCentre>,
387
+ timeCapsuleRef: React.RefObject<_moorhen.TimeCapsule>,
388
+ glRef: React.RefObject<webGL.MGWebGL>,
389
+ store: any,
390
+ dispatch: (reduxStoreAction: any) => void,
391
+ ): Promise<number>;
392
+ module.exports = loadSessionFromProtoMessage;
393
+
394
+
395
+ function loadSessionData(
396
+ sessionData: _moorhen.backupSession,
397
+ monomerLibraryPath: string,
398
+ molecules: _moorhen.Molecule[],
399
+ maps: _moorhen.Map[],
400
+ commandCentre: React.RefObject<_moorhen.CommandCentre>,
401
+ timeCapsuleRef: React.RefObject<_moorhen.TimeCapsule>,
402
+ glRef: React.RefObject<webGL.MGWebGL>,
403
+ store: any,
323
404
  dispatch: (reduxStoreAction: any) => void,
324
405
  ): Promise<number>;
325
406
  module.exports = loadSessionData;
@@ -578,4 +659,52 @@ declare module 'moorhen' {
578
659
 
579
660
  function addMapList(arg0: _moorhen.Map[]): any;
580
661
  module.exports = addMapList;
662
+
663
+ function resetSceneSettings(): any;
664
+ module.exports = resetSceneSettings;
665
+
666
+ function resetBackupSettings(): any;
667
+ module.exports = resetBackupSettings;
668
+
669
+ function resetDefaultMouseSettings(): any;
670
+ module.exports = resetDefaultMouseSettings;
671
+
672
+ function resetGeneralStates(): any;
673
+ module.exports = resetGeneralStates;
674
+
675
+ function resetHoveringStates(): any;
676
+ module.exports = resetHoveringStates;
677
+
678
+ function resetLabelSettings(): any;
679
+ module.exports = resetLabelSettings;
680
+
681
+ function resetMapContourSettings(): any;
682
+ module.exports = resetMapContourSettings;
683
+
684
+ function resetMiscAppSettings(): any;
685
+ module.exports = resetMiscAppSettings;
686
+
687
+ function resetMoleculeMapUpdates(): any;
688
+ module.exports = resetMoleculeMapUpdates;
689
+
690
+ function resetRefinementSettings(): any;
691
+ module.exports = resetRefinementSettings;
692
+
693
+ function resetShortcutSettings(): any;
694
+ module.exports = resetShortcutSettings;
695
+
696
+ function resetActiveModals(): any;
697
+ module.exports = resetActiveModals;
698
+
699
+ function focusOnModal(): any;
700
+ module.exports = focusOnModal;
701
+
702
+ function unFocusModal(): any;
703
+ module.exports = unFocusModal;
704
+
705
+ function resetActivePopUps(): any;
706
+ module.exports = resetActivePopUps;
707
+
708
+ function resetSharedSession(): any;
709
+ module.exports = resetSharedSession;
581
710
  }
@@ -70,6 +70,7 @@ export namespace webGL {
70
70
  drawTextLabels(up: vec3, right: vec3) : void;
71
71
  drawTriangles(calculatingShadowMap: boolean, invMat: mat4) : void;
72
72
  drawImagesAndText(invMat: mat4) : void;
73
+ drawTexturedShapes(theMatrix: mat4) : void;
73
74
  drawTransparent(theMatrix: mat4) : void;
74
75
  bindFramebufferDrawBuffers() : void;
75
76
  GLrender(calculatingShadowMap: boolean) : mat4;
@@ -104,6 +105,7 @@ export namespace webGL {
104
105
  initTextBackgroundShaders(vertexShaderTextBackground : string, fragmentShaderTextBackground : string) : void;
105
106
  initOutlineShaders(vertexShader : string, fragmentShader : string) : void;
106
107
  initShaders(vertexShader : string, fragmentShader : string) : void;
108
+ initShadersTextured(vertexShader : string, fragmentShader : string) : void;
107
109
  initGBufferShaders(vertexShader : string, fragmentShader : string) : void;
108
110
  initGBufferShadersInstanced(vertexShader : string, fragmentShader : string) : void;
109
111
  initGBufferShadersPerfectSphere(vertexShader : string, fragmentShader : string) : void;
@@ -237,6 +239,7 @@ export namespace webGL {
237
239
  rttFramebuffer: MGWebGLFrameBuffer;
238
240
  doPerspectiveProjection: boolean;
239
241
  labelsTextCanvasTexture: TextCanvasTexture;
242
+ texturedShapes: TexturedShape[];
240
243
  currentBufferIdx: number;
241
244
  atom_span: number;
242
245
  axesColourBuffer: WebGLBuffer;
@@ -267,6 +270,8 @@ export namespace webGL {
267
270
  normalThreshold: number;
268
271
  scaleDepth: number;
269
272
  scaleNormal: number;
273
+ xPixelOffset: number;
274
+ yPixelOffset: number;
270
275
  occludeDiffuse: boolean;
271
276
  doShadowDepthDebug: boolean;
272
277
  doSpin: boolean;
@@ -359,6 +364,7 @@ export namespace webGL {
359
364
  rttTextureDepth: WebGLTexture;
360
365
  rttDepthTexture: WebGLTexture;
361
366
  screenZ: number;
367
+ shaderProgramTextured: MGWebGLTextureQuadShader;
362
368
  shaderProgram: ShaderTriangles;
363
369
  shaderProgramGBuffers: ShaderGBuffersTriangles;
364
370
  shaderProgramGBuffersInstanced: ShaderGBuffersTrianglesInstanced;
@@ -434,5 +440,7 @@ export namespace webGL {
434
440
  initializeShaders() : void;
435
441
  axesTexture: any;
436
442
 
443
+ hoverSize: number;
444
+
437
445
  }
438
446
  }
@@ -2,6 +2,8 @@ import React from "react"
2
2
  import { emscriptem } from "./emscriptem";
3
3
  import { gemmi } from "./gemmi";
4
4
  import { webGL } from "./mgWebGL";
5
+ import { MoorhenMolecule } from "../moorhen";
6
+ import { ToolkitStore } from "@reduxjs/toolkit/dist/configureStore";
5
7
 
6
8
  export namespace moorhen {
7
9
 
@@ -121,6 +123,7 @@ export namespace moorhen {
121
123
  type coorFormats = 'pdb' | 'mmcif';
122
124
 
123
125
  interface Molecule {
126
+ transferLigandDicts(toMolecule: Molecule, override?: boolean): Promise<void>;
124
127
  minimizeEnergyUsingCidAnimated(cid: string, ncyc: number, nIterations: number, useRamaRestraints: boolean, ramaWeight: number, useTorsionRestraints: boolean, torsionWeight: number): Promise<void>;
125
128
  addColourRule(ruleType: string, cid: string, color: string, args: (string | number)[], isMultiColourRule?: boolean, applyColourToNonCarbonAtoms?: boolean, label?: string): void;
126
129
  splitMultiModels(draw?: boolean): Promise<Molecule[]>;
@@ -210,6 +213,7 @@ export namespace moorhen {
210
213
  excludedCids: string[];
211
214
  commandCentre: React.RefObject<CommandCentre>;
212
215
  glRef: React.RefObject<webGL.MGWebGL>;
216
+ store: ToolkitStore;
213
217
  atomsDirty: boolean;
214
218
  name: string;
215
219
  molNo: number;
@@ -461,6 +465,7 @@ export namespace moorhen {
461
465
  setupContourBuffers(objects: any[], keepCootColours?: boolean): void;
462
466
  setOtherMapForColouring(molNo: number, min?: number, max?: number): void;
463
467
  exportAsGltf(): Promise<ArrayBuffer>;
468
+ store: ToolkitStore;
464
469
  isEM: boolean;
465
470
  suggestedContourLevel: number;
466
471
  suggestedRadius: number;
@@ -580,8 +585,9 @@ export namespace moorhen {
580
585
  removeBackup(key: string): Promise<void>;
581
586
  updateDataFiles(): Promise<(string | void)[]>;
582
587
  createBackup(keyString: string, sessionString: string): Promise<string>;
583
- fetchSession(arg0: boolean): Promise<backupSession>;
588
+ fetchSession(includeAdditionalMapData: boolean): Promise<backupSession>;
584
589
  toggleDisableBackups(): void;
590
+ store: ToolkitStore;
585
591
  moleculesRef: React.RefObject<Molecule[]>;
586
592
  mapsRef: React.RefObject<Map[]>;
587
593
  glRef: React.RefObject<webGL.MGWebGL>;
@@ -809,7 +815,8 @@ export namespace moorhen {
809
815
  extraEditMenuItems: JSX.Element[];
810
816
  extraCalculateMenuItems: JSX.Element[];
811
817
  aceDRGInstance: AceDRGInstance | null;
812
- includeNavBarMenuNames: string[]
818
+ includeNavBarMenuNames: string[];
819
+ store: ToolkitStore;
813
820
  }
814
821
 
815
822
  interface ContainerProps extends Partial<ContainerRefs>, Partial<ContainerOptionalProps> { }