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.
- package/README.md +142 -0
- package/baby-gru/CootWorker.js +1 -1071
- package/baby-gru/CootWorker.ts +1064 -0
- package/baby-gru/monomers/h/HIS.cif +5 -5
- package/baby-gru/moorhen.css +280 -0
- package/baby-gru/pixmaps/{map.svg → map-grey.svg} +38 -28
- package/baby-gru/pixmaps/moorhen-ligand.svg +213 -0
- package/baby-gru/pixmaps/secondary-structure-grey.svg +158 -0
- package/baby-gru/wasm/RDKit_minimal.js +1 -21
- package/baby-gru/wasm/RDKit_minimal.wasm +0 -0
- package/baby-gru/wasm/cif_pdb_worker.js +1 -33
- package/baby-gru/wasm/coot_env_web.js +1 -5
- package/baby-gru/wasm/crystallography_worker.js +1 -610
- package/baby-gru/wasm/mini_rsr_worker.js +1 -72
- package/baby-gru/wasm/monid_to_pdb_worker.js +1 -253
- package/baby-gru/wasm/moorhen.data +2580 -739
- package/baby-gru/wasm/moorhen.js +1 -21
- package/baby-gru/wasm/moorhen.wasm +0 -0
- package/baby-gru/wasm/moorhen.worker.js +1 -1
- package/baby-gru/wasm/mtz_arraybuffer_worker.js +1 -59
- package/baby-gru/wasm/mtz_worker.js +1 -45
- package/baby-gru/wasm/nma_worker.js +1 -103
- package/baby-gru/wasm/papaparse.min.js +2 -7
- package/baby-gru/wasm/papaparse.min.js.LICENSE.txt +6 -0
- package/baby-gru/wasm/pdb_worker.js +1 -282
- package/baby-gru/wasm/smiles_to_pdb_worker.js +1 -252
- package/baby-gru/wasm/superpose_worker.js +1 -144
- package/baby-gru/wasm/web_example.js +1 -21
- package/baby-gru/wasm/web_example.wasm +0 -0
- package/moorhen.css +1 -276
- package/moorhen.js +86 -0
- package/moorhen.js.LICENSE.txt +101 -0
- package/package.json +72 -51
- package/types/emscriptem.d.ts +25 -0
- package/types/gemmi.d.ts +115 -0
- package/types/index.d.ts +18 -0
- package/types/libcoot.d.ts +450 -0
- package/types/main.d.ts +428 -0
- package/types/mgWebGL.d.ts +398 -0
- package/types/moorhen.d.ts +815 -0
- package/baby-gru/pixmaps/diff-map.png +0 -0
- package/baby-gru/tutorials/legend.html +0 -3
- /package/baby-gru/{keyboard-blank.svg → pixmaps/keyboard-blank.svg} +0 -0
|
@@ -0,0 +1,815 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import { emscriptem } from "./emscriptem";
|
|
3
|
+
import { gemmi } from "./gemmi";
|
|
4
|
+
import { webGL } from "./mgWebGL";
|
|
5
|
+
import { MoorhenCommandCentre } from "../moorhen";
|
|
6
|
+
|
|
7
|
+
export namespace moorhen {
|
|
8
|
+
|
|
9
|
+
interface Preferences {
|
|
10
|
+
name: string;
|
|
11
|
+
static defaultPreferencesValues: PreferencesValues;
|
|
12
|
+
localStorageInstance: {
|
|
13
|
+
clear: () => void;
|
|
14
|
+
setItem: (key: string, value: any) => Promise<string>;
|
|
15
|
+
getItem: (key: string) => Promise<any>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
type ResidueInfo = {
|
|
20
|
+
resCode: string;
|
|
21
|
+
resNum: number;
|
|
22
|
+
cid: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type LigandInfo = {
|
|
26
|
+
resName: string;
|
|
27
|
+
chainName: string;
|
|
28
|
+
resNum: string;
|
|
29
|
+
modelName: string;
|
|
30
|
+
cid: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
type Sequence = {
|
|
34
|
+
name: string;
|
|
35
|
+
chain: string;
|
|
36
|
+
type: number;
|
|
37
|
+
sequence: ResidueInfo[];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
type ResidueSpec = {
|
|
41
|
+
mol_name: string;
|
|
42
|
+
mol_no: string;
|
|
43
|
+
chain_id: string;
|
|
44
|
+
res_no: number;
|
|
45
|
+
res_name: string;
|
|
46
|
+
atom_name: string;
|
|
47
|
+
ins_code: string;
|
|
48
|
+
alt_conf: string;
|
|
49
|
+
cid: string
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
type AtomInfo = {
|
|
53
|
+
pos: [number, number, number];
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
z: number;
|
|
57
|
+
charge: number;
|
|
58
|
+
element: emscriptem.instance<string>;
|
|
59
|
+
symbol: string;
|
|
60
|
+
tempFactor: number;
|
|
61
|
+
serial: number;
|
|
62
|
+
name: string;
|
|
63
|
+
has_altloc: boolean;
|
|
64
|
+
alt_loc: string;
|
|
65
|
+
mol_name: string;
|
|
66
|
+
chain_id: string;
|
|
67
|
+
res_no: string;
|
|
68
|
+
res_name: string;
|
|
69
|
+
label: string;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
type DisplayObject = {
|
|
73
|
+
symmetryMatrices: any;
|
|
74
|
+
[attr: string]: any;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
type cootBondOptions = {
|
|
78
|
+
smoothness: number;
|
|
79
|
+
width: number;
|
|
80
|
+
atomRadiusBondRatio: number;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
type ColourRule = {
|
|
84
|
+
args: (string | number)[];
|
|
85
|
+
color?: string;
|
|
86
|
+
isMultiColourRule: boolean;
|
|
87
|
+
ruleType: string;
|
|
88
|
+
label: string;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
interface Molecule {
|
|
92
|
+
animateRefine(n_cyc: number, n_iteration: number, final_n_cyc?: number): Promise<void>;
|
|
93
|
+
refineResidueRange(chainId: string, start: number, stop: number, ncyc?: number, redraw?: boolean): Promise<void>;
|
|
94
|
+
SSMSuperpose(movChainId: string, refMolNo: number, refChainId: string): Promise<WorkerResponse>;
|
|
95
|
+
refineResiduesUsingAtomCid(cid: string, mode: string, ncyc?: number, redraw?: boolean): Promise<void>;
|
|
96
|
+
deleteCid(cid: string, redraw?: boolean): Promise<{first: number, second: number}>;
|
|
97
|
+
getNumberOfAtoms(): Promise<number>;
|
|
98
|
+
moveMoleculeHere(x: number, y: number, z: number): Promise<void>;
|
|
99
|
+
checkHasGlycans(): Promise<boolean>;
|
|
100
|
+
fitLigandHere(mapMolNo: number, ligandMolNo: number, redraw?: boolean, useConformers?: boolean, conformerCount?: number): Promise<Molecule[]>;
|
|
101
|
+
checkIsLigand(): boolean;
|
|
102
|
+
removeRepresentation(representationId: string): void;
|
|
103
|
+
addRepresentation(style: string, cid: string, isCustom?: boolean, colour?: ColourRule[], bondOptions?: cootBondOptions, applyColourToNonCarbonAtoms?: boolean): Promise<MoleculeRepresentation>;
|
|
104
|
+
getNeighborResiduesCids(selectionCid: string, maxDist: number): Promise<string[]>;
|
|
105
|
+
drawWithStyleFromMesh(style: string, meshObjects: any[], cid?: string): Promise<void>;
|
|
106
|
+
updateWithMovedAtoms(movedResidues: AtomInfo[][]): Promise<void>;
|
|
107
|
+
transformedCachedAtomsAsMovedAtoms(selectionCid?: string): AtomInfo[][];
|
|
108
|
+
copyFragmentUsingCid(cid: string, doRecentre?: boolean, style?: string): Promise<Molecule>;
|
|
109
|
+
hideCid(cid: string, redraw?: boolean): Promise<void>;
|
|
110
|
+
unhideAll(redraw?: boolean): Promise<void>;
|
|
111
|
+
drawUnitCell(): void;
|
|
112
|
+
gemmiAtomsForCid: (cid: string, omitExcludedCids?: boolean) => Promise<AtomInfo[]>;
|
|
113
|
+
mergeMolecules(otherMolecules: Molecule[], doHide?: boolean): Promise<void>;
|
|
114
|
+
setBackgroundColour(backgroundColour: [number, number, number, number]): void;
|
|
115
|
+
addDict(fileContent: string): Promise<void>;
|
|
116
|
+
addDictShim(fileContent: string): void;
|
|
117
|
+
toggleSymmetry(): Promise<void>;
|
|
118
|
+
getDict(newTlc: string): string;
|
|
119
|
+
addLigandOfType(resType: string, fromMolNo?: number): Promise<WorkerResponse>;
|
|
120
|
+
updateAtoms(): Promise<void>;
|
|
121
|
+
rigidBodyFit(cidsString: string, mapNo: number, redraw?: boolean): Promise<void>;
|
|
122
|
+
generateSelfRestraints(cid?: string, maxRadius?: number): Promise<void>;
|
|
123
|
+
clearExtraRestraints(): Promise<WorkerResponse>;
|
|
124
|
+
redo(): Promise<void>;
|
|
125
|
+
undo(): Promise<void>;
|
|
126
|
+
show(style: string, cid?: string): void;
|
|
127
|
+
setSymmetryRadius(radius: number): Promise<void>;
|
|
128
|
+
drawSymmetry: (fetchSymMatrix?: boolean) => Promise<void>;
|
|
129
|
+
getUnitCellParams(): { a: number; b: number; c: number; alpha: number; beta: number; gamma: number; };
|
|
130
|
+
replaceModelWithFile(fileUrl: string, molName: string): Promise<void>
|
|
131
|
+
delete(): Promise<WorkerResponse>
|
|
132
|
+
fetchDefaultColourRules(): Promise<void>;
|
|
133
|
+
fetchIfDirtyAndDraw(arg0: string): Promise<void>;
|
|
134
|
+
drawEnvironment: (cid: string, labelled?: boolean) => Promise<void>;
|
|
135
|
+
centreOn: (selectionCid?: string, animate?: boolean) => Promise<void>;
|
|
136
|
+
drawHover: (cid: string) => Promise<void>;
|
|
137
|
+
drawResidueSelection: (cid: string) => Promise<void>;
|
|
138
|
+
clearBuffersOfStyle: (style: string) => void;
|
|
139
|
+
loadToCootFromURL: (inputFile: string, molName: string, options?: RequestInit) => Promise<Molecule>;
|
|
140
|
+
applyTransform: () => Promise<void>;
|
|
141
|
+
getAtoms(format?: string): Promise<string>;
|
|
142
|
+
hide: (style: string, cid?: string) => void;
|
|
143
|
+
redraw: () => Promise<void>;
|
|
144
|
+
setAtomsDirty: (newVal: boolean) => void;
|
|
145
|
+
hasVisibleBuffers: (excludeBuffers?: string[]) => boolean;
|
|
146
|
+
centreAndAlignViewOn(selectionCid: string, animate?: boolean): Promise<void>;
|
|
147
|
+
buffersInclude: (bufferIn: { id: string; }) => boolean;
|
|
148
|
+
redrawRepresentation: (id: string) => Promise<void>;
|
|
149
|
+
type: string;
|
|
150
|
+
isLigand: boolean;
|
|
151
|
+
excludedCids: string[];
|
|
152
|
+
commandCentre: React.RefObject<CommandCentre>;
|
|
153
|
+
glRef: React.RefObject<webGL.MGWebGL>;
|
|
154
|
+
atomsDirty: boolean;
|
|
155
|
+
isVisible: boolean;
|
|
156
|
+
name: string;
|
|
157
|
+
molNo: number;
|
|
158
|
+
gemmiStructure: gemmi.Structure;
|
|
159
|
+
sequences: Sequence[];
|
|
160
|
+
ligands: LigandInfo[];
|
|
161
|
+
atomCount: number;
|
|
162
|
+
ligandDicts: {[comp_id: string]: string};
|
|
163
|
+
connectedToMaps: number[];
|
|
164
|
+
excludedSelections: string[];
|
|
165
|
+
symmetryOn: boolean;
|
|
166
|
+
symmetryRadius : number;
|
|
167
|
+
symmetryMatrices: number[][][];
|
|
168
|
+
gaussianSurfaceSettings: {
|
|
169
|
+
sigma: number;
|
|
170
|
+
countourLevel: number;
|
|
171
|
+
boxRadius: number;
|
|
172
|
+
gridScale: number;
|
|
173
|
+
};
|
|
174
|
+
isDarkBackground: boolean;
|
|
175
|
+
representations: MoleculeRepresentation[];
|
|
176
|
+
defaultBondOptions: cootBondOptions;
|
|
177
|
+
displayObjectsTransformation: { origin: [number, number, number], quat: any, centre: [number, number, number] }
|
|
178
|
+
uniqueId: string;
|
|
179
|
+
defaultColourRules: ColourRule[];
|
|
180
|
+
restraints: {maxRadius: number, cid: string}[];
|
|
181
|
+
monomerLibraryPath: string;
|
|
182
|
+
hoverRepresentation: MoleculeRepresentation;
|
|
183
|
+
unitCellRepresentation: MoleculeRepresentation;
|
|
184
|
+
environmentRepresentation: MoleculeRepresentation;
|
|
185
|
+
selectionRepresentation: MoleculeRepresentation;
|
|
186
|
+
hasDNA: boolean;
|
|
187
|
+
hasGlycans: boolean;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
type RepresentationStyles = 'VdwSpheres' | 'ligands' | 'CAs' | 'CBs' | 'CDs' | 'gaussian' | 'allHBonds' | 'rama' |
|
|
191
|
+
'rotamer' | 'CRs' | 'MolecularSurface' | 'DishyBases' | 'VdWSurface' | 'Calpha' | 'unitCell' | 'hover' | 'environment' |
|
|
192
|
+
'ligand_environment' | 'contact_dots' | 'chemical_features' | 'ligand_validation' | 'glycoBlocks' | 'restraints' | 'residueSelection'
|
|
193
|
+
|
|
194
|
+
interface MoleculeRepresentation {
|
|
195
|
+
setApplyColourToNonCarbonAtoms(newVal: boolean): void;
|
|
196
|
+
setBondOptions(bondOptions: cootBondOptions): void;
|
|
197
|
+
setStyle(style: string): void;
|
|
198
|
+
setUseDefaultColourRules(arg0: boolean): void;
|
|
199
|
+
setColourRules(ruleList: ColourRule[]): void;
|
|
200
|
+
buildBuffers(arg0: DisplayObject[]): Promise<void>;
|
|
201
|
+
setBuffers(meshObjects: DisplayObject[]): void;
|
|
202
|
+
drawSymmetry(): void
|
|
203
|
+
deleteBuffers(): void;
|
|
204
|
+
draw(): Promise<void>;
|
|
205
|
+
redraw(): Promise<void>;
|
|
206
|
+
setParentMolecule(arg0: Molecule): void;
|
|
207
|
+
show(): void;
|
|
208
|
+
hide(): void;
|
|
209
|
+
setAtomBuffers(arg0: AtomInfo[]): void;
|
|
210
|
+
bondOptions: cootBondOptions;
|
|
211
|
+
useDefaultColourRules: boolean;
|
|
212
|
+
useDefaultBondOptions: boolean;
|
|
213
|
+
applyColourToNonCarbonAtoms: boolean;
|
|
214
|
+
uniqueId: string;
|
|
215
|
+
style: string;
|
|
216
|
+
cid: string;
|
|
217
|
+
visible: boolean;
|
|
218
|
+
buffers: DisplayObject[];
|
|
219
|
+
commandCentre: React.RefObject<CommandCentre>;
|
|
220
|
+
glRef: React.RefObject<webGL.MGWebGL>;
|
|
221
|
+
parentMolecule: Molecule;
|
|
222
|
+
colourRules: ColourRule[];
|
|
223
|
+
styleHasAtomBuffers: boolean;
|
|
224
|
+
styleHasSymmetry: boolean;
|
|
225
|
+
isCustom: boolean;
|
|
226
|
+
styleHasColourRules: boolean;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
type ResidueSelection = {
|
|
230
|
+
molecule: null | moorhen.Molecule;
|
|
231
|
+
first: null | string;
|
|
232
|
+
second: null | string;
|
|
233
|
+
cid: null | string;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
type HoveredAtom = {
|
|
237
|
+
molecule: Molecule | null,
|
|
238
|
+
cid: string | null
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
interface History {
|
|
242
|
+
reset(): void;
|
|
243
|
+
setSkipTracking(arg0: boolean): void;
|
|
244
|
+
setCurrentHead(uniqueId: string): void;
|
|
245
|
+
setCommandCentre(arg0: CommandCentre): void;
|
|
246
|
+
addEntry: (newEntry: cootCommandKwargs) => Promise<void>;
|
|
247
|
+
getEntriesForMolNo: (molNo: number) => cootCommandKwargs[];
|
|
248
|
+
getModifiedMolNo: () => number[];
|
|
249
|
+
lastModifiedMolNo: () => number;
|
|
250
|
+
rebase: (id: string) => void;
|
|
251
|
+
entries: HistoryEntry[];
|
|
252
|
+
headId: string;
|
|
253
|
+
headIsDetached: boolean;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
interface HistoryEntry extends cootCommandKwargs{
|
|
257
|
+
uniqueId: string;
|
|
258
|
+
associatedBackupKey: string;
|
|
259
|
+
label: string;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
interface CommandCentre {
|
|
263
|
+
urlPrefix: string;
|
|
264
|
+
cootWorker: Worker;
|
|
265
|
+
history: History;
|
|
266
|
+
activeMessages: WorkerMessage[];
|
|
267
|
+
unhook: () => void;
|
|
268
|
+
onCootInitialized: null | ( () => void );
|
|
269
|
+
onConsoleChanged: null | ( (msg: string) => void );
|
|
270
|
+
onNewCommand : null | ( (kwargs: any) => void );
|
|
271
|
+
onActiveMessagesChanged: null | ( (activeMessages: WorkerMessage[]) => void );
|
|
272
|
+
cootCommandList(commandList: cootCommandKwargs[]): Promise<WorkerResponse>;
|
|
273
|
+
cootCommand: (kwargs: cootCommandKwargs, doJournal?: boolean) => Promise<WorkerResponse>;
|
|
274
|
+
postMessage: (kwargs: cootCommandKwargs) => Promise<WorkerResponse>;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
interface cootCommandKwargs {
|
|
278
|
+
message?: string;
|
|
279
|
+
data?: {};
|
|
280
|
+
returnType?: string;
|
|
281
|
+
command?: string;
|
|
282
|
+
commandArgs?: any[];
|
|
283
|
+
changesMolecules?: number[];
|
|
284
|
+
[key: string]: any;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
type WorkerMessage = {
|
|
288
|
+
consoleMessage?: string;
|
|
289
|
+
messageId: string;
|
|
290
|
+
handler: (reply: WorkerResponse) => void;
|
|
291
|
+
kwargs: cootCommandKwargs;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
type WorkerResult<T = any> = {
|
|
295
|
+
result: {
|
|
296
|
+
status: string;
|
|
297
|
+
result: T;
|
|
298
|
+
[key: string]: any;
|
|
299
|
+
}
|
|
300
|
+
command: string;
|
|
301
|
+
messageId: string;
|
|
302
|
+
myTimeStamp: string;
|
|
303
|
+
message: string;
|
|
304
|
+
consoleMessage: string;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
type WorkerResponse<T = any> = {
|
|
308
|
+
data: WorkerResult<T>;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
type createCovLinkAtomInput = {
|
|
312
|
+
selectedMolNo: number;
|
|
313
|
+
selectedAtom: string;
|
|
314
|
+
deleteAtom: boolean;
|
|
315
|
+
deleteSelectedAtom: string;
|
|
316
|
+
changeAtomCharge: boolean;
|
|
317
|
+
changeSelectedAtomCharge: string;
|
|
318
|
+
newAtomCharge: string;
|
|
319
|
+
changeBondOrder: boolean;
|
|
320
|
+
changeSelectedBondOrder: string;
|
|
321
|
+
newBondOrder: string;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
interface AceDRGInstance {
|
|
325
|
+
createCovalentLink: (arg0: createCovLinkAtomInput, arg1: createCovLinkAtomInput) => void;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
type selectedMtzColumns = {
|
|
329
|
+
F?: string;
|
|
330
|
+
PHI?: string;
|
|
331
|
+
Fobs?: string;
|
|
332
|
+
SigFobs?: string;
|
|
333
|
+
FreeR?: string;
|
|
334
|
+
isDifference?: boolean;
|
|
335
|
+
useWeight?: boolean;
|
|
336
|
+
calcStructFact?: any;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
interface ScreenRecorder {
|
|
340
|
+
rec: MediaRecorder;
|
|
341
|
+
chunks: Blob[];
|
|
342
|
+
glRef: React.RefObject<webGL.MGWebGL>;
|
|
343
|
+
canvasRef: React.RefObject<HTMLCanvasElement>;
|
|
344
|
+
_isRecording: boolean;
|
|
345
|
+
stopRecording: () => void;
|
|
346
|
+
startRecording: () => void;
|
|
347
|
+
isRecording: () => boolean;
|
|
348
|
+
downloadVideo: (blob: Blob) => Promise<void>;
|
|
349
|
+
takeScreenShot: (fileName: string) => void;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
interface Map {
|
|
353
|
+
getHistogram(nBins?: number, zoomFactor?: number): Promise<libcootApi.HistogramInfoJS>;
|
|
354
|
+
setMapWeight(weight?: number): Promise<WorkerResponse>;
|
|
355
|
+
estimateMapWeight(): Promise<void>;
|
|
356
|
+
setAlpha(alpha: number, redraw?: boolean): Promise<void>;
|
|
357
|
+
centreOnMap(): Promise<void>;
|
|
358
|
+
getSuggestedSettings(): Promise<void>;
|
|
359
|
+
duplicate(): Promise<Map>;
|
|
360
|
+
makeCootUnlive(): void;
|
|
361
|
+
makeCootLive(): void;
|
|
362
|
+
setColour(r: number, g: number, b: number, redraw?: boolean): Promise<void> ;
|
|
363
|
+
setDiffMapColour(type: 'positiveDiffColour' | 'negativeDiffColour', r: number, g: number, b: number, redraw?: boolean): Promise<void> ;
|
|
364
|
+
fetchMapRmsd(): Promise<number>;
|
|
365
|
+
fetchSuggestedLevel(): Promise<number>;
|
|
366
|
+
fetchMapCentre(): Promise<[number, number, number]>;
|
|
367
|
+
replaceMapWithMtzFile(fileUrl: RequestInfo | URL, name: string, selectedColumns: selectedMtzColumns, mapColour?: { [type: string]: {r: number, g: number, b: number} }): Promise<void>;
|
|
368
|
+
associateToReflectionData (selectedColumns: selectedMtzColumns, reflectionData: Uint8Array | ArrayBuffer): Promise<void>;
|
|
369
|
+
delete(): Promise<void>
|
|
370
|
+
doCootContour(x: number, y: number, z: number, radius: number, contourLevel: number): Promise<void>;
|
|
371
|
+
fetchReflectionData(): Promise<WorkerResponse<Uint8Array>>;
|
|
372
|
+
getMap(): Promise<WorkerResponse>;
|
|
373
|
+
loadToCootFromMtzURL(url: RequestInfo | URL, name: string, selectedColumns: selectedMtzColumns, options?: RequestInit): Promise<Map>;
|
|
374
|
+
loadToCootFromMapURL(url: RequestInfo | URL, name: string, isDiffMap?: boolean, options?: RequestInit): Promise<Map>;
|
|
375
|
+
setActive(): Promise<void>;
|
|
376
|
+
setupContourBuffers(objects: any[], keepCootColours?: boolean): void;
|
|
377
|
+
setOtherMapForColouring(molNo: number, min?: number, max?: number): void;
|
|
378
|
+
isEM: boolean;
|
|
379
|
+
suggestedContourLevel: number;
|
|
380
|
+
suggestedRadius: number;
|
|
381
|
+
mapCentre: [number, number, number];
|
|
382
|
+
type: string;
|
|
383
|
+
name: string;
|
|
384
|
+
molNo: number;
|
|
385
|
+
commandCentre: React.RefObject<CommandCentre>;
|
|
386
|
+
glRef: React.RefObject<webGL.MGWebGL>;
|
|
387
|
+
contourLevel: number;
|
|
388
|
+
mapRadius: number;
|
|
389
|
+
mapColour: [number, number, number, number];
|
|
390
|
+
webMGContour: boolean;
|
|
391
|
+
cootContour: boolean;
|
|
392
|
+
displayObjects: any;
|
|
393
|
+
litLines: boolean;
|
|
394
|
+
solid: boolean;
|
|
395
|
+
isDifference: boolean;
|
|
396
|
+
hasReflectionData: boolean;
|
|
397
|
+
selectedColumns: selectedMtzColumns;
|
|
398
|
+
associatedReflectionFileName: string;
|
|
399
|
+
uniqueId: string;
|
|
400
|
+
otherMapForColouring: {molNo: number, min: number, max: number};
|
|
401
|
+
mapRmsd: number;
|
|
402
|
+
suggestedMapWeight: number;
|
|
403
|
+
rgba: {
|
|
404
|
+
mapColour: {r: number, g: number, b: number};
|
|
405
|
+
positiveDiffColour: {r: number, g: number, b: number};
|
|
406
|
+
negativeDiffColour: {r: number, g: number, b: number};
|
|
407
|
+
a: number;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
interface backupKey {
|
|
412
|
+
name?: string;
|
|
413
|
+
label?: string;
|
|
414
|
+
dateTime: string;
|
|
415
|
+
type: string;
|
|
416
|
+
molNames: string[];
|
|
417
|
+
mapNames?: string[];
|
|
418
|
+
mtzNames?: string[];
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
type moleculeSessionData = {
|
|
422
|
+
name: string;
|
|
423
|
+
molNo: number;
|
|
424
|
+
pdbData: string;
|
|
425
|
+
representations: { cid: string, style: string, isCustom: boolean, colourRules: ColourRule[], bondOptions: cootBondOptions }[];
|
|
426
|
+
defaultBondOptions: cootBondOptions;
|
|
427
|
+
defaultColourRules: ColourRule[];
|
|
428
|
+
connectedToMaps: number[];
|
|
429
|
+
ligandDicts: {[comp_id: string]: string};
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
type mapDataSession = {
|
|
433
|
+
name: string;
|
|
434
|
+
molNo: number;
|
|
435
|
+
uniqueId: string;
|
|
436
|
+
mapData: Uint8Array;
|
|
437
|
+
reflectionData: Uint8Array;
|
|
438
|
+
cootContour: boolean;
|
|
439
|
+
contourLevel: number;
|
|
440
|
+
radius: number;
|
|
441
|
+
colour: [number, number, number, number];
|
|
442
|
+
litLines: boolean;
|
|
443
|
+
isDifference: boolean;
|
|
444
|
+
selectedColumns: selectedMtzColumns;
|
|
445
|
+
hasReflectionData: boolean;
|
|
446
|
+
associatedReflectionFileName: string;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
type viewDataSession = {
|
|
450
|
+
origin: [number, number, number];
|
|
451
|
+
backgroundColor: [number, number, number, number];
|
|
452
|
+
ambientLight: [number, number, number, number];
|
|
453
|
+
diffuseLight: [number, number, number, number];
|
|
454
|
+
lightPosition: [number, number, number, number];
|
|
455
|
+
specularLight: [number, number, number, number];
|
|
456
|
+
fogStart: number;
|
|
457
|
+
fogEnd: number;
|
|
458
|
+
zoom: number;
|
|
459
|
+
doDrawClickedAtomLines: boolean;
|
|
460
|
+
clipStart: number;
|
|
461
|
+
clipEnd: number;
|
|
462
|
+
quat4: any[];
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
type backupSession = {
|
|
466
|
+
version: string;
|
|
467
|
+
includesAdditionalMapData: boolean;
|
|
468
|
+
moleculeData: moleculeSessionData[];
|
|
469
|
+
mapData: mapDataSession[];
|
|
470
|
+
viewData: viewDataSession;
|
|
471
|
+
activeMapIndex: number;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
interface TimeCapsule {
|
|
475
|
+
setBusy: (arg0: boolean) => void;
|
|
476
|
+
onIsBusyChange: (arg0: boolean) => void;
|
|
477
|
+
getSortedKeys(): Promise<backupKey[]>;
|
|
478
|
+
cleanupUnusedDataFiles(): Promise<void>;
|
|
479
|
+
removeBackup(key: string): Promise<void>;
|
|
480
|
+
updateDataFiles(): Promise<(string | void)[]>;
|
|
481
|
+
createBackup(keyString: string, sessionString: string): Promise<string>;
|
|
482
|
+
fetchSession(arg0: boolean): Promise<backupSession>;
|
|
483
|
+
moleculesRef: React.RefObject<Molecule[]>;
|
|
484
|
+
mapsRef: React.RefObject<Map[]>;
|
|
485
|
+
glRef: React.RefObject<webGL.MGWebGL>;
|
|
486
|
+
activeMapRef: React.RefObject<Map>;
|
|
487
|
+
busy: boolean;
|
|
488
|
+
modificationCount: number;
|
|
489
|
+
modificationCountBackupThreshold: number;
|
|
490
|
+
maxBackupCount: number;
|
|
491
|
+
version: string;
|
|
492
|
+
disableBackups: boolean;
|
|
493
|
+
storageInstance: LocalStorageInstance;
|
|
494
|
+
addModification: () => Promise<string>;
|
|
495
|
+
init: () => Promise<void>;
|
|
496
|
+
retrieveBackup: (arg0: string) => Promise<string | ArrayBuffer>;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
type AtomRightClickEventInfo = {
|
|
500
|
+
atom: {label: string};
|
|
501
|
+
buffer: {id: string};
|
|
502
|
+
coords: string,
|
|
503
|
+
pageX: number;
|
|
504
|
+
pageY: number;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
type AtomRightClickEvent = CustomEvent<AtomRightClickEventInfo>
|
|
508
|
+
|
|
509
|
+
type AtomDraggedEvent = CustomEvent<{ atom: {
|
|
510
|
+
atom: {
|
|
511
|
+
label: string;
|
|
512
|
+
};
|
|
513
|
+
buffer: any;
|
|
514
|
+
} }>
|
|
515
|
+
|
|
516
|
+
type OriginUpdateEvent = CustomEvent<{ origin: [number, number, number]; }>
|
|
517
|
+
|
|
518
|
+
type WheelContourLevelEvent = CustomEvent<{ factor: number; }>
|
|
519
|
+
|
|
520
|
+
type MapRadiusChangeEvent = CustomEvent<{ factor: number; }>
|
|
521
|
+
|
|
522
|
+
type ScoresUpdateEvent = CustomEvent<{
|
|
523
|
+
origin: [number, number, number];
|
|
524
|
+
modifiedMolecule: number;
|
|
525
|
+
}>
|
|
526
|
+
|
|
527
|
+
type ConnectMapsInfo = {
|
|
528
|
+
molecule: number;
|
|
529
|
+
maps: [number, number, number];
|
|
530
|
+
uniqueMaps: number[];
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
type AtomClickedEvent = CustomEvent<{
|
|
534
|
+
buffer: { id: string };
|
|
535
|
+
atom: { label: string };
|
|
536
|
+
isResidueSelection: boolean;
|
|
537
|
+
}>
|
|
538
|
+
|
|
539
|
+
type ConnectMapsEvent = CustomEvent<ConnectMapsInfo>
|
|
540
|
+
|
|
541
|
+
type NewMapContourEvent = CustomEvent<{
|
|
542
|
+
molNo: number;
|
|
543
|
+
mapRadius: number;
|
|
544
|
+
cootContour: boolean;
|
|
545
|
+
contourLevel: number;
|
|
546
|
+
mapColour: [number, number, number, number],
|
|
547
|
+
litLines: boolean;
|
|
548
|
+
}>
|
|
549
|
+
|
|
550
|
+
interface LocalStorageInstance {
|
|
551
|
+
clear: () => Promise<void>;
|
|
552
|
+
keys: () => Promise<string[]>;
|
|
553
|
+
setItem: (key: string, value: string) => Promise<string>;
|
|
554
|
+
removeItem: (key: string) => Promise<void>;
|
|
555
|
+
getItem: (key: string) => Promise<string>;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
type Shortcut = {
|
|
559
|
+
modifiers: string[];
|
|
560
|
+
keyPress: string;
|
|
561
|
+
label: string;
|
|
562
|
+
viewOnly: boolean;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
interface ContextSetters {
|
|
566
|
+
setDefaultMapSamplingRate: React.Dispatch<React.SetStateAction<number>>;
|
|
567
|
+
setDoShadowDepthDebug: React.Dispatch<React.SetStateAction<boolean>>;
|
|
568
|
+
setDefaultBackgroundColor: React.Dispatch<React.SetStateAction<[number, number, number, number]>>;
|
|
569
|
+
setDoShadow: React.Dispatch<React.SetStateAction<boolean>>;
|
|
570
|
+
setDoSSAO: React.Dispatch<React.SetStateAction<boolean>>;
|
|
571
|
+
setDoOutline: React.Dispatch<React.SetStateAction<boolean>>;
|
|
572
|
+
setDoSpinTest: React.Dispatch<React.SetStateAction<boolean>>;
|
|
573
|
+
setClipCap: React.Dispatch<React.SetStateAction<boolean>>;
|
|
574
|
+
setResetClippingFogging: React.Dispatch<React.SetStateAction<boolean>>;
|
|
575
|
+
setUseOffScreenBuffers: React.Dispatch<React.SetStateAction<boolean>>;
|
|
576
|
+
setDepthBlurRadius: React.Dispatch<React.SetStateAction<number>>;
|
|
577
|
+
setDepthBlurDepth: React.Dispatch<React.SetStateAction<number>>;
|
|
578
|
+
setSsaoRadius: React.Dispatch<React.SetStateAction<number>>;
|
|
579
|
+
setSsaoBias: React.Dispatch<React.SetStateAction<number>>;
|
|
580
|
+
setDoPerspectiveProjection: React.Dispatch<React.SetStateAction<boolean>>;
|
|
581
|
+
setDrawInteractions: React.Dispatch<React.SetStateAction<boolean>>;
|
|
582
|
+
setDrawMissingLoops: React.Dispatch<React.SetStateAction<boolean>>;
|
|
583
|
+
setDrawAxes: React.Dispatch<React.SetStateAction<boolean>>;
|
|
584
|
+
setDrawCrosshairs: React.Dispatch<React.SetStateAction<boolean>>;
|
|
585
|
+
setDrawFPS: React.Dispatch<React.SetStateAction<boolean>>;
|
|
586
|
+
setDefaultExpandDisplayCards: React.Dispatch<React.SetStateAction<boolean>>;
|
|
587
|
+
setEnableRefineAfterMod: React.Dispatch<React.SetStateAction<boolean>>;
|
|
588
|
+
setDefaultMapLitLines: React.Dispatch<React.SetStateAction<boolean>>;
|
|
589
|
+
setMapLineWidth: React.Dispatch<React.SetStateAction<number>>;
|
|
590
|
+
setAtomLabelDepthMode: React.Dispatch<React.SetStateAction<boolean>>;
|
|
591
|
+
setMouseSensitivity: React.Dispatch<React.SetStateAction<number>>;
|
|
592
|
+
setShowShortcutToast: React.Dispatch<React.SetStateAction<boolean>>;
|
|
593
|
+
setMakeBackups: React.Dispatch<React.SetStateAction<boolean>>;
|
|
594
|
+
setContourWheelSensitivityFactor: React.Dispatch<React.SetStateAction<number>>;
|
|
595
|
+
setDevMode: React.Dispatch<React.SetStateAction<boolean>>;
|
|
596
|
+
setEnableTimeCapsule: React.Dispatch<React.SetStateAction<boolean>>;
|
|
597
|
+
setShowScoresToast: React.Dispatch<React.SetStateAction<boolean>>;
|
|
598
|
+
setDefaultMapSurface: React.Dispatch<React.SetStateAction<boolean>>;
|
|
599
|
+
setDefaultBondSmoothness: React.Dispatch<React.SetStateAction<number>>;
|
|
600
|
+
setGLLabelsFontFamily: React.Dispatch<React.SetStateAction<string>>;
|
|
601
|
+
setGLLabelsFontSize: React.Dispatch<React.SetStateAction<number>>;
|
|
602
|
+
setMaxBackupCount: React.Dispatch<React.SetStateAction<number>>;
|
|
603
|
+
setModificationCountBackupThreshold: React.Dispatch<React.SetStateAction<number>>;
|
|
604
|
+
setShortcutOnHoveredAtom: React.Dispatch<React.SetStateAction<boolean>>;
|
|
605
|
+
setZoomWheelSensitivityFactor: React.Dispatch<React.SetStateAction<number>>;
|
|
606
|
+
setShortCuts: React.Dispatch<React.SetStateAction<string>>;
|
|
607
|
+
setDefaultUpdatingScores: React.Dispatch<{
|
|
608
|
+
action: 'Add' | 'Remove' | 'Overwrite';
|
|
609
|
+
item?: string;
|
|
610
|
+
items?: string[];
|
|
611
|
+
}>;
|
|
612
|
+
setTransparentModalsOnMouseOut: React.Dispatch<React.SetStateAction<boolean>>;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
interface PreferencesValues {
|
|
616
|
+
version?: string;
|
|
617
|
+
isMounted?: boolean;
|
|
618
|
+
defaultMapSamplingRate: number;
|
|
619
|
+
transparentModalsOnMouseOut: boolean;
|
|
620
|
+
defaultBackgroundColor: [number, number, number, number];
|
|
621
|
+
atomLabelDepthMode: boolean;
|
|
622
|
+
enableTimeCapsule: boolean;
|
|
623
|
+
defaultExpandDisplayCards: boolean;
|
|
624
|
+
defaultMapLitLines: boolean;
|
|
625
|
+
enableRefineAfterMod: boolean;
|
|
626
|
+
drawCrosshairs: boolean;
|
|
627
|
+
drawAxes: boolean;
|
|
628
|
+
drawFPS: boolean;
|
|
629
|
+
drawMissingLoops: boolean;
|
|
630
|
+
drawInteractions: boolean;
|
|
631
|
+
doPerspectiveProjection: boolean;
|
|
632
|
+
useOffScreenBuffers: boolean;
|
|
633
|
+
depthBlurRadius: number;
|
|
634
|
+
depthBlurDepth: number;
|
|
635
|
+
ssaoBias: number;
|
|
636
|
+
ssaoRadius: number;
|
|
637
|
+
doShadowDepthDebug: boolean;
|
|
638
|
+
doShadow: boolean;
|
|
639
|
+
doSSAO: boolean;
|
|
640
|
+
doOutline: boolean;
|
|
641
|
+
GLLabelsFontFamily: string;
|
|
642
|
+
GLLabelsFontSize: number;
|
|
643
|
+
doSpinTest: boolean;
|
|
644
|
+
mouseSensitivity: number;
|
|
645
|
+
zoomWheelSensitivityFactor: number;
|
|
646
|
+
contourWheelSensitivityFactor: number;
|
|
647
|
+
mapLineWidth: number;
|
|
648
|
+
makeBackups: boolean;
|
|
649
|
+
showShortcutToast: boolean;
|
|
650
|
+
defaultMapSurface: boolean;
|
|
651
|
+
defaultBondSmoothness: number,
|
|
652
|
+
showScoresToast: boolean;
|
|
653
|
+
shortcutOnHoveredAtom: boolean;
|
|
654
|
+
resetClippingFogging: boolean;
|
|
655
|
+
clipCap: boolean;
|
|
656
|
+
defaultUpdatingScores: string[],
|
|
657
|
+
maxBackupCount: number;
|
|
658
|
+
modificationCountBackupThreshold: number;
|
|
659
|
+
devMode: boolean;
|
|
660
|
+
shortCuts: string | {
|
|
661
|
+
[label: string]: Shortcut;
|
|
662
|
+
};
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
interface Context extends ContextSetters, PreferencesValues { }
|
|
666
|
+
|
|
667
|
+
type ContextButtonProps = {
|
|
668
|
+
mode: 'context';
|
|
669
|
+
monomerLibraryPath: string;
|
|
670
|
+
urlPrefix: string;
|
|
671
|
+
commandCentre: React.RefObject<CommandCentre>
|
|
672
|
+
selectedMolecule: Molecule;
|
|
673
|
+
chosenAtom: ResidueSpec;
|
|
674
|
+
glRef: React.RefObject<webGL.MGWebGL>;
|
|
675
|
+
setOverlayContents: React.Dispatch<React.SetStateAction<JSX.Element>>;
|
|
676
|
+
setShowOverlay: React.Dispatch<React.SetStateAction<boolean>>;
|
|
677
|
+
timeCapsuleRef: React.RefObject<TimeCapsule>;
|
|
678
|
+
setToolTip: React.Dispatch<React.SetStateAction<string>>;
|
|
679
|
+
setShowContextMenu: React.Dispatch<React.SetStateAction<false | AtomRightClickEventInfo>>;
|
|
680
|
+
setOpacity: React.Dispatch<React.SetStateAction<number>>;
|
|
681
|
+
setOverrideMenuContents: React.Dispatch<React.SetStateAction<JSX.Element | boolean>>;
|
|
682
|
+
showContextMenu: false | AtomRightClickEventInfo;
|
|
683
|
+
defaultActionButtonSettings: actionButtonSettings;
|
|
684
|
+
setDefaultActionButtonSettings: (arg0: {key: string; value: string}) => void;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
interface ContainerRefs {
|
|
688
|
+
glRef: React.MutableRefObject<null | webGL.MGWebGL>;
|
|
689
|
+
timeCapsuleRef: React.MutableRefObject<null | TimeCapsule>;
|
|
690
|
+
commandCentre: React.MutableRefObject<CommandCentre>;
|
|
691
|
+
videoRecorderRef: React.MutableRefObject<null | ScreenRecorder>;
|
|
692
|
+
moleculesRef: React.MutableRefObject<null | Molecule[]>;
|
|
693
|
+
mapsRef: React.MutableRefObject<null | Map[]>;
|
|
694
|
+
activeMapRef: React.MutableRefObject<Map>;
|
|
695
|
+
lastHoveredAtomRef: React.MutableRefObject<null | HoveredAtom>;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
interface ContainerOptionalProps {
|
|
699
|
+
onUserPreferencesChange: (key: string, value: any) => void;
|
|
700
|
+
disableFileUploads: boolean;
|
|
701
|
+
urlPrefix: string;
|
|
702
|
+
extraNavBarMenus: {name: string; ref: React.RefObject<any> ; icon: JSX.Element; JSXElement: JSX.Element}[];
|
|
703
|
+
extraNavBarModals: {name: string; ref: React.RefObject<any> ; icon: JSX.Element; JSXElement: JSX.Element; show: boolean; setShow: React.Dispatch<React.SetStateAction<boolean>>;}[];
|
|
704
|
+
viewOnly: boolean;
|
|
705
|
+
extraDraggableModals: JSX.Element[];
|
|
706
|
+
monomerLibraryPath: string;
|
|
707
|
+
setMoorhenDimensions?: null | ( () => [number, number] );
|
|
708
|
+
extraFileMenuItems: JSX.Element[];
|
|
709
|
+
allowScripting: boolean;
|
|
710
|
+
backupStorageInstance?: any;
|
|
711
|
+
extraEditMenuItems: JSX.Element[];
|
|
712
|
+
extraCalculateMenuItems: JSX.Element[];
|
|
713
|
+
aceDRGInstance: AceDRGInstance | null;
|
|
714
|
+
includeNavBarMenuNames: string[]
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
interface ContainerProps extends Partial<ContainerRefs>, Partial<ContainerOptionalProps> { }
|
|
718
|
+
|
|
719
|
+
interface CollectedProps extends ContainerRefs, ContainerOptionalProps { }
|
|
720
|
+
|
|
721
|
+
interface State {
|
|
722
|
+
molecules: Molecule[];
|
|
723
|
+
maps: Map[];
|
|
724
|
+
canvasStates: {
|
|
725
|
+
backgroundColor: [number, number, number, number];
|
|
726
|
+
height: number;
|
|
727
|
+
width: number;
|
|
728
|
+
isDark: boolean
|
|
729
|
+
};
|
|
730
|
+
mapSettings: {
|
|
731
|
+
defaultMapSamplingRate: number;
|
|
732
|
+
defaultMapLitLines: boolean;
|
|
733
|
+
mapLineWidth: number;
|
|
734
|
+
defaultMapSurface: boolean;
|
|
735
|
+
};
|
|
736
|
+
mouseSettings: {
|
|
737
|
+
contourWheelSensitivityFactor: number;
|
|
738
|
+
zoomWheelSensitivityFactor: number;
|
|
739
|
+
mouseSensitivity: number;
|
|
740
|
+
};
|
|
741
|
+
backupSettings: {
|
|
742
|
+
enableTimeCapsule: boolean;
|
|
743
|
+
makeBackups: boolean;
|
|
744
|
+
maxBackupCount: number;
|
|
745
|
+
modificationCountBackupThreshold: number;
|
|
746
|
+
};
|
|
747
|
+
updatingMapScoresSettings: {
|
|
748
|
+
defaultUpdatingScores: string[];
|
|
749
|
+
showScoresToast: boolean;
|
|
750
|
+
};
|
|
751
|
+
shortcutSettings: {
|
|
752
|
+
shortcutOnHoveredAtom: boolean;
|
|
753
|
+
showShortcutToast: boolean;
|
|
754
|
+
shortCuts: string;
|
|
755
|
+
};
|
|
756
|
+
labelSettings: {
|
|
757
|
+
atomLabelDepthMode: boolean;
|
|
758
|
+
GLLabelsFontFamily: string;
|
|
759
|
+
GLLabelsFontSize: number;
|
|
760
|
+
availableFonts: string[];
|
|
761
|
+
};
|
|
762
|
+
sceneSettings: {
|
|
763
|
+
defaultBackgroundColor: [number, number, number, number];
|
|
764
|
+
drawCrosshairs: boolean;
|
|
765
|
+
drawAxes: boolean;
|
|
766
|
+
drawFPS: boolean;
|
|
767
|
+
drawMissingLoops: boolean;
|
|
768
|
+
drawInteractions: boolean;
|
|
769
|
+
doPerspectiveProjection: boolean;
|
|
770
|
+
useOffScreenBuffers: boolean;
|
|
771
|
+
depthBlurRadius: number;
|
|
772
|
+
depthBlurDepth: number;
|
|
773
|
+
ssaoBias: number;
|
|
774
|
+
ssaoRadius: number;
|
|
775
|
+
doShadowDepthDebug: boolean;
|
|
776
|
+
doShadow: boolean;
|
|
777
|
+
doSSAO: boolean;
|
|
778
|
+
doOutline: boolean;
|
|
779
|
+
doSpinTest: boolean;
|
|
780
|
+
defaultBondSmoothness: number,
|
|
781
|
+
resetClippingFogging: boolean;
|
|
782
|
+
clipCap: boolean;
|
|
783
|
+
};
|
|
784
|
+
miscAppSettings: {
|
|
785
|
+
defaultExpandDisplayCards: boolean;
|
|
786
|
+
transparentModalsOnMouseOut: boolean;
|
|
787
|
+
enableRefineAfterMod: boolean;
|
|
788
|
+
};
|
|
789
|
+
generalStates: {
|
|
790
|
+
devMode: boolean;
|
|
791
|
+
userPreferencesMounted: boolean;
|
|
792
|
+
appTitle: string;
|
|
793
|
+
cootInitialized: boolean;
|
|
794
|
+
notificationContent: JSX.Element;
|
|
795
|
+
activeMap: Map;
|
|
796
|
+
theme: string;
|
|
797
|
+
residueSelection: ResidueSelection;
|
|
798
|
+
};
|
|
799
|
+
hoveringStates: {
|
|
800
|
+
enableAtomHovering: boolean;
|
|
801
|
+
hoveredAtom: HoveredAtom;
|
|
802
|
+
cursorStyle: string;
|
|
803
|
+
};
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
type actionButtonSettings = {
|
|
807
|
+
mutate: 'ALA' | 'CYS' | 'ASP' | 'GLU' | 'PHE' | 'GLY' | 'HIS' | 'ILE' | 'LYS' | 'LEU' | 'MET' | 'ASN' | 'PRO' | 'GLN' | 'ARG' | 'SER' | 'THR' | 'VAL' | 'TRP' | 'TYR';
|
|
808
|
+
refine: 'SINGLE' | 'TRIPLE' | 'QUINTUPLE' | 'HEPTUPLE' | 'SPHERE' | 'BIG_SPHERE' | 'CHAIN' | 'ALL';
|
|
809
|
+
delete: 'ATOM' | 'RESIDUE' | 'RESIDUE HYDROGENS' | 'RESIDUE SIDE-CHAIN' | 'CHAIN' | 'CHAIN HYDROGENS' | 'MOLECULE HYDROGENS';
|
|
810
|
+
rotateTranslate: 'ATOM' | 'RESIDUE' | 'CHAIN' | 'MOLECULE';
|
|
811
|
+
drag: 'SINGLE' | 'TRIPLE' | 'QUINTUPLE' | 'HEPTUPLE' | 'SPHERE';
|
|
812
|
+
rigidBodyFit: 'SINGLE' | 'TRIPLE' | 'QUINTUPLE' | 'HEPTUPLE' | 'CHAIN' | 'ALL';
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
}
|