moorhen 0.0.1 → 0.6.2

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.
Files changed (43) hide show
  1. package/README.md +142 -0
  2. package/baby-gru/CootWorker.js +1 -1071
  3. package/baby-gru/CootWorker.ts +1064 -0
  4. package/baby-gru/monomers/h/HIS.cif +5 -5
  5. package/baby-gru/moorhen.css +280 -0
  6. package/baby-gru/pixmaps/{map.svg → map-grey.svg} +38 -28
  7. package/baby-gru/pixmaps/moorhen-ligand.svg +213 -0
  8. package/baby-gru/pixmaps/secondary-structure-grey.svg +158 -0
  9. package/baby-gru/wasm/RDKit_minimal.js +1 -21
  10. package/baby-gru/wasm/RDKit_minimal.wasm +0 -0
  11. package/baby-gru/wasm/cif_pdb_worker.js +1 -33
  12. package/baby-gru/wasm/coot_env_web.js +1 -5
  13. package/baby-gru/wasm/crystallography_worker.js +1 -610
  14. package/baby-gru/wasm/mini_rsr_worker.js +1 -72
  15. package/baby-gru/wasm/monid_to_pdb_worker.js +1 -253
  16. package/baby-gru/wasm/moorhen.data +2580 -739
  17. package/baby-gru/wasm/moorhen.js +1 -21
  18. package/baby-gru/wasm/moorhen.wasm +0 -0
  19. package/baby-gru/wasm/moorhen.worker.js +1 -1
  20. package/baby-gru/wasm/mtz_arraybuffer_worker.js +1 -59
  21. package/baby-gru/wasm/mtz_worker.js +1 -45
  22. package/baby-gru/wasm/nma_worker.js +1 -103
  23. package/baby-gru/wasm/papaparse.min.js +2 -7
  24. package/baby-gru/wasm/papaparse.min.js.LICENSE.txt +6 -0
  25. package/baby-gru/wasm/pdb_worker.js +1 -282
  26. package/baby-gru/wasm/smiles_to_pdb_worker.js +1 -252
  27. package/baby-gru/wasm/superpose_worker.js +1 -144
  28. package/baby-gru/wasm/web_example.js +1 -21
  29. package/baby-gru/wasm/web_example.wasm +0 -0
  30. package/moorhen.css +1 -276
  31. package/moorhen.js +86 -0
  32. package/moorhen.js.LICENSE.txt +101 -0
  33. package/package.json +72 -51
  34. package/types/emscriptem.d.ts +25 -0
  35. package/types/gemmi.d.ts +115 -0
  36. package/types/index.d.ts +18 -0
  37. package/types/libcoot.d.ts +450 -0
  38. package/types/main.d.ts +428 -0
  39. package/types/mgWebGL.d.ts +398 -0
  40. package/types/moorhen.d.ts +815 -0
  41. package/baby-gru/pixmaps/diff-map.png +0 -0
  42. package/baby-gru/tutorials/legend.html +0 -3
  43. /package/baby-gru/{keyboard-blank.svg → pixmaps/keyboard-blank.svg} +0 -0
@@ -0,0 +1,450 @@
1
+
2
+ import { emscriptem } from "./emscriptem";
3
+ import { gemmi } from "./gemmi"
4
+
5
+ // Warning: do not import moorhen namespace otherwise worker code breaks during transpilation
6
+
7
+ declare global {
8
+ function print(arg0: string): void;
9
+ function createRSRModule(arg0: any): Promise<any>;
10
+ function createCCP4Module(arg0: any): Promise<libcootApi.CCP4ModuleType>;
11
+ }
12
+
13
+ export namespace libcootApi {
14
+ type CCP4ModuleType = {
15
+ get_sequence_info(gemmiStructure: gemmi.Structure, molName: string): emscriptem.vector<SequenceEntry>;
16
+ get_atom_info_for_selection(gemmiStructure: gemmi.Structure, arg1: string, arg2: string): emscriptem.vector<AtomInfo>;
17
+ structure_is_ligand(gemmiStructure: gemmi.Structure): boolean;
18
+ count_residues_in_selection(gemmiStructure: gemmi.Structure, selection: gemmi.Selection): number;
19
+ remove_non_selected_residues(gemmiStructure: gemmi.Structure, selection: gemmi.Selection): gemmi.Structure;
20
+ check_polymer_type(polymerConst: emscriptem.instance<number>): {value: number};
21
+ remove_ligands_and_waters_chain(chain: gemmi.Chain): void;
22
+ gemmi_setup_entities(gemmiStructure: gemmi.Structure): void;
23
+ remove_ligands_and_waters_structure(gemmiStructure: gemmi.Structure): void;
24
+ remove_hydrogens_structure(gemmiStructure: gemmi.Structure): void;
25
+ read_structure_from_string(pdbData: string | ArrayBuffer, molName: string): gemmi.Structure;
26
+ get_mtz_columns(fileName: string): emscriptem.vector<string>;
27
+ FS_createDataFile(arg0: string, fileName: string, byteArray: Uint8Array, arg3: boolean, arg4: boolean): void;
28
+ getElementNameAsString: (arg0: emscriptem.instance<string>) => string;
29
+ FS_unlink: (arg0: string) => void;
30
+ cif_parse_string: (arg0: gemmi.cifDocument, arg1: string) => void;
31
+ get_pdb_string_from_gemmi_struct: (arg0:gemmi.Structure) => string;
32
+ Selection: { new(cid: string): gemmi.Selection };
33
+ NeighborSearch: { new(model: gemmi.Model, unitCell: gemmi.UnitCell, radius: number): gemmi.NeighborSearch };
34
+ Position: { new(x: number, y: number, z: number): gemmi.Position };
35
+ Fractional: { new(x: number, y: number, z: number): gemmi.Fractional };
36
+ cifDocument: { new(): gemmi.cifDocument }
37
+ }
38
+ type SequenceResInfo = {
39
+ resNum: number;
40
+ resCode: string;
41
+ cid: string;
42
+ }
43
+ type SequenceEntry = {
44
+ type: number;
45
+ name: string;
46
+ chain: string;
47
+ sequence: emscriptem.vector<SequenceResInfo>;
48
+
49
+ }
50
+ // We need to define AtomInfo here because we cannot import moorhen namespace otherwise worker code breaks during transpilation
51
+ type AtomInfo = {
52
+ x: number;
53
+ y: number;
54
+ z: number;
55
+ charge: number;
56
+ element: emscriptem.instance<string>;
57
+ symbol: string;
58
+ tempFactor: number;
59
+ serial: number;
60
+ name: string;
61
+ has_altloc: boolean;
62
+ alt_loc: string;
63
+ mol_name: string;
64
+ chain_id: string;
65
+ res_no: string;
66
+ res_name: string;
67
+ label: string;
68
+ }
69
+ interface AutoReadMtzInfo extends emscriptem.instance<AutoReadMtzInfo> {
70
+ idx: number;
71
+ F: string;
72
+ phi: string;
73
+ w: string;
74
+ F_obs: string;
75
+ sigF_obs: string;
76
+ Rfree: string;
77
+ weights_used: boolean;
78
+ }
79
+ interface CootPhiPsi extends emscriptem.instance<CootPhiPsi> {
80
+ ins_code: string;
81
+ residue_number: number;
82
+ chain_id: string;
83
+ phi: () => number;
84
+ psi: () => number;
85
+ }
86
+ interface CootPhiPsiProbT extends emscriptem.instance<CootPhiPsiProbT> {
87
+ phi_psi: CootPhiPsi;
88
+ is_allowed_flag: boolean;
89
+ residue_name: () => string;
90
+ }
91
+ interface InterestingPlaceT extends emscriptem.instance<InterestingPlaceT> {
92
+ feature_type: string;
93
+ residue_spec: ResidueSpecT;
94
+ x: number;
95
+ y: number;
96
+ z: number;
97
+ button_label: string;
98
+ feature_value: number;
99
+ badness: number;
100
+ }
101
+ interface InterestingPlaceDataJS extends ResidueSpecJS {
102
+ featureType: string;
103
+ featureValue: number;
104
+ buttonLabel: string;
105
+ badness: number;
106
+ coordX: number;
107
+ coordY: number;
108
+ coordZ: number;
109
+ }
110
+ interface HBondAtom extends emscriptem.instance<HBondAtom> {
111
+ serial: number;
112
+ x: number;
113
+ y: number;
114
+ z: number;
115
+ charge: number;
116
+ occ: number;
117
+ b_iso: number;
118
+ element: string;
119
+ name: string;
120
+ model: number;
121
+ chain: string;
122
+ res_no: number;
123
+ residue_name: string;
124
+ altLoc: number | string;
125
+ }
126
+ interface MoorhenHBond extends emscriptem.instance<MoorhenHBond> {
127
+ hb_hydrogen: HBondAtom;
128
+ donor: HBondAtom;
129
+ acceptor: HBondAtom;
130
+ donor_neigh: HBondAtom;
131
+ acceptor_neigh: HBondAtom;
132
+ angle_1: number;
133
+ angle_2: number;
134
+ angle_3: number;
135
+ dist: number;
136
+ ligand_atom_is_donor: boolean;
137
+ hydrogen_is_ligand_atom: boolean;
138
+ bond_has_hydrogen_flag: boolean;
139
+ }
140
+ interface HistogramInfo extends emscriptem.instance<HistogramInfo> {
141
+ base: number;
142
+ bin_width: number;
143
+ counts: emscriptem.vector<number>;
144
+ }
145
+ type HistogramInfoJS = {
146
+ base: number;
147
+ bin_width: number;
148
+ counts: number[];
149
+ }
150
+ type AutoReadMtzInfoJS = {
151
+ idx: number;
152
+ F: string;
153
+ phi: string;
154
+ w: string;
155
+ F_obs: string;
156
+ sigF_obs: string;
157
+ Rfree: string;
158
+ weights_used: boolean;
159
+ }
160
+ type HBondJS = {
161
+ hb_hydrogen: libcootApi.HBondAtom;
162
+ donor: libcootApi.HBondAtom;
163
+ acceptor: libcootApi.HBondAtom;
164
+ donor_neigh: libcootApi.HBondAtom;
165
+ acceptor_neigh: libcootApi.HBondAtom;
166
+ angle_1: number;
167
+ angle_2: number;
168
+ angle_3: number;
169
+ dist: number;
170
+ ligand_atom_is_donor: boolean;
171
+ hydrogen_is_ligand_atom: boolean;
172
+ bond_has_hydrogen_flag: boolean;
173
+ }
174
+ interface MMRCCStatsJS {
175
+ "All atoms": DensityCorrelationStatsInfoJS[];
176
+ "Side-chains": DensityCorrelationStatsInfoJS[];
177
+ }
178
+ interface DensityCorrelationStatsInfoJS {
179
+ resNum: number;
180
+ insCode: string;
181
+ modelNumber: number;
182
+ chainId: string;
183
+ n: number;
184
+ correlation: number;
185
+ }
186
+ interface DensityCorrelationStatsInfoT extends emscriptem.instance<DensityCorrelationStatsInfoT> {
187
+ n: number;
188
+ sum_xy: number;
189
+ sum_sqrd_x: number;
190
+ sum_sqrd_y: number;
191
+ sum_x: number;
192
+ sum_y: number;
193
+ correlation: () => number;
194
+ }
195
+ interface CootCartesian extends emscriptem.instance<CootCartesian> {
196
+ x: () => number;
197
+ y: () => number;
198
+ z: () => number;
199
+ }
200
+ interface CootCartesianPair extends emscriptem.instance<CootCartesianPair> {
201
+ getStart: () => CootCartesian;
202
+ getFinish: () => CootCartesian;
203
+ amplitude: () => number;
204
+ size: number;
205
+ }
206
+ interface Generic3dLinesBondsBoxT extends emscriptem.instance<Generic3dLinesBondsBoxT> {
207
+ line_segments: emscriptem.vector<emscriptem.vector<CootCartesianPair>>;
208
+ }
209
+ type Generic3dLinesBondsBoxJS = {
210
+ start: { x: number; y: number; z: number };
211
+ end: { x: number; y: number; z: number };
212
+ dist: number;
213
+ }
214
+ type RotamerInfoJS = {
215
+ name: string;
216
+ rank: number;
217
+ status: string;
218
+ richardson_probability: number;
219
+ }
220
+ interface SimpleMeshT extends emscriptem.instance<SimpleMeshT> {
221
+ vertices: emscriptem.vector<VncVertex>;
222
+ triangles: emscriptem.vector<gTriangle>;
223
+ }
224
+ interface SimpleMeshJS {
225
+ prim_types: [[string]];
226
+ useIndices?: [[boolean]];
227
+ idx_tri: [[number[]]];
228
+ vert_tri: [[number[]]];
229
+ additional_norm_tri?: [[number[]]];
230
+ norm_tri: [[number[]]];
231
+ col_tri: [[number[]]];
232
+ }
233
+ interface SymmetryData extends emscriptem.instance<SymmetryData> {
234
+ cell: CellTranslation;
235
+ symm_trans: emscriptem.vector<PairType<SymmetryTransT, CellTranslation>>;
236
+ }
237
+ interface CellTranslation extends emscriptem.instance<CellTranslation> {
238
+ us: number;
239
+ vs: number;
240
+ ws: number;
241
+ }
242
+ interface SymmetryTransT extends emscriptem.instance<SymmetryTransT> {
243
+ x: () => number;
244
+ y: () => number;
245
+ z: () => number;
246
+ is_identity: () => boolean;
247
+ str: () => string;
248
+ isym: () => number;
249
+ symm_as_string: string;
250
+ }
251
+ type PairType<T1, T2> = {
252
+ first: T1;
253
+ second: T2;
254
+ }
255
+ interface ClipperCoordOrth extends emscriptem.instance<ClipperCoordOrth> {
256
+ x: () => number;
257
+ y: () => number;
258
+ z: () => number;
259
+ }
260
+ interface MapMoleculeCentreInfo extends emscriptem.instance<MapMoleculeCentreInfo> {
261
+ success: boolean;
262
+ updated_centre: ClipperCoordOrth;
263
+ suggested_contour_level: number;
264
+ suggested_radius: number;
265
+ sum_of_densities: number;
266
+ }
267
+ type MapMoleculeCentreInfoJS = {
268
+ success: boolean;
269
+ updated_centre: [number, number, number];
270
+ suggested_contour_level: number;
271
+ suggested_radius: number;
272
+ }
273
+ interface ResidueSpecT extends emscriptem.instance<ResidueSpecT> {
274
+ model_number: number;
275
+ chain_id: string;
276
+ res_no: number;
277
+ ins_code: string;
278
+ }
279
+ interface ResidueSpecJS {
280
+ resNum: number;
281
+ insCode: string;
282
+ modelNumber: number;
283
+ chainId: string;
284
+ }
285
+ interface AtomSpecT extends emscriptem.instance<ResidueSpecT> {
286
+ chain_id: string;
287
+ res_no: number;
288
+ ins_code: string;
289
+ atom_name: string;
290
+ alt_conf: string;
291
+ int_user_data: number;
292
+ float_user_data: number;
293
+ string_user_data: string;
294
+ model_number: number;
295
+ }
296
+ interface AtomSpecJS {
297
+ chain_id: string;
298
+ res_no: number;
299
+ ins_code: string;
300
+ atom_name: string;
301
+ alt_conf: string;
302
+ int_user_data: number;
303
+ float_user_data: number;
304
+ string_user_data: string;
305
+ model_number: number;
306
+ }
307
+ interface ResidueValidationInformationT extends emscriptem.instance<ResidueValidationInformationT> {
308
+ label: string;
309
+ residue_spec: ResidueSpecT;
310
+ function_value: number;
311
+ }
312
+ interface ChainValidationInformationT extends emscriptem.instance<ChainValidationInformationT> {
313
+ chain_id: string;
314
+ rviv: emscriptem.vector<ResidueValidationInformationT>;
315
+ }
316
+ interface ValidationInformationT extends emscriptem.instance<ValidationInformationT> {
317
+ get_index_for_chain: (arg0: string) => number;
318
+ empty: () => boolean;
319
+ name: string;
320
+ cviv: emscriptem.vector<ChainValidationInformationT>;
321
+ }
322
+ type ValidationInformationJS = {
323
+ chainId: string;
324
+ insCode: string;
325
+ seqNum: number;
326
+ restype: string;
327
+ value: number;
328
+ label?: string;
329
+ }
330
+ interface SuperposeResultsT extends emscriptem.instance<SuperposeResultsT> {
331
+ superpose_info: string;
332
+ alignment: PairType<string, string>;
333
+ alignment_info_vec: emscriptem.vector<ValidationInformationT>;
334
+ aligned_pairs: emscriptem.vector<PairType<ResidueValidationInformationT, ResidueValidationInformationT>>;
335
+ }
336
+ type SuperposeResultsJS = {
337
+ referenceSequence: string,
338
+ movingSequence: string,
339
+ supperposeInfo: string,
340
+ alignedPairsData: {reference: ValidationInformationJS, moving: ValidationInformationJS}[],
341
+ }
342
+ interface InstancedDataType extends emscriptem.instance<InstancedDataType> {
343
+ position: [number, number, number];
344
+ size: [number, number, number];
345
+ colour: [number, number, number, number];
346
+ orientation: [[number, number, number, number], [number, number, number, number], [number, number, number, number], [number, number, number, number]];
347
+ }
348
+ interface gTriangle extends emscriptem.instance<gTriangle> {
349
+ point_id: [number, number, number];
350
+ }
351
+ interface VncVertex extends emscriptem.instance<VncVertex> {
352
+ pos: [number, number, number];
353
+ normal: [number, number, number];
354
+ color: [number, number, number, number];
355
+ }
356
+ interface InstancedGeomT extends emscriptem.instance<InstancedGeomT> {
357
+ vertices: emscriptem.vector<VncVertex>;
358
+ triangles: emscriptem.vector<gTriangle>;
359
+ name: string;
360
+ instancing_data_A: emscriptem.vector<InstancedDataType>;
361
+ instancing_data_B: emscriptem.vector<InstancedDataType>;
362
+ }
363
+ interface InstancedMeshT extends emscriptem.instance<InstancedMeshT> {
364
+ geom: emscriptem.vector<InstancedGeomT>;
365
+ markup: SimpleMeshT;
366
+ }
367
+ type InstancedMeshJS = {
368
+ prim_types: any;
369
+ idx_tri: any;
370
+ vert_tri: any;
371
+ norm_tri: any
372
+ col_tri: any;
373
+ instance_use_colors: any;
374
+ instance_sizes: any;
375
+ instance_origins: any;
376
+ instance_orientations: any;
377
+ }
378
+ interface MovedAtomT extends emscriptem.instance<MovedAtomT> {
379
+ atom_name: string;
380
+ alt_conf: string;
381
+ x: number;
382
+ y: number;
383
+ z: number;
384
+ index: number;
385
+ }
386
+ interface MovedResidueT extends emscriptem.instance<MovedResidueT> {
387
+ add_atom: (arg: MovedAtomT) => void;
388
+ chain_id: string;
389
+ res_no: number;
390
+ ins_code: string;
391
+ moved_atoms: emscriptem.vector<MovedAtomT>
392
+ }
393
+ interface RamaData extends emscriptem.instance<RamaData> {
394
+ chainId: string;
395
+ insCode: string;
396
+ seqNum: number;
397
+ restype: string;
398
+ phi: number;
399
+ psi: number;
400
+ isOutlier: boolean;
401
+ is_pre_pro: boolean;
402
+ }
403
+ type RamaDataJS = {
404
+ chainId: string;
405
+ insCode: string;
406
+ seqNum: number;
407
+ restype: string;
408
+ isOutlier: boolean;
409
+ phi: number;
410
+ psi: number;
411
+ is_pre_pro: boolean;
412
+ }
413
+ type CootModule = {
414
+ SmilesToPDB(arg0: string, arg1: string, arg2: number, arg3: number): PairType<string, string>;
415
+ FS: {
416
+ readFile(tempFilename: string, arg1: { encoding: string; }): string | Uint8Array;
417
+ mkdir: (arg0: string) => void;
418
+ };
419
+ FS_unlink(tempFilename: string): void;
420
+ FS_createDataFile(arg0: string, arg1: string, arg2: Uint8Array | string, arg3: boolean, arg4: boolean, arg5?: boolean): void;
421
+ molecules_container_js: { new(verbose: boolean): MoleculesContainerJS };
422
+ Vectormoved_residue_t: { new(): emscriptem.vector<MovedResidueT>};
423
+ moved_residue_t: { new(arg0: string, arg1: number, arg2: string): MovedResidueT};
424
+ moved_atom_t: { new(arg0: string, arg1: string, arg2: number, arg3: number, arg4: number, arg5: number): MovedAtomT};
425
+ MapIntFloat3: { new(): emscriptem.map<[number, number, number], number>};
426
+ VectorStringUInt_pair: { new(): emscriptem.vector<{ first: string, second: number }>};
427
+ getRamachandranData(arg0: string, arg1: string): emscriptem.vector<RamaData>
428
+ }
429
+ interface MoleculesContainerJS {
430
+ close_molecule(molNo: number): number;
431
+ copy_fragment_using_residue_range(molNo: number, chainId: string, res_no_start: number, res_no_end: number): number;
432
+ writeCCP4Map(molNo: number, tempFilename: string): void;
433
+ writeCIFASCII(molNo: number, tempFilename: string): void;
434
+ writePDBASCII(molNo: number, tempFilename: string): void;
435
+ set_map_sampling_rate(arg0: number): void;
436
+ fill_rotamer_probability_tables(): void;
437
+ set_user_defined_atom_colour_by_selection(imol: number, indexedResiduesVec: emscriptem.vector<{ first: string; second: number; }>, nonCarbon: boolean): void;
438
+ set_user_defined_bond_colours(imol: number, colourMap: emscriptem.map<[number, number, number], number>): void;
439
+ read_ccp4_map(arg0: string, arg2: boolean): number;
440
+ associate_data_mtz_file_with_map(arg0: number, arg1: string, arg2: string, arg3: string, arg5: string): void;
441
+ read_mtz(arg0: string, arg1: string, arg2: string, arg3: string, arg4: boolean, arg5: boolean): number;
442
+ replace_map_by_mtz_from_file(arg0: number, arg1: string, arg2: string, arg3: string, arg4: string, arg5: boolean): number;
443
+ replace_molecule_by_model_from_file(imol: number, tempFilename: string): void;
444
+ import_cif_dictionary(tempFilename: string, associatedMolNo: number): number;
445
+ auto_read_mtz(tempFilename: string): emscriptem.vector<number>;
446
+ read_pdb(tempFilename: string): number;
447
+ set_show_timings: (arg0: boolean) => void;
448
+ new_positions_for_atoms_in_residues: (arg0: number, arg1: emscriptem.vector<MovedResidueT>) => number;
449
+ }
450
+ }