moorhen 0.6.7 → 0.6.8

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.6.7",
3
+ "version": "0.6.8",
4
4
  "private": false,
5
5
  "main": "moorhen.js",
6
6
  "types": "./types/main.d.ts",
@@ -62,7 +62,7 @@
62
62
  ]
63
63
  }
64
64
  },
65
- "dependencies": { },
65
+ "dependencies": {},
66
66
  "scripts": {
67
67
  "create-version": "npx genversion -e -p ./package.json -d -s ./src/version.js",
68
68
  "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",
@@ -142,7 +142,8 @@
142
142
  "gl-matrix": "^3.4.3",
143
143
  "html-react-parser": "^1.4.14",
144
144
  "html-webpack-plugin": "^5.5.0",
145
- "iris-validation": "^0.1.8",
145
+ "iris-validation": "^0.1.10",
146
+ "iris-validation-backend": "^0.0.8",
146
147
  "jest": "^27.5.1",
147
148
  "jsdoc": "^4.0.2",
148
149
  "localforage": "^1.10.0",
@@ -12,6 +12,15 @@ declare global {
12
12
 
13
13
  export namespace libcootApi {
14
14
  type CCP4ModuleType = {
15
+ get_ligand_info_for_structure(gemmiStructure: gemmi.Structure): emscriptem.vector<{
16
+ resName: string;
17
+ chainName: string;
18
+ resNum: string;
19
+ modelName: string;
20
+ cid: string;
21
+ }>;
22
+ guess_coord_data_format(coordDataString: string): number;
23
+ get_structure_bfactors(gemmiStructure: gemmi.Structure): emscriptem.vector<{ cid: string; bFactor: number }>;
15
24
  get_sequence_info(gemmiStructure: gemmi.Structure, molName: string): emscriptem.vector<SequenceEntry>;
16
25
  get_atom_info_for_selection(gemmiStructure: gemmi.Structure, arg1: string, arg2: string): emscriptem.vector<AtomInfo>;
17
26
  structure_is_ligand(gemmiStructure: gemmi.Structure): boolean;
@@ -20,9 +29,10 @@ export namespace libcootApi {
20
29
  check_polymer_type(polymerConst: emscriptem.instance<number>): {value: number};
21
30
  remove_ligands_and_waters_chain(chain: gemmi.Chain): void;
22
31
  gemmi_setup_entities(gemmiStructure: gemmi.Structure): void;
32
+ gemmi_add_entity_types(gemmiStructure: gemmi.Structure, overWrite: boolean): void;
23
33
  remove_ligands_and_waters_structure(gemmiStructure: gemmi.Structure): void;
24
34
  remove_hydrogens_structure(gemmiStructure: gemmi.Structure): void;
25
- read_structure_from_string(pdbData: string | ArrayBuffer, molName: string): gemmi.Structure;
35
+ read_structure_from_string(coordData: string | ArrayBuffer, molName: string): gemmi.Structure;
26
36
  get_mtz_columns(fileName: string): emscriptem.vector<string>;
27
37
  FS_createDataFile(arg0: string, fileName: string, byteArray: Uint8Array, arg3: boolean, arg4: boolean): void;
28
38
  getElementNameAsString: (arg0: emscriptem.instance<string>) => string;
@@ -66,7 +76,7 @@ export namespace libcootApi {
66
76
  res_name: string;
67
77
  label: string;
68
78
  }
69
- interface AutoReadMtzInfo extends emscriptem.instance<AutoReadMtzInfo> {
79
+ interface AutoReadMtzInfo {
70
80
  idx: number;
71
81
  F: string;
72
82
  phi: string;
@@ -88,7 +98,7 @@ export namespace libcootApi {
88
98
  is_allowed_flag: boolean;
89
99
  residue_name: () => string;
90
100
  }
91
- interface InterestingPlaceT extends emscriptem.instance<InterestingPlaceT> {
101
+ interface InterestingPlaceT {
92
102
  feature_type: string;
93
103
  residue_spec: ResidueSpecT;
94
104
  x: number;
@@ -203,7 +213,7 @@ export namespace libcootApi {
203
213
  amplitude: () => number;
204
214
  size: number;
205
215
  }
206
- interface Generic3dLinesBondsBoxT extends emscriptem.instance<Generic3dLinesBondsBoxT> {
216
+ interface Generic3dLinesBondsBoxT {
207
217
  line_segments: emscriptem.vector<emscriptem.vector<CootCartesianPair>>;
208
218
  }
209
219
  type Generic3dLinesBondsBoxJS = {
@@ -217,7 +227,7 @@ export namespace libcootApi {
217
227
  status: string;
218
228
  richardson_probability: number;
219
229
  }
220
- interface SimpleMeshT extends emscriptem.instance<SimpleMeshT> {
230
+ interface SimpleMeshT {
221
231
  vertices: emscriptem.vector<VncVertex>;
222
232
  triangles: emscriptem.vector<gTriangle>;
223
233
  }
@@ -230,7 +240,7 @@ export namespace libcootApi {
230
240
  norm_tri: [[number[]]];
231
241
  col_tri: [[number[]]];
232
242
  }
233
- interface SymmetryData extends emscriptem.instance<SymmetryData> {
243
+ interface SymmetryData {
234
244
  cell: CellTranslation;
235
245
  symm_trans: emscriptem.vector<PairType<SymmetryTransT, CellTranslation>>;
236
246
  }
@@ -270,7 +280,7 @@ export namespace libcootApi {
270
280
  suggested_contour_level: number;
271
281
  suggested_radius: number;
272
282
  }
273
- interface ResidueSpecT extends emscriptem.instance<ResidueSpecT> {
283
+ interface ResidueSpecT {
274
284
  model_number: number;
275
285
  chain_id: string;
276
286
  res_no: number;
@@ -282,7 +292,7 @@ export namespace libcootApi {
282
292
  modelNumber: number;
283
293
  chainId: string;
284
294
  }
285
- interface AtomSpecT extends emscriptem.instance<ResidueSpecT> {
295
+ interface AtomSpecT {
286
296
  chain_id: string;
287
297
  res_no: number;
288
298
  ins_code: string;
@@ -304,12 +314,12 @@ export namespace libcootApi {
304
314
  string_user_data: string;
305
315
  model_number: number;
306
316
  }
307
- interface ResidueValidationInformationT extends emscriptem.instance<ResidueValidationInformationT> {
317
+ interface ResidueValidationInformationT {
308
318
  label: string;
309
319
  residue_spec: ResidueSpecT;
310
320
  function_value: number;
311
321
  }
312
- interface ChainValidationInformationT extends emscriptem.instance<ChainValidationInformationT> {
322
+ interface ChainValidationInformationT {
313
323
  chain_id: string;
314
324
  rviv: emscriptem.vector<ResidueValidationInformationT>;
315
325
  }
@@ -345,22 +355,22 @@ export namespace libcootApi {
345
355
  colour: [number, number, number, number];
346
356
  orientation: [[number, number, number, number], [number, number, number, number], [number, number, number, number], [number, number, number, number]];
347
357
  }
348
- interface gTriangle extends emscriptem.instance<gTriangle> {
358
+ interface gTriangle {
349
359
  point_id: [number, number, number];
350
360
  }
351
- interface VncVertex extends emscriptem.instance<VncVertex> {
361
+ interface VncVertex {
352
362
  pos: [number, number, number];
353
363
  normal: [number, number, number];
354
364
  color: [number, number, number, number];
355
365
  }
356
- interface InstancedGeomT extends emscriptem.instance<InstancedGeomT> {
366
+ interface InstancedGeomT {
357
367
  vertices: emscriptem.vector<VncVertex>;
358
368
  triangles: emscriptem.vector<gTriangle>;
359
369
  name: string;
360
370
  instancing_data_A: emscriptem.vector<InstancedDataType>;
361
371
  instancing_data_B: emscriptem.vector<InstancedDataType>;
362
372
  }
363
- interface InstancedMeshT extends emscriptem.instance<InstancedMeshT> {
373
+ interface InstancedMeshT {
364
374
  geom: emscriptem.vector<InstancedGeomT>;
365
375
  markup: SimpleMeshT;
366
376
  }
package/types/main.d.ts CHANGED
@@ -82,18 +82,20 @@ declare module 'moorhen' {
82
82
  generateSelfRestraints(cid?: string, maxRadius?: number): Promise<void>;
83
83
  clearExtraRestraints(): Promise<_moorhen.WorkerResponse>;
84
84
  refineResiduesUsingAtomCid(cid: string, mode: string, ncyc?: number, redraw?: boolean): Promise<void>;
85
+ getNcsRelatedChains(): Promise<string[][]>;
86
+ getResidueBFactors(): { cid: string, bFactor: number }[];
85
87
  redo(): Promise<void>;
86
88
  undo(): Promise<void>;
87
89
  show(style: string, cid?: string): void;
88
90
  setSymmetryRadius(radius: number): Promise<void>;
89
91
  drawSymmetry: (fetchSymMatrix?: boolean) => Promise<void>;
90
92
  getUnitCellParams(): { a: number; b: number; c: number; alpha: number; beta: number; gamma: number; };
91
- replaceModelWithFile(fileUrl: string, molName: string): Promise<void>
93
+ replaceModelWithFile(fileUrl: string): Promise<void>
92
94
  delete(): Promise<_moorhen.WorkerResponse>
93
95
  fetchDefaultColourRules(): Promise<void>;
94
96
  fetchIfDirtyAndDraw(arg0: string): Promise<void>;
95
97
  drawEnvironment: (cid: string, labelled?: boolean) => Promise<void>;
96
- centreOn: (selectionCid?: string, animate?: boolean) => Promise<void>;
98
+ centreOn: (selectionCid?: string, animate?: boolean, setZoom?: boolean) => Promise<void>;
97
99
  drawHover: (cid: string) => Promise<void>;
98
100
  drawResidueSelection: (cid: string) => Promise<void>;
99
101
  clearBuffersOfStyle: (style: string) => void;
@@ -107,6 +109,7 @@ declare module 'moorhen' {
107
109
  centreAndAlignViewOn(selectionCid: string, animate?: boolean): Promise<void>;
108
110
  buffersInclude: (bufferIn: { id: string; }) => boolean;
109
111
  redrawRepresentation: (id: string) => Promise<void>;
112
+ downloadAtoms(format?: 'mmcif' | 'pdb'): Promise<void>;
110
113
  isLigand: boolean;
111
114
  type: string;
112
115
  excludedCids: string[];
@@ -131,6 +134,7 @@ declare module 'moorhen' {
131
134
  countourLevel: number;
132
135
  boxRadius: number;
133
136
  gridScale: number;
137
+ bFactor: number;
134
138
  };
135
139
  isDarkBackground: boolean;
136
140
  representations: _moorhen.MoleculeRepresentation[];
@@ -146,6 +150,7 @@ declare module 'moorhen' {
146
150
  selectionRepresentation: _moorhen.MoleculeRepresentation;
147
151
  hasDNA: boolean;
148
152
  hasGlycans: boolean;
153
+ coordsFormat: _moorhen.coorFormats;
149
154
  }
150
155
  module.exports.MoorhenMolecule = MoorhenMolecule
151
156
 
@@ -210,9 +215,6 @@ declare module 'moorhen' {
210
215
  }
211
216
  module.exports.MoorhenMap = MoorhenMap
212
217
 
213
- function getMoleculeBfactors(gemmiStructure: gemmi.Structure): { cid: string, bFactor: number, chainId: string, resNum: number, modelName: string }[];
214
- module.exports = getMoleculeBfactors;
215
-
216
218
  function loadSessionData(
217
219
  sessionDataString: string,
218
220
  monomerLibraryPath: string,
@@ -18,7 +18,11 @@ export namespace webGL {
18
18
  createIndexBuffer(tri: number[]) : void;
19
19
  createSizeBuffer(tri: number[]) : void;
20
20
  addSupplementaryInfo(info: any, name: string) : void;
21
-
21
+ calculateOriginDelta(newOrigin: [number, number, number], oldOrigin: [number, number, number], nFrames: number): [number, number, number];
22
+ setOriginAndZoomAnimated(newOrigin: [number, number, number], newZoom: number): void;
23
+ drawOriginAndZoomFrame(oldOrigin: [number, number, number], oldZoom: number, deltaOrigin: [number, number, number], deltaZoom: number, iframe: number): void;
24
+ setZoomAnimated(newZoom: number): void;
25
+ drawZoomFrame(oldZoom: number, newZoom: number, iframe: number): void;
22
26
  createInstanceSizesBuffer(tri: number[]) : void;
23
27
  createVertexBuffer(tri: number[]) : void;
24
28
  createRealNormalBuffer(tri: number[]) : void;
@@ -115,7 +119,7 @@ export namespace webGL {
115
119
  appendOtherData(jsondata: any, skipRebuild?: boolean, name?: string) : any;
116
120
  setZoom(z: number, drawScene?: boolean);
117
121
  setOriginOrientationAndZoomAnimated(o: number[],q: quat4,z: number) : void;
118
- setOriginAnimated(o: number[], doDrawScene=true) : void;
122
+ setOriginAnimated(o: number[]) : void;
119
123
  initTextureFramebuffer() : void;
120
124
  clearMeasureCylinderBuffers() : void;
121
125
  getFrontAndBackPos(event: KeyboardEvent) : [number[], number[], number, number];
@@ -2,7 +2,6 @@ import React from "react"
2
2
  import { emscriptem } from "./emscriptem";
3
3
  import { gemmi } from "./gemmi";
4
4
  import { webGL } from "./mgWebGL";
5
- import { MoorhenCommandCentre } from "../moorhen";
6
5
 
7
6
  export namespace moorhen {
8
7
 
@@ -88,8 +87,13 @@ export namespace moorhen {
88
87
  ruleType: string;
89
88
  label: string;
90
89
  }
90
+
91
+ type coorFormats = 'pdb' | 'mmcif';
91
92
 
92
93
  interface Molecule {
94
+ downloadAtoms(format?: 'mmcif' | 'pdb'): Promise<void>;
95
+ getResidueBFactors(): { cid: string, bFactor: number }[];
96
+ getNcsRelatedChains(): Promise<string[][]>;
93
97
  animateRefine(n_cyc: number, n_iteration: number, final_n_cyc?: number): Promise<void>;
94
98
  refineResidueRange(chainId: string, start: number, stop: number, ncyc?: number, redraw?: boolean): Promise<void>;
95
99
  SSMSuperpose(movChainId: string, refMolNo: number, refChainId: string): Promise<WorkerResponse>;
@@ -128,12 +132,12 @@ export namespace moorhen {
128
132
  setSymmetryRadius(radius: number): Promise<void>;
129
133
  drawSymmetry: (fetchSymMatrix?: boolean) => Promise<void>;
130
134
  getUnitCellParams(): { a: number; b: number; c: number; alpha: number; beta: number; gamma: number; };
131
- replaceModelWithFile(fileUrl: string, molName: string): Promise<void>
135
+ replaceModelWithFile(fileUrl: string): Promise<void>
132
136
  delete(): Promise<WorkerResponse>
133
137
  fetchDefaultColourRules(): Promise<void>;
134
138
  fetchIfDirtyAndDraw(arg0: string): Promise<void>;
135
139
  drawEnvironment: (cid: string, labelled?: boolean) => Promise<void>;
136
- centreOn: (selectionCid?: string, animate?: boolean) => Promise<void>;
140
+ centreOn: (selectionCid?: string, animate?: boolean, setZoom?: boolean) => Promise<void>;
137
141
  drawHover: (cid: string) => Promise<void>;
138
142
  drawResidueSelection: (cid: string) => Promise<void>;
139
143
  clearBuffersOfStyle: (style: string) => void;
@@ -171,6 +175,7 @@ export namespace moorhen {
171
175
  countourLevel: number;
172
176
  boxRadius: number;
173
177
  gridScale: number;
178
+ bFactor: number;
174
179
  };
175
180
  isDarkBackground: boolean;
176
181
  representations: MoleculeRepresentation[];
@@ -186,6 +191,7 @@ export namespace moorhen {
186
191
  selectionRepresentation: MoleculeRepresentation;
187
192
  hasDNA: boolean;
188
193
  hasGlycans: boolean;
194
+ coordsFormat: coorFormats
189
195
  }
190
196
 
191
197
  type RepresentationStyles = 'VdwSpheres' | 'ligands' | 'CAs' | 'CBs' | 'CDs' | 'gaussian' | 'allHBonds' | 'rama' |
@@ -270,7 +276,8 @@ export namespace moorhen {
270
276
  unhook: () => void;
271
277
  onCootInitialized: null | ( () => void );
272
278
  onConsoleChanged: null | ( (msg: string) => void );
273
- onNewCommand : null | ( (kwargs: any) => void );
279
+ onCommandStart : null | ( (kwargs: any) => void );
280
+ onCommandExit : null | ( (kwargs: any) => void );
274
281
  onActiveMessagesChanged: null | ( (activeMessages: WorkerMessage[]) => void );
275
282
  cootCommandList(commandList: cootCommandKwargs[]): Promise<WorkerResponse>;
276
283
  cootCommand: (kwargs: cootCommandKwargs, doJournal?: boolean) => Promise<WorkerResponse>;
@@ -425,7 +432,7 @@ export namespace moorhen {
425
432
  type moleculeSessionData = {
426
433
  name: string;
427
434
  molNo: number;
428
- pdbData: string;
435
+ coordString: string;
429
436
  representations: { cid: string, style: string, isCustom: boolean, colourRules: ColourRule[], bondOptions: cootBondOptions }[];
430
437
  defaultBondOptions: cootBondOptions;
431
438
  defaultColourRules: ColourRule[];
@@ -799,6 +806,7 @@ export namespace moorhen {
799
806
  isChangingRotamers: boolean;
800
807
  isDraggingAtoms: boolean;
801
808
  isRotatingAtoms: boolean;
809
+ newCootCommandAlert: boolean;
802
810
  };
803
811
  hoveringStates: {
804
812
  enableAtomHovering: boolean;