moorhen 0.9.0 → 0.9.1
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 +11 -1
- package/baby-gru/CootWorker.js +1 -1
- package/baby-gru/CootWorker.ts +55 -7
- package/baby-gru/monomers/p/PRO.cif +118 -115
- package/baby-gru/monomers/t/TYR.cif +26 -25
- package/baby-gru/moorhen.css +15 -0
- package/baby-gru/moorhen.data +198 -196
- package/baby-gru/moorhen.js +1 -1
- package/baby-gru/moorhen.wasm +0 -0
- package/baby-gru/moorhen.worker.js +1 -1
- package/baby-gru/web_example.js +1 -1
- package/baby-gru/web_example.wasm +0 -0
- package/moorhen.js +91 -14
- package/package.json +3 -2
- package/types/libcoot.d.ts +21 -2
- package/types/main.d.ts +54 -54
- package/types/mgWebGL.d.ts +3 -1
- package/types/moorhen.d.ts +127 -42
package/README.md
CHANGED
|
@@ -43,11 +43,21 @@ Binaries are available on the releases page. Please read the instructions there
|
|
|
43
43
|
* git
|
|
44
44
|
* curl
|
|
45
45
|
* patch
|
|
46
|
-
*
|
|
46
|
+
* ninja
|
|
47
|
+
* meson
|
|
47
48
|
* cmake
|
|
49
|
+
* flex
|
|
50
|
+
* bison
|
|
48
51
|
* A *native* C++ compiler. (This is required for part of the `boost` build system).
|
|
49
52
|
* `autoconf`,`autotools`
|
|
50
53
|
* `libtool`
|
|
54
|
+
* emsdk/emscripten (Steps 1 and 2 below)
|
|
55
|
+
\
|
|
56
|
+
\
|
|
57
|
+
Most of these (except emscripten) can be installed by somelike like `sudo apt install git cmake curl patch meson ninja-build autoconf automake libtool flex bison g++` on a Debian like system. All of these should be available through Homebrew or Ports on macOS.
|
|
58
|
+
\
|
|
59
|
+
\
|
|
60
|
+
Moorhen should build on any reasonably recent version of macOS (Intel or Arm64) and any reasonly recent Linux distribution (x86_64 or aarch64). Tested on Ubuntu 22.04 x86_64, Raspberry Pi OS Bookworm/Debian 12 on Pi5, macOS Monteray and Sonama and others.
|
|
51
61
|
|
|
52
62
|
1. Install emscripten (following [https://emscripten.org/docs/getting_started/downloads.html](https://emscripten.org/docs/getting_started/downloads.html)):
|
|
53
63
|
`git clone https://github.com/emscripten-core/emsdk.git`
|
package/baby-gru/CootWorker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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))};
|
|
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){console.log(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,g=m.size(),h=0;h<g;h++){var f=a,v=[],y=[],b=[],S=[],M=[],z=[],A=[],T=m.get(h);"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),l.push(z),_.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:[l,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:[l,null],instance_orientations:[_,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:[l,null],instance_orientations:[_,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:[l],instance_orientations:[_]}},simpleMeshToMeshData=function(e,r,a){void 0===r&&(r=!1),void 0===a&&(a=!1);var t=(performance.now(),e.vertices),o=e.triangles,s=t.size(),n=o.size(),i=new Uint32Array(3*n),c=new Float32Array(3*s),l=new Float32Array(3*s),_=new Float32Array(4*s);cootModule.getPositionsFromSimpleMesh2(e,c),cootModule.getColoursFromSimpleMesh2(e,_),r?(a?cootModule.getReversedNormalsFromSimpleMesh3(e,l):cootModule.getReversedNormalsFromSimpleMesh2(e,l),cootModule.getPermutedTriangleIndicesFromSimpleMesh2(e,i)):(cootModule.getNormalsFromSimpleMesh2(e,l),cootModule.getTriangleIndicesFromSimpleMesh2(e,i)),performance.now();var u=c,d=_,m=l,p=i;return t.delete(),o.delete(),{prim_types:[["TRIANGLES"]],idx_tri:[[p]],vert_tri:[[u]],norm_tri:[[m]],col_tri:[[d]]}},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,l=c.residue_spec,_={reference:{chainId:i.chain_id,insCode:i.ins_code,seqNum:i.res_no,restype:"UNK",value:n.function_value,label:n.label},moving:{chainId:l.chain_id,insCode:l.ins_code,seqNum:l.res_no,restype:"UNK",value:c.function_value,label:c.label}};t.push(_)}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),t=performance.now();cootModule.getTextureArray(e,a);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: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 l="".concat(guid(),".glb");molecules_container.export_model_molecule_as_gltf(e,r,a,t,o,s,n,i,c,l);var _=cootModule.FS.readFile(l,{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,l=i.second,_=t.get(n);r.push({x:c.x(),y:c.y(),z:c.z(),asString:c.symm_as_string,isym:c.isym(),us:l.us,ws:l.ws,vs:l.vs,matrix:_}),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(),l=0;l<c;l++){var _=i.get(l),u=_.residue_spec;a.push({chainId:u.chain_id,insCode:u.ins_code,seqNum:u.res_no,restype:"UNK",value:_.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 l=n.get(c),_=l.getStart(),u=l.getFinish(),d=l.amplitude(),m={x:_.x(),y:_.y(),z:_.z()},p={x:u.x(),y:u.y(),z:u.z()};s.push({start:m,end:p,dist:d}),_.delete(),u.delete(),l.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=(performance.now(),e.vertices),t=e.triangles,o=t.size(),s=a.size(),n=new Uint32Array(6*o),i=new Float32Array(3*s),c=new Float32Array(3*s),l=new Float32Array(4*s);cootModule.getLineIndicesFromSimpleMesh2(e,n),cootModule.getPositionsFromSimpleMesh2(e,i),cootModule.getNormalsFromSimpleMesh2(e,c),cootModule.getColoursFromSimpleMesh2(e,l),performance.now();var _=n,u=i,d=c,m=l;return a.delete(),t.delete(),r?{prim_types:[["NORMALLINES"]],useIndices:[[!0]],idx_tri:[[_]],vert_tri:[[u]],additional_norm_tri:[[d]],norm_tri:[[d]],col_tri:[[m]]}:{prim_types:[["LINES"]],useIndices:[[!0]],idx_tri:[[_]],vert_tri:[[u]],norm_tri:[[d]],col_tri:[[m]]}},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 l={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(l)}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 console.log(e),{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){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 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})}"coot_command"===e.data.message&&(s=doCootCommand(e.data),postMessage(s))};
|
package/baby-gru/CootWorker.ts
CHANGED
|
@@ -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;
|
|
@@ -7,34 +7,36 @@ _chem_comp.group
|
|
|
7
7
|
_chem_comp.number_atoms_all
|
|
8
8
|
_chem_comp.number_atoms_nh
|
|
9
9
|
_chem_comp.desc_level
|
|
10
|
-
PRO PRO PROLINE P-peptide
|
|
10
|
+
PRO PRO PROLINE P-peptide 17 8 .
|
|
11
11
|
|
|
12
12
|
data_comp_PRO
|
|
13
13
|
loop_
|
|
14
14
|
_chem_comp_atom.comp_id
|
|
15
15
|
_chem_comp_atom.atom_id
|
|
16
|
+
_chem_comp_atom.alt_atom_id
|
|
16
17
|
_chem_comp_atom.type_symbol
|
|
17
18
|
_chem_comp_atom.type_energy
|
|
18
19
|
_chem_comp_atom.charge
|
|
19
20
|
_chem_comp_atom.x
|
|
20
21
|
_chem_comp_atom.y
|
|
21
22
|
_chem_comp_atom.z
|
|
22
|
-
PRO N
|
|
23
|
-
PRO CA
|
|
24
|
-
PRO C
|
|
25
|
-
PRO O
|
|
26
|
-
PRO CB
|
|
27
|
-
PRO CG
|
|
28
|
-
PRO CD
|
|
29
|
-
PRO OXT O OC
|
|
30
|
-
PRO H
|
|
31
|
-
PRO
|
|
32
|
-
PRO
|
|
33
|
-
PRO
|
|
34
|
-
PRO
|
|
35
|
-
PRO
|
|
36
|
-
PRO
|
|
37
|
-
PRO
|
|
23
|
+
PRO N N N NT2 1 39.160 37.649 83.026
|
|
24
|
+
PRO CA CA C CH1 0 38.550 38.680 82.125
|
|
25
|
+
PRO C C C C 0 37.155 39.077 82.602
|
|
26
|
+
PRO O O O O 0 36.450 38.196 83.146
|
|
27
|
+
PRO CB CB C CH2 0 38.553 38.007 80.756
|
|
28
|
+
PRO CG CG C CH2 0 38.265 36.558 81.098
|
|
29
|
+
PRO CD CD C CH2 0 38.934 36.298 82.416
|
|
30
|
+
PRO OXT OXT O OC -1 36.821 40.268 82.409
|
|
31
|
+
PRO H H H H 0 40.054 37.806 83.097
|
|
32
|
+
PRO H2 H2 H H 0 38.800 37.681 83.862
|
|
33
|
+
PRO HA HA H H 0 39.125 39.473 82.102
|
|
34
|
+
PRO HB3 HB3 H H 0 39.422 38.100 80.320
|
|
35
|
+
PRO HB2 HB2 H H 0 37.858 38.378 80.178
|
|
36
|
+
PRO HG3 HG3 H H 0 38.625 35.964 80.410
|
|
37
|
+
PRO HG2 HG2 H H 0 37.302 36.406 81.169
|
|
38
|
+
PRO HD3 HD3 H H 0 38.363 35.755 82.994
|
|
39
|
+
PRO HD2 HD2 H H 0 39.785 35.835 82.289
|
|
38
40
|
|
|
39
41
|
loop_
|
|
40
42
|
_chem_comp_tree.comp_id
|
|
@@ -42,38 +44,40 @@ _chem_comp_tree.atom_id
|
|
|
42
44
|
_chem_comp_tree.atom_back
|
|
43
45
|
_chem_comp_tree.atom_forward
|
|
44
46
|
_chem_comp_tree.connect_type
|
|
45
|
-
PRO N
|
|
46
|
-
PRO CA
|
|
47
|
-
PRO HA
|
|
48
|
-
PRO CB
|
|
49
|
-
PRO HB3 CB
|
|
50
|
-
PRO HB2 CB
|
|
51
|
-
PRO CG
|
|
52
|
-
PRO HG3 CG
|
|
53
|
-
PRO HG2 CG
|
|
54
|
-
PRO CD
|
|
55
|
-
PRO HD3 CD
|
|
56
|
-
PRO HD2 CD
|
|
57
|
-
PRO C
|
|
58
|
-
PRO O
|
|
59
|
-
PRO OXT C
|
|
60
|
-
PRO H
|
|
61
|
-
PRO
|
|
47
|
+
PRO N n/a CA START
|
|
48
|
+
PRO CA N C .
|
|
49
|
+
PRO HA CA . .
|
|
50
|
+
PRO CB CA CG .
|
|
51
|
+
PRO HB3 CB . .
|
|
52
|
+
PRO HB2 CB . .
|
|
53
|
+
PRO CG CB CD .
|
|
54
|
+
PRO HG3 CG . .
|
|
55
|
+
PRO HG2 CG . .
|
|
56
|
+
PRO CD CG HD2 .
|
|
57
|
+
PRO HD3 CD . .
|
|
58
|
+
PRO HD2 CD . .
|
|
59
|
+
PRO C CA . END
|
|
60
|
+
PRO O C . .
|
|
61
|
+
PRO OXT C . .
|
|
62
|
+
PRO H N . .
|
|
63
|
+
PRO H2 N . .
|
|
64
|
+
PRO CD N . ADD
|
|
62
65
|
|
|
63
66
|
loop_
|
|
64
67
|
_chem_comp_acedrg.comp_id
|
|
65
68
|
_chem_comp_acedrg.atom_id
|
|
66
69
|
_chem_comp_acedrg.atom_type
|
|
67
|
-
PRO N
|
|
68
|
-
PRO CA
|
|
69
|
-
PRO C
|
|
70
|
-
PRO O
|
|
71
|
-
PRO CB
|
|
72
|
-
PRO CG
|
|
73
|
-
PRO CD
|
|
70
|
+
PRO N N[5](C[5]C[5]CH)(C[5]C[5]HH)(H)2{4|H<1>}
|
|
71
|
+
PRO CA C[5](C[5]C[5]HH)(N[5]C[5]HH)(COO)(H){4|H<1>}
|
|
72
|
+
PRO C C(C[5]C[5]N[5]H)(O)2
|
|
73
|
+
PRO O O(CC[5]O)
|
|
74
|
+
PRO CB C[5](C[5]C[5]HH)(C[5]N[5]CH)(H)2{4|H<1>}
|
|
75
|
+
PRO CG C[5](C[5]C[5]HH)(C[5]N[5]HH)(H)2{1|C<3>,3|H<1>}
|
|
76
|
+
PRO CD C[5](C[5]C[5]HH)(N[5]C[5]HH)(H)2{1|C<3>,3|H<1>}
|
|
74
77
|
PRO OXT O(CC[5]O)
|
|
75
|
-
PRO H
|
|
76
|
-
PRO
|
|
78
|
+
PRO H H(N[5]C[5]2H)
|
|
79
|
+
PRO H2 H(N[5]C[5]2H)
|
|
80
|
+
PRO HA H(C[5]C[5]N[5]C)
|
|
77
81
|
PRO HB3 H(C[5]C[5]2H)
|
|
78
82
|
PRO HB2 H(C[5]C[5]2H)
|
|
79
83
|
PRO HG3 H(C[5]C[5]2H)
|
|
@@ -85,28 +89,29 @@ loop_
|
|
|
85
89
|
_chem_comp_bond.comp_id
|
|
86
90
|
_chem_comp_bond.atom_id_1
|
|
87
91
|
_chem_comp_bond.atom_id_2
|
|
88
|
-
_chem_comp_bond.
|
|
89
|
-
_chem_comp_bond.
|
|
92
|
+
_chem_comp_bond.value_order
|
|
93
|
+
_chem_comp_bond.pdbx_aromatic_flag
|
|
90
94
|
_chem_comp_bond.value_dist_nucleus
|
|
91
95
|
_chem_comp_bond.value_dist_nucleus_esd
|
|
92
96
|
_chem_comp_bond.value_dist
|
|
93
97
|
_chem_comp_bond.value_dist_esd
|
|
94
|
-
PRO N
|
|
95
|
-
PRO N
|
|
96
|
-
PRO CA C
|
|
97
|
-
PRO CA CB
|
|
98
|
-
PRO C
|
|
99
|
-
PRO C
|
|
100
|
-
PRO CB CG
|
|
101
|
-
PRO CG CD
|
|
102
|
-
PRO N
|
|
103
|
-
PRO
|
|
104
|
-
PRO
|
|
105
|
-
PRO CB
|
|
106
|
-
PRO
|
|
107
|
-
PRO CG
|
|
108
|
-
PRO
|
|
109
|
-
PRO CD
|
|
98
|
+
PRO N CA SINGLE n 1.496 0.0142 1.496 0.0142
|
|
99
|
+
PRO N CD SINGLE n 1.499 0.0135 1.499 0.0135
|
|
100
|
+
PRO CA C SINGLE n 1.525 0.0103 1.525 0.0103
|
|
101
|
+
PRO CA CB SINGLE n 1.526 0.0157 1.526 0.0157
|
|
102
|
+
PRO C O DOUBLE n 1.252 0.0117 1.252 0.0117
|
|
103
|
+
PRO C OXT SINGLE n 1.252 0.0117 1.252 0.0117
|
|
104
|
+
PRO CB CG SINGLE n 1.516 0.0179 1.516 0.0179
|
|
105
|
+
PRO CG CD SINGLE n 1.497 0.0200 1.497 0.0200
|
|
106
|
+
PRO N H SINGLE n 1.018 0.0520 0.910 0.0200
|
|
107
|
+
PRO N H2 SINGLE n 1.018 0.0520 0.910 0.0200
|
|
108
|
+
PRO CA HA SINGLE n 1.092 0.0100 0.980 0.0200
|
|
109
|
+
PRO CB HB3 SINGLE n 1.092 0.0100 0.977 0.0145
|
|
110
|
+
PRO CB HB2 SINGLE n 1.092 0.0100 0.977 0.0145
|
|
111
|
+
PRO CG HG3 SINGLE n 1.092 0.0100 0.978 0.0181
|
|
112
|
+
PRO CG HG2 SINGLE n 1.092 0.0100 0.978 0.0181
|
|
113
|
+
PRO CD HD3 SINGLE n 1.092 0.0100 0.977 0.0199
|
|
114
|
+
PRO CD HD2 SINGLE n 1.092 0.0100 0.977 0.0199
|
|
110
115
|
|
|
111
116
|
loop_
|
|
112
117
|
_chem_comp_angle.comp_id
|
|
@@ -115,36 +120,39 @@ _chem_comp_angle.atom_id_2
|
|
|
115
120
|
_chem_comp_angle.atom_id_3
|
|
116
121
|
_chem_comp_angle.value_angle
|
|
117
122
|
_chem_comp_angle.value_angle_esd
|
|
118
|
-
PRO CA
|
|
119
|
-
PRO CA
|
|
120
|
-
PRO
|
|
121
|
-
PRO N
|
|
122
|
-
PRO N
|
|
123
|
-
PRO N
|
|
124
|
-
PRO
|
|
125
|
-
PRO
|
|
126
|
-
PRO
|
|
127
|
-
PRO CA
|
|
128
|
-
PRO CA
|
|
129
|
-
PRO
|
|
130
|
-
PRO CA
|
|
131
|
-
PRO CA
|
|
132
|
-
PRO
|
|
133
|
-
PRO
|
|
134
|
-
PRO
|
|
123
|
+
PRO CA N CD 107.978 1.50
|
|
124
|
+
PRO CA N H 109.889 3.00
|
|
125
|
+
PRO CA N H2 109.889 3.00
|
|
126
|
+
PRO CD N H 110.257 3.00
|
|
127
|
+
PRO CD N H2 110.257 3.00
|
|
128
|
+
PRO H N H2 108.772 3.00
|
|
129
|
+
PRO N CA C 110.397 1.50
|
|
130
|
+
PRO N CA CB 103.994 1.50
|
|
131
|
+
PRO N CA HA 109.579 1.50
|
|
132
|
+
PRO C CA CB 113.159 3.00
|
|
133
|
+
PRO C CA HA 109.687 1.50
|
|
134
|
+
PRO CB CA HA 109.910 1.89
|
|
135
|
+
PRO CA C O 116.979 3.00
|
|
136
|
+
PRO CA C OXT 116.979 3.00
|
|
137
|
+
PRO O C OXT 126.043 1.52
|
|
138
|
+
PRO CA CB CG 101.701 3.00
|
|
139
|
+
PRO CA CB HB3 110.865 1.50
|
|
140
|
+
PRO CA CB HB2 110.865 1.50
|
|
141
|
+
PRO CG CB HB3 110.891 1.59
|
|
142
|
+
PRO CG CB HB2 110.891 1.59
|
|
135
143
|
PRO HB3 CB HB2 108.880 2.25
|
|
136
|
-
PRO CB
|
|
137
|
-
PRO CB
|
|
138
|
-
PRO CB
|
|
139
|
-
PRO CD
|
|
140
|
-
PRO CD
|
|
144
|
+
PRO CB CG CD 105.541 3.00
|
|
145
|
+
PRO CB CG HG3 110.897 1.50
|
|
146
|
+
PRO CB CG HG2 110.897 1.50
|
|
147
|
+
PRO CD CG HG3 110.621 1.50
|
|
148
|
+
PRO CD CG HG2 110.621 1.50
|
|
141
149
|
PRO HG3 CG HG2 108.871 1.50
|
|
142
|
-
PRO N
|
|
143
|
-
PRO N
|
|
144
|
-
PRO N
|
|
145
|
-
PRO CG
|
|
146
|
-
PRO CG
|
|
147
|
-
PRO HD3 CD HD2
|
|
150
|
+
PRO N CD CG 104.386 2.30
|
|
151
|
+
PRO N CD HD3 110.569 1.50
|
|
152
|
+
PRO N CD HD2 110.569 1.50
|
|
153
|
+
PRO CG CD HD3 111.131 1.62
|
|
154
|
+
PRO CG CD HD2 111.131 1.62
|
|
155
|
+
PRO HD3 CD HD2 109.116 1.50
|
|
148
156
|
|
|
149
157
|
loop_
|
|
150
158
|
_chem_comp_tor.comp_id
|
|
@@ -156,12 +164,12 @@ _chem_comp_tor.atom_id_4
|
|
|
156
164
|
_chem_comp_tor.value_angle
|
|
157
165
|
_chem_comp_tor.value_angle_esd
|
|
158
166
|
_chem_comp_tor.period
|
|
159
|
-
PRO chi1
|
|
160
|
-
PRO chi2
|
|
161
|
-
PRO sp3_sp3_1
|
|
162
|
-
PRO
|
|
163
|
-
PRO
|
|
164
|
-
PRO sp2_sp3_1
|
|
167
|
+
PRO chi1 N CA CB CG -60.000 10.0 3
|
|
168
|
+
PRO chi2 CA CB CG CD 180.000 10.0 3
|
|
169
|
+
PRO sp3_sp3_1 CB CA N CD 60.000 10.0 3
|
|
170
|
+
PRO sp3_sp3_28 N CD CG CB -60.000 10.0 3
|
|
171
|
+
PRO sp3_sp3_37 CG CD N CA 180.000 10.0 3
|
|
172
|
+
PRO sp2_sp3_1 O C CA N 0.000 10.0 6
|
|
165
173
|
|
|
166
174
|
loop_
|
|
167
175
|
_chem_comp_chir.comp_id
|
|
@@ -172,21 +180,16 @@ _chem_comp_chir.atom_id_2
|
|
|
172
180
|
_chem_comp_chir.atom_id_3
|
|
173
181
|
_chem_comp_chir.volume_sign
|
|
174
182
|
PRO chir_1 CA N C CB positive
|
|
175
|
-
PRO chir_2 N CA CD H both
|
|
176
183
|
|
|
177
184
|
loop_
|
|
178
185
|
_chem_comp_plane_atom.comp_id
|
|
179
186
|
_chem_comp_plane_atom.plane_id
|
|
180
187
|
_chem_comp_plane_atom.atom_id
|
|
181
188
|
_chem_comp_plane_atom.dist_esd
|
|
182
|
-
PRO plan-1
|
|
183
|
-
PRO plan-1
|
|
184
|
-
PRO plan-1
|
|
185
|
-
PRO plan-1
|
|
186
|
-
PRO plan-2 C 0.020
|
|
187
|
-
PRO plan-2 CA 0.020
|
|
188
|
-
PRO plan-2 O 0.020
|
|
189
|
-
PRO plan-2 OXT 0.020
|
|
189
|
+
PRO plan-1 C 0.020
|
|
190
|
+
PRO plan-1 CA 0.020
|
|
191
|
+
PRO plan-1 O 0.020
|
|
192
|
+
PRO plan-1 OXT 0.020
|
|
190
193
|
|
|
191
194
|
loop_
|
|
192
195
|
_pdbx_chem_comp_descriptor.comp_id
|
|
@@ -194,20 +197,20 @@ _pdbx_chem_comp_descriptor.type
|
|
|
194
197
|
_pdbx_chem_comp_descriptor.program
|
|
195
198
|
_pdbx_chem_comp_descriptor.program_version
|
|
196
199
|
_pdbx_chem_comp_descriptor.descriptor
|
|
197
|
-
PRO SMILES
|
|
198
|
-
PRO SMILES_CANONICAL CACTVS
|
|
199
|
-
PRO SMILES
|
|
200
|
-
PRO SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 C1C[C@H](NC1)C(=O)O
|
|
201
|
-
PRO SMILES
|
|
202
|
-
PRO InChI
|
|
203
|
-
PRO InChIKey
|
|
200
|
+
PRO SMILES ACDLabs 10.04 "O=C(O)C1NCCC1"
|
|
201
|
+
PRO SMILES_CANONICAL CACTVS 3.341 "OC(=O)[C@@H]1CCCN1"
|
|
202
|
+
PRO SMILES CACTVS 3.341 "OC(=O)[CH]1CCCN1"
|
|
203
|
+
PRO SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 "C1C[C@H](NC1)C(=O)O"
|
|
204
|
+
PRO SMILES "OpenEye OEToolkits" 1.5.0 "C1CC(NC1)C(=O)O"
|
|
205
|
+
PRO InChI InChI 1.03 "InChI=1S/C5H9NO2/c7-5(8)4-2-1-3-6-4/h4,6H,1-3H2,(H,7,8)/t4-/m0/s1"
|
|
206
|
+
PRO InChIKey InChI 1.03 ONIBWKKTOPOVIA-BYPYZUCNSA-N
|
|
204
207
|
|
|
205
208
|
loop_
|
|
206
209
|
_pdbx_chem_comp_description_generator.comp_id
|
|
207
210
|
_pdbx_chem_comp_description_generator.program_name
|
|
208
211
|
_pdbx_chem_comp_description_generator.program_version
|
|
209
212
|
_pdbx_chem_comp_description_generator.descriptor
|
|
210
|
-
PRO acedrg
|
|
211
|
-
PRO acedrg_database 12
|
|
212
|
-
PRO rdkit
|
|
213
|
-
PRO refmac5
|
|
213
|
+
PRO acedrg 281 "dictionary generator"
|
|
214
|
+
PRO acedrg_database 12 "data source"
|
|
215
|
+
PRO rdkit 2019.09.1 "Chemoinformatics tool"
|
|
216
|
+
PRO refmac5 5.8.0419 "optimization tool"
|
|
@@ -19,30 +19,30 @@ _chem_comp_atom.charge
|
|
|
19
19
|
_chem_comp_atom.x
|
|
20
20
|
_chem_comp_atom.y
|
|
21
21
|
_chem_comp_atom.z
|
|
22
|
-
TYR N N NT3 1 5.
|
|
23
|
-
TYR CA C CH1 0 5.
|
|
24
|
-
TYR C C C 0 4.
|
|
25
|
-
TYR O O O 0
|
|
26
|
-
TYR CB C CH2 0 6.
|
|
27
|
-
TYR CG C CR6 0 7.
|
|
28
|
-
TYR CD1 C CR16 0 7.
|
|
29
|
-
TYR CD2 C CR16 0 8.
|
|
30
|
-
TYR CE1 C CR16 0 7.
|
|
31
|
-
TYR CE2 C CR16 0 8.
|
|
32
|
-
TYR CZ C CR6 0 8.
|
|
33
|
-
TYR OH O OH1 0 8.
|
|
34
|
-
TYR OXT O OC -1 5.
|
|
35
|
-
TYR H H H 0
|
|
36
|
-
TYR H2 H H 0
|
|
37
|
-
TYR H3 H H 0
|
|
38
|
-
TYR HA H H 0 4.
|
|
39
|
-
TYR HB3 H H 0 6.
|
|
40
|
-
TYR HB2 H H 0 7.
|
|
41
|
-
TYR HD1 H H 0 6.
|
|
42
|
-
TYR HD2 H H 0 8.
|
|
43
|
-
TYR HE1 H H 0 7.
|
|
44
|
-
TYR HE2 H H 0 9.
|
|
45
|
-
TYR HH H H 0
|
|
22
|
+
TYR N N NT3 1 5.311 5.160 15.589
|
|
23
|
+
TYR CA C CH1 0 5.358 6.374 16.456
|
|
24
|
+
TYR C C C 0 4.823 7.578 15.662
|
|
25
|
+
TYR O O O 0 3.988 8.305 16.245
|
|
26
|
+
TYR CB C CH2 0 6.763 6.679 16.994
|
|
27
|
+
TYR CG C CR6 0 7.348 5.630 17.938
|
|
28
|
+
TYR CD1 C CR16 0 7.096 5.672 19.314
|
|
29
|
+
TYR CD2 C CR16 0 8.161 4.597 17.458
|
|
30
|
+
TYR CE1 C CR16 0 7.628 4.720 20.176
|
|
31
|
+
TYR CE2 C CR16 0 8.697 3.641 18.313
|
|
32
|
+
TYR CZ C CR6 0 8.431 3.702 19.674
|
|
33
|
+
TYR OH O OH1 0 8.982 2.738 20.476
|
|
34
|
+
TYR OXT O OC -1 5.248 7.759 14.496
|
|
35
|
+
TYR H H H 0 5.552 4.421 16.046
|
|
36
|
+
TYR H2 H H 0 5.856 5.257 14.876
|
|
37
|
+
TYR H3 H H 0 4.470 5.038 15.288
|
|
38
|
+
TYR HA H H 0 4.756 6.220 17.232
|
|
39
|
+
TYR HB3 H H 0 6.733 7.543 17.464
|
|
40
|
+
TYR HB2 H H 0 7.369 6.788 16.227
|
|
41
|
+
TYR HD1 H H 0 6.552 6.358 19.667
|
|
42
|
+
TYR HD2 H H 0 8.350 4.543 16.534
|
|
43
|
+
TYR HE1 H H 0 7.444 4.765 21.099
|
|
44
|
+
TYR HE2 H H 0 9.240 2.953 17.971
|
|
45
|
+
TYR HH H H 0 8.782 2.828 21.308
|
|
46
46
|
|
|
47
47
|
loop_
|
|
48
48
|
_chem_comp_tree.comp_id
|
|
@@ -205,7 +205,7 @@ TYR CONST_2 CG CD1 CE1 CZ 0.000 0.0 1
|
|
|
205
205
|
TYR CONST_3 CZ CE2 CD2 CG 0.000 0.0 1
|
|
206
206
|
TYR CONST_4 CD1 CE1 CZ CE2 0.000 0.0 1
|
|
207
207
|
TYR CONST_5 CE1 CZ CE2 CD2 0.000 0.0 1
|
|
208
|
-
TYR hh1 CE1 CZ OH HH
|
|
208
|
+
TYR hh1 CE1 CZ OH HH 0.000 5.0 2
|
|
209
209
|
TYR sp3_sp3_1 C CA N H 180.000 10.0 3
|
|
210
210
|
TYR const_21 CE2 CD2 CG CD1 0.000 0.0 1
|
|
211
211
|
TYR sp2_sp3_1 O C CA N 0.000 10.0 6
|
|
@@ -265,3 +265,4 @@ TYR acedrg 278 "dictionary generator"
|
|
|
265
265
|
TYR acedrg_database 12 "data source"
|
|
266
266
|
TYR rdkit 2019.09.1 "Chemoinformatics tool"
|
|
267
267
|
TYR refmac5 5.8.0419 "optimization tool"
|
|
268
|
+
TYR servalcat 0.4.57 'optimization tool'
|