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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "moorhen",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "moorhen.js",
|
|
6
6
|
"types": "./types/main.d.ts",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"forge": {
|
|
27
27
|
"packagerConfig": {
|
|
28
28
|
"ignore": [
|
|
29
|
-
"^/public
|
|
29
|
+
"^/public$",
|
|
30
30
|
"^/public/favicon.ico$",
|
|
31
31
|
"^/public/index.html",
|
|
32
32
|
"^/public/logo192.png",
|
|
@@ -64,15 +64,17 @@
|
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {},
|
|
66
66
|
"scripts": {
|
|
67
|
+
"transpile-graphql-codegen": "npx graphql-codegen",
|
|
67
68
|
"transpile-protobuf": "npx pbjs -t static-module -w es6 -o ./src/protobuf/MoorhenSession.js ./src/protobuf/MoorhenSession.proto",
|
|
68
69
|
"create-version": "npx genversion -e -p ./package.json -d -s ./src/version.js",
|
|
69
|
-
"transpile-ts-worker": "npx tsc --module es2015 --lib webworker --skipLibCheck public/
|
|
70
|
-
"transpile-ts-worker-jest": "npx tsc --module es2015 --lib webworker --skipLibCheck public/
|
|
71
|
-
"prestart": "npm run create-version && npm run transpile-ts-worker && npm run transpile-protobuf",
|
|
70
|
+
"transpile-ts-worker": "npx tsc --module es2015 --lib webworker --skipLibCheck public/CootWorker.ts && sed -i.bak '/export {}/d' public/CootWorker.js && rm public/CootWorker.js.bak",
|
|
71
|
+
"transpile-ts-worker-jest": "npx tsc --module es2015 --lib webworker --skipLibCheck public/CootWorker.ts && sed -i.bak 's/export {}/export { doCootCommand, setModules }/g' public/CootWorker.js && sed -i.bak '/importScripts.*;/d' public/CootWorker.js && sed -i.bak 's/onmessage/function setModules(arg0, arg1) { molecules_container = arg0; cootModule = arg1 }; let postMessage = () => {}; let onmessage/g' public/CootWorker.js && rm public/CootWorker.js.bak",
|
|
72
|
+
"prestart": "npm run create-version && npm run transpile-ts-worker && npm run transpile-protobuf && npm run transpile-graphql-codegen",
|
|
72
73
|
"start": "vite",
|
|
73
|
-
"prebuild": "npm run create-version && npm run transpile-ts-worker && npm run transpile-protobuf",
|
|
74
|
+
"prebuild": "npm run create-version && npm run transpile-ts-worker && npm run transpile-protobuf && npm run transpile-graphql-codegen",
|
|
74
75
|
"build": "vite build",
|
|
75
76
|
"build-release": "npm run prebuild && webpack --mode production --devtool inline-source-map",
|
|
77
|
+
"build-release-dev": "npm run prebuild && webpack --mode development --devtool inline-source-map",
|
|
76
78
|
"dev": "concurrently -k \"BROWSER=none npm start\" \"npm:electron\"",
|
|
77
79
|
"electron": "wait-on tcp:3000 && electron-forge start",
|
|
78
80
|
"package": "npm run build && electron-forge package",
|
|
@@ -80,8 +82,8 @@
|
|
|
80
82
|
"make-linux": "npm run build && electron-forge make --platform linux",
|
|
81
83
|
"make-win32": "npm run build && electron-forge make --platform win32",
|
|
82
84
|
"create-docs": "npm run create-version && npx jsdoc -c jsdoc.json",
|
|
83
|
-
"test": "npm run create-version && npm run transpile-protobuf && npx tsc && npm run transpile-ts-worker-jest && ln -s ./public/
|
|
84
|
-
"test-react": "npm run create-version && npm run transpile-protobuf && npx tsc && node --trace-warnings --experimental-vm-modules --experimental-wasm-threads node_modules/jest/bin/jest.js --forceExit --testPathIgnorePatterns=MoorhenContainer.test.jsx --testPathIgnorePatterns=MoorhenLigandMenu.test.jsx --testPathIgnorePatterns=MoorhenEditMenu.test.jsx --selectProjects react-components"
|
|
85
|
+
"test": "npm run create-version && npm run transpile-protobuf && npm run transpile-graphql-codegen && npx tsc && npm run transpile-ts-worker-jest && ln -s ./public/moorhen.data ./moorhen.data && ln -s ./public/ ./baby-gru && node --trace-warnings --experimental-vm-modules node_modules/jest/bin/jest.js --forceExit",
|
|
86
|
+
"test-react": "npm run create-version && npm run transpile-protobuf && npm run transpile-graphql-codegen && npx tsc && node --trace-warnings --experimental-vm-modules --experimental-wasm-threads node_modules/jest/bin/jest.js --forceExit --testPathIgnorePatterns=MoorhenContainer.test.jsx --testPathIgnorePatterns=MoorhenLigandMenu.test.jsx --testPathIgnorePatterns=MoorhenEditMenu.test.jsx --selectProjects react-components"
|
|
85
87
|
},
|
|
86
88
|
"eslintConfig": {
|
|
87
89
|
"extends": [
|
|
@@ -102,6 +104,7 @@
|
|
|
102
104
|
]
|
|
103
105
|
},
|
|
104
106
|
"devDependencies": {
|
|
107
|
+
"@apollo/client": "^3.10.7",
|
|
105
108
|
"@babel/preset-env": "^7.20.2",
|
|
106
109
|
"@babel/preset-react": "^7.18.6",
|
|
107
110
|
"@electron-forge/cli": "^6.0.5",
|
|
@@ -109,11 +112,14 @@
|
|
|
109
112
|
"@electron-forge/maker-rpm": "^6.0.5",
|
|
110
113
|
"@electron-forge/maker-squirrel": "^6.0.5",
|
|
111
114
|
"@electron-forge/maker-zip": "^6.0.5",
|
|
112
|
-
"@emotion/react": "^11.
|
|
113
|
-
"@emotion/styled": "^11.
|
|
115
|
+
"@emotion/react": "^11.11.4",
|
|
116
|
+
"@emotion/styled": "^11.11.5",
|
|
117
|
+
"@graphql-codegen/cli": "^5.0.2",
|
|
118
|
+
"@graphql-codegen/client-preset": "^4.3.1",
|
|
119
|
+
"@graphql-typed-document-node/core": "^3.2.0",
|
|
114
120
|
"@mui/icons-material": "^5.10.9",
|
|
115
121
|
"@mui/lab": "^5.0.0-alpha.140",
|
|
116
|
-
"@mui/material": "^5.
|
|
122
|
+
"@mui/material": "^5.15.19",
|
|
117
123
|
"@mui/x-tree-view": "^6.17.0",
|
|
118
124
|
"@reduxjs/toolkit": "^1.9.7",
|
|
119
125
|
"@testing-library/dom": "^9.3.4",
|
|
@@ -144,6 +150,7 @@
|
|
|
144
150
|
"express": "^4.18.2",
|
|
145
151
|
"genversion": "^3.1.1",
|
|
146
152
|
"gl-matrix": "^3.4.3",
|
|
153
|
+
"graphql": "^16.9.0",
|
|
147
154
|
"html-react-parser": "^1.4.14",
|
|
148
155
|
"html-webpack-plugin": "^5.5.0",
|
|
149
156
|
"iris-validation": "^0.1.10",
|
|
@@ -173,17 +180,20 @@
|
|
|
173
180
|
"rc-tree": "4.2.2",
|
|
174
181
|
"re-resizable": "^6.9.11",
|
|
175
182
|
"react": "^18.1.0",
|
|
176
|
-
"react-bootstrap": "^2.
|
|
183
|
+
"react-bootstrap": "^2.10.4",
|
|
177
184
|
"react-bootstrap-typeahead": "^6.0.0-alpha.11",
|
|
178
185
|
"react-chartjs-2": "^4.1.0",
|
|
179
186
|
"react-color": "^2.19.3",
|
|
180
187
|
"react-colorful": "^5.6.1",
|
|
181
188
|
"react-dom": "^18.1.0",
|
|
182
189
|
"react-draggable": "^4.4.5",
|
|
190
|
+
"react-hotkeys": "^2.0.0",
|
|
183
191
|
"react-plotly.js": "^2.5.1",
|
|
184
192
|
"react-redux": "^8.1.3",
|
|
185
193
|
"react-simple-code-editor": "^0.13.1",
|
|
186
194
|
"reactcss": "^1.2.3",
|
|
195
|
+
"sass": "^1.77.4",
|
|
196
|
+
"sass-loader": "^14.2.1",
|
|
187
197
|
"style-loader": "^3.3.1",
|
|
188
198
|
"styled-components": "^5.3.9",
|
|
189
199
|
"taffydb": "^2.7.3",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var cootModule,molecules_container,ccp4Module,__assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var r,a=1,t=arguments.length;a<t;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[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(r){var a=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===r?a:3&a|8).toString(16)}))},print=function(e){},parseMonLibListCif=function(e){for(var r=cootModule.parse_mon_lib_list_cif(e),a=r.size(),t=[],o=0;o<a;o++){var s=r.get(o);t.push({three_letter_code:s.three_letter_code,name:s.name.replaceAll("'","").toLowerCase()})}return r.delete(),t},instancedMeshToMeshData=function(e,r,a,t){void 0===a&&(a=!1),void 0===t&&(t=1e4);for(var o=[],s=[],n=[],i=[],c=[],_=[],l=[],u=[],d=[],m=e.geom,p=e.markup,h=m.size(),g=0;g<h;g++){var f=a,v=[],y=[],b=[],S=[],M=[],z=[],A=[],T=m.get(g);"spherical-atoms"===T.name&&(f=!0);for(var x=T.vertices,F=T.triangles,k=F.size(),w=0;w<k;w++){var I=F.get(w).point_id;r?(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=x.size(),D=0;D<J;D++){var C=x.get(D),N=C.pos;y.push(N[0]),y.push(N[1]),y.push(N[2]);var R=C.normal;b.push(R[0]),b.push(R[1]),b.push(R[2])}x.delete();var P=T.instancing_data_A,L=P.size();if(L>0)for(var E=0;E<L;E++){var U=(q=P.get(E)).position;z.push(U[0]),z.push(U[1]),z.push(U[2]);var O=q.colour;M.push(O[0]),M.push(O[1]),M.push(O[2]),M.push(O[3]);var j=q.size;S.push(j[0]),S.push(j[1]),S.push(j[2]),A.push.apply(A,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}P.delete();var B=T.instancing_data_B,V=B.size();if(V>0)for(E=0;E<V;E++){var q;if(!((j=(q=B.get(E)).size)[2]>t)){S.push(j[0]),S.push(j[1]),S.push(j[2]);U=q.position;z.push(U[0]),z.push(U[1]),z.push(U[2]);O=q.colour;M.push(O[0]),M.push(O[1]),M.push(O[2]),M.push(O[3]);var H=q.orientation;A.push(H[0][0]),A.push(H[0][1]),A.push(H[0][2]),A.push(H[0][3]),A.push(H[1][0]),A.push(H[1][1]),A.push(H[1][2]),A.push(H[1][3]),A.push(H[2][0]),A.push(H[2][1]),A.push(H[2][2]),A.push(H[2][3]),A.push(H[3][0]),A.push(H[3][1]),A.push(H[3][2]),A.push(H[3][3])}}B.delete(),n.push(b),s.push(y),o.push(v),i.push(S),_.push(z),l.push(A),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?a?{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,r,a){void 0===r&&(r=!1),void 0===a&&(a=!1);var t=!1,o=(performance.now(),e.vertices),s=e.triangles,n=o.size(),i=s.size(),c=new Uint32Array(3*i),_=new Float32Array(3*n),l=new Float32Array(3*n),u=new Float32Array(4*n);cootModule.getPositionsFromSimpleMesh2(e,_),cootModule.getColoursFromSimpleMesh2(e,u),r?(a?cootModule.getReversedNormalsFromSimpleMesh3(e,l):cootModule.getReversedNormalsFromSimpleMesh2(e,l),cootModule.getPermutedTriangleIndicesFromSimpleMesh2(e,c)):(cootModule.getNormalsFromSimpleMesh2(e,l),cootModule.getTriangleIndicesFromSimpleMesh2(e,c));performance.now();var d=_,m=u,p=l,h=c;return o.delete(),s.delete(),{prim_types:[["TRIANGLES"]],idx_tri:[[h]],vert_tri:[[d]],norm_tri:[[p]],col_tri:[[m]]}},SuperposeResultsToJSArray=function(e){for(var r=e.aligned_pairs,a=r.size(),t=[],o=0;o<a;o++){var s=r.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 r.delete(),{referenceSequence:e.alignment.first,movingSequence:e.alignment.second,supperposeInfo:e.superpose_info,alignedPairsData:t}},colourRulesToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.push(o)}return e.delete(),r},stringArrayArrayToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){for(var o=e.get(t),s=o.size(),n=[],i=0;i<s;i++){var c=o.get(i);n.push(c)}r.push(n),o.delete()}return e.delete(),r},floatArrayToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.push(o)}return e.delete(),r},mapMoleculeCentreInfoToJSObject=function(e){var r=e.updated_centre,a={updated_centre:[r.x(),r.y(),r.z()],success:e.success,suggested_radius:e.suggested_radius,suggested_contour_level:e.suggested_contour_level};return r.delete(),a},textureAsFloatsToJSTextureAsFloats=function(e){var r=e.width*e.height,a=new Float32Array(r);performance.now();cootModule.getTextureArray(e,a);performance.now();return{width:e.width,height:e.height,x_size:e.x_size,y_size:e.y_size,z_position:e.z_position,image_data:a}},fitLigandInfoArrayToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.push(__assign({},o))}return e.delete(),r},intArrayToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.push(o)}return e.delete(),r},stringArrayToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.push(o)}return e.delete(),r},export_map_as_gltf=function(e,r,a,t,o,s){var n="".concat(guid(),".glb");molecules_container.export_map_molecule_as_gltf(e,r,a,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,r,a,t){var o="".concat(guid(),".glb");molecules_container.export_molecular_represenation_as_gltf(e,r,a,t,o);var s=cootModule.FS.readFile(o,{encoding:"binary"});return cootModule.FS_unlink(o),s.buffer},export_molecule_as_gltf=function(e,r,a,t,o,s,n,i,c){var _="".concat(guid(),".glb");molecules_container.export_model_molecule_as_gltf(e,r,a,t,o,s,n,i,c,_);var l=cootModule.FS.readFile(_,{encoding:"binary"});return cootModule.FS_unlink(_),l.buffer},symmetryToJSData=function(e){for(var r=[],a=e.first,t=e.second,o=a.symm_trans,s=o.size(),n=0;n<s;n++){var i=o.get(n),c=i.first,_=i.second,l=t.get(n);r.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(),r},mmrrccStatsToJSArray=function(e){var r=function(e){for(var r=[],a=e.keys(),t=a.size(),o=0;o<t;o++){var s=a.get(o),n=e.get(s);r.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 a.delete(),r},a=e.first,t=e.second,o={"All atoms":r(a),"Side-chains":r(t)};return a.delete(),t.delete(),o},atomSpecToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.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(),r},residueSpecToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.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(),r},stringPairVectorToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.push({first:o.first,second:o.second})}return e.delete(),r},validationDataToJSArray=function(e,r){void 0===r&&(r=null);for(var a=[],t=e.cviv,o=t.size(),s=0;s<o;s++){var n=t.get(s);if(null!==r&&n.chain_id!==r);else{for(var i=n.rviv,c=i.size(),_=0;_<c;_++){var l=i.get(_),u=l.residue_spec;a.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(),a},linesBoxToJSArray=function(e){for(var r=[],a=e.line_segments,t=a.size(),o=0;o<t;o++){for(var s=[],n=a.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(),r.push(s)}return a.delete(),r},vectorHBondToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.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(),r},interestingPlaceDataToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t),s=o.residue_spec;r.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(),r},histogramInfoToJSData=function(e){var r=e.counts;return{counts:intArrayToJSArray(r),bin_width:e.bin_width,base:e.base}},autoReadMtzInfoVectToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t);r.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(),r.some((function(e){return-1===e.idx}))){var s=r.find((function(e){return-1===e.idx}));s&&s.F_obs&&s.Rfree&&s.sigF_obs&&r.forEach((function(e){e.F_obs=s.F_obs,e.sigF_obs=s.sigF_obs,e.Rfree=s.Rfree})),r=r.filter((function(e){return-1!==e.idx}))}return r},ramachandranDataToJSArray=function(e,r){for(var a=[],t=e.size(),o=0;o<t;o++){var s=e.get(o),n=s.phi_psi;n.chain_id===r&&a.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(),a},vectorPairStringIntToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t),s={residue:o.first,slice:o.second};r.push(s)}return e.delete(),r},vectorPairClipperCoordFloatToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;t++){var o=e.get(t),s=o.second,n=o.first,i={x:n.x(),y:n.y(),z:n.z()};n.delete(),r.push({value:s,coord:i})}return e.delete(),r},simpleMeshToLineMeshData=function(e,r){var a=!1,t=(performance.now(),e.vertices),o=e.triangles,s=o.size(),n=t.size(),i=new Uint32Array(6*s),c=new Float32Array(3*n),_=new Float32Array(3*n),l=new Float32Array(4*n);cootModule.getLineIndicesFromSimpleMesh2(e,i),cootModule.getPositionsFromSimpleMesh2(e,c),cootModule.getNormalsFromSimpleMesh2(e,_),cootModule.getColoursFromSimpleMesh2(e,l);performance.now();var u=i,d=c,m=_,p=l;return t.delete(),o.delete(),r?{prim_types:[["NORMALLINES"]],useIndices:[[!0]],idx_tri:[[u]],vert_tri:[[d]],additional_norm_tri:[[m]],norm_tri:[[m]],col_tri:[[p]]}:{prim_types:[["LINES"]],useIndices:[[!0]],idx_tri:[[u]],vert_tri:[[d]],norm_tri:[[m]],col_tri:[[p]]}},auto_read_mtz=function(e){var r=guid(),a=new Uint8Array(e);cootModule.FS_createDataFile(".","".concat(r,".mtz"),a,!0,!0);var t="./".concat(r,".mtz"),o=molecules_container.auto_read_mtz(t);return cootModule.FS_unlink(t),o},replace_map_by_mtz_from_file=function(e,r,a){var t=guid(),o="./".concat(t,".mtz"),s=new Uint8Array(r);cootModule.FS_createDataFile(".",o,s,!0,!0);var n=[e,o,a.F,a.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,r){var a=0,t=new cootModule.Vectormoved_residue_t;return r.forEach((function(e){if(e.length>0){var r=e[0],a=new cootModule.moved_residue_t(r.chain_id,parseInt(r.res_no),"");e.forEach((function(e){var r=new cootModule.moved_atom_t(e.name,e.alt_loc,e.x,e.y,e.z,-1);a.add_atom(r),r.delete()})),t.push_back(a),a.delete()}})),a+=molecules_container.new_positions_for_atoms_in_residues(e,t),t.delete(),a},read_mtz=function(e,r,a){var t=guid(),o=new Uint8Array(e);cootModule.FS_createDataFile(".","".concat(t,".mtz"),o,!0,!0);var s="./".concat(t,".mtz"),n=[s,a.F,a.PHI,"",!1,a.isDifference],i=molecules_container.read_mtz.apply(molecules_container,n);return cootModule.FS_unlink(s),i},associate_data_mtz_file_with_map=function(e,r,a,t,o){var s=new Uint8Array(r.data);cootModule.FS_createDataFile(".","".concat(r.fileName,".mtz"),s,!0,!0);var n="./".concat(r.fileName,".mtz"),i=[e,n,a,t,o];return molecules_container.associate_data_mtz_file_with_map.apply(molecules_container,i),n},read_ccp4_map=function(e,r,a){var t=guid(),o=new Uint8Array(e),s="";r.endsWith(".map.gz")?s="map.gz":r.endsWith(".mrc.gz")&&(s="mrc.gz"),cootModule.FS_createDataFile(".","".concat(t).concat(s),o,!0,!0);var n="./".concat(t).concat(s),i=[n,a],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,r,a){void 0===a&&(a=!1);var t=new cootModule.MapIntFloat4,o=new cootModule.VectorStringUInt_pair;r.forEach((function(e,r){t.set(r+51,e.rgba);var a={first:e.cid,second:r+51};o.push_back(a)})),molecules_container.set_user_defined_bond_colours(e,t),molecules_container.set_user_defined_atom_colour_by_selection(e,o,a),o.delete(),t.delete()},privateerValidationToJSArray=function(e){for(var r=[],a=e.size(),t=0;t<a;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};r.push(_)}return e.delete(),r},headerInfoAsJSObject=function(e){var r=e.author_lines,a=stringArrayToJSArray(r),t=e.compound_lines,o=stringArrayToJSArray(t),s=e.journal_lines,n=stringArrayToJSArray(s);return{title:e.title,author_lines:a,compound_lines:o,journal_lines:n}},doCootCommand=function(e){var r=e.returnType,a=e.command,t=e.commandArgs,o=e.messageId,s=e.myTimeStamp,n=e.message;try{var i=void 0;switch(a){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;case"parse_mon_lib_list_cif":i=parseMonLibListCif.apply(void 0,t);break;default:i=molecules_container[a].apply(molecules_container,t)}var c=void 0;switch(r){case"header_info_t":c=headerInfoAsJSObject(i);break;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_perm3":c=simpleMeshToMeshData(i,!0,!0);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:a,consoleMessage:"Completed ".concat(a," in ").concat(Date.now()-s," ms"),result:{status:"Completed",result:c}}}catch(e){return{messageId:o,myTimeStamp:s,message:n,consoleMessage:"EXCEPTION RAISED IN ".concat(a,", ").concat(e),result:{status:"Exception"}}}};onmessage=function(e){if("CootInitialize"===e.data.message)createRSRModule({onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"moorhen.js",print,printErr:print}).then((function(r){postMessage({consoleMessage:"Initialized molecules_container",message:e.data.message,messageId:e.data.messageId}),(molecules_container=new(cootModule=r).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){print(e)})),createCCP4Module({onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"web_example.js",print,printErr:print}).then((function(e){ccp4Module=e})).catch((function(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 r=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:r}})}else if("get_map"===e.data.message){var a=guid(),t="./".concat(a,".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(r){return doCootCommand(__assign(__assign({},e.data),r))}));postMessage({messageId:e.data.messageId,resultList:n})}if("coot_command"===e.data.message){s=doCootCommand(e.data);postMessage(s)}};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { libcootApi } from "
|
|
2
|
-
import { emscriptem } from "
|
|
3
|
-
import { privateer } from "
|
|
1
|
+
import { libcootApi } from "../src/types/libcoot"
|
|
2
|
+
import { emscriptem } from "../src/types/emscriptem"
|
|
3
|
+
import { privateer } from "../src/types/privateer";
|
|
4
4
|
|
|
5
5
|
// @ts-ignore
|
|
6
6
|
importScripts('./moorhen.js')
|
|
@@ -24,7 +24,24 @@ const guid = () => {
|
|
|
24
24
|
// @ts-ignore
|
|
25
25
|
let print = (stuff) => {
|
|
26
26
|
console.log(stuff)
|
|
27
|
-
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const parseMonLibListCif = (fileContents: string): libcootApi.compoundInfo[] => {
|
|
30
|
+
const table = cootModule.parse_mon_lib_list_cif(fileContents)
|
|
31
|
+
const tableSize = table.size()
|
|
32
|
+
|
|
33
|
+
let result: libcootApi.compoundInfo[] = []
|
|
34
|
+
for (let i = 0; i < tableSize; i++) {
|
|
35
|
+
const compound = table.get(i)
|
|
36
|
+
result.push({
|
|
37
|
+
three_letter_code: compound.three_letter_code,
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
name: compound.name.replaceAll("'", "").toLowerCase()
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
table.delete()
|
|
44
|
+
return result
|
|
28
45
|
}
|
|
29
46
|
|
|
30
47
|
const instancedMeshToMeshData = (instanceMesh: libcootApi.InstancedMeshT, perm: boolean, toSpheres: boolean = false, maxZSize: number = 10000.): libcootApi.InstancedMeshJS => {
|
|
@@ -226,7 +243,7 @@ const instancedMeshToMeshData = (instanceMesh: libcootApi.InstancedMeshT, perm:
|
|
|
226
243
|
}
|
|
227
244
|
}
|
|
228
245
|
|
|
229
|
-
const simpleMeshToMeshData = (simpleMesh: libcootApi.SimpleMeshT, perm: boolean = false): libcootApi.SimpleMeshJS => {
|
|
246
|
+
const simpleMeshToMeshData = (simpleMesh: libcootApi.SimpleMeshT, perm: boolean = false, keepNorm: boolean = false): libcootApi.SimpleMeshJS => {
|
|
230
247
|
|
|
231
248
|
const print_timing = false
|
|
232
249
|
const ts = performance.now()
|
|
@@ -246,7 +263,11 @@ const simpleMeshToMeshData = (simpleMesh: libcootApi.SimpleMeshT, perm: boolean
|
|
|
246
263
|
cootModule.getColoursFromSimpleMesh2(simpleMesh,totCol_C)
|
|
247
264
|
|
|
248
265
|
if (perm){
|
|
249
|
-
|
|
266
|
+
if(keepNorm){
|
|
267
|
+
cootModule.getReversedNormalsFromSimpleMesh3(simpleMesh,totNorm_C)
|
|
268
|
+
} else {
|
|
269
|
+
cootModule.getReversedNormalsFromSimpleMesh2(simpleMesh,totNorm_C)
|
|
270
|
+
}
|
|
250
271
|
cootModule.getPermutedTriangleIndicesFromSimpleMesh2(simpleMesh,totIdxs_C)
|
|
251
272
|
} else {
|
|
252
273
|
cootModule.getNormalsFromSimpleMesh2(simpleMesh,totNorm_C)
|
|
@@ -956,12 +977,12 @@ const read_ccp4_map = (mapData: ArrayBufferLike, name: string, isDiffMap: boolea
|
|
|
956
977
|
return molNo
|
|
957
978
|
}
|
|
958
979
|
|
|
959
|
-
const setUserDefinedBondColours = (imol: number, colours: { cid: string;
|
|
960
|
-
let colourMap = new cootModule.
|
|
980
|
+
const setUserDefinedBondColours = (imol: number, colours: { cid: string; rgba: [number, number, number, number] }[], applyColourToNonCarbonAtoms: boolean = false) => {
|
|
981
|
+
let colourMap = new cootModule.MapIntFloat4()
|
|
961
982
|
let indexedResiduesVec = new cootModule.VectorStringUInt_pair()
|
|
962
983
|
|
|
963
984
|
colours.forEach((colour, index) => {
|
|
964
|
-
colourMap.set(index + 51, colour.
|
|
985
|
+
colourMap.set(index + 51, colour.rgba)
|
|
965
986
|
const i = { first: colour.cid, second: index + 51 }
|
|
966
987
|
indexedResiduesVec.push_back(i)
|
|
967
988
|
})
|
|
@@ -1016,7 +1037,25 @@ const privateerValidationToJSArray = (results: emscriptem.vector<privateer.Resul
|
|
|
1016
1037
|
|
|
1017
1038
|
results.delete();
|
|
1018
1039
|
return data;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
const headerInfoAsJSObject = (result: libcootApi.headerInfo): libcootApi.headerInfoJS => {
|
|
1043
|
+
|
|
1044
|
+
const authorLines = result.author_lines
|
|
1045
|
+
const author_lines: string[] = stringArrayToJSArray(authorLines)
|
|
1046
|
+
|
|
1047
|
+
const compoundLines = result.compound_lines
|
|
1048
|
+
const compound_lines: string[] = stringArrayToJSArray(compoundLines)
|
|
1049
|
+
|
|
1050
|
+
const journalLines = result.journal_lines
|
|
1051
|
+
const journal_lines: string[] = stringArrayToJSArray(journalLines)
|
|
1019
1052
|
|
|
1053
|
+
return {
|
|
1054
|
+
title: result.title,
|
|
1055
|
+
author_lines,
|
|
1056
|
+
compound_lines,
|
|
1057
|
+
journal_lines
|
|
1058
|
+
}
|
|
1020
1059
|
}
|
|
1021
1060
|
|
|
1022
1061
|
const doCootCommand = (messageData: {
|
|
@@ -1054,7 +1093,7 @@ const doCootCommand = (messageData: {
|
|
|
1054
1093
|
cootResult = replace_map_by_mtz_from_file(...commandArgs as [number, ArrayBufferLike, { F: string; PHI: string; }])
|
|
1055
1094
|
break
|
|
1056
1095
|
case 'shim_set_bond_colours':
|
|
1057
|
-
cootResult = setUserDefinedBondColours(...commandArgs as [number, { cid: string;
|
|
1096
|
+
cootResult = setUserDefinedBondColours(...commandArgs as [number, { cid: string; rgba: [number, number, number, number] }[], boolean])
|
|
1058
1097
|
break
|
|
1059
1098
|
case 'shim_export_map_as_gltf':
|
|
1060
1099
|
cootResult = export_map_as_gltf(...commandArgs as [number, number, number, number, number, number])
|
|
@@ -1065,6 +1104,9 @@ const doCootCommand = (messageData: {
|
|
|
1065
1104
|
case 'shim_export_molecular_represenation_as_gltf':
|
|
1066
1105
|
cootResult = export_molecular_represenation_as_gltf(...commandArgs as [number, string, string, string])
|
|
1067
1106
|
break
|
|
1107
|
+
case "parse_mon_lib_list_cif":
|
|
1108
|
+
cootResult = parseMonLibListCif(...commandArgs as [string])
|
|
1109
|
+
break
|
|
1068
1110
|
default:
|
|
1069
1111
|
cootResult = molecules_container[command](...commandArgs)
|
|
1070
1112
|
break
|
|
@@ -1072,6 +1114,9 @@ const doCootCommand = (messageData: {
|
|
|
1072
1114
|
|
|
1073
1115
|
let returnResult;
|
|
1074
1116
|
switch (returnType) {
|
|
1117
|
+
case 'header_info_t':
|
|
1118
|
+
returnResult = headerInfoAsJSObject(cootResult)
|
|
1119
|
+
break
|
|
1075
1120
|
case 'texture_as_floats_t':
|
|
1076
1121
|
returnResult = textureAsFloatsToJSTextureAsFloats(cootResult)
|
|
1077
1122
|
break;
|
|
@@ -1102,6 +1147,9 @@ const doCootCommand = (messageData: {
|
|
|
1102
1147
|
case 'instanced_mesh':
|
|
1103
1148
|
returnResult = instancedMeshToMeshData(cootResult, false, false, 5)
|
|
1104
1149
|
break;
|
|
1150
|
+
case 'mesh_perm3':
|
|
1151
|
+
returnResult = simpleMeshToMeshData(cootResult, true, true)
|
|
1152
|
+
break;
|
|
1105
1153
|
case 'mesh_perm':
|
|
1106
1154
|
returnResult = simpleMeshToMeshData(cootResult, true)
|
|
1107
1155
|
break;
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"short_name": "Moorhen",
|
|
3
|
+
"name": "Moorhen",
|
|
4
|
+
"icons": [
|
|
5
|
+
{
|
|
6
|
+
"src": "favicon.ico",
|
|
7
|
+
"sizes": "64x64 32x32 24x24 16x16",
|
|
8
|
+
"type": "image/x-icon"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"src": "logo192.png",
|
|
12
|
+
"type": "image/png",
|
|
13
|
+
"sizes": "192x192"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"src": "logo512.png",
|
|
17
|
+
"type": "image/png",
|
|
18
|
+
"sizes": "512x512"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"start_url": ".",
|
|
22
|
+
"display": "standalone",
|
|
23
|
+
"theme_color": "#000000",
|
|
24
|
+
"background_color": "#ffffff"
|
|
25
|
+
}
|
|
@@ -127,21 +127,21 @@ div.darkly text.end-label {fill:#FFF !important;}
|
|
|
127
127
|
|
|
128
128
|
.rama-validation-tool-container-row {
|
|
129
129
|
width: 100%;
|
|
130
|
-
margin: 0;
|
|
130
|
+
margin: 0 !important;
|
|
131
131
|
padding: 0;
|
|
132
132
|
height: 100%;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
.big-validation-tool-container-row {
|
|
136
136
|
width: 100%;
|
|
137
|
-
margin: 0;
|
|
137
|
+
margin: 0 !important;
|
|
138
138
|
padding: 0;
|
|
139
139
|
height: calc(100% - 6rem);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
.small-validation-tool-container-row {
|
|
143
143
|
width: 100%;
|
|
144
|
-
margin: 0;
|
|
144
|
+
margin: 0 !important;
|
|
145
145
|
padding: 0;
|
|
146
146
|
height: calc(100% - 19rem);
|
|
147
147
|
}
|
|
@@ -223,6 +223,21 @@ div.darkly text.end-label {fill:#FFF !important;}
|
|
|
223
223
|
justify-content: center;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
+
.moorhen-sidebar-div {
|
|
227
|
+
box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);
|
|
228
|
+
width: 14rem;
|
|
229
|
+
min-height: 3rem;
|
|
230
|
+
height: fit-content;
|
|
231
|
+
overflow-y: auto;
|
|
232
|
+
overflow-x: hidden;
|
|
233
|
+
padding: 0.5rem;
|
|
234
|
+
display: flex;
|
|
235
|
+
border-radius: 0.5rem;
|
|
236
|
+
align-items: center;
|
|
237
|
+
align-content: center;
|
|
238
|
+
justify-content: center;
|
|
239
|
+
}
|
|
240
|
+
|
|
226
241
|
.moorhen-tooltip {
|
|
227
242
|
display: flex;
|
|
228
243
|
z-index: 9999;
|