moorhen 0.9.0 → 0.9.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.
- package/README.md +12 -2
- package/moorhen.js +91 -14
- package/package.json +22 -12
- package/public/CootWorker.js +1 -0
- package/{baby-gru → public}/CootWorker.ts +58 -10
- package/public/favicon.ico +0 -0
- package/public/manifest.json +25 -0
- package/{baby-gru → public}/moorhen.css +18 -3
- package/public/moorhen.js +1 -0
- package/{baby-gru → public}/moorhen.wasm +0 -0
- package/public/pixmaps/MoorhenLogo.svg +96 -0
- package/public/pixmaps/README +10 -0
- package/public/pixmaps/add-alt-conf.png +0 -0
- package/public/pixmaps/add-peptide-1.png +0 -0
- package/public/pixmaps/atom-at-pointer.png +0 -0
- package/public/pixmaps/auto-fit-rotamer.png +0 -0
- package/public/pixmaps/delete.png +0 -0
- package/public/pixmaps/density-fit.svg +96 -0
- package/public/pixmaps/edit-chi.png +0 -0
- package/public/pixmaps/flip-peptide.png +0 -0
- package/public/pixmaps/lhasa_icons/icons/hicolor_apps_scalable_coot-layla.svg +105 -0
- package/public/pixmaps/lhasa_icons/layla_3c.svg +82 -0
- package/public/pixmaps/lhasa_icons/layla_4c.svg +82 -0
- package/public/pixmaps/lhasa_icons/layla_5c.svg +82 -0
- package/public/pixmaps/lhasa_icons/layla_6arom.svg +89 -0
- package/public/pixmaps/lhasa_icons/layla_6c.svg +82 -0
- package/public/pixmaps/lhasa_icons/layla_7c.svg +82 -0
- package/public/pixmaps/lhasa_icons/layla_8c.svg +82 -0
- package/public/pixmaps/lhasa_icons/layla_charge_tool.svg +78 -0
- package/public/pixmaps/lhasa_icons/layla_delete_hydrogens_tool.svg +384 -0
- package/public/pixmaps/lhasa_icons/layla_double_bond.svg +78 -0
- package/public/pixmaps/lhasa_icons/layla_format_tool.svg +283 -0
- package/public/pixmaps/lhasa_icons/layla_geometry_tool-dark.svg +105 -0
- package/public/pixmaps/lhasa_icons/layla_geometry_tool.svg +105 -0
- package/public/pixmaps/lhasa_icons/layla_key.svg +76 -0
- package/public/pixmaps/lhasa_icons/layla_move_tool.svg +110 -0
- package/public/pixmaps/lhasa_icons/layla_single_bond.svg +73 -0
- package/public/pixmaps/lhasa_icons/layla_triple_bond.svg +87 -0
- package/public/pixmaps/lhasa_icons/lhasa_delete_tool.svg +401 -0
- package/public/pixmaps/lhasa_icons/lhasa_flip_x_tool.svg +106 -0
- package/public/pixmaps/lhasa_icons/lhasa_flip_y_tool.svg +106 -0
- package/public/pixmaps/lhasa_icons/lhasa_rotate_tool.svg +112 -0
- package/public/pixmaps/mutate.png +0 -0
- package/public/pixmaps/rama_all.png +0 -0
- package/public/pixmaps/rama_gly.png +0 -0
- package/public/pixmaps/rama_non_gly_pro.png +0 -0
- package/public/pixmaps/rama_pro.png +0 -0
- package/public/pixmaps/ramachandran.png +0 -0
- package/public/pixmaps/refine-1.png +0 -0
- package/public/pixmaps/refine.png +0 -0
- package/public/pixmaps/rigid-body.png +0 -0
- package/public/pixmaps/rotamers.png +0 -0
- package/public/pixmaps/rtz.png +0 -0
- package/public/pixmaps/side-chain-180.png +0 -0
- package/public/pixmaps/spin-view.png +0 -0
- package/public/pixmaps/temperature.png +0 -0
- package/public/pixmaps/torsion-general.png +0 -0
- package/public/pixmaps/torsion-general.svg +320 -0
- package/public/robots.txt +3 -0
- package/public/web_example.js +1 -0
- package/{baby-gru → public}/web_example.wasm +0 -0
- package/types/index.d.ts +1 -0
- package/types/lhasa.d.ts +313 -0
- package/types/libcoot.d.ts +21 -2
- package/types/main.d.ts +57 -54
- package/types/mgWebGL.d.ts +4 -2
- package/types/moorhen.d.ts +137 -50
- package/baby-gru/CootWorker.js +0 -1
- package/baby-gru/moorhen.js +0 -1
- package/baby-gru/web_example.js +0 -1
- /package/{baby-gru → public}/coot_env_web.js +0 -0
- /package/{baby-gru → public}/darkly.css +0 -0
- /package/{baby-gru → public}/flatly.css +0 -0
- /package/{baby-gru → public}/monomers/a/A.cif +0 -0
- /package/{baby-gru → public}/monomers/a/ALA.cif +0 -0
- /package/{baby-gru → public}/monomers/a/ARG.cif +0 -0
- /package/{baby-gru → public}/monomers/a/ASN.cif +0 -0
- /package/{baby-gru → public}/monomers/a/ASP.cif +0 -0
- /package/{baby-gru → public}/monomers/c/C.cif +0 -0
- /package/{baby-gru → public}/monomers/c/CIT.cif +0 -0
- /package/{baby-gru → public}/monomers/c/CYS.cif +0 -0
- /package/{baby-gru → public}/monomers/d/DA.cif +0 -0
- /package/{baby-gru → public}/monomers/d/DC.cif +0 -0
- /package/{baby-gru → public}/monomers/d/DG.cif +0 -0
- /package/{baby-gru → public}/monomers/d/DT.cif +0 -0
- /package/{baby-gru → public}/monomers/e/EDO.cif +0 -0
- /package/{baby-gru → public}/monomers/g/G.cif +0 -0
- /package/{baby-gru → public}/monomers/g/GLN.cif +0 -0
- /package/{baby-gru → public}/monomers/g/GLU.cif +0 -0
- /package/{baby-gru → public}/monomers/g/GLY.cif +0 -0
- /package/{baby-gru → public}/monomers/g/GOL.cif +0 -0
- /package/{baby-gru → public}/monomers/h/HIS.cif +0 -0
- /package/{baby-gru → public}/monomers/h/HOH.cif +0 -0
- /package/{baby-gru → public}/monomers/i/ILE.cif +0 -0
- /package/{baby-gru → public}/monomers/l/LEU.cif +0 -0
- /package/{baby-gru → public}/monomers/l/LYS.cif +0 -0
- /package/{baby-gru → public}/monomers/m/MET.cif +0 -0
- /package/{baby-gru → public}/monomers/m/MSE.cif +0 -0
- /package/{baby-gru → public}/monomers/n/NA.cif +0 -0
- /package/{baby-gru → public}/monomers/p/PHE.cif +0 -0
- /package/{baby-gru → public}/monomers/p/PO4.cif +0 -0
- /package/{baby-gru → public}/monomers/p/PRO.cif +0 -0
- /package/{baby-gru → public}/monomers/s/SER.cif +0 -0
- /package/{baby-gru → public}/monomers/s/SO4.cif +0 -0
- /package/{baby-gru → public}/monomers/t/THR.cif +0 -0
- /package/{baby-gru → public}/monomers/t/TRP.cif +0 -0
- /package/{baby-gru → public}/monomers/t/TYR.cif +0 -0
- /package/{baby-gru → public}/monomers/u/U.cif +0 -0
- /package/{baby-gru → public}/monomers/v/VAL.cif +0 -0
- /package/{baby-gru → public}/moorhen.data +0 -0
- /package/{baby-gru → public}/moorhen.worker.js +0 -0
- /package/{baby-gru → public}/pixmaps/MoorhenLogo.png +0 -0
- /package/{baby-gru → public}/pixmaps/add-alt-conf.svg +0 -0
- /package/{baby-gru → public}/pixmaps/add-peptide-1.svg +0 -0
- /package/{baby-gru → public}/pixmaps/atom-at-pointer.svg +0 -0
- /package/{baby-gru → public}/pixmaps/auto-fit-rotamer.svg +0 -0
- /package/{baby-gru → public}/pixmaps/cis-trans.svg +0 -0
- /package/{baby-gru → public}/pixmaps/delete.svg +0 -0
- /package/{baby-gru → public}/pixmaps/drag.svg +0 -0
- /package/{baby-gru → public}/pixmaps/edit-chi.svg +0 -0
- /package/{baby-gru → public}/pixmaps/flip-peptide.svg +0 -0
- /package/{baby-gru → public}/pixmaps/jed-flip-reverse.svg +0 -0
- /package/{baby-gru → public}/pixmaps/keyboard-blank.svg +0 -0
- /package/{baby-gru → public}/pixmaps/map-grey.svg +0 -0
- /package/{baby-gru → public}/pixmaps/moorhen-ligand.svg +0 -0
- /package/{baby-gru → public}/pixmaps/mutate.svg +0 -0
- /package/{baby-gru → public}/pixmaps/rama-plot-gly-normal.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama-plot-gly-outlier.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama-plot-other-normal.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama-plot-other-outlier.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama-plot-pro-normal.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama-plot-pro-outlier.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama2_all.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama2_gly.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama2_ileval.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama2_non_gly_pro.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama2_non_gly_pro_pre_pro_ileval.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama2_pre_pro.png +0 -0
- /package/{baby-gru → public}/pixmaps/rama2_pro.png +0 -0
- /package/{baby-gru → public}/pixmaps/refine-1.svg +0 -0
- /package/{baby-gru → public}/pixmaps/rigid-body.svg +0 -0
- /package/{baby-gru → public}/pixmaps/rotamers.svg +0 -0
- /package/{baby-gru → public}/pixmaps/rtz.svg +0 -0
- /package/{baby-gru → public}/pixmaps/secondary-structure-grey.svg +0 -0
- /package/{baby-gru → public}/pixmaps/side-chain-180.svg +0 -0
- /package/{baby-gru → public}/pixmaps/spin-view.svg +0 -0
- /package/{baby-gru → public}/pixmaps/temperature.svg +0 -0
- /package/{baby-gru → public}/tutorials/NUT.cif +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-map-number-1.mtz +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-map-number-2.mtz +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-map-number-3.mtz +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-map-number-4.mtz +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-structure-number-1.pdb +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-structure-number-2.pdb +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-structure-number-3.pdb +0 -0
- /package/{baby-gru → public}/tutorials/moorhen-tutorial-structure-number-4.pdb +0 -0
package/types/moorhen.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { gemmi } from "./gemmi";
|
|
|
4
4
|
import { webGL } from "./mgWebGL";
|
|
5
5
|
import { MoorhenMolecule } from "../moorhen";
|
|
6
6
|
import { ToolkitStore } from "@reduxjs/toolkit/dist/configureStore";
|
|
7
|
+
import { AnyAction, Dispatch } from "@reduxjs/toolkit";
|
|
7
8
|
|
|
8
9
|
export namespace moorhen {
|
|
9
10
|
|
|
@@ -81,6 +82,39 @@ export namespace moorhen {
|
|
|
81
82
|
width: number;
|
|
82
83
|
atomRadiusBondRatio: number;
|
|
83
84
|
}
|
|
85
|
+
|
|
86
|
+
type gaussianSurfSettings = {
|
|
87
|
+
sigma: number;
|
|
88
|
+
countourLevel: number;
|
|
89
|
+
boxRadius: number;
|
|
90
|
+
gridScale: number;
|
|
91
|
+
bFactor: number;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
type m2tParameters = {
|
|
95
|
+
ribbonStyleCoilThickness: number;
|
|
96
|
+
ribbonStyleHelixWidth: number;
|
|
97
|
+
ribbonStyleStrandWidth: number;
|
|
98
|
+
ribbonStyleArrowWidth: number;
|
|
99
|
+
ribbonStyleDNARNAWidth: number;
|
|
100
|
+
ribbonStyleAxialSampling: number;
|
|
101
|
+
cylindersStyleAngularSampling: number;
|
|
102
|
+
cylindersStyleCylinderRadius: number;
|
|
103
|
+
cylindersStyleBallRadius: number;
|
|
104
|
+
surfaceStyleProbeRadius: number;
|
|
105
|
+
ballsStyleRadiusMultiplier: number;
|
|
106
|
+
nucleotideRibbonStyle: "StickBases" | "DishyBases";
|
|
107
|
+
dishStyleAngularSampling: number;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
type residueEnvironmentOptions = {
|
|
111
|
+
maxDist: number;
|
|
112
|
+
backgroundRepresentation: RepresentationStyles;
|
|
113
|
+
focusRepresentation: RepresentationStyles;
|
|
114
|
+
labelled: boolean;
|
|
115
|
+
showHBonds: boolean;
|
|
116
|
+
showContacts: boolean;
|
|
117
|
+
}
|
|
84
118
|
|
|
85
119
|
type ColourRuleObject = {
|
|
86
120
|
cid: string;
|
|
@@ -109,6 +143,7 @@ export namespace moorhen {
|
|
|
109
143
|
uniqueId: string;
|
|
110
144
|
static initFromDataObject(data: ColourRuleObject, commandCentre: React.RefObject<CommandCentre>, molecule: Molecule): ColourRule;
|
|
111
145
|
static initFromString(stringData: string, commandCentre: React.RefObject<CommandCentre>, molecule: Molecule): ColourRule;
|
|
146
|
+
static parseHexToRgba(hex: string): [number, number, number, number];
|
|
112
147
|
objectify(): ColourRuleObject;
|
|
113
148
|
stringify(): string;
|
|
114
149
|
setLabel(label: string): void;
|
|
@@ -116,12 +151,11 @@ export namespace moorhen {
|
|
|
116
151
|
setParentMolecule(molecule: Molecule): void;
|
|
117
152
|
setParentRepresentation(representation: MoleculeRepresentation): void;
|
|
118
153
|
setApplyColourToNonCarbonAtoms(newVal: boolean): void;
|
|
119
|
-
getUserDefinedColours(): { cid: string;
|
|
120
|
-
apply(style
|
|
154
|
+
getUserDefinedColours(): { cid: string; rgba: [number, number, number, number]; applyColourToNonCarbonAtoms: boolean }[];
|
|
155
|
+
apply(style?: string, ruleIndex: number): Promise<void>;
|
|
121
156
|
}
|
|
122
157
|
|
|
123
|
-
type coorFormats = 'pdb' | 'mmcif';
|
|
124
|
-
|
|
158
|
+
type coorFormats = 'pdb' | 'mmcif' | 'unk' | 'mmjson' | 'xml';
|
|
125
159
|
interface Molecule {
|
|
126
160
|
transferLigandDicts(toMolecule: Molecule, override?: boolean): Promise<void>;
|
|
127
161
|
minimizeEnergyUsingCidAnimated(cid: string, ncyc: number, nIterations: number, useRamaRestraints: boolean, ramaWeight: number, useTorsionRestraints: boolean, torsionWeight: number): Promise<void>;
|
|
@@ -129,7 +163,7 @@ export namespace moorhen {
|
|
|
129
163
|
splitMultiModels(draw?: boolean): Promise<Molecule[]>;
|
|
130
164
|
getActiveAtom(): Promise<string>;
|
|
131
165
|
setDrawAdaptativeBonds(newValue: boolean): Promise<void>;
|
|
132
|
-
redrawAdaptativeBonds(selectionString?: string
|
|
166
|
+
redrawAdaptativeBonds(selectionString?: string): Promise<void>;
|
|
133
167
|
changeChainId(oldId: string, newId: string, redraw?: boolean, startResNo?: number, endResNo?: number): Promise<number>;
|
|
134
168
|
refineResiduesUsingAtomCidAnimated(cid: string, activeMap: Map, dist?: number, redraw?: boolean, redrawFragmentFirst?: boolean): Promise<void>;
|
|
135
169
|
mergeFragmentFromRefinement(cid: string, fragmentMolecule: Molecule, acceptTransform?: boolean, refineAfterMerge?: boolean): Promise<void>;
|
|
@@ -138,12 +172,13 @@ export namespace moorhen {
|
|
|
138
172
|
getSecondaryStructInfo(modelNumber?: number): Promise<libcootApi.ResidueSpecJS[]>;
|
|
139
173
|
getNonSelectedCids(cid: string): string[];
|
|
140
174
|
parseCidIntoSelection(selectedCid: string): Promise<ResidueSelection>;
|
|
141
|
-
downloadAtoms(format?:
|
|
175
|
+
downloadAtoms(format?: coorFormats, fileName?: string): Promise<void>;
|
|
142
176
|
getResidueBFactors(): { cid: string; bFactor: number; normalised_bFactor: number }[];
|
|
143
177
|
getNcsRelatedChains(): Promise<string[][]>;
|
|
144
178
|
animateRefine(n_cyc: number, n_iteration: number, final_n_cyc?: number): Promise<void>;
|
|
145
179
|
refineResidueRange(chainId: string, start: number, stop: number, ncyc?: number, redraw?: boolean): Promise<void>;
|
|
146
|
-
SSMSuperpose(movChainId: string, refMolNo: number, refChainId: string): Promise<
|
|
180
|
+
SSMSuperpose(movChainId: string, refMolNo: number, refChainId: string, redraw?: boolean): Promise<void>;
|
|
181
|
+
lsqkbSuperpose(refMolNo: number, residueMatches: lskqbResidueRangeMatch[], matchType?: number, redraw?: boolean): Promise<void>;
|
|
147
182
|
refineResiduesUsingAtomCid(cid: string, mode: string, ncyc?: number, redraw?: boolean): Promise<void>;
|
|
148
183
|
deleteCid(cid: string, redraw?: boolean): Promise<{first: number, second: number}>;
|
|
149
184
|
getNumberOfAtoms(): Promise<number>;
|
|
@@ -152,7 +187,7 @@ export namespace moorhen {
|
|
|
152
187
|
fitLigand(mapMolNo: number, ligandMolNo: number, fitRightHere?: boolean, redraw?: boolean, useConformers?: boolean, conformerCount?: number): Promise<Molecule[]>;
|
|
153
188
|
checkIsLigand(): boolean;
|
|
154
189
|
removeRepresentation(representationId: string): void;
|
|
155
|
-
addRepresentation(style: string, cid: string, isCustom?: boolean, colour?: ColourRule[], bondOptions?: cootBondOptions): Promise<MoleculeRepresentation>;
|
|
190
|
+
addRepresentation(style: string, cid: string, isCustom?: boolean, colour?: ColourRule[], bondOptions?: cootBondOptions, m2tParams?: m2tParameters, residueEnvOptions?: residueEnvironmentOptions): Promise<MoleculeRepresentation>;
|
|
156
191
|
getNeighborResiduesCids(selectionCid: string, maxDist: number): Promise<string[]>;
|
|
157
192
|
drawWithStyleFromMesh(style: string, meshObjects: any[], cid?: string, fetchAtomBuffers?: boolean): Promise<void>;
|
|
158
193
|
updateWithMovedAtoms(movedResidues: AtomInfo[][]): Promise<void>;
|
|
@@ -177,7 +212,7 @@ export namespace moorhen {
|
|
|
177
212
|
clearExtraRestraints(): Promise<WorkerResponse>;
|
|
178
213
|
redo(): Promise<void>;
|
|
179
214
|
undo(): Promise<void>;
|
|
180
|
-
show(style: string, cid?: string):
|
|
215
|
+
show(style: string, cid?: string): Promise<MoleculeRepresentation>;
|
|
181
216
|
setSymmetryRadius(radius: number): Promise<void>;
|
|
182
217
|
drawSymmetry: (fetchSymMatrix?: boolean) => Promise<void>;
|
|
183
218
|
drawBiomolecule(fetchSymMatrix?: boolean) : void;
|
|
@@ -187,15 +222,15 @@ export namespace moorhen {
|
|
|
187
222
|
delete(popBackImol?: boolean): Promise<WorkerResponse>;
|
|
188
223
|
fetchDefaultColourRules(): Promise<void>;
|
|
189
224
|
fetchIfDirtyAndDraw(arg0: string): Promise<void>;
|
|
190
|
-
drawEnvironment: (cid
|
|
225
|
+
drawEnvironment: (cid?: string) => Promise<void>;
|
|
191
226
|
centreOn: (selectionCid?: string, animate?: boolean, setZoom?: boolean) => Promise<void>;
|
|
192
227
|
drawHover: (cid: string) => Promise<void>;
|
|
193
228
|
drawResidueSelection: (cid: string) => Promise<void>;
|
|
194
229
|
clearBuffersOfStyle: (style: string) => void;
|
|
195
230
|
loadToCootFromURL: (inputFile: string, molName: string, options?: RequestInit) => Promise<Molecule>;
|
|
196
231
|
applyTransform: () => Promise<void>;
|
|
197
|
-
getAtoms(format?:
|
|
198
|
-
hide: (style: string, cid?: string) =>
|
|
232
|
+
getAtoms(format?: coorFormats): Promise<string>;
|
|
233
|
+
hide: (style: string, cid?: string) => MoleculeRepresentation;
|
|
199
234
|
redraw: () => Promise<void>;
|
|
200
235
|
setAtomsDirty: (newVal: boolean) => void;
|
|
201
236
|
isVisible: (excludeBuffers?: string[]) => boolean;
|
|
@@ -205,12 +240,14 @@ export namespace moorhen {
|
|
|
205
240
|
getPrivateerValidation(useCache?: boolean): Promise<privateer.ResultsEntry[]>;
|
|
206
241
|
getLigandSVG(resName: string, useCache?: boolean): Promise<string>;
|
|
207
242
|
isValidSelection(cid: string): Promise<boolean>;
|
|
243
|
+
fetchHeaderInfo(useCache?: boolean): Promise<libcootApi.headerInfoJS>;
|
|
208
244
|
type: string;
|
|
209
245
|
adaptativeBondsEnabled: boolean;
|
|
210
246
|
cachedLigandSVGs: {[key: string]: string};
|
|
211
247
|
cachedGemmiAtoms: AtomInfo[];
|
|
212
248
|
cachedPrivateerValidation: privateer.ResultsEntry[];
|
|
213
249
|
isLigand: boolean;
|
|
250
|
+
isMRSearchModel: boolean;
|
|
214
251
|
excludedCids: string[];
|
|
215
252
|
commandCentre: React.RefObject<CommandCentre>;
|
|
216
253
|
glRef: React.RefObject<webGL.MGWebGL>;
|
|
@@ -229,13 +266,9 @@ export namespace moorhen {
|
|
|
229
266
|
biomolOn: boolean;
|
|
230
267
|
symmetryRadius : number;
|
|
231
268
|
symmetryMatrices: number[][][];
|
|
232
|
-
gaussianSurfaceSettings:
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
boxRadius: number;
|
|
236
|
-
gridScale: number;
|
|
237
|
-
bFactor: number;
|
|
238
|
-
};
|
|
269
|
+
gaussianSurfaceSettings: gaussianSurfSettings;
|
|
270
|
+
defaultM2tParams: m2tParameters;
|
|
271
|
+
defaultResidueEnvironmentOptions: residueEnvironmentOptions
|
|
239
272
|
isDarkBackground: boolean;
|
|
240
273
|
representations: MoleculeRepresentation[];
|
|
241
274
|
defaultBondOptions: cootBondOptions;
|
|
@@ -253,12 +286,20 @@ export namespace moorhen {
|
|
|
253
286
|
hasGlycans: boolean;
|
|
254
287
|
coordsFormat: coorFormats;
|
|
255
288
|
moleculeDiameter: number;
|
|
289
|
+
headerInfo: libcootApi.headerInfoJS;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
type lskqbResidueRangeMatch = {
|
|
293
|
+
refChainId: string;
|
|
294
|
+
movChainId: string;
|
|
295
|
+
refResidueRange: [number, number];
|
|
296
|
+
movResidueRange: [number, number];
|
|
256
297
|
}
|
|
257
298
|
|
|
258
299
|
type RepresentationStyles = 'VdwSpheres' | 'ligands' | 'CAs' | 'CBs' | 'CDs' | 'gaussian' | 'allHBonds' | 'rama' |
|
|
259
300
|
'rotamer' | 'CRs' | 'MolecularSurface' | 'DishyBases' | 'VdWSurface' | 'Calpha' | 'unitCell' | 'hover' | 'environment' |
|
|
260
301
|
'ligand_environment' | 'contact_dots' | 'chemical_features' | 'ligand_validation' | 'glycoBlocks' | 'restraints' |
|
|
261
|
-
'residueSelection' | 'MetaBalls' | 'adaptativeBonds'
|
|
302
|
+
'residueSelection' | 'MetaBalls' | 'adaptativeBonds' | 'StickBases' | 'residue_environment' | 'transformation'
|
|
262
303
|
|
|
263
304
|
interface MoleculeRepresentation {
|
|
264
305
|
addColourRule(ruleType: string, cid: string, color: string, args: (string | number)[], isMultiColourRule?: boolean, applyColourToNonCarbonAtoms?: boolean, label?: string): void;
|
|
@@ -266,24 +307,31 @@ export namespace moorhen {
|
|
|
266
307
|
applyColourRules(): Promise<void>;
|
|
267
308
|
exportAsGltf(): Promise<ArrayBuffer>;
|
|
268
309
|
setBondOptions(bondOptions: cootBondOptions): void;
|
|
310
|
+
setResidueEnvOptions(newOptions: residueEnvironmentOptions): void;
|
|
269
311
|
setStyle(style: string): void;
|
|
270
312
|
setUseDefaultColourRules(arg0: boolean): void;
|
|
271
313
|
setColourRules(ruleList: ColourRule[]): void;
|
|
272
|
-
buildBuffers(arg0: DisplayObject[]):
|
|
314
|
+
buildBuffers(arg0: DisplayObject[]): void;
|
|
273
315
|
setBuffers(meshObjects: DisplayObject[]): void;
|
|
274
316
|
drawSymmetry(): void
|
|
275
317
|
deleteBuffers(): void;
|
|
276
318
|
draw(): Promise<void>;
|
|
277
319
|
redraw(): Promise<void>;
|
|
278
320
|
setParentMolecule(arg0: Molecule): void;
|
|
279
|
-
show(): void
|
|
321
|
+
show(): Promise<void>;
|
|
280
322
|
hide(): void;
|
|
281
323
|
setAtomBuffers(arg0: AtomInfo[]): void;
|
|
324
|
+
setM2tParams(arg0: m2tParameters): void;
|
|
325
|
+
static mergeBufferObjects(bufferObj1: libcootApi.InstancedMeshJS[], bufferObj2: libcootApi.InstancedMeshJS[]): libcootApi.InstancedMeshJS[];
|
|
282
326
|
bondOptions: cootBondOptions;
|
|
327
|
+
m2tParams: m2tParameters;
|
|
328
|
+
residueEnvironmentOptions: residueEnvironmentOptions;
|
|
329
|
+
useDefaultM2tParams: boolean;
|
|
330
|
+
useDefaultResidueEnvironmentOptions: boolean;
|
|
283
331
|
useDefaultColourRules: boolean;
|
|
284
332
|
useDefaultBondOptions: boolean;
|
|
285
333
|
uniqueId: string;
|
|
286
|
-
style:
|
|
334
|
+
style: RepresentationStyles;
|
|
287
335
|
cid: string;
|
|
288
336
|
visible: boolean;
|
|
289
337
|
buffers: DisplayObject[];
|
|
@@ -427,7 +475,7 @@ export namespace moorhen {
|
|
|
427
475
|
startRecording: () => void;
|
|
428
476
|
isRecording: () => boolean;
|
|
429
477
|
downloadVideo: (blob: Blob) => Promise<void>;
|
|
430
|
-
takeScreenShot: (fileName: string) => void;
|
|
478
|
+
takeScreenShot: (fileName: string, doTransparentBackground?: boolean) => void;
|
|
431
479
|
}
|
|
432
480
|
|
|
433
481
|
interface Map {
|
|
@@ -510,17 +558,25 @@ export namespace moorhen {
|
|
|
510
558
|
name: string;
|
|
511
559
|
molNo: number;
|
|
512
560
|
coordString: string;
|
|
561
|
+
coordFormat: coorFormats;
|
|
513
562
|
representations: {
|
|
514
563
|
cid: string;
|
|
515
564
|
style: strin;
|
|
516
565
|
isCustom: boolean;
|
|
517
566
|
colourRules: ColourRuleObject[];
|
|
518
567
|
bondOptions: cootBondOptions;
|
|
568
|
+
m2tParams: m2tParameters;
|
|
569
|
+
resEnvOptions: residueEnvironmentOptions;
|
|
519
570
|
}[];
|
|
520
571
|
defaultBondOptions: cootBondOptions;
|
|
572
|
+
defaultM2tParams: m2tParameters;
|
|
573
|
+
defaultResEnvOptions: residueEnvironmentOptions;
|
|
521
574
|
defaultColourRules: ColourRuleObject[];
|
|
522
575
|
connectedToMaps: number[];
|
|
523
576
|
ligandDicts: {[comp_id: string]: string};
|
|
577
|
+
symmetryOn: boolean;
|
|
578
|
+
biomolOn: boolean;
|
|
579
|
+
symmetryRadius: number;
|
|
524
580
|
}
|
|
525
581
|
|
|
526
582
|
type mapDataSession = {
|
|
@@ -569,6 +625,7 @@ export namespace moorhen {
|
|
|
569
625
|
depthThreshold: number;
|
|
570
626
|
normalThreshold: number;
|
|
571
627
|
};
|
|
628
|
+
doPerspectiveProjection: boolean;
|
|
572
629
|
blur: {enabled: boolean; depth: number; radius: number};
|
|
573
630
|
}
|
|
574
631
|
|
|
@@ -591,6 +648,54 @@ export namespace moorhen {
|
|
|
591
648
|
createBackup(keyString: string, sessionString: string): Promise<string>;
|
|
592
649
|
fetchSession(includeAdditionalMapData: boolean): Promise<backupSession>;
|
|
593
650
|
toggleDisableBackups(): void;
|
|
651
|
+
addModification: () => Promise<string>;
|
|
652
|
+
init: () => Promise<void>;
|
|
653
|
+
retrieveBackup: (arg0: string) => Promise<string | ArrayBuffer>;
|
|
654
|
+
static getBackupLabel(key: backupKey): string;
|
|
655
|
+
static loadSessionData(
|
|
656
|
+
sessionData: backupSession,
|
|
657
|
+
monomerLibraryPath: string,
|
|
658
|
+
molecules: Molecule[],
|
|
659
|
+
maps: Map[],
|
|
660
|
+
commandCentre: React.RefObject<CommandCentre>,
|
|
661
|
+
timeCapsuleRef: React.RefObject<TimeCapsule>,
|
|
662
|
+
glRef: React.RefObject<webGL.MGWebGL>,
|
|
663
|
+
store: ToolkitStore,
|
|
664
|
+
dispatch: Dispatch<AnyAction>
|
|
665
|
+
): Promise<number>;
|
|
666
|
+
static loadSessionFromArrayBuffer(
|
|
667
|
+
sessionArrayBuffer: ArrayBuffer,
|
|
668
|
+
monomerLibraryPath: string,
|
|
669
|
+
molecules: Molecule[],
|
|
670
|
+
maps: Map[],
|
|
671
|
+
commandCentre: React.RefObject<CommandCentre>,
|
|
672
|
+
timeCapsuleRef: React.RefObject<TimeCapsule>,
|
|
673
|
+
glRef: React.RefObject<webGL.MGWebGL>,
|
|
674
|
+
store: ToolkitStore,
|
|
675
|
+
dispatch: Dispatch<AnyAction>
|
|
676
|
+
): Promise<number>;
|
|
677
|
+
static loadSessionFromProtoMessage(
|
|
678
|
+
sessionProtoMessage: any,
|
|
679
|
+
monomerLibraryPath: string,
|
|
680
|
+
molecules: Molecule[],
|
|
681
|
+
maps: Map[],
|
|
682
|
+
commandCentre: React.RefObject<CommandCentre>,
|
|
683
|
+
timeCapsuleRef: React.RefObject<TimeCapsule>,
|
|
684
|
+
glRef: React.RefObject<webGL.MGWebGL>,
|
|
685
|
+
store: ToolkitStore,
|
|
686
|
+
dispatch: Dispatch<AnyAction>
|
|
687
|
+
): Promise<number>;
|
|
688
|
+
static loadSessionFromJsonString(
|
|
689
|
+
sessionDataString: string,
|
|
690
|
+
monomerLibraryPath: string,
|
|
691
|
+
molecules: Molecule[],
|
|
692
|
+
maps: Map[],
|
|
693
|
+
commandCentre: React.RefObject<CommandCentre>,
|
|
694
|
+
timeCapsuleRef: React.RefObject<TimeCapsule>,
|
|
695
|
+
glRef: React.RefObject<webGL.MGWebGL>,
|
|
696
|
+
store: ToolkitStore,
|
|
697
|
+
dispatch: Dispatch<AnyAction>
|
|
698
|
+
): Promise<number>;
|
|
594
699
|
store: ToolkitStore;
|
|
595
700
|
moleculesRef: React.RefObject<Molecule[]>;
|
|
596
701
|
mapsRef: React.RefObject<Map[]>;
|
|
@@ -603,9 +708,6 @@ export namespace moorhen {
|
|
|
603
708
|
version: string;
|
|
604
709
|
disableBackups: boolean;
|
|
605
710
|
storageInstance: LocalStorageInstance;
|
|
606
|
-
addModification: () => Promise<string>;
|
|
607
|
-
init: () => Promise<void>;
|
|
608
|
-
retrieveBackup: (arg0: string) => Promise<string | ArrayBuffer>;
|
|
609
711
|
}
|
|
610
712
|
|
|
611
713
|
type AtomRightClickEventInfo = {
|
|
@@ -730,7 +832,6 @@ export namespace moorhen {
|
|
|
730
832
|
drawAxes: boolean;
|
|
731
833
|
drawFPS: boolean;
|
|
732
834
|
drawMissingLoops: boolean;
|
|
733
|
-
drawInteractions: boolean;
|
|
734
835
|
doPerspectiveProjection: boolean;
|
|
735
836
|
useOffScreenBuffers: boolean;
|
|
736
837
|
depthBlurRadius: number;
|
|
@@ -832,6 +933,7 @@ export namespace moorhen {
|
|
|
832
933
|
moleculeList: Molecule[];
|
|
833
934
|
visibleMolecules: number[];
|
|
834
935
|
customRepresentations: MoleculeRepresentation[];
|
|
936
|
+
generalRepresentations: MoleculeRepresentation[];
|
|
835
937
|
};
|
|
836
938
|
maps: Map[];
|
|
837
939
|
mouseSettings: {
|
|
@@ -863,7 +965,6 @@ export namespace moorhen {
|
|
|
863
965
|
drawAxes: boolean;
|
|
864
966
|
drawFPS: boolean;
|
|
865
967
|
drawMissingLoops: boolean;
|
|
866
|
-
drawInteractions: boolean;
|
|
867
968
|
doPerspectiveProjection: boolean;
|
|
868
969
|
useOffScreenBuffers: boolean;
|
|
869
970
|
depthBlurRadius: number;
|
|
@@ -919,27 +1020,10 @@ export namespace moorhen {
|
|
|
919
1020
|
hoveredAtom: HoveredAtom;
|
|
920
1021
|
cursorStyle: string;
|
|
921
1022
|
};
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
showMapsModal: boolean;
|
|
925
|
-
showCreateAcedrgLinkModal: boolean;
|
|
926
|
-
showQuerySequenceModal: boolean;
|
|
927
|
-
showScriptingModal: boolean;
|
|
928
|
-
showControlsModal: boolean;
|
|
929
|
-
showFitLigandModal: boolean;
|
|
930
|
-
showRamaPlotModal: boolean;
|
|
931
|
-
showDiffMapPeaksModal: boolean;
|
|
932
|
-
showValidationPlotModal: boolean;
|
|
933
|
-
showLigandValidationModal: boolean;
|
|
934
|
-
showCarbohydrateModal: boolean;
|
|
935
|
-
showPepFlipsValidationModal: boolean;
|
|
936
|
-
showFillPartialResValidationModal: boolean;
|
|
937
|
-
showUnmodelledBlobsModal: boolean;
|
|
938
|
-
showMmrrccModal: boolean;
|
|
939
|
-
showWaterValidationModal: boolean;
|
|
940
|
-
showSceneSettingsModal: boolean;
|
|
941
|
-
showSliceNDiceModal: boolean;
|
|
1023
|
+
modals: {
|
|
1024
|
+
activeModals: string[];
|
|
942
1025
|
focusHierarchy: string[];
|
|
1026
|
+
modalsAttachedToSideBar: { key: string; isCollapsed: boolean }[];
|
|
943
1027
|
};
|
|
944
1028
|
mapContourSettings: {
|
|
945
1029
|
visibleMaps: number[];
|
|
@@ -971,11 +1055,14 @@ export namespace moorhen {
|
|
|
971
1055
|
};
|
|
972
1056
|
refinementSettings: {
|
|
973
1057
|
useRamaRefinementRestraints: boolean;
|
|
974
|
-
useTorsionRefinementRestraints: boolean;
|
|
1058
|
+
useTorsionRefinementRestraints: boolean;
|
|
975
1059
|
enableRefineAfterMod: boolean;
|
|
976
1060
|
animateRefine: boolean;
|
|
977
1061
|
refinementSelection: 'SINGLE' | 'TRIPLE' | 'SPHERE';
|
|
978
1062
|
};
|
|
1063
|
+
lhasa: {
|
|
1064
|
+
rdkitMoleculePickleList: { cid: string; moleculeMolNo: number; ligandName: string; pickle: string; id: string }[];
|
|
1065
|
+
}
|
|
979
1066
|
}
|
|
980
1067
|
|
|
981
1068
|
type actionButtonSettings = {
|
package/baby-gru/CootWorker.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var cootModule,molecules_container,ccp4Module,__assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var a,r=1,t=arguments.length;r<t;r++)for(var o in a=arguments[r])Object.prototype.hasOwnProperty.call(a,o)&&(e[o]=a[o]);return e},__assign.apply(this,arguments)};importScripts("./moorhen.js"),importScripts("./web_example.js");var guid=function(){var e=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(a){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===a?r:3&r|8).toString(16)}))},print=function(e){console.log(e),postMessage({consoleMessage:JSON.stringify(e)})},instancedMeshToMeshData=function(e,a,r,t){void 0===r&&(r=!1),void 0===t&&(t=1e4);for(var o=[],s=[],n=[],i=[],c=[],_=[],l=[],u=[],d=[],m=e.geom,p=e.markup,g=m.size(),h=0;h<g;h++){var f=r,v=[],y=[],S=[],b=[],M=[],z=[],x=[],T=m.get(h);"spherical-atoms"===T.name&&(f=!0);for(var A=T.vertices,F=T.triangles,w=F.size(),k=0;k<w;k++){var I=F.get(k).point_id;a?(v.push(I[0]),v.push(I[2]),v.push(I[1])):(v.push(I[0]),v.push(I[1]),v.push(I[2]))}F.delete();for(var J=A.size(),D=0;D<J;D++){var C=A.get(D),N=C.pos;y.push(N[0]),y.push(N[1]),y.push(N[2]);var R=C.normal;S.push(R[0]),S.push(R[1]),S.push(R[2])}A.delete();var P=T.instancing_data_A,E=P.size();if(E>0)for(var U=0;U<E;U++){var L=(q=P.get(U)).position;z.push(L[0]),z.push(L[1]),z.push(L[2]);var O=q.colour;M.push(O[0]),M.push(O[1]),M.push(O[2]),M.push(O[3]);var B=q.size;b.push(B[0]),b.push(B[1]),b.push(B[2]),x.push.apply(x,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}P.delete();var j=T.instancing_data_B,V=j.size();if(V>0)for(U=0;U<V;U++){var q;if(!((B=(q=j.get(U)).size)[2]>t)){b.push(B[0]),b.push(B[1]),b.push(B[2]),L=q.position,z.push(L[0]),z.push(L[1]),z.push(L[2]),O=q.colour,M.push(O[0]),M.push(O[1]),M.push(O[2]),M.push(O[3]);var H=q.orientation;x.push(H[0][0]),x.push(H[0][1]),x.push(H[0][2]),x.push(H[0][3]),x.push(H[1][0]),x.push(H[1][1]),x.push(H[1][2]),x.push(H[1][3]),x.push(H[2][0]),x.push(H[2][1]),x.push(H[2][2]),x.push(H[2][3]),x.push(H[3][0]),x.push(H[3][1]),x.push(H[3][2]),x.push(H[3][3])}}j.delete(),n.push(S),s.push(y),o.push(v),i.push(b),_.push(z),l.push(x),c.push(M),u.push(!0),f?d.push("PERFECT_SPHERES"):d.push("TRIANGLES")}m.delete();var K=simpleMeshToMeshData(p);return K.idx_tri.length>0&&K.idx_tri[0].length>0&&K.idx_tri[0][0].length>0?r?{prim_types:[d,K.prim_types[0]],idx_tri:[o,K.idx_tri[0]],vert_tri:[_,K.vert_tri[0]],norm_tri:[n,K.norm_tri[0]],col_tri:[c,K.col_tri[0]],instance_use_colors:[u,null],instance_sizes:[i,null],instance_origins:[_,null],instance_orientations:[l,null]}:{prim_types:[d,K.prim_types[0]],idx_tri:[o,K.idx_tri[0]],vert_tri:[s,K.vert_tri[0]],norm_tri:[n,K.norm_tri[0]],col_tri:[c,K.col_tri[0]],instance_use_colors:[u,null],instance_sizes:[i,null],instance_origins:[_,null],instance_orientations:[l,null]}:{prim_types:[d],idx_tri:[o],vert_tri:[s],norm_tri:[n],col_tri:[c],instance_use_colors:[u],instance_sizes:[i],instance_origins:[_],instance_orientations:[l]}},simpleMeshToMeshData=function(e,a){void 0===a&&(a=!1),performance.now();var r=e.vertices,t=e.triangles,o=r.size(),s=t.size(),n=new Uint32Array(3*s),i=new Float32Array(3*o),c=new Float32Array(3*o),_=new Float32Array(4*o);cootModule.getPositionsFromSimpleMesh2(e,i),cootModule.getColoursFromSimpleMesh2(e,_),a?(cootModule.getReversedNormalsFromSimpleMesh2(e,c),cootModule.getPermutedTriangleIndicesFromSimpleMesh2(e,n)):(cootModule.getNormalsFromSimpleMesh2(e,c),cootModule.getTriangleIndicesFromSimpleMesh2(e,n)),performance.now();var l=i,u=_,d=c,m=n;return r.delete(),t.delete(),{prim_types:[["TRIANGLES"]],idx_tri:[[m]],vert_tri:[[l]],norm_tri:[[d]],col_tri:[[u]]}},SuperposeResultsToJSArray=function(e){for(var a=e.aligned_pairs,r=a.size(),t=[],o=0;o<r;o++){var s=a.get(o),n=s.first,i=n.residue_spec,c=s.second,_=c.residue_spec,l={reference:{chainId:i.chain_id,insCode:i.ins_code,seqNum:i.res_no,restype:"UNK",value:n.function_value,label:n.label},moving:{chainId:_.chain_id,insCode:_.ins_code,seqNum:_.res_no,restype:"UNK",value:c.function_value,label:c.label}};t.push(l)}return a.delete(),{referenceSequence:e.alignment.first,movingSequence:e.alignment.second,supperposeInfo:e.superpose_info,alignedPairsData:t}},colourRulesToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push(o)}return e.delete(),a},stringArrayArrayToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){for(var o=e.get(t),s=o.size(),n=[],i=0;i<s;i++){var c=o.get(i);n.push(c)}a.push(n),o.delete()}return e.delete(),a},floatArrayToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push(o)}return e.delete(),a},mapMoleculeCentreInfoToJSObject=function(e){var a=e.updated_centre,r={updated_centre:[a.x(),a.y(),a.z()],success:e.success,suggested_radius:e.suggested_radius,suggested_contour_level:e.suggested_contour_level};return a.delete(),r},textureAsFloatsToJSTextureAsFloats=function(e){var a=e.width*e.height,r=new Float32Array(a),t=performance.now();cootModule.getTextureArray(e,r);var o=performance.now();return console.log("Time to convert texture array to JS",o-t),{width:e.width,height:e.height,x_size:e.x_size,y_size:e.y_size,z_position:e.z_position,image_data:r}},fitLigandInfoArrayToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push(__assign({},o))}return e.delete(),a},intArrayToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push(o)}return e.delete(),a},stringArrayToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push(o)}return e.delete(),a},export_map_as_gltf=function(e,a,r,t,o,s){var n="".concat(guid(),".glb");molecules_container.export_map_molecule_as_gltf(e,a,r,t,o,s,n);var i=cootModule.FS.readFile(n,{encoding:"binary"});return cootModule.FS_unlink(n),i.buffer},export_molecular_represenation_as_gltf=function(e,a,r,t){var o="".concat(guid(),".glb");molecules_container.export_molecular_represenation_as_gltf(e,a,r,t,o);var s=cootModule.FS.readFile(o,{encoding:"binary"});return cootModule.FS_unlink(o),s.buffer},export_molecule_as_gltf=function(e,a,r,t,o,s,n,i,c){var _="".concat(guid(),".glb");molecules_container.export_model_molecule_as_gltf(e,a,r,t,o,s,n,i,c,_);var l=cootModule.FS.readFile(_,{encoding:"binary"});return cootModule.FS_unlink(_),l.buffer},symmetryToJSData=function(e){for(var a=[],r=e.first,t=e.second,o=r.symm_trans,s=o.size(),n=0;n<s;n++){var i=o.get(n),c=i.first,_=i.second,l=t.get(n);a.push({x:c.x(),y:c.y(),z:c.z(),asString:c.symm_as_string,isym:c.isym(),us:_.us,ws:_.ws,vs:_.vs,matrix:l}),c.delete()}return o.delete(),t.delete(),a},mmrrccStatsToJSArray=function(e){var a=function(e){for(var a=[],r=e.keys(),t=r.size(),o=0;o<t;o++){var s=r.get(o),n=e.get(s);a.push({resNum:s.res_no,insCode:s.ins_code,modelNumber:s.model_number,chainId:s.chain_id,n:n.n,correlation:n.correlation()}),n.delete()}return r.delete(),a},r=e.first,t=e.second,o={"All atoms":a(r),"Side-chains":a(t)};return r.delete(),t.delete(),o},atomSpecToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push({chain_id:o.chain_id,res_no:o.res_no,ins_code:o.ins_code,atom_name:o.atom_name,alt_conf:o.alt_conf,int_user_data:o.int_user_data,float_user_data:o.float_user_data,string_user_data:o.string_user_data,model_number:o.model_number})}return e.delete(),a},residueSpecToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push({resNum:o.res_no,insCode:o.ins_code,modelNumber:o.model_number,chainId:o.chain_id,intUserData:o.int_user_data})}return e.delete(),a},stringPairVectorToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push({first:o.first,second:o.second})}return e.delete(),a},validationDataToJSArray=function(e,a){void 0===a&&(a=null);for(var r=[],t=e.cviv,o=t.size(),s=0;s<o;s++){var n=t.get(s);if(null!==a&&n.chain_id!==a);else{for(var i=n.rviv,c=i.size(),_=0;_<c;_++){var l=i.get(_),u=l.residue_spec;r.push({chainId:u.chain_id,insCode:u.ins_code,seqNum:u.res_no,restype:"UNK",value:l.function_value})}i.delete()}}return t.delete(),e.delete(),r},linesBoxToJSArray=function(e){for(var a=[],r=e.line_segments,t=r.size(),o=0;o<t;o++){for(var s=[],n=r.get(o),i=n.size(),c=0;c<i;c++){var _=n.get(c),l=_.getStart(),u=_.getFinish(),d=_.amplitude(),m={x:l.x(),y:l.y(),z:l.z()},p={x:u.x(),y:u.y(),z:u.z()};s.push({start:m,end:p,dist:d}),l.delete(),u.delete(),_.delete()}n.delete(),a.push(s)}return r.delete(),a},vectorHBondToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push({hb_hydrogen:o.hb_hydrogen,donor:o.donor,acceptor:o.acceptor,donor_neigh:o.donor_neigh,acceptor_neigh:o.acceptor_neigh,angle_1:o.angle_1,angle_2:o.angle_2,angle_3:o.angle_3,dist:o.dist,ligand_atom_is_donor:o.ligand_atom_is_donor,hydrogen_is_ligand_atom:o.hydrogen_is_ligand_atom,bond_has_hydrogen_flag:o.bond_has_hydrogen_flag})}return e.delete(),a},interestingPlaceDataToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t),s=o.residue_spec;a.push({intUserData:s.int_user_data,modelNumber:s.model_number,chainId:s.chain_id,insCode:s.ins_code,resNum:s.res_no,featureType:o.feature_type,featureValue:o.feature_value,buttonLabel:o.button_label,badness:o.badness,coordX:o.x,coordY:o.y,coordZ:o.z})}return e.delete(),a},histogramInfoToJSData=function(e){var a=e.counts;return{counts:intArrayToJSArray(a),bin_width:e.bin_width,base:e.base}},autoReadMtzInfoVectToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t);a.push({idx:o.idx,F:o.F,phi:o.phi,w:o.w,weights_used:o.weights_used,Rfree:o.Rfree?o.Rfree.split("/")[3]:"",F_obs:o.F_obs?o.F_obs.split("/")[3]:"",sigF_obs:o.sigF_obs?o.sigF_obs.split("/")[3]:""})}if(e.delete(),a.some((function(e){return-1===e.idx}))){var s=a.find((function(e){return-1===e.idx}));s&&s.F_obs&&s.Rfree&&s.sigF_obs&&a.forEach((function(e){e.F_obs=s.F_obs,e.sigF_obs=s.sigF_obs,e.Rfree=s.Rfree})),a=a.filter((function(e){return-1!==e.idx}))}return a},ramachandranDataToJSArray=function(e,a){for(var r=[],t=e.size(),o=0;o<t;o++){var s=e.get(o),n=s.phi_psi;n.chain_id===a&&r.push({chainId:n.chain_id,insCode:n.ins_code,seqNum:n.residue_number,restype:s.residue_name(),isOutlier:!s.is_allowed_flag,phi:n.phi(),psi:n.psi(),is_pre_pro:"PRO"===s.residue_name()}),s.delete(),n.delete()}return e.delete(),r},vectorPairStringIntToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t),s={residue:o.first,slice:o.second};a.push(s)}return e.delete(),a},vectorPairClipperCoordFloatToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){var o=e.get(t),s=o.second,n=o.first,i={x:n.x(),y:n.y(),z:n.z()};n.delete(),a.push({value:s,coord:i})}return e.delete(),a},simpleMeshToLineMeshData=function(e,a){performance.now();var r=e.vertices,t=e.triangles,o=t.size(),s=r.size(),n=new Uint32Array(6*o),i=new Float32Array(3*s),c=new Float32Array(3*s),_=new Float32Array(4*s);cootModule.getLineIndicesFromSimpleMesh2(e,n),cootModule.getPositionsFromSimpleMesh2(e,i),cootModule.getNormalsFromSimpleMesh2(e,c),cootModule.getColoursFromSimpleMesh2(e,_),performance.now();var l=n,u=i,d=c,m=_;return r.delete(),t.delete(),a?{prim_types:[["NORMALLINES"]],useIndices:[[!0]],idx_tri:[[l]],vert_tri:[[u]],additional_norm_tri:[[d]],norm_tri:[[d]],col_tri:[[m]]}:{prim_types:[["LINES"]],useIndices:[[!0]],idx_tri:[[l]],vert_tri:[[u]],norm_tri:[[d]],col_tri:[[m]]}},auto_read_mtz=function(e){var a=guid(),r=new Uint8Array(e);cootModule.FS_createDataFile(".","".concat(a,".mtz"),r,!0,!0);var t="./".concat(a,".mtz"),o=molecules_container.auto_read_mtz(t);return cootModule.FS_unlink(t),o},replace_map_by_mtz_from_file=function(e,a,r){var t=guid(),o="./".concat(t,".mtz"),s=new Uint8Array(a);cootModule.FS_createDataFile(".",o,s,!0,!0);var n=[e,o,r.F,r.PHI,"",!1],i=molecules_container.replace_map_by_mtz_from_file.apply(molecules_container,n);return cootModule.FS_unlink(o),i},new_positions_for_residue_atoms=function(e,a){var r=0,t=new cootModule.Vectormoved_residue_t;return a.forEach((function(e){if(e.length>0){var a=e[0],r=new cootModule.moved_residue_t(a.chain_id,parseInt(a.res_no),"");e.forEach((function(e){var a=new cootModule.moved_atom_t(e.name,e.alt_loc,e.x,e.y,e.z,-1);r.add_atom(a),a.delete()})),t.push_back(r),r.delete()}})),r+=molecules_container.new_positions_for_atoms_in_residues(e,t),t.delete(),r},read_mtz=function(e,a,r){var t=guid(),o=new Uint8Array(e);cootModule.FS_createDataFile(".","".concat(t,".mtz"),o,!0,!0);var s="./".concat(t,".mtz"),n=[s,r.F,r.PHI,"",!1,r.isDifference],i=molecules_container.read_mtz.apply(molecules_container,n);return cootModule.FS_unlink(s),i},associate_data_mtz_file_with_map=function(e,a,r,t,o){var s=new Uint8Array(a.data);cootModule.FS_createDataFile(".","".concat(a.fileName,".mtz"),s,!0,!0);var n="./".concat(a.fileName,".mtz"),i=[e,n,r,t,o];return molecules_container.associate_data_mtz_file_with_map.apply(molecules_container,i),n},read_ccp4_map=function(e,a,r){var t=guid(),o=new Uint8Array(e),s="";a.endsWith(".map.gz")?s="map.gz":a.endsWith(".mrc.gz")&&(s="mrc.gz"),cootModule.FS_createDataFile(".","".concat(t).concat(s),o,!0,!0);var n="./".concat(t).concat(s),i=[n,r],c=-1;try{c=molecules_container.read_ccp4_map.apply(molecules_container,i)}catch(e){console.warn(e)}finally{cootModule.FS_unlink(n)}return c},setUserDefinedBondColours=function(e,a,r){void 0===r&&(r=!1);var t=new cootModule.MapIntFloat3,o=new cootModule.VectorStringUInt_pair;a.forEach((function(e,a){t.set(a+51,e.rgb);var r={first:e.cid,second:a+51};o.push_back(r)})),molecules_container.set_user_defined_bond_colours(e,t),molecules_container.set_user_defined_atom_colour_by_selection(e,o,r),o.delete(),t.delete()},privateerValidationToJSArray=function(e){for(var a=[],r=e.size(),t=0;t<r;t++){for(var o=e.get(t),s=[],n=o.torsions,i=n.size(),c=0;c<i;c++)s.push(n.get(c));n.delete();var _={torsions:s,svg:o.svg.replace(/: *32/g,""),id:o.id.replace(/: *32/g,""),chain:o.chain,wurcs:o.wurcs,glyconnect_id:o.glyconnect_id,glytoucan_id:o.glytoucan_id,torsion_err:o.torsion_err,anomer_err:o.anomer_err,conformation_err:o.conformation_err,puckering_err:o.puckering_err,chirality_err:o.chirality_err};a.push(_)}return e.delete(),a},doCootCommand=function(e){var a=e.returnType,r=e.command,t=e.commandArgs,o=e.messageId,s=e.myTimeStamp,n=e.message;try{var i=void 0;switch(r){case"shim_new_positions_for_residue_atoms":i=new_positions_for_residue_atoms.apply(void 0,t);break;case"shim_read_mtz":i=read_mtz.apply(void 0,t);break;case"shim_auto_read_mtz":i=auto_read_mtz.apply(void 0,t);break;case"shim_read_ccp4_map":i=read_ccp4_map.apply(void 0,t);break;case"shim_associate_data_mtz_file_with_map":i=associate_data_mtz_file_with_map.apply(void 0,t);break;case"shim_replace_map_by_mtz_from_file":i=replace_map_by_mtz_from_file.apply(void 0,t);break;case"shim_set_bond_colours":i=setUserDefinedBondColours.apply(void 0,t);break;case"shim_export_map_as_gltf":i=export_map_as_gltf.apply(void 0,t);break;case"shim_export_molecule_as_gltf":i=export_molecule_as_gltf.apply(void 0,t);break;case"shim_export_molecular_represenation_as_gltf":i=export_molecular_represenation_as_gltf.apply(void 0,t);break;default:i=molecules_container[r].apply(molecules_container,t)}var c=void 0;switch(a){case"texture_as_floats_t":c=textureAsFloatsToJSTextureAsFloats(i);break;case"fit_ligand_info_array":c=fitLigandInfoArrayToJSArray(i);break;case"string_array_array":c=stringArrayArrayToJSArray(i);break;case"instanced_mesh_perm":c=instancedMeshToMeshData(i,!0);break;case"histogram_info_t":c=histogramInfoToJSData(i);break;case"symmetry":c=symmetryToJSData(i);break;case"mmrrcc_stats":c=mmrrccStatsToJSArray(i);break;case"colour_rules":c=colourRulesToJSArray(i);break;case"instanced_mesh_perfect_spheres":c=instancedMeshToMeshData(i,!1,!0);break;case"instanced_mesh":c=instancedMeshToMeshData(i,!1,!1,5);break;case"mesh_perm":c=simpleMeshToMeshData(i,!0);break;case"mesh":c=simpleMeshToMeshData(i);break;case"lit_lines_mesh":c=simpleMeshToLineMeshData(i,!0);break;case"lines_mesh":c=simpleMeshToLineMeshData(i,!1);break;case"float_array":c=floatArrayToJSArray(i);break;case"int_array":c=intArrayToJSArray(i);break;case"auto_read_mtz_info_array":c=autoReadMtzInfoVectToJSArray(i);break;case"map_molecule_centre_info_t":c=mapMoleculeCentreInfoToJSObject(i);break;case"string_array":c=stringArrayToJSArray(i);break;case"residue_specs":c=residueSpecToJSArray(i);break;case"atom_specs":c=atomSpecToJSArray(i);break;case"ramachandran_data":c=ramachandranDataToJSArray(i,e.chainID);break;case"validation_data":c=validationDataToJSArray(i,e.chainID);break;case"interesting_places_data":c=interestingPlaceDataToJSArray(i);break;case"superpose_results":c=SuperposeResultsToJSArray(i);break;case"generic_3d_lines_bonds_box":c=linesBoxToJSArray(i);break;case"vector_hbond":c=vectorHBondToJSArray(i);break;case"status_instanced_mesh_pair":c={status:i.first,mesh:instancedMeshToMeshData(i.second,!1,!1,5)};break;case"string_string_pair_vector":c=stringPairVectorToJSArray(i);break;case"void":c=null;break;case"vector_pair_clipper_coord_float":c=vectorPairClipperCoordFloatToJSArray(i);break;case"vector_pair_string_int":c=vectorPairStringIntToJSArray(i);break;case"privateer_results":c=privateerValidationToJSArray(i);break;default:c=i}try{i.delete()}catch(e){}return{messageId:o,messageSendTime:Date.now(),command:r,consoleMessage:"Completed ".concat(r," in ").concat(Date.now()-s," ms"),result:{status:"Completed",result:c}}}catch(e){return console.log(e),{messageId:o,myTimeStamp:s,message:n,consoleMessage:"EXCEPTION RAISED IN ".concat(r,", ").concat(e),result:{status:"Exception"}}}};onmessage=function(e){if("CootInitialize"===e.data.message)createRSRModule({onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"moorhen.js",print,printErr:print}).then((function(a){postMessage({consoleMessage:"Initialized molecules_container",message:e.data.message,messageId:e.data.messageId}),(molecules_container=new(cootModule=a).molecules_container_js(!1)).set_use_gemmi(!1),molecules_container.set_show_timings(!1),molecules_container.set_refinement_is_verbose(!1),molecules_container.fill_rotamer_probability_tables(),molecules_container.set_map_sampling_rate(1.7),molecules_container.set_map_is_contoured_with_thread_pool(!0),molecules_container.set_max_number_of_threads(3),cootModule.FS.mkdir("COOT_BACKUP")})).catch((function(e){console.log(e),print(e)})),createCCP4Module({onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"web_example.js",print,printErr:print}).then((function(e){ccp4Module=e})).catch((function(e){console.log(e),print(e)}));else if("close"===e.data.message)null==molecules_container||molecules_container.delete(),postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Closed molecules container",message:e.data.message,result:{}});else if("get_mtz_data"===e.data.message){var a=cootModule.FS.readFile(e.data.fileName,{encoding:"binary"});postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Fetched mtz data for map ".concat(e.data.molNo),message:e.data.message,result:{molNo:e.data.molNo,mtzData:a}})}else if("get_map"===e.data.message){var r=guid(),t="./".concat(r,".map");molecules_container.writeCCP4Map(e.data.molNo,t);var o=cootModule.FS.readFile(t,{encoding:"binary"});cootModule.FS_unlink(t),postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Fetched map of map ".concat(e.data.molNo),message:e.data.message,result:{molNo:e.data.molNo,mapData:o.buffer}})}else if("delete_file_name"===e.data.message){var s=cootModule.FS_unlink(e.data.fileName);postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,messageTag:"result",result:s})}else if("coot_command_list"===e.data.message){var n=e.data.commandList.map((function(a){return doCootCommand(__assign(__assign({},e.data),a))}));postMessage({messageId:e.data.messageId,resultList:n})}"coot_command"===e.data.message&&(s=doCootCommand(e.data),postMessage(s))};
|